1. Prof. Marcelo H. Yamaguti (1)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE
SOFTWARE
Projeto e Arquitetura de Software
2. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (2)
Referências
• Estude para aprofundamento no conteúdo:
– SOMMERVILLE, Ian. Engenharia de Software. 9ª ed. São
Paulo: Pearson, 2011. – Capítulo 7
– PFLEEGER, Shari Lawrence. Engenharia de Software: teoria
e prática. 2ª ed. São Paulo: Prentice-Hall, 2004. - Capítulo 5
– IEEE. Guide to the Software Engineering Body of Knowledge.
SWEBOK. Version 3. IEEE Computer Society. 2014. –
Chapter 2
– GAMMA, Erich; HELM, Richard; JOHNSON, Ralph;
VLISSIDES, John. Design patterns: elements for reusable
object-oriented software. Reading: Addison-Wesley, 1994.
Introdução à Engenharia de Software
3. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (3)
Projeto e Arquitetura
• Projeto:
– Preliminar: foco no projeto da arquitetura do software.
– Detalhado: foco no projeto dos componentes (módulos) de
software.
Projeto
preliminar
Introdução à Engenharia de Software
Análise
Especificação
de requisitos
Arquitetura
O QUE COMO
Projeto
detalhado
Componentes
COMO
4. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (4)
Projeto detalhado
• O projeto detalhado visa especificar os componentes
(módulos) a serem implementados.
• Os módulos são derivados da arquitetura do software
definida e representam unidades independentes que
possuem uma funcionalidade bem definida e que
(idealmente) podem ser reutilizáveis.
• No projeto de módulos há diretrizes que devem ser
observadas, como por exemplo:
– Acoplamento: mede o grau de interdependência entre os
módulos.
– Coesão: mede o grau de ligação dos elementos internos de um
módulo.
Introdução à Engenharia de Software
5. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (5)
Projeto detalhado
• Estratégias de detalhamento do projeto:
– Projeto funcional
– Projeto orientado a objetos
– Projeto centrado em estrutura de dados
– Projeto baseado em componentes
Introdução à Engenharia de Software
6. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (6)
Padrões de projeto
• Semelhante aos padrões de arquitetura, no nível do
projeto de componentes há diversos padrões de
projeto que servem para uniformizar a especificação
de componentes.
• O catálogo mais conhecido são os design patterns
(padrões de projeto) propostos por Erich Gamma.
Introdução à Engenharia de Software
7. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (7)
Padrões de projeto
Introdução à Engenharia de Software
8. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (8)
Especificação do projeto
• A modelagem do projeto pode gerar especificações:
– Textuais
– Gráficas (ex.: UML)
• Estas especificações podem ser agrupadas em dois
grandes grupos.
– Descrições de estrutura:
• Ex.: Linguagens de descrição (ex.: ADL – Architectural Description
Languages)
• Ex.: UML – diagramas de estrutura
– Descrições de comportamento:
• Ex.: UML – diagramas de comportamento
Introdução à Engenharia de Software
9. Prof. Marcelo H. Yamaguti (9)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE
SOFTWARE
Projeto e Arquitetura de Software