Upload
fabio-nogueira-de-lucena
View
221
Download
1
Embed Size (px)
Citation preview
Arquitetura de SoftwareCompreendendo o livro
Software Architecture in PracticeLen Bass et al., Addison-Wesley, 3rd edition, 2013
Fábio Nogueira de LucenaInstituto de Informática (UFG)2017
Direitos autorais
Slides produzidos a partir do conteúdo do livro
Software Architecture in PracticeLen Bass, Paul Clements e Rick KazmanAddion-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 parasatisfazer esse propósito.
Objetivo de negócio fomentarequisito 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çãodo 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 daArquitetura de Software
Processo definido por
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 dasrelaçõ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 dehttps://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
Módulos (exemplo) (17/18)
Imagem obtida dehttps://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)