Escolar Documentos
Profissional Documentos
Cultura Documentos
http://erosviggiano.com
http://dearchitectura.wordpress.com
http://pangeanet.org/profile/ErosViggiano
Breve currículo:
◦ Arquiteto de Software Squadra Tecnologia.
◦ Professor IEC/PUC Minas.
◦ Formação:
Ciência da Computação - UFMG
Especialização em Engenharia de Software - UFMG
◦ Uns bons anos de experiência profissional com TI,
Java, Engenharia de Software, Arquitetura de
Software, etc.
◦ Algumas certificações:
Sun Certified Enterprise Architect for J2EE
IBM Certified Solution Designer – RUP v7.0
Agenda
1. Objetivo
2. Definição de Arquitetura de Software
3. Utilidade da Arquitetura de Software
4. Representação da Arquitetura Software
5. Arquitetura e Processos de Desenvolvimento de Software
6. Provas de Conceito Arquiteturais
7. Projetando uma Arquitetura de Software
8. Papel do Arquiteto de Software
9. Algumas Referências Extras
10. Conclusões
Objetivo
◦ Fornecer uma visão geral das atividades de
arquitetura de software bem como da formação do
profissional.
Antes porém, o que é arquitetura?
◦ Grécia, 500 a.C.:
Arkhitekton – construtor chefe
Arkhi – chefe ou mestre
Tekton – trabalhador ou construtor
Tekhne – arte ou habilidade
◦ Webster:
Arte ou habilidade de construir estruturas
Produto ou trabalho arquitetônico
Um método ou estilo arquitetônico
O que é arquitetura de software?
Enquanto disciplina:
◦ Campo da engenharia de software que trata das
estruturas de software, procurando reduzir
complexidades através de abstrações e separação
de interesses.
Para que serve arquitetura de software?
◦ A arquitetura permite:
1. Analisar a eficácia do design em resolver os
requisitos.
2. Considerar alternativas arquitetônicas em estágios
iniciais.
3. Reduzir os riscos associados com a construção do
software.
Qual a importância da arquitetura de software?
Como construir uma casa sem as plantas?
8. Promover o reuso
9. Avaliar a arquitetura
2 Reserva Usabilidade
Alguns padrões
arquiteturais:
Layers
Broker
Pipes and Filters
Microkernel
O que é necessário para “dar vida” aos componentes.
Alguns mecanismos de análise:
◦ Persistência
◦ Roteamento de mensagens
◦ Gerência de transações
◦ Redundância
◦ Troca de informações
Boas referências:
Livro Analysis Patterns de Martin Fowler
Artigo Capturing Architectural Requirements de Peter Eeles
Identificar ativos pré-existentes que possam colaborar
para a solução.
Realizar uma avaliação preliminar.
E depois?
◦ Refinamento da arquitetura na fase seguinte (se o projeto
não foi abortado).
E ao final da Elaboração
◦ A arquitetura do software deve estar Estável.
“O arquiteto ideal deve ser uma pessoa de letras,
um matemático,
familiar com estudos históricos,
um diligente estudante de filosofia,
interessado em música,
não ignorante em medicina e proficiente em questões jurídicas,
familiar com a astronomia e os cálculos astronômicos.”
– Vitruvius, 25 d.C.
O arquiteto deve combinar as habilidades:
◦ Experiência
◦ Liderança
◦ Comunicação
◦ Orientado a objetivos
◦ Pró-atividade