arquitetura de software
TRANSCRIPT
Arquitetura de Software
CONCEITOS BÁSICOSParte I
O que é arquitetura?
Processo de
Controle
Modelo de Perda de Oxig.
Modelo de
Reverb.
Modelo de Ruído
O que NÃO é arquitetura?
• Novos “padrões” criados por empresas que utilizam seus produtos e ferramentas.
• O framework ou tecnologia da moda.• Linguagens de programação, bibliotecas
consagradas.• Frameworks altamente configuráveis e já com
“tudo pronto”.• Um documento ou uma apresentação.• Um desenho de caixinhas e setinhas.
O que é arquitetura?
• Definição:– A arquitetura de um programa ou sistema
computacional é a estrutura ou estruturas do sistema que compreende os elementos de software, seus elementos externos visíveis e as relações entre elas. De “Software Architecture in Practice, Second Edition”
O que é arquitetura?
• É uma abstração• Parte visível e comportamento externo dos
elementos• Várias representações• Existe em qualquer programa
O que é arquitetura?
Planejamento & Informação
Visões
Fonte: Wikipedia http://en.wikipedia.org/wiki/File:IP_stack_connections.svg
Tipos de Visões
• Módulos• Componente e Conector• Alocação
Módulo
• Decomposição• Estrutural• Relacionamento “Usa”• Generalização
Componente e Conector
• Processos/Threads• Execução• Concorrência• Repositórios de dados
Alocação
• Deployment– Processos e Threads– Alocação em processadores
• Implementação– Módulos– Sistema de arquivos(diversos ambientes)
• Delegar trabalho– Módulos– Times de desenvolvimento
Modelo de visão arquitetural 4+1
Modelo de visão arquitetural 4+1
• Kruchten, Philippe (1995, November). Architectural Blueprints — The “4+1” View Model of Software Architecture
• Popular• RUP
Criando uma Arquitetura
Usabilidade?Modificabilidade?
Desempenho?Por que não tudo?
Afetam as funcionalidades?Afetam entre si?
Atributos de Qualidade do Sistema
Como alcançar determinados atributos?
Cenários de Atributos de Qualidade
Cenário Geral de Disponibilidade• Fonte:
– Interna– Externa
• Estímulo:– Omissão– Crash(Repetidas omissões)– Timming– Resposta incorreta
• Ambiente:– Normal– Degradado– Operacional
• Artefato:– Processo– Armazenamento– Processador– Comunicação
• Resposta:– Registrar– Notificar– Desabilitar– Continuar– Ficar indisponível
• Medida:– Tempo de reparo– Tempo de disponibilidade
Exemplo de Cenário de Disponibilidade
• Fonte: Externa• Estímulo: Mensagem inesperada• Ambiente: Operação normal• Artefato: Processo• Resposta: Informar operador e continuar a
operar• Medida: Sem Downtime
Qualidade de Negócio
• Time to market• Custo e benefício• Tempo de vida projetado• Mercado alvo
Qualidade da Arquitetura
• Integridade Conceitual• Corretude e Completude• Construtabilidade
PROJETANDO A ARQUITETURAParte II
ADD - Attribute-Driven Design
• Entradas– Requisitos funcionais e não-funcionais– Casos de uso– Restrições
• Isso tudo vira cenários de requisitos de qualidade
Passos do ADD
1. Escolha um módulo para decompor2. Refine o módulo
1. Escolha os direcionadores arquiteturais2. Escolha um padrão arquitetural3. Crie módulos e defina responsabilidades4. Defina interfaces 5. Verifique e refine os cenários de qualidades e
casos de usos3. Repita os passos para outro módulo
PADRÕES ARQUITETURAISParte III
Camadas
Fonte: Wikipedia http://en.wikipedia.org/wiki/File:IP_stack_connections.svg
Camadas
• Usos conhecidos– Máquinas virtuais– APIs
MVC – Model-View-Controller
Fonte: Wikipedia http://en.wikipedia.org/wiki/File:ModelViewControllerDiagram2.svg
MVC – Model-View-Controller
• Usos conhecidos– Smaltalk– MFC(DocumentView)
Referências
• Software Architecture in Practice• Documenting Software Architectures, Views and
Beyond• Evaluating Software Architectures, Methods and
Case Studies• Software Product Lines, Practices and Patterns• Patterns of Enterprise Application Architecture• Pattern-Oriented Software Architecture, Série
Wiley – Vol. 1 - 8