Arquitetura de Software

358 visualizações

Publicada em

Arquitetura de Software

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
358
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Arquitetura de Software

  1. 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. 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ítulos 6 – 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 – BUSCHMANN, Frank. et all. A system of patterns. Chichester: John Wiley & Sons, 1996. – 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. 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. 4. PUCRS - FACIN Prof. Marcelo H. Yamaguti (4) Projeto da arquitetura • A arquitetura de software envolve o conjunto de decisões que definem a organização do sistema objetivando: – definir os elementos estruturais e suas interfaces de modo a estabelecer a composição do sistema; – estabelecer o comportamento pela colaboração entre estes elementos; – compor estes elementos estruturais e comportamentais em subsistemas (agregação). Introdução à Engenharia de Software
  5. 5. PUCRS - FACIN Prof. Marcelo H. Yamaguti (5) Requisitos e Arquitetura de SW • Apesar dos requisitos funcionais definirem as principais características do funcionamento do software, os requisitos não-funcionais têm forte influência na definição da arquitetura do software: – Usabilidade – Confiabilidade – Desempenho – Facilidade de suporte Introdução à Engenharia de Software
  6. 6. PUCRS - FACIN Prof. Marcelo H. Yamaguti (6) Aspectos chave • Além dos requisitos não-funcionais o projetista (arquiteto) deve estar atento aos seguintes aspectos chave no projeto do software: – Concorrência – Controle e tratamento de eventos – Persistência de dados – Distribuição de componentes – Tratamento de exceções e tolerância a falhas – Interação e apresentação (IHC) – Segurança Introdução à Engenharia de Software
  7. 7. PUCRS - FACIN Prof. Marcelo H. Yamaguti (7) Interface com o usuário • O projeto de interface com o usuário é uma parte importante do processo de projeto do software. • O projeto da IHC (Interface Humano-Computador) ou UX (User eXperience) envolve: – Princípios gerais de projeto de interface com o usuário (Ex.: facilidade de aprendizado, consistência, ...) – Modalidades de interação com o usuário (Ex.: menus, manipulação direta, formulários, ...) – Projeto da apresentação da informação (Ex.: uso de cores, fontes de letras, ...) Introdução à Engenharia de Software
  8. 8. PUCRS - FACIN Prof. Marcelo H. Yamaguti (8) Visões de arquitetura • Dificilmente um único modelo ou visão consegue representar todos os aspectos de uma arquitetura. • Philippe Krutchen propôs a visão 4+1: Introdução à Engenharia de Software Visão Lógica Visão Física Visão de Desenvolvimento Visão de Processo Cenários (casos de uso) Classes, Dados, Funcionalidade Desenvolvimento de componentes Comportamento Implantação
  9. 9. PUCRS - FACIN Prof. Marcelo H. Yamaguti (9) Padrões de arquitetura • Na modelagem de uma arquitetura de software, pode-se utilizar Padrões de Arquitetura que descrevem estilos arquitetônicos mais comuns. Introdução à Engenharia de Software
  10. 10. PUCRS - FACIN Prof. Marcelo H. Yamaguti (10) Padrões de arquitetura • Camadas – Descrição: auxilia a estruturar aplicações que podem ser decompostas em grupos de subtarefas, nas quais cada grupo de subtarefas é um nível particular de abstração. – Contexto: um grande sistema que requer decomposição. Aplicação Apresentação Sessão Transporte Rede Conexão de dados Físico Introdução à Engenharia de Software
  11. 11. PUCRS - FACIN Prof. Marcelo H. Yamaguti (11) Padrões de arquitetura • Dutos e Filtros – Descrição: provê uma estrutura para sistemas que processam uma cadeia de dados. Cada passo do processamento é encapsulado em um componente-filtro. Dados são passados por pipes entre filtros adjacentes. A recombinação de filtros permite a construção de sistemas correlatos. – Contexto: processamento de cadeias de dados. Analisador léxico Analisador sintático Analisador semântico Código-fonte Cadeia de tokens Árvore de sintaxe abstrata Introdução à Engenharia de Software
  12. 12. PUCRS - FACIN Prof. Marcelo H. Yamaguti (12) Padrões de arquitetura • MVC (Model-View-Controller): – Descrição: divide um sistema interativo em três componentes. O Model contém a funcionalidade básica e dados. Views mostram a informação ao usuário. Controllers manipulam as entradas do usuário. Views e controllers compreendem a interface com o usuário. Um mecanismo de propagação de mudanças assegura a consistência entre o modelo e a interface com o usuário. – Contexto: aplicações interativas com interface homem-máquina flexível. Introdução à Engenharia de Software
  13. 13. PUCRS - FACIN Prof. Marcelo H. Yamaguti (13) Padrões de arquitetura • Repositório – Descrição: os componentes do sistema não se comunicam diretamente, mas por meio de um repositório central de dados. – Contexto: sistemas dirigidos a dados, com grandes volumes de informação que devem ser armazenados por longo tempo. Repositório de dados central Componente 1 Componente 2 Componente 3 Componente n
  14. 14. PUCRS - FACIN Prof. Marcelo H. Yamaguti (14) Padrões de arquitetura • Cliente-Servidor – Descrição: pode ser usado para estruturar sistemas de software distribuídos com componentes pouco acoplados que interagem por invocações de serviços remotos. Um componente broker é responsável por coordenar a comunicação, tais como repassar requisições, bem como, transmitir resultados e condições de erro. – Contexto: o ambiente é um sistema distribuído e possivelmente heterogêneo com componentes heterogêneos cooperantes. – Exemplo: sistemas Web com sistemas legados.
  15. 15. PUCRS - FACIN Prof. Marcelo H. Yamaguti (15) Fast Quiz 1) Na visão 4+1 proposta por Krutchen, todas são visões, EXCETO: a) Física b) Lógica c) Processo d) Conceitual e) Desenvolvimento
  16. 16. PUCRS - FACIN Prof. Marcelo H. Yamaguti (16) Fast Quiz 2) Uma rede de supermercados deseja que seja desenvolvido um sistema de troca de dados de vendas locais entre a matriz e as filiais. As filiais estão distribuídas fisicamente por todo o estado. Neste cenário o padrão arquitetônico mais adequado seria: a) Camadas b) Dutos-Filtros c) Cliente-Servidor d) Repositório e) Model-View-Controller Introdução à Engenharia de Software
  17. 17. PUCRS - FACIN Prof. Marcelo H. Yamaguti (17) Fast Quiz 3) Deseja-se um sistema construído a partir de um núcleo (core) que possua serviços e dados básicos para todo o sistema; sobre este núcleo devem ser implementados serviços mais genéricos; finalmente sobre estes serviços mais genéricos devem ser implementadas facilidades de interface com usuários ou outros sistemas. Para este sistema o padrão arquitetônico mais adequado é: a) Camadas b) Dutos-Filtros c) Cliente-Servidor d) Repositório e) Model-View-Controller Introdução à Engenharia de Software
  18. 18. Prof. Marcelo H. Yamaguti (18) 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

×