Arquiteturas de Referência
Definições – IEEE 1471/ISO/IEC
42010:2007
• Visão:
– representação de um software (ou parte) a partir
de uma perspectiva particular.
– coleção de modelos representando a arquitetura
do software.
Alguns modelos de arquitetura em
múltiplas visões
• Kruchten 4+1
• IEEE 1471
• Siemens (Soni et al)
Logical View
• Relativo principalmente aos requisitos
funcionais (o que o software deve fazer).
• Identificação dos principais pacotes,
subsistemas e classes
• Diagrams mais comuns:
– UML Class, Package and Sequence diagrams.
– ER diagrams
Process View
• Um processo é um grupo de tarefas.
• A comunicação entre tarefas ocorre de várias
formas: síncrona, assíncrona, broadcast, ...
• A visão de processos preocupa-se com tópicos
como:
–
–
–
–
concorrência e distribuição,
integridade do software,
tolerância a falhas,
Como abstrações da visão lógica operam na visão de
processos da arquitetura.
Process View
• Principais estilos: client/server, pipes and
filters, publish-subscribe middleware.
• Essa visão mostra onde e como
classes/elementos definidos na visão lógica
são usados.
• Notações usadas: Sequence diagrams, Activity
diagrams, Class diagrams (focus on active
classes), Components
Implementation/Development view
• Organização de módulos do software (código,
arquivos de dados, componentes, executáveis,
bibliotecas,...)
• Principais elementos: módulos, subsistemas,
camadas.
• Normalmente o estilo é em camadas
• A visão de desenvolvimento considera requisitos
como facilidade de desenvolvimento, e restrições
do ambiente de desenvolvimento e da linguagem
Implementation/Development view
• A visão de desenvolvimento é a base para:
– alocação de requisitos e de trabalho entre equipes
– Avaliação de custos
– Monitoração do projeto
– Reuso, portabilidade e segurança.
Physical/Deployment View
• Elementos identificados: redes, processadores, tarefas,
objetos, e o mapeados em vários nós.
• Várias configurações físicas diferentes podem ser
usadas: algumas para desenvolvimento e testes, outras
para a implantação do software em diferentes
locais/clientes.
• Mostra como os vários executáveis e componentes são
mapeados para plataformas e nós físicos
• Mostra distribuição física de elementos do sistema
• Notações: proprietária, pacotes, nós, UML deployment
diagram
Scenario/Use Case View
• Mostra como os elementos das 4 visões
trabalham juntos.
• Notações:
– Use Cases
– Linguagem natural
– Pode-se especificar os use-cases com diagramas UML
(Sequência, Atividades)
• Principais objetivos:
– Direção para descobrir os elementos da arquitetura
– Validação e ilustração da arquitetura do software
– Ponto de partida para desenvolvimento e testes
ANSI-IEEE 1471-2000/ ISO/IEC 42010:20Systems and
Software Engineering -- Recommended practice for
architectural description of software-intensive
systems
07
Análise do Framework
• Um sistema existe em um ambiente (contexto). O ambiente
do sistema pode influenciar o sistema.
• O ambiente determina as circunstâncias de
desenvolvimento, operacionais, e políticas.
• O ambiente determina os limites que definem o escopo do
sistema em relação a outros sistemas.
• Um sistema possui um ou mais stakeholders. Cada
stakeholder tipicamente possui interesses (concerns) no
sistema.
• Um sistema existe para realizar uma ou mais missões.
• Todo sistema possui uma arquitetura.
• Uma arquitetura (conceito) é estabelecida por uma
descrição de arquitetura (produtos concretos).
Exemplo
Quantas visões?
• Nem todo software precisa de todas as 5
visões do 4+1
• Nem todo software precisa de várias visões
• Ex.
– Um único processador → não precisa da visão de
deployment
– Um único processo → não precisa da visão de
processos
Siemens
• Diferentes estruturas são usadas em diferentes fases
do processo de desenvolvimento.
– A arquitetura conceitual descreve o sistema em termos
dos principais elementos de design e suas relações
– A arquitetura de interconexão de módulos é composta por
duas estruturas ortogonais: decomposição funcional e
camadas.
– A arquitetura de execução descreve a estrutura dinâmica
de um sistema.
– A arquitetura de código descreve as bibliotecas e o código
fonte organizados no ambiente de desenvolvimento.
Download

Arquitetur..