Buscar

Aula 5 - Projeto de software - conceitos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROCESSOS DE DESENV. DE SOFTWARE 
CURSO DE ANÁLISE E DESENVOLVIMENTO 
DE SISTEMAS 
Professor: David Falcão, M.Sc. 
davidfalcaoprof@gmail.com 
Aula 5 – Projeto de software 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Atividades básicas de um PDS 
 Definição / Especificação: (o quê?) 
• Análise econômica 
• Análise de requisitos 
• Especificação de software 
 
 Desenvolvimento : (como?) 
• Arquitetura do sistema 
• Implementação (codificação) 
 
 Manutenção: 
• Teste do produto 
• Documentação, Suporte e Melhoria Contínua 
 
 
 
 
Processos de Desenvolvimento de Software – Prof. David Falcão 
O que é projeto de software? 
 
Atividades de definição da arquitetura, componentes, interfaces e demais 
características de um sistema ou de um componente; 
 
Requisitos de software são analisados para produzir a descrição da 
estrutura interna do software que servirá como base para sua 
construção; 
 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Princípios do projeto de software 
 
Abstração – é o processo de esquecer informações tal que coisas 
diferentes possam ser tratadas como se fossem iguais; 
 
 
 
 
Conceitos: 
Restaurante 
Pratos 
Garçons 
GARÇOM 
Entidades Objetos 
# Matricula: Int; 
+ Nome: String; 
+ Telefone: String; 
- Comissao: Real; 
+ ServeMesa(Cliente); 
Clientes 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Princípios do projeto de software 
 
Abstração – é o processo de esquecer informações tal que coisas 
diferentes possam ser tratadas como se fossem iguais; 
 
 
 
 
 
 
 
 
 
 
 
Encapsulamento / Ocultamento de Informação - Significa agrupar e 
empacotar os detalhes internos de uma abstração e tornar estes 
detalhes inacessíveis; 
 
 
 
 
GARÇOM 
# Matricula: Int; 
+ Nome: String; 
+ Telefone: String; 
- Comissao: Real; 
+ ServeMesa(Cliente); 
Detalhes sobre implementação 
podem (e devem) ser ocultados 
Deve-se abstrair somente aquilo que 
é importante no contexto. 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Princípios do projeto de software 
 
Decomposição e Modularização – A Decomposição e Modularização 
de software num número de componentes pequenos e independentes, 
normalmente com o objetivo de colocar diferentes funcionalidades ou 
responsabilidades em diferentes componentes; 
 
 
 
 
 
 
Software 
Programa 1 Programa 1 Programa 1 
Mod 1 Mod 2 Mod N 
Compo
nente 
1 
... 
... 
Compo
nente 
2 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Princípios do projeto de software 
 
Acoplamento - a força do relacionamento entre módulos. É quanto um 
elemento (classe, método, função, módulo, componente etc) depende e 
conhece do outro. 
 
Elementos muito acoplados geralmente são muito dependentes; muda 
informação em um, será necessário mudar no outro. 
 
 
Coesão - quanto as tarefas que um elemento realiza estão relacionadas 
com um mesmo conceito. 
 
Baixa coesão teria uma função/módulo/classe que, por exemplo, 
imprime um documento e exibe um formulário para o usuário, neste 
caso provavelmente dever-se-ia dividir este elemento em mais de um. 
 
IDEAL: Baixo acoplamento + Alta coesão 
 
 
 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Princípios do projeto de software 
 
Separação entre interface e implementação - A separação entre 
interface e implementação envolve a definição de um componente, 
especificando a interface pública (conhecida para os clientes), separado 
dos detalhes de como o componente é implementado. 
 
 
 
 
Interface 
 
Lógica do 
Software 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Estilos de Arquitetura 
 
Existem muitas formas de se projetar módulos de software e 
suas comunicações. Alguns exemplos: 
 
Centralizada 
 
 
 
 
 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Estilos de Arquitetura 
 
Existem muitas formas de se projetar módulos de software e 
suas comunicações. Alguns mais conhecidos: 
 
Cliente-Servidor 
 
 
 
 
 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Estilos de Arquitetura 
 
Existem muitas formas de se projetar módulos de software e 
suas comunicações. Alguns mais conhecidos: 
 
Cliente-Servidor 
 
 
 
 
 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Estilos de Arquitetura 
 
Existem muitas formas de se projetar módulos de software e 
suas comunicações. Alguns mais conhecidos: 
 
Cliente-Servidor 
 
 
 
 
 
• Alta Capacidade de Processamento Distribuído 
• Internet/Intranet/Extranet/VPNs como infraestrutura 
de rede 
• Distribuição dos Serviços em várias camadas de 
servidores 
de aplicação e dados 
• Internet Applications de última geração, CRM 
(Relacionamento 
com Cliente), Bancos de Dados Distribuídos 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Estilos de Arquitetura 
 
Existem muitas formas de se projetar módulos de software e 
suas comunicações. Alguns mais conhecidos: 
 
P2P (Peer-to-peer) 
 
 
 
 
 
 
• permite o compartilhamento de dados e recursos 
numa larga escala eliminando qualquer requisito por 
servidores gerenciados separadamente e a sua 
infraestrutura associada. 
• constituída por computadores ou outros tipos de 
unidades de processamento que não possuem um 
papel fixo de cliente ou servidor, pelo contrário, 
costumam ser considerados de igual nível 
 
• assumem o papel de cliente ou de servidor 
dependendo da transação sendo iniciada ou recebida 
de um outro par da mesma rede. 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Padrões de Arquitetura de Software 
 
É uma solução geral reutilizável para um problema recorrente no 
desenvolvimento de sistemas de software orientados a objetos. 
 
Não é um código final, é uma descrição ou modelo de como resolver o 
problema do qual trata, que pode ser usada em muitas situações 
diferentes. Estão num nível de generalidade alto. 
 
 
 
 
 
 
Padrão MVC 
dados 
lógica 
interface 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Frameworks 
 
Utilizados amplamente na programação orientada a objetos; 
 
É uma aplicação reutilizável e semi-completa que pode ser 
especializada para produzir novas aplicações; 
 
Servem para aumentar a produtividade do processo de 
desenvolvimento, onde eles servem de alicerce, base para as 
aplicações; 
 
 
 
 
 
Processos de Desenvolvimento de Software – Prof. David Falcão 
Padrões de Arquitetura de Software 
 
Passos básicos de um projeto de software: 
 
1. Selecionar padrões e frameworks apropriados para o software 
 
2. Particionar o modelo em subsistemas, interfaces e alocar funções 
(classes) para cada subsistema 
 
3. Projetar a estrutura de dados apropriada e seus atributos 
 
4. Criar um conjunto de classes de projeto 
 
5. Projetar a Interface do Usuário 
 
6. Conduzir o projeto a nível de componente (serão necessários 
componentes? como será codificado?)

Outros materiais