O documento discute os conceitos e importância da arquitetura de software, destacando que ela define os componentes e relacionamentos de um sistema. Apresenta estilos arquiteturais como MVC e camadas, e como a arquitetura de família codifica variações através de uma linguagem de descrição de arquitetura.
3. Agenda
Quem sou eu?
O que é Arquitetura de Software? E por que usar?
Modelo de Referência
Estilos de Arquitetura
Arquitetura de Referência
Arquitetura de Família
Linguagem de Descrição
4. Quem sou eu?
Jefferson Moreira – JEFFMOR
Arquiteto de Sistemas e Desenvolvedor.
Desenvolvedor desde 2002 (php, delphi e c++)
Com java desde 2003.
Membro do JUG-MS.
5.
6.
7. Afinal, o que é AS?
Conceito mais aceito!
(é muito confundido com documentação e modelagem)
AS define o que é o sistema em termos de componentes e os
relacionamentos entre estes.
A arquitetura seria o que liga (interface) as duas partes distintas
de um software: o problema de negócio e a solução técnica
É a utilização de modelos pré-definidos, com a finalidade de
modelar e especificar projetos.
25.06.07 Arquitetura de Software 7
8. Divisão
Componentes
Conectores
Configuração
25.06.07 Arquitetura de Software 8
9. Por que usar, quando e quem define
25.06.07 Arquitetura de Software 9
10. Por que usar?
Entender o sistema
Organizar o desenvolvimento
Incentivar o reuso.
Evoluir o sistema
25.06.07 Arquitetura de Software 10
11. Quando e quem define a AS?
25.06.07 Arquitetura de Software 11
13. Modelos de referência
Funcionam como uma espécie de agregador
de soluções aos problemas do ponto de vista
de negócio.
25.06.07 Arquitetura de Software 13
14. Arquitetura de Referência
Arquiteturas de referência apresentam a
solução do ponto de vista técnico, mas
baseando-se no modelo de referência e no
estilo de arquitetura.
25.06.07 Arquitetura de Software 14
15. Estilos Arquiteturais
• Ligado com requisitos não funcionais.
• Podem ser combinados.
São divididos em:
1. Interativos
2. Distribuídos
3. Adaptáveis
4. From mud to Structure
25.06.07 Arquitetura de Software 15
19. Confusão
• Camadas para tudo que é lado.
• MVC não é camadas!
• Utilização de padrões espeçíficos
erroneamente.
25.06.07 Arquitetura de Software 19
25. Arquitetura
de Família
25.06.07 Arquitetura de Software 25
26. Arquitetura de Família
Passos para definir:
Um amplo trabalho de levantamento de requisitos para
identificar variações.
Codificar as variações com uma Linguagem de Descrição
da Arquitetura (ADL)
Implementar as partes fixas como gabaritos (templates) de
programas, usando o(s) estilo(s) de arquitetura(s) mais
apropriado(s).
Implementar o gerador de aplicações para completar o
gabarito a partir da ADL.
25.06.07 Arquitetura de Software 26
28. LDA
Quem criou? [3]
Empresas - Wrigth, ACME, xADL, Darwin
Universidades – DAOP-ADL e Darwin
Sistema de Representação não foi definido. [3]
Será que a UML vai definir?
Ou é melhor do jeito que está hoje?
Poucos “Arquitetos” descrevem!
Exemplo.
25.06.07 Arquitetura de Software 28
29. Resumo
Importância da Arquitetura.
Não existe arquitetura p/ todos os tipos de
projeto.
Identificação do refresco do “chaves”.
Camadas != MVC
25.06.07 Arquitetura de Software 29
30. Referências
[1]Martin Fowler: Patterns of Enterprise Application Architecture.
[2]Eric Evans: Domain-Driven Design
[3] http://pt.wikipedia.org/wiki/Arquitetura_de_software
[4] A. M. Silva Filho, Arquitetura de Software, Editora Campus, 2002
Phillip Calçado: www.fragmental.com.br
GUJ: www.guj.com.br
JUG-MS: groups.google.com/group/jug-ms
25.06.07 Arquitetura de Software 30