Arquitetura de Software
Jamerson.lima@gmail.com
CONCEITOS BÁSICOS
Parte 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...
O que é arquitetura?
• Definição:
– A arquitetura de um programa ou sistema
computacional é a estrutura ou estruturas do
s...
O que é arquitetura?
• É uma abstração
• Parte visível e comportamento externo dos
elementos
• Várias representações
• Exi...
O que é arquitetura?
Planejamento &
Informação
Visões
Fonte: Wikipedia
http://en.wikipedia.org/wiki/File:IP_stac
k_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(di...
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...
Criando uma Arquitetura
Usabilidade?
Modificabilidade?
Desempenho?
Por que não tudo?
Afetam as funcionalidades?
Afetam ent...
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
...
Exemplo de Cenário de Disponibilidade
• Fonte: Externa
• Estímulo: Mensagem inesperada
• Ambiente: Operação normal
• Artef...
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 ARQUITETURA
Parte II
ADD - Attribute-Driven Design
• Entradas
– Requisitos funcionais e não-funcionais
– Casos de uso
– Restrições
• Isso tudo ...
Passos do ADD
1. Escolha um módulo para decompor
2. Refine o módulo
1. Escolha os direcionadores arquiteturais
2. Escolha ...
PADRÕES ARQUITETURAIS
Parte III
Camadas
Fonte: Wikipedia
http://en.wikipedia.org/wiki/File:IP_stac
k_connections.svg
Camadas
• Usos conhecidos
– Máquinas virtuais
– APIs
MVC – Model-View-Controller
Fonte: Wikipedia
http://en.wikipedia.org/wiki/File:Model
ViewControllerDiagram2.svg
MVC – Model-View-Controller
• Usos conhecidos
– Smaltalk
– MFC(DocumentView)
Referências
• Software Architecture in Practice
• Documenting Software Architectures, Views and
Beyond
• Evaluating Softwa...
Próximos SlideShares
Carregando em…5
×

Arquitetura de Software

249 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
249
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Arquitetura de Software

  1. 1. Arquitetura de Software Jamerson.lima@gmail.com
  2. 2. CONCEITOS BÁSICOS Parte I
  3. 3. O que é arquitetura? Processo de Controle Modelo de Perda de Oxig. Modelo de Reverb. Modelo de Ruído
  4. 4. 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.
  5. 5. 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”
  6. 6. O que é arquitetura? • É uma abstração • Parte visível e comportamento externo dos elementos • Várias representações • Existe em qualquer programa
  7. 7. O que é arquitetura? Planejamento & Informação
  8. 8. Visões Fonte: Wikipedia http://en.wikipedia.org/wiki/File:IP_stac k_connections.svg
  9. 9. Tipos de Visões • Módulos • Componente e Conector • Alocação
  10. 10. Módulo • Decomposição • Estrutural • Relacionamento “Usa” • Generalização
  11. 11. Componente e Conector • Processos/Threads • Execução • Concorrência • Repositórios de dados
  12. 12. 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
  13. 13. Modelo de visão arquitetural 4+1
  14. 14. Modelo de visão arquitetural 4+1 • Kruchten, Philippe (1995, November). Architectural Blueprints — The “4+1” View Model of Software Architecture • Popular • RUP
  15. 15. Criando uma Arquitetura Usabilidade? Modificabilidade? Desempenho? Por que não tudo? Afetam as funcionalidades? Afetam entre si?
  16. 16. Atributos de Qualidade do Sistema Como alcançar determinados atributos?
  17. 17. Cenários de Atributos de Qualidade
  18. 18. 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
  19. 19. 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
  20. 20. Qualidade de Negócio • Time to market • Custo e benefício • Tempo de vida projetado • Mercado alvo
  21. 21. Qualidade da Arquitetura • Integridade Conceitual • Corretude e Completude • Construtabilidade
  22. 22. PROJETANDO A ARQUITETURA Parte II
  23. 23. 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
  24. 24. Passos do ADD 1. Escolha um módulo para decompor 2. Refine o módulo 1. Escolha os direcionadores arquiteturais 2. Escolha um padrão arquitetural 3. Crie módulos e defina responsabilidades 4. Defina interfaces 5. Verifique e refine os cenários de qualidades e casos de usos 3. Repita os passos para outro módulo
  25. 25. PADRÕES ARQUITETURAIS Parte III
  26. 26. Camadas Fonte: Wikipedia http://en.wikipedia.org/wiki/File:IP_stac k_connections.svg
  27. 27. Camadas • Usos conhecidos – Máquinas virtuais – APIs
  28. 28. MVC – Model-View-Controller Fonte: Wikipedia http://en.wikipedia.org/wiki/File:Model ViewControllerDiagram2.svg
  29. 29. MVC – Model-View-Controller • Usos conhecidos – Smaltalk – MFC(DocumentView)
  30. 30. 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

×