As 4 + 1 Visões Jair C Leite Visões arquiteturais (revisão) Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da engenharia. Visões permitem reduzir a quantidade de informação que o arquiteto trata em um dado momento Muitos arquitetos de software tem usado as diferentes visões sem reconhecê-las como visões arquiteturais separadas. 1
As 4+1 visões P. Krutchen Visão lógica Visão de implementação Stakeholders Funcionalidade Diagramas: Classes, Seqüência, Colaboração Integradores Desempenho Escalabilidade Visão de Casos de Uso Programadores Gerenciamento de configuração Diagramas: Pacotes, componentes Engenheiros de Sistema Topologia do Sistema Comunicação Diagramas: Atividades, Objetos Seqüência, Colaboração Visão de processos Diagramas: Implantação Visão de implantação A visão lógica Descreve requisitos comportamentais e a decomposição do sistema em um conjunto de abstrações. Classes e objetos são os principais elementos nesta visão. Diagramas de classes, sequência e colaboração mostram os relacionamentos entre estes elementos, Diagrama de classes Diagrama de colaboração 2
Visão lógica - diagrama de sequência Visão de implementação (desenvolvimento) Usada para descrever os módulos do sistema Módulos são elementos mais abstratos que classes e objetos Pacotes e biblioteca de classes são exemplos de módulos em alguns ambientes de programação. Diagrama de pacotes 3
Visão de implantação (física) Descreve como a aplicação é instalada e como executa em uma rede de computadores. Componentes executáveis são alocados a nós processadores. Esta visão permite avaliar requisitos não-funcionais - desempenho, disponibilidade, confiabilidade, escalabilidade. Nós processadores Componentes executáveis Diagrama de implantação Visão de processos Descreve os processos do sistema e como eles se comunicam. Útil quando se tem múltiplos processos ou threads concorrentes. Permite avaliar requisitos não funcionais relacionados à execução e comunicação: Desempenho, disponibilidade Diagramas de atividades são úteis para descrever esta visão. 4
Visão +1 : casos de usos Descreve a funcionalidade do sistema. Casos de uso e cenários são considerados o ponto de partida e também de consolidação das outras visões. Detalha ações e condições em cada caso de uso. Resumo Visão Lógica Processos Implementação Implantação Casos de uso Componentes Classes Tarefas (processos e threads) Módulos e subsistemas Nó processador Step, scripts Conectores Associação, herança, contenedores Mensagem, RPC, rendezvous, broadcast Dependência, includes em C, with clause. Rede de comunicação - LAN, WAN, Containers Categoria de classe Processo Sub-sistema (biblioteca) Sub-sistema físico Web Envolvidos (Stakeholders) Usuário-final Projetista do sistema, integrador Desenvolvedor, gerente Projetista do sistema Usuário-final, desenvolvedor Interesses (concerns) Funcionalidade Desempenho, disponibilidad e, integridade, tolerância a falhas Organização, reuso, portabilidade, linha-deprodução Escalabilidade, desempenho, disponibilidade Compreensibili dade, funcionalidade 5
Referencias http://www.ibm.com/developerworks/wirele ss/library/wi-arch11/ 6