1
Itaituba 2015
JAIME BANDEIRA SANTANA PINTO FILHO
SISTEMA DE ENSINO A DISTANCIA (EAD) ANALISE E DESENVOLVIMENTO DE SISTEMAS
PORTIFÓLIO INDIVIDUAL DE DEPENDÊNCIA:
PROJETO
Desenvolvimento de Sistemas II
Disciplina
Professor
Análise Orientada a Objetos II Banco de Dados II Programação Orientada a Objetos Programação Web I Seminário IV
Luis Claudio Perini Roberto Y. Nishmura Márcio Roberto Chiaveli Veronice de Freitas Adriane Ap. Loper
2
Itaituba 2015
PORTIFÓLIO INDIVIDUAL DE DEPENDÊNCIA:
PROJETO
Desenvolvimento de Sistemas II
Análise Orientada a Objetos II Banco de Dados II
Programação Orientada a Objetos Programação Web I
Seminário IV
Portfólio Individual apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média semestral na disciplina de Análise de Desenvolvimentos de Sistemas em sistema de dependência.
JAIME BANDEIRA SANTANA PINTO FILHO
3
SUMÁRIO 1 INTRODUÇÃO ........................................................................................... 4
2 OBJETIVO ................................................................................................. 5
3 DESENVOLVIMENTO. .............................................................................. 6
3.1. Análise Orientada a Objetos II ........................................................................... 6
3.1.1 Diagrama de Caso de Uso ................................................................... 6
3.1.2 Diagrama de Classes ........................................................................... 7
3.1.3 Diagrama de objetos ............................................................................ 8
3.1.4 Diagrama de Colaboração ................................................................... 8
3.1.5 Diagrama de Sequência ...................................................................... 9
3.1.6 Diagrama de Atividades .................................................................... 10
3.1.7 Diagrama de Estados ........................................................................ 11
3.1.8 Diagrama de Componentes ............................................................... 12
3.2. Banco de Dados II ............................................................................................ 12
3.3. Programação Orientada a Objetos ................................................................. 14
3.4. Programação Web I .......................................................................................... 16
4 CONCLUSÃO .......................................................................................... 20
5 REFERÊNCIAS ....................................................................................... 21
4
1 INTRODUÇÃO
Em uma sociedade cada vez mais globalizada e tecnológica, é essencial ampliar
sempre os conhecimentos nas áreas relacionadas à informática e suas vertentes, já que
elementos práticos e eficazes são cada vez mais necessários nas empresas e instituições em
geral onde se utiliza de suportes de informação para desenvolver seus processos.
O Desenvolvimento e o crescente desenvolvimento das empresas hoje são frutos da
grande evolução tecnológica que se vive hoje. Uma evolução que nos acompanha, e
acompanhará a próxima geração, e porque não dizer, sim, as gerações futuras.
Neste trabalho será apresentado conhecimentos relacionados a desenvolvimento de
sistemas, onde trabalharemos desde o iniciação do projeto com a ferramenta UML, suas
características e importância junto aos desenvolvedores, descreveremos seus principais
diagramas de trabalho. A posterior trabalharemos o Modelo Entidade relacionamento (MER)
com suas peculiaridades essências ao projeto de desenvolvimento de software. E por último, e
não menos importante, trabalharemos o desenvolvimento de aplicativos para web, dos
mesmos.
Assim teremos uma abordagem desses tópicos de forma dinâmica e mesmo sem
esgotar o assunto, servirá como base para complementações posteriores e uma visão
necessária para o desenvolvimento de software desde a negociação com o cliente até a entrega
do aplicativo, tanto como comum ou para a web. Sabendo que essa última opção atualmente,
domina o mercado destes aplicativos.
5
2 OBJETIVO
Dar ao leitor uma leitura compacta e sucinta sobre o assunto em questão, para que haja
entendimento do conteúdo de forma linear e de fácil aprendizagem.
6
3 DESENVOLVIMENTO.
3.1. Análise Orientada a Objetos II
A UML é uma tentativa de padronizar a modelagem orientada a objetos de
forma que qualquer sistema, seja qual for o tipo, possa ser modelado corretamente,
com consistência e praticidade, fácil de se comunicar com outras aplicações, simples
de ser atualizado e compreensível e atende perfeitamente, as expectativas de
desenvolvimento profissional.
Neste tópico, Iremos abordar os principais diagramas utilizados da UML,
dando ênfase em sua utilidade e contribuição de uma forma geral e prática em um
desenvolvimento de sistema orientado a objeto.
Os diagramas mais utilizados pela UML são compostos de: diagrama de use
case, de classes, de objeto, de estado, de sequência, de colaboração, de atividade,
de componente e o de execução.
Todos os sistemas possuem uma estrutura estática e um comportamento
dinâmico. A UML suporta modelos estáticos (estrutura estática), dinâmicos
(comportamento dinâmico) e funcional. Abordaremos agora cada um destes
diagramas:
3.1.1 Diagrama de Caso de Uso
Com certeza um dos mais utilizados e importante, pois está diretamente
ligado ao início do projeto e dar margens para o melhor entendimento ente o analista
de sistema com o cliente, que, geralmente é leigo no assunto de desenvolvimento.
Representa o conjunto de comportamentos de alto nível que o sistema deve
executar para um determinado ator.
O Diagrama de Casos de Uso tem o objetivo de auxiliar a comunicação entre
os analistas e o cliente, facilitando assim o entendimento de um empresário e suas
necessidades empresariais e o desenvolvedor.
7
Um diagrama de Caso de Uso descreve um cenário que mostra as
funcionalidades do sistema do ponto de vista do usuário.
O cliente deve ver no diagrama de Casos de Uso as principais
funcionalidades de seu sistema. É onde ele visualiza o projeto e pode ser melhorado
em sua essência.
Notação
O diagrama de Caso de Uso é representado por:
atores;
casos de uso;
relacionamentos entre estes elementos.
Estes relacionamentos podem ser:
associações entre atores e casos de uso;
generalizações entre os atores;
generalizações, extends e includes entre os casos de uso.
casos de uso podem opcionalmente estar envolvidos por um retângulo que
representa os limites do sistema.
A figura acima ilustra um caso de uso geral, mas é recomendado que eles
sejam desenvolvidos para cada cenário. As setas de includes e extends, indicam,
respectivamente, obrigatoriedade e opção de se realizar determinada ação.
3.1.2 Diagrama de Classes
O diagrama de classes demonstra a estrutura estática das classes de um
sistema onde estas representam as "coisas" que são gerenciadas pela aplicação
modelada. Classes podem se relacionarem com outras através de diversas
maneiras: associação (conectadas entre si), dependência (uma classe depende ou
8
usa outra classe), especialização (uma classe é uma especialização de outra
classe), ou em pacotes (classes agrupadas por características similares).
Todos estes relacionamentos possuem estruturas internas, que são os
atributos e operações. Um sistema normalmente possui alguns diagramas de
classes, já que não são todas as classes que estão inseridas em um único diagrama
e uma certa classes pode participar de vários diagramas de classes.
3.1.3 Diagrama de objetos
O diagrama de objetos é uma variação do diagrama de classes e utiliza
quase a mesma notação. A diferença é que o diagrama de objetos mostra
os objetos que foram instanciados das classes. O diagrama de objetos é como se
fosse o perfil do sistema em um certo momento de sua execução.
Representa um retrato, em tempo de execução, dos objetos do software e
seus inter-relacionamentos.
3.1.4 Diagrama de Colaboração
Um Diagrama de comunicação (era conhecido como Diagrama
de Colaboração até a versão 1.5 da UML) é definido pelo UML. O Diagrama de
9
Colaboração exibe uma interação, consistindo de um conjunto de objetos e seus
relacionamentos, incluindo as mensagens que podem ser trocadas entre eles.
O diagrama de colaboração mostra, de maneira semelhante ao diagrama de
seqüência, a colaboração dinâmica entre os objetos. Se a ênfase do diagrama for o
decorrer do tempo, é melhor escolher o diagrama de seqüência, mas se a ênfase for
o contexto do sistema, é melhor dar prioridade ao diagrama de colaboração. O
diagrama de colaboração é desenhado como um diagrama de objeto, onde os
diversos objetos são mostrados juntamente com seus relacionamentos.
O Diagrama de Comunicação dá ênfase à ordenação estrutural em que as
mensagens são trocadas entre os objetos de um sistema.
Representa uma coleção de objetos que trabalham em conjunto para atender algum
comportamento do sistema.
3.1.5 Diagrama de Sequência
Consiste em um diagrama que tem o objetivo de mostrar como as mensagens
entre os objetos são trocadas no decorrer do tempo para a realização de uma
operação.
Em um diagrama de sequência, as linhas verticais representando o tempo de vida de
um objeto (lifeline), estas linhas verticais são preenchidas por barras verticais que
indicam exatamente quando um objeto passou a existir. Quando um objeto
desaparece, existe um "X" na parte inferior da barra.
10
Linhas horizontais ou diagonais representando mensagens trocadas entre
objetos. Estas linhas são acompanhadas de um rótulo que contém o nome da
mensagem e, opcionalmente, os parâmetros da mesma.
Representa uma perspectiva, orientada por tempo, da colaboração entre os
objetos.
3.1.6 Diagrama de Atividades
O objetivo do diagrama de atividades é mostrar o fluxo de atividades em um
único processo. O diagrama mostra como um atividade depende uma da outra.
Você pode usar um diagrama de atividade para descrever processos de diversos
tipos, como os exemplos a seguir:
Um processo de negócios ou um fluxo de trabalho entre usuários e seu
sistema. Para obter mais informações, consulte Requisitos de usuário do
modelo.
As etapas executadas em um caso de uso. Para obter mais informações,
consulte Diagramas de caso de uso UML: diretrizes.
Um protocolo de software, ou seja, as sequências permitidos de interações
entre os componentes.
Um algoritmo de software.
Representa o fluxo de tarefas que podem ser executadas pelo sistema ou por um
ator.
11
3.1.7 Diagrama de Estados
Representa um conjunto de estados que um objeto pode estar e os “gatilhos”
que estimulam a transição do objeto de um estado para outro.
Em um diagrama de estado, um objeto possui um comportamento e um
estado.
O estado de um objeto depende da atividade na qual ele está processando.
Um diagrama de estado mostra os possíveis estados de um objeto e as
transações responsáveis pelas suas mudanças de estado.
Exemplo:
12
3.1.8 Diagrama de Componentes
Você pode usar um diagrama de componente para descrever um design é
implementado em qualquer idioma ou estilo. Só é necessário identificar as partes do
design que interagem com as outras partes do projeto por meio de um conjunto
restrito de entradas e saídas. Os componentes podem ser de qualquer escala e
podem ser interconectados de qualquer maneira.
Representa uma coleção de componentes de software e seus inter-
relacionamentos.
3.2. Banco de Dados II
Em engenharia de software, um modelo entidade relacionamento (modelo
ER) é um modelo de dados para descrever os dados ou aspectos de informação de
um domínio de negócio ou seus requerimentos de processo, de uma maneira
abstrata que em última análise se presta a ser implementada em um banco de
dados, como um banco de dados relacional. Os principais componentes dos
13
Modelos Entidades Relacionamento (MER) são as entidades (coisas, objetos) suas
relações e armazenamento em bancos de dados.
A normalização é uma técnica que tem como objetivo a melhor forma de
distribuir e organizar os dados em uma modelagem, com suas respetivas tabelas de
entidades e seus relacionamentos.
Possui algumas divisões que facilita seu entendimento que cria um processo
sequencial para sua melhor desenvoltura. São chamados de formas normais que
são:
1ª forma normal: resolvemos os atributos repetidos dentro da entidade, retirando-os
e assim evitando a redundância e reagrupa-las em outras entidades.
2ª forma normal: tem como objetivo retirar os atributos que não possuem
dependência funcional com as chaves primárias (não pode ser chave primaria
simples), criando assim, uma nova entidade.
3ª forma normal é a análise de dependência funcional parcial entre os próprios
atributos não chaves. Nesta fase também, elimina-se os atributos calculáveis pois
apresentam risco na consistência dos dados.
Existe também a forma normal chamada Boyce Codd, que poderíamos
chamar de intermediaria entre a 3ª e a 4ª. Ela analisa a melhor escolha para uma
chave primária, no que tange ao nome, a funcionalidade, entre outros quesitos.
A quarta forma normal elimina a multiplicidade de relacionamentos.
E por fim a quinta em que existe uma combinação N:N:N entre pelo menos 3
entidades, além do relacionamento binário ser necessário entre elas.
Exemplo:
14
3.3. Programação Orientada a Objetos
A Programação Orientada a Objetos (POO) é uma forma moderna de
programar onde nos aproximamos mais do mundo real, através de
interacionamentos, trazendo para a programação o conceito de 'Objetos'. Assim
como no mundo real tratamos muitos elementos tanto material quanto imaterial
como objetos no mundo da programação não é diferente e até mesmo mais amplo,
pois com POO praticamente tudo pode ser considerado um objeto, por exemplo,
uma pessoa, um carro, um planeta e até mesmo sua conta bancária pode ser objeto
nasce assim a Inter relação entre o objeto real e o de programação.
O objetivo deste modelo é simplesmente abstrair dados do mundo real e
transportar os dados relevantes para o mundo virtual com as mesmas características
(atributos, ações, modo de fabricação), a esses abstração, no mundo de
programação tudo se torna um ‘objeto’. Um exemplo prático:
Temos uma caneta, nós sabemos que uma caneta tem suas características
como tamanho, cor, peso (estes são os atributos da caneta), escrever, cair,
quebrar, vazar (estas são as ações que uma caneta pode realizar) essas
características são levadas a programação orientada a objetos.
A principal característica da POO é o reaproveitamento de componentes
(objetos) assim economizando tempo e consequentemente dinheiro, podemos dividir
nosso projeto em pequenas partes e utilizar estas partes em projetos distintos
podendo assim chegar a um resultado comum. Pode-se ter como resultados códigos
limpos de fácil entendimento e abrangente usabilidade o que é o objetivo do modelo.
Principais conceitos da Programação Orientada e Objetos:
Classe (atributos e métodos)
15
Classe é a arquitetura do objeto, para que se possa ter um objeto temos que ter a
classe, é na classe que teremos as características dos objetos como atributos
(propriedade) e métodos (ações),
Objeto
Objeto é o produto final, com a classe criada a partir dela podemos instanciar um
objeto.
Encapsulamento
Encapsulamento é como se fosse um dispositivo de segurança, o encapsulamento é
uma forma de esconder dados privativos ou protegidos do nosso objeto para que
terceiros não tenham acesso, exemplo: Eu tenho meu nome e tenho CPF, o primeiro
pode ser visto por todos, o segundo posso encapsular (esconder) para que apenas
algumas pessoas tenham acesso a essa informação.
Herança
Herança, o próprio nome já diz é a habilidade de herdar características de outros
objetos da mesma forma que no mundo real herdamos características físicas, bens
materiais e imateriais de nossos antecedentes.
Polimorfismo
O Polimorfismo caracteriza-se pela criação de métodos com assinaturas iguais, mas
implementações distintas.
Interface
O objetivo de uma interface é servir como modelo para implementação de classes, a
utilização é um tanto quanto complexa, mas dominando o seu uso, pode-se obter
resultados bastante satisfatórios.
16
Essas são as descrições e principais características de programação orientada a
objetos, e aqui exemplos de programas que trabalham ou foral adaptados a
utilizarem a POO.
Delphi, JAVA, C++, C# e Objetive-C, já outras sofreram adaptações para se adequar
ao modelo como o PHP, Javascript.
3.4. Programação Web I
Desenvolvimento web é o termo utilizado para descrever o desenvolvimento de
sites, na Internet ou numa intranet, utilizando ferramenta de desenvolvimento de
software, tornando essas páginas webs dinâmicas, funcionais, seguras, interativas e
que atendam diversos segmentos. O profissional que trabalha desenvolvendo
websites, podendo ser um Web Designer (Desenvolvedor do Layout), ou Web
Developer (Desenvolvedor de sistemas). O desenvolvimento refere-se a um
processo de construção e testes do software especifico para a web, com a finalidade
de se obter um conjunto de programas, que satisfazem as funções pretendidas, quer
em termos de usabilidade dos usuários ou compatibilidade com outros programas
existentes. O desenvolvimento web pode variar desde simples páginas estáticas
a aplicações ricas, comércios eletrônicos ou redes sociais.
Veremos algumas ferramentas e sus características que delimitam o
desenvolvimento web.
XML
XML (eXtensible Markup Language) é para gerar linguagens de marcação capaz
de descrever diversos tipos de dados. Seu propósito principal é a facilidade de
compartilhamento de informações através da internet.
Entre linguagens baseadas em XML incluem-se XHTML (formato para
páginas Web), RDF, SDMX, SMIL, MathML (formato para expressões
matemáticas), NCL, XBRL, XSIL e SVG (formato gráfico vetorial). A principal
característica do XML, de criar uma infraestrutura única para diversas linguagens.
17
Características:
Separação do conteúdo da formatação
Simplicidade e legibilidade, tanto para humanos quanto para computadores
Possibilidade de criação de tags sem limitação
Criação de arquivos para validação de estrutura (chamados DTDs)
Interligação de bancos de dados distintos
Concentração na estrutura da informação, e não na sua aparência
O XML é um formato para a criação de documentos com dados organizados de
forma hierárquica, como se vê, frequentemente, em documentos de texto
formatados, imagens vetoriais ou bancos de dados.
O exemplo abaixo equivale ao exemplo da receita de pão:
<?xml version="1.0" encoding="ISO-8859-1"?><receita nome="pão" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora"><titulo>Pão simples</titulo><ingredientes><ingrediente quantidade="3" unidade="xícaras">Farinha</ingrediente><ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente><ingrediente quantidade="1.5" unidade="xícaras" estado="morna">Água</ingrediente><ingrediente quantidade="1" unidade="colheres de chá" >Sal</ingrediente></ingredientes><instrucoes><passo>Misture todos os ingredientes,e dissolva bem.</passo><passo>Cubra com um pano e deixe por uma hora em um local morno.</passo><passo>Misture novamente, coloque numa bandeja e asse num forno.</passo> </instrucoes></receita>
Programação Web: PHP
PHP (Hypertext Preprocessor", originalmente Personal Home Page) é usada
originalmente apenas para o desenvolvimento de aplicações presentes e atuantes
no lado do servidor, capazes de gerar conteúdo dinâmico na World Wide
Web. Figura entre as primeiras linguagens passíveis de inserção em
documentos HTML, dispensando em muitos casos o uso de arquivos externos para
eventuais processamentos de dados. A linguagem evoluiu, passou a oferecer
18
funcionalidades em linha de comando, e além disso, ganhou características
adicionais, que possibilitaram usos adicionais do PHP, não relacionados a web sites.
o PHP é utilizado em aplicações como o MediaWiki, Facebook, Drupal,
Joomla, WordPress, Magento e o Oscommerce.
Principais características
A linguagem PHP é uma linguagem de programação de domínio específico, ou seja,
seu escopo se estende a um campo de atuação que é o desenvolvimento web. Seu
propósito principal é de implementar soluções web velozes, simples e eficientes.
Características:
Velocidade e robustez
Estruturado e orientação a objetos.
Portabilidade - independência de plataforma - escreva uma vez, rode em
qualquer lugar.
Tipagem dinâmica.
Sintaxe similar a C/C++ e o Perl.
Open-source.
Server-side (O cliente manda o pedido e o servidor responde em página
HTML)
AJAX
AJAX (acrônimo em língua inglesa de Asynchronous Javascript and XML) em
português "Javascript Assíncrono e XML") é o uso metodológico de tecnologias
como Javascripte XML, providas por navegadores, para tornar páginas Web mais
interativas com o usuário, utilizando-se de solicitações assíncronas de informações.
Java para Web
Certamente o mercado com mais oportunidades em que o Java está presente é
o de Web. Não é por acaso sua popularidade: criar um projeto com Java dá muita
19
liberdade, evitando cair no vendor lock-in. Em outras palavras, sua empresa fica
independente do fabricante de vários softwares: do servlet container, do banco de
dados e até da própria fabricante da sua Virtual Machine! Além disso, podemos fazer
todo o desenvolvimento em um sistema operacional e fazer o deploy(implantação)
em outro.
Apesar de tanta popularidade no ambiente Web, o desenvolvimento com Java
não é trivial: é necessário conhecer com certa profundidade as APIs de servlets e de
JSP, mesmo que sua equipe venha utilizar frameworks como Struts, VRaptor ou
JSF. Conceitos de HTTP, session e cookies também são mandatórios para poder
enxergar gargalos e problemas que sua aplicação enfrentará.
Entre essas 4 ferramentas de desenvolvimento web podemos visualizar que
possuem ferramentas de desenvolvimento que atendem a demanda de aplicativos
web a contento. Com vantagens de fácil utilização e performance.
Dentre elas o JAVA atende a diversas plataformas de navegação, e de
sistemas operacionais. Juntamente com outras ferramentas ou até mesmo utilizando
os melhores recursos de cada um deles, podemos chegar a aplicativos com
superioridade no mercado tanto em qualidade técnica com em segurança.
20
4 CONCLUSÃO
Vimos que o desenvolvimento de software de uma forma geral necessita de
ferramentas que auxiliam de forma sistemática a equipe de desenvolvimento como
um todo. Partindo de ferramenta UML e seus diagramas que facilitam o passo a
passo do desenvolvimento, desde a fase de início com o cliente À sua entrega
definitiva.
Vimos também que o modelo relacional ajuda muito a criar os caminhos
coretos do software a ser desenvolvido.
E por último vimos algumas ferramentas de desenvolvimento web que nos
coloca a um nível extremamente profissional para desenvolver qualquer aplicativo
nesta área em especifico.
Com tudo, vimos que há uma perfeita harmonia entres esses tópicos que nos
leva a ter ciência precisa de que o caminho a ser seguido para o sucesso
profissional neste tão vasta área de conhecimento, com certeza, passa por essas
fases. Vamos então a obra, de qualificamos nos mesmo para atender esse vasto
mercado que nos espera.
21
5 REFERÊNCIAS
FREITAS, Veronica. PROGRAMAÇÃO WEB II. 4 ed. São Paulo: Pearson, 2013.
NISHIMURA, Roberto Yukio. BANCO DE DADOS II: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS. São Paulo: Pearson Education do Brasil, 2009.
SOLER, Luciano; EWERSON, Matias. DESENVOLVIMENTO DE APLICAÇÃO WEB I. 4 ed. São Paulo: Pearson, 2010.