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
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
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
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
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
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
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (7)
Padrões de projeto
Introdução à Engenharia de Software
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
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

Projeto de software

  • 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