arquitetura de software

30
Arquitetura de Software [email protected]

Upload: jamersonlima

Post on 15-Feb-2017

256 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Arquitetura de Software

Arquitetura de Software

[email protected]

Page 2: Arquitetura de Software

CONCEITOS BÁSICOSParte I

Page 3: Arquitetura de Software

O que é arquitetura?

Processo de

Controle

Modelo de Perda de Oxig.

Modelo de

Reverb.

Modelo de Ruído

Page 4: Arquitetura de Software

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.

Page 5: Arquitetura de Software

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”

Page 6: Arquitetura de Software

O que é arquitetura?

• É uma abstração• Parte visível e comportamento externo dos

elementos• Várias representações• Existe em qualquer programa

Page 7: Arquitetura de Software

O que é arquitetura?

Planejamento & Informação

Page 9: Arquitetura de Software

Tipos de Visões

• Módulos• Componente e Conector• Alocação

Page 10: Arquitetura de Software

Módulo

• Decomposição• Estrutural• Relacionamento “Usa”• Generalização

Page 11: Arquitetura de Software

Componente e Conector

• Processos/Threads• Execução• Concorrência• Repositórios de dados

Page 12: Arquitetura de Software

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

Page 13: Arquitetura de Software

Modelo de visão arquitetural 4+1

Page 14: Arquitetura de Software

Modelo de visão arquitetural 4+1

• Kruchten, Philippe (1995, November). Architectural Blueprints — The “4+1” View Model of Software Architecture

• Popular• RUP

Page 15: Arquitetura de Software

Criando uma Arquitetura

Usabilidade?Modificabilidade?

Desempenho?Por que não tudo?

Afetam as funcionalidades?Afetam entre si?

Page 16: Arquitetura de Software

Atributos de Qualidade do Sistema

Como alcançar determinados atributos?

Page 17: Arquitetura de Software

Cenários de Atributos de Qualidade

Page 18: Arquitetura de Software

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

Page 19: Arquitetura de Software

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

Page 20: Arquitetura de Software

Qualidade de Negócio

• Time to market• Custo e benefício• Tempo de vida projetado• Mercado alvo

Page 21: Arquitetura de Software

Qualidade da Arquitetura

• Integridade Conceitual• Corretude e Completude• Construtabilidade

Page 22: Arquitetura de Software

PROJETANDO A ARQUITETURAParte II

Page 23: Arquitetura de Software

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

Page 24: Arquitetura de Software

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

Page 25: Arquitetura de Software

PADRÕES ARQUITETURAISParte III

Page 27: Arquitetura de Software

Camadas

• Usos conhecidos– Máquinas virtuais– APIs

Page 29: Arquitetura de Software

MVC – Model-View-Controller

• Usos conhecidos– Smaltalk– MFC(DocumentView)

Page 30: Arquitetura de Software

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