1. Arquitetura de Software
Compreendendo o livro
Software Architecture in Practice
Len Bass et al., Addison-Wesley, 3rd edition, 2013
Fábio Nogueira de Lucena
Instituto de Informática (UFG)
2017
2. Direitos autorais
Slides produzidos a partir do conteúdo do livro
Software Architecture in Practice
Len Bass, Paul Clements e Rick Kazman
Addion-Wesley, 3rd edition, 2013.
3. Direitos autorais
As imagens contidas nos slides foram obtidas via Google Search, com a opção
avançada de direitos autorais definidas para
noncommercial reuse
9. Arquitetura de Software é meio
Objetivos do
negócio
Implementação
do software
Arquitetura de Software
Requisitos Projeto Construção
10. Visão funcional
Definir a
Arquitetura
de Software
Requisitos
Conhecimento; Experiência; “Plágio”;
Intuição; Restrições; ...
Representação da
Arquitetura de Software
19. Módulo
Divide o sistema em unidade de implementação
Possui uma responsabilidade computacional
Define a unidade de trabalho de equipes de programação
Unidade estática (ênfase está na divisão da funcionalidade do sistema)
Exemplos
Banco de dados
Regras de negócio
Interface com o usuário, ...
20. Módulo
Registra as decisões acerca de como o sistema será estruturado como um
conjunto de unidades de código e dados.
Um módulo é uma classe, camadas ou simples divisão da funcionalidade, cada
um deles uma unidade de implementação.
21. Questões que são respondidas por módulos
Quais as principais responsabilidades atribuídas a cada módulo?
Qual a relação de uso entre os módulos?
Qual a relação de herança entre os módulos?
Qual a relação de composição entre os módulos?
52. Verifique as respostas para as questões abaixo?
Quais as principais responsabilidades atribuídas a cada módulo?
Pode ser necessário um breve texto
Qual a relação de uso entre os módulos?
Provavelmente um diagrama de classes com dependências
Qual a relação de herança entre os módulos?
Um diagrama de classes com as heranças entre os módulos
Qual a relação de composição entre os módulos?
Novamente um diagrama de classes com packages que são refinados
(decompostos) para ilustrar a composição.
55. Componentes (exemplos)
Serviço (pagamento online)
Serviço (verificação de endereço com base em CEP)
Serviço (emissão de nota fiscal eletrônica)
Clientes (interface gráfica em smartphone, em browser, …)
Servidor de arquivos, banco de dados, ...
56. Quais as questões respondidas?
Quais as principais componentes e como eles interagem em tempo de
execução?
Quais são os principais “shared data stores”?
Quais partes do sistema podem ser replicadas?
Quais partes do sistema podem ser executadas em paralelo?
62. Disponibilidade (availability)
99%, 3 dias e 15.6 horas indisponíveis em um ano
1% de 365 * 24 = 8760 horas é 87,6 horas, 72 horas (3 dias) + 15.6 horas
99.9%, 8 horas, 0 minutos e 46 segundos indisponíveis em um ano
99.99%, 52 minutos, 34 segundos
99.999%, 5 minutos, 15 segundos
99.9999%, 32 segundos indisponíveis por ano