SlideShare uma empresa Scribd logo
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
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.
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
O que é
arquitetura de software?
Páginas 3-24
Sistemas de software são construídos para
satisfazer objetivos de negócio de organizações.
Objetivo de negócio
Business goal define o propósito
pelo qual um sistema é construído.
A arquitetura é projetada para
satisfazer esse propósito.
Objetivo de negócio fomenta
requisito de qualidade (arquitetural)...
Ampliar a presença no mercado
Software mais “rápido” e “mais eficiente”.
Objetivos
(negócio) Software
Arquitetura de
Software
Arquitetura de Software é meio
Objetivos do
negócio
Implementação
do software
Arquitetura de Software
Requisitos Projeto Construção
Visão funcional
Definir a
Arquitetura
de Software
Requisitos
Conhecimento; Experiência; “Plágio”;
Intuição; Restrições; ...
Representação da
Arquitetura de Software
Arquitetura de Software
Requisitos
(entrada)
Projeto arquitetural
(processo)
Documentação da arquitetura
(saída)
Documentação pode ser utilizada para a
implementação ou para a avaliação.
Uma arquitetura de software pode ser...
Documentada Projetada Analisada
O que é
arquitetura de software?
Como “pensar” uma solução de software?
Como analisar ou entender uma solução existente?
O que é arquitetura de software?
“É o conjunto de estruturas,
compostas de elementos e das
relações entre eles.”
Quais são os tipos de estruturas?
Módulos
Componente-e-conector
Alocação
Módulos
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, ...
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.
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?
Módulos
(exemplos)
Divisão de responsabilidade, uso, decomposição
Módulos (exemplo) (1/18)
HealthDB
(camadas)
Módulos (exemplo) (2/18)
HealthDB
Módulos (exemplo) (3/18)
Módulos (exemplo) (4/18)
Módulos (exemplo) (5/18)
Módulos (exemplo) (6/18)
Módulos (exemplo) (7/18)
Módulos (exemplo) (8/18)
Módulos (exemplo) (9/18)
Módulos (exemplo) (10/18)
Módulos (exemplo) (11/18)
Módulos (exemplo) (12/18)
Módulos (exemplo) (13/18)
Módulos (exemplo) (14/18)
Módulos (exemplo) (15/18)
Módulos (exemplo) (16/18)
Imagem obtida de
https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
Módulos (exemplo) (17/18)
Imagem obtida de
https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
Módulos (exemplo) (18/18)
Módulos
(exemplos)
Classes (típicas de análise e projeto orientado a objetos)
Módulos (exemplo) (1/4)
Módulos (exemplo) (2/4)
Módulos (exemplo) (3/4)
Módulos (exemplo) (4/4)
Módulos
(exemplos)
Modelo de dados
Módulos (exemplo) (18/18)
Módulos (exemplo) (18/18)
Módulos (exemplo) (18/18)
Módulos (exemplo) (4/4)
Módulos
(revisão)
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.
Componente-e-Conector
Componente-e-Conector
Explicita decisões arquiteturais nas quais o
sistema é estruturado como um conjunto de
elementos que possuem comportamento em
tempo de execução (componentes) e interações
(conectores)
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, ...
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?
Disponível em https://github.com/kyriosdata/bsus
Disponível em http://www.uml-diagrams.org/component-diagrams.html
Disponível em
http://www.site.uottawa.ca/~tcl/gradtheses/mnojoumian/ThesisFiles/FinalSpec/UML/images/UML_img_167.jpg
Disponível em https://distrinet.cs.kuleuven.be/software/digitalpublishing/html/architectureP1.png
Táticas
Lidando com requisitos “clássicos”
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
Disponibilidade (tática)
Detectar falha
Recuperar (da falha)
Prevenir
Disponibilidade (tática “detectar”)
Ping/Echo
Monitor
Heartbeat
Timestamp
Sanity Checking
Condition monitoring
Voting
Exception detection

Mais conteúdo relacionado

PPT
Aula 4 - Organogramas, Fluxogramas e Funcionagrama
PDF
Introdução a Linguagem de Programação C
PPTX
Modelagem de Dados
PDF
Minicurso de App Inventor
PPT
Apresentação dos comandos básicos do Scratch
PPTX
Informática Básica - Aula 05 - Sistema Operacional Windows
PPTX
Engenharia De Software
PDF
Dicas básicas sobre LGPD - Lei Geral de Proteção de Dados Pessoais
Aula 4 - Organogramas, Fluxogramas e Funcionagrama
Introdução a Linguagem de Programação C
Modelagem de Dados
Minicurso de App Inventor
Apresentação dos comandos básicos do Scratch
Informática Básica - Aula 05 - Sistema Operacional Windows
Engenharia De Software
Dicas básicas sobre LGPD - Lei Geral de Proteção de Dados Pessoais

Mais procurados (20)

PDF
Arquitetura de Software
PPTX
Arquitetura de Software
PDF
Teste de software
PDF
Arquitetura de Software
PPTX
Aula - Metodologias Ágeis
PPT
Analise de Requisitos
PPS
Arquitetura de Software
PPT
Interface Humano-Computador (IHC)
PDF
Gerência de Requisitos
PPT
Aula4 levantamento requisitos
PDF
Aula 2 - Processos de Software
PDF
Metodologia de Desenvolvimento de Softwares
PDF
Aula de Introdução - JAVA
ODP
Modelos de processos de software
PDF
IHC - Slide 2 - Usabilidade e Princípios de Design
PDF
Apresentação Sistemas Distribuídos - Conceito
PDF
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
PDF
Analise de Requisitos Software
PDF
Engenharia de Requisitos
PDF
Arquitetura de Software Visão Geral
Arquitetura de Software
Arquitetura de Software
Teste de software
Arquitetura de Software
Aula - Metodologias Ágeis
Analise de Requisitos
Arquitetura de Software
Interface Humano-Computador (IHC)
Gerência de Requisitos
Aula4 levantamento requisitos
Aula 2 - Processos de Software
Metodologia de Desenvolvimento de Softwares
Aula de Introdução - JAVA
Modelos de processos de software
IHC - Slide 2 - Usabilidade e Princípios de Design
Apresentação Sistemas Distribuídos - Conceito
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Analise de Requisitos Software
Engenharia de Requisitos
Arquitetura de Software Visão Geral
Anúncio

Destaque (20)

PPT
Arquitetura de Software
PPTX
Arquitetura software
PPTX
ArquiteturaSoftware
PDF
Android N, Java 8, Android Studio 2.2?
PPTX
Engenharia de Software - planejamento pedagógico
PPT
ingenieria del software
PPS
Calidad De Software Diapositivas
PPTX
Final copy lra conflict uganda
ODP
LRA Presentation 1
PDF
LRA Presentation (1)
PDF
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
PDF
Gj Sue Tr Policy
PDF
Ctai Teste De Software Aula 1
PDF
Validação e Testes de Software - MOD1
PDF
Introdução ao Teste de Software - Uma abordagem prática
PDF
Verificação, Validação e Teste de Software
PDF
Desenhando Componentes de Software com UML
PDF
C-LRA Program Evaluation and Needs Assessment
PDF
LRA Investor Presentation 13 05-17
Arquitetura de Software
Arquitetura software
ArquiteturaSoftware
Android N, Java 8, Android Studio 2.2?
Engenharia de Software - planejamento pedagógico
ingenieria del software
Calidad De Software Diapositivas
Final copy lra conflict uganda
LRA Presentation 1
LRA Presentation (1)
Social Software und Web 2.0: Semantic Wikis, Social Tagging und eLearning 2.0
Gj Sue Tr Policy
Ctai Teste De Software Aula 1
Validação e Testes de Software - MOD1
Introdução ao Teste de Software - Uma abordagem prática
Verificação, Validação e Teste de Software
Desenhando Componentes de Software com UML
C-LRA Program Evaluation and Needs Assessment
LRA Investor Presentation 13 05-17
Anúncio

Semelhante a Arquitetura de Software EXPLICADA (20)

PPT
Arquitetura de Sistemas e seus aspectos na TI
PPTX
Análise Orientada a Objetos com UML
DOC
Artc 1249307788 43
PPSX
Zachman framework
PDF
Aula4-modelagem e uml
PDF
Php Conf08 Enterprise Patterns
PPTX
Treinamento ASP.NET 2014
PDF
Oficina cake php
PDF
PPT
ApresentaçãO Metodologia
PPT
Visão Geral Arquiteturade Software
PPTX
Estratégias de Estruturação de Código-fonte e Controlo de Versão
PPTX
Conceitos Básicos Sobre Analise de Sistemas
PPTX
Programação Oritentada a Aspecto
PDF
DDD – Domain Driven Design
PDF
Artigo c#
PPTX
Logica de Programação Vitor Jose de Souza.pptx
PPT
PDF
Access1
Arquitetura de Sistemas e seus aspectos na TI
Análise Orientada a Objetos com UML
Artc 1249307788 43
Zachman framework
Aula4-modelagem e uml
Php Conf08 Enterprise Patterns
Treinamento ASP.NET 2014
Oficina cake php
ApresentaçãO Metodologia
Visão Geral Arquiteturade Software
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Conceitos Básicos Sobre Analise de Sistemas
Programação Oritentada a Aspecto
DDD – Domain Driven Design
Artigo c#
Logica de Programação Vitor Jose de Souza.pptx
Access1

Mais de Fábio Nogueira de Lucena (20)

PDF
Fundamentos de Programação Front-End
PPTX
JavaScript: Aprendendo a programar
PPTX
HTML5: Primeiros Contatos (visão geral)
PDF
HTTP: Um Curso Básico
PDF
Apresentacao curso-2017-08-08
PPTX
Jornada Goiana em Engenharia de Software 2017
PPTX
PPTX
Introducao integracao
PPTX
Healthdb Visão Geral
PPTX
Prontuário Eletrônico do Paciente
PPTX
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
ODP
Como desenvolver-software
ODP
Orientação a Objetos (3)
ODP
Orientação a Objetos (2)
ODP
Orientação a Objetos (1)
ODP
Orientação a objetos (tecnologias)
Fundamentos de Programação Front-End
JavaScript: Aprendendo a programar
HTML5: Primeiros Contatos (visão geral)
HTTP: Um Curso Básico
Apresentacao curso-2017-08-08
Jornada Goiana em Engenharia de Software 2017
Introducao integracao
Healthdb Visão Geral
Prontuário Eletrônico do Paciente
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Como desenvolver-software
Orientação a Objetos (3)
Orientação a Objetos (2)
Orientação a Objetos (1)
Orientação a objetos (tecnologias)

Último (11)

PPTX
Eng. Software - pontos essenciais para o início
PPTX
Design - Introdução a Gestalt e teoria das formas
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Utilizando code blockes por andre backes
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
Eng. Software - pontos essenciais para o início
Design - Introdução a Gestalt e teoria das formas
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Tipos de servidor em redes de computador.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Arquitetura de computadores - Memórias Secundárias
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Manejo integrado de pragas na cultura do algodão
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Utilizando code blockes por andre backes
Viasol Energia Solar -Soluções para geração e economia de energia

Arquitetura de Software EXPLICADA