Arquitetura de Software EXPLICADA

Preview:

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)

Recommended