170 likes | 263 Views
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
E N D
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 (Sonietal)
LogicalView • Relativo principalmente aos requisitos funcionais (o que o software deve fazer). • Identificação dos principais pacotes, subsistemas e classes • Diagramsmais comuns: • UML Class, Package andSequencediagrams. • ER diagrams
ProcessView • 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.
ProcessView • Principaisestilos: 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: Sequencediagrams, Activitydiagrams, Classdiagrams (focusonactive classes), Components
Implementation/Developmentview • 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/Developmentview • 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/DeploymentView • 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 deploymentdiagram
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 systems07
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).
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.