arquitetura de software i -...

57
1 Arquitetura de Software I Hyggo Oliveira de Almeida Laboratório de Sistemas Embarcados e Computação Pervasiva Centro de Engenharia Elétrica e Informática Universidade Federal de Campina Grande Apresentação do curso Motivação para o curso Objetivos do curso Conteúdo Resultado esperado Bibliografia Dúvidas???

Upload: phungnhu

Post on 12-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

1

Arquitetura de Software IHyggo Oliveira de Almeida

Laboratório de Sistemas Embarcados e Computação PervasivaCentro de Engenharia Elétrica e Informática

Universidade Federal de Campina Grande

Apresentação do cursoMotivação para o curso

Objetivos do cursoConteúdo

Resultado esperadoBibliografia

Dúvidas???

Page 2: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

2

Pós-Engenharia de Software - FAT 3

Motivação para o curso

Na última disciplina vocês viram RUPProcesso centrado na arquitetura

Arquitetura desempenha papel fundamental no processo de desenvolvimento

RiscosCustosDesempenhoFlexibilidade

Pós-Engenharia de Software - FAT 4

Motivação para o curso

Problemas na arquitetura acarretam problemas no projeto e implementação

Corrigir a arquitetura custa caro!

Definir uma arquitetura adequada pode ser determinante para o sucesso do softwareAprendemos anteriormente como aplicar um processo de desenvolvimento de software... ... agora discutiremos como especificar, documentar e avaliar uma arquitetura de software!

Page 3: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

3

Pós-Engenharia de Software - FAT 5

Objetivo do curso

Introduzir o conceito de Arquitetura de SoftwarePrincipais elementos Estilos e visõesDocumentação com UMLAtributos de qualidade

Pós-Engenharia de Software - FAT 6

Conteúdo do curso (Módulo I)

O que é arquitetura de software?Motivação e benefíciosConceitosVisões arquiteturaisDescrevendo arquiteturas com UMLEstilos arquiteturais

Page 4: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

4

Pós-Engenharia de Software - FAT 7

Conteúdo do curso (Módulo II)

Atributos de qualidadeSeleção de estilosSeleção de visõesRastreabilidade bidirecional

Pós-Engenharia de Software - FAT 8

Ao terminar o curso vocês devem...

Saber o que é uma arquitetura de softwareConhecer os principais conceitosEntender o uso de estilos arquiteturaisSaber documentar arquiteturas com UMLDefinir atributos de qualidade de arquiteturas

Page 5: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

5

Pós-Engenharia de Software - FAT 9

Exemplo base

Definam grupos (Máximo 4 pessoas)Cada grupo fará uma descrição textual de um software

De preferência algo que já tenha sido ou está sendo desenvolvido na empresaNível razoável de complexidade

Calculadora e agenda não valem!!! ☺

Pós-Engenharia de Software - FAT 10

Bibliografia

LivrosBeyond Software Architecture, Luke Hohmann, Addison Wesley, 2003Software Architecture: Perspectives on an Emerging Discipline, Mary Shaw, David Garlan, Prentice Hall, 1996Software Architecture in Practice, Second Edition, Len Bass, Paul Clements, Rick Kazman, Addison Wesley, 2003The Art of Software Architecture, Stephen T. Albin, John Wiley & Sons, 2003Pattern-Oriented Software Architecture, Volume 3, Michael Kircher and PrashantJain, John Wiley & Sons, 2004UML – Guia do usuário, James Rambaugh, Campus, 2000

Page 6: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

6

Pós-Engenharia de Software - FAT 11

Dúvidas sobre o curso???

Dúvidas sobre o conteúdo...É só isso???Isso tudo professor?!?E vai dar tempo???

Meu e-mail de contato:[email protected]

Módulo IO que é arquitetura de software?

Motivação e benefíciosConceitos

Visões arquiteturaisDescrevendo arquiteturas com UML

Estilos arquiteturais

1

Page 7: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

7

Pós-Engenharia de Software - FAT 13

O que é Arquitetura?

Arquitetura como um processoA arte ou ciência de construir edificações de quaisquer tipos para uso humanoA ação ou processo de construirO método ou estilo especial que direciona os detalhes da estrutura e ornamentação de uma construção

Arquitetura como um artefatoTrabalho arquitetural: estrutura, construçãoConstrução ou estrutura em geral

Fonte: Dicionário Webster

Pós-Engenharia de Software - FAT 14

O que é Arquitetura de Software?Muitas definições...

“...conjunto de elementos arquiteturais (ou de projeto) que têm uma forma particular.” Perry and Wolf, 1992“...estrutura(s) do sistema, que compreende(em) a componentes de software, as propriedades externamente visíveis desses componentes, e os relacionamentos entre eles.” Clements et al., 1997"...especificação abstrata do sistema consistindo primeiramente de componentes funcionais descritos em termos de seus comportamentos, interfaces e interconexões entre componentes." Hayes-Roth, 1994"Arquitetura de software é o estudo da estrutura em larga escala e desempenho de sistemas de software" Lane, 1990"A arquitetura de um sistema complexo é seu estilo e método de projeto e construção" Hayes-Roth, 1995“...estrutura de suporte de um sistema“ Rechtin, 1992"...estrutura de sistema que consiste de módulos ativos, um mecanismo para permitir interação entre estes módulos e um conjunto de regras que governam a interação"Boasson, 1995

Page 8: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

8

Pós-Engenharia de Software - FAT 15

O que é Arquitetura de Software?...resumindo

Elementos em comum...Descrição dos componentes principaisRelacionamentos e interações entre componentesOmite informação sobre o conteúdo dos componentes não relacionada a suas interaçõesO comportamento dos componentes é uma parte da arquitetura enquanto possa ser discernido do ponto de vista de outro componenteA arquitetura define uma lógica por trás dos componentes e da estrutura

Pós-Engenharia de Software - FAT 16

O que é Arquitetura de Software?Rational Software

Arquitetura de Software também envolveFuncionalidadeUsabilidadeDesempenhoReúsoFacilidade de compreensãoRestrições e equilíbrio de fatores econômicos e tecnológicos

Page 9: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

9

Pós-Engenharia de Software - FAT 17

O que é Arquitetura de Software? Restringindo projeto e implementação

A arquitetura envolve um conjunto de decisões de design, regras ou padrões que restringem o projeto e a implementação

Código

implementação

arquitetura

projeto

As decisões de arquitetura são as mais fundamentais e alterá-las provoca efeitos colaterais significativos.

Pós-Engenharia de Software - FAT 18

O que é Arquitetura de Software?Sistemas de software x Sistemas físicos

x

Page 10: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

10

Pós-Engenharia de Software - FAT 19

O que é Arquitetura de Software?Sistemas de software x Sistemas físicos

Vocês já imaginaram no caos existente se...

...caíssem aviões na mesma proporção em que softwares travam?

Pós-Engenharia de Software - FAT 20

Sistemas físicos maduros têm arquitetura estável: aviões, automóveis, navios, pontes, etc.

Essas arquiteturas evoluíram ao longo do tempoTentativa e erroReúso e refinamento de soluções de sucessoAvaliação quantitativa com métodos analíticos

O que é Arquitetura de Software?Sistemas de software x Sistemas físicos

Page 11: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

11

Pós-Engenharia de Software - FAT 21

O que é Arquitetura de Software?Sistemas de software x Sistemas físicos

Natureza temporalEstado e comportamento complexo, difícil de analisarCapacidade de auto-modificação e de evolução

Pós-Engenharia de Software - FAT 22

O que é Arquitetura de Software?Sistemas de software x Sistemas físicos

“Invisibilidade”

x

Page 12: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

12

Pós-Engenharia de Software - FAT 23

O que é Arquitetura de Software?Sistemas de software x Sistemas físicos

Custo de replicação da produção é mais barato

E a facilidade de piratear também!Já imaginou como piratear um prédio???

Pós-Engenharia de Software - FAT 24

O que é Arquitetura de Software?Concepções errôneas

Arquitetura e projeto são a mesma coisaArquitetura e infra-estrutura são a mesma coisaArquitetura é ‘plana’ e expressa por um único diagramaA arquitetura não pode ser medida ou validada

Page 13: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

13

Pós-Engenharia de Software - FAT 25

O que é Arquitetura de Software?Concepções errôneas

Arquitetura e projeto são a mesma coisaA arquitetura é um aspecto do projeto, focada em

elementos que são importantes estruturalmenteelementos que têm impacto significativo em desempenho, confiabilidade, custo, adaptabilidade, etc.

A arquitetura não diz respeito ao projeto detalhado de componentes individuais

Tema da próxima disciplina

Pós-Engenharia de Software - FAT 26

O que é Arquitetura de Software?Concepções errôneas

Arquitetura = infra-estruturaInfra-estrutura é parte integral e importante da arquiteturaA arquitetura define interoperabilidade entre a infra-estrutura e os componentes da aplicaçãoArquitetura aborda estrutura, decomposição, interfaces, etc.

Page 14: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

14

Pós-Engenharia de Software - FAT 27

O que é Arquitetura de Software?Concepções errôneas

Arquitetura = infra-estruturaArquitetura aborda...

Aspectos dinâmicosArgumentação lógicaAdequação ao contexto

Contexto de negócioContexto de desenvolvimento

Pós-Engenharia de Software - FAT 28

O que é Arquitetura de Software?Concepções errôneas

Arquitetura é ‘plana’ e expressa por um único diagramaA arquitetura é plana apenas em casos muito triviaisA arquitetura tem muitas dimensões, que representam múltiplas questões de múltiplos stakeholdersUsar um único diagrama para representar todas as dimensões da arquitetura leva à sobrecarga semântica (leia-se “confusão”)Arquitetura requer múltiplas visões

Page 15: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

15

Pós-Engenharia de Software - FAT 29

O que é Arquitetura de Software?Concepções errôneas

A arquitetura não pode ser medida ou validadaArquiteturas podem ser sistematicamente avaliadas contra requisitos de qualidade e funcionais, riscos e atributos chave do sistema

Revisando os artefatos da arquiteturaTestando os protótipos da arquitetura

Pós-Engenharia de Software - FAT 30

Motivação e benefíciosPor que arquitetar?

Integridade e qualidade do sistemaControle da complexidadePrevisibilidadeTestabilidadeReúsoComunicaçãoOrganização e gerência de projetos

Page 16: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

16

Pós-Engenharia de Software - FAT 31

Motivação e benefíciosIntegridade e qualidade do sistema

A arquitetura propicia integridade conceitual e qualidade ao sistema, ao mesmo tempo em que permite mudanças

Funcionalidade requeridaAtributos de qualidadeNovos requisitosRequisitos modificadosTendências tecnológicas

A arquitetura propicia longevidade ao sistemaFacilidade de evoluçãoEscalabilidade

Pós-Engenharia de Software - FAT 32

Motivação e benefíciosControle da complexidade

Dividir para conquistarDecomposição em componentesDetalhes de implementação ocultos

Separação de áreas de interesseComponentes (e camadas) encapsulam detalhesComponentes distintos podem ser implementados por pessoas com especialidades diferentes

Page 17: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

17

Pós-Engenharia de Software - FAT 33

Motivação e benefíciosPrevisibilidade

Previsibilidade do processoProtótipos da arquitetura permitem coletar métricas

Métricas de custo do desenvolvimentoMétricas de cronograma

Previsibilidade comportamentalIterações da arquitetura removem maiores riscos

Pós-Engenharia de Software - FAT 34

Motivação e benefíciosTestabilidade

Sistemas adequadamente componentizadossuportam maior e melhor

Diagnóstico de problemasRastreabilidadeDetecção de erros

Page 18: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

18

Pós-Engenharia de Software - FAT 35

Motivação e benefíciosReúso

A arquitetura define regras de substituiçãoInterfaces entre componentes definem limites de substituiçãoA arquitetura propicia diferentes granularidades de reúso

Reúso em pequena escala, no nível de componentesReúso em larga escala

SubsistemasProdutosFrameworks

Pós-Engenharia de Software - FAT 36

Motivação e benefíciosComunicação

A arquitetura auxilia a comunicação entre stakeholdersVisões distintas endereçam questões de stakeholders distintosA arquitetura comunica decisões chave de projeto

Page 19: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

19

Pós-Engenharia de Software - FAT 37

Motivação e benefíciosOrganização e gerência de projetos

Estrutura organizacional alinhada com a arquiteturaEquipe(s) de desenvolvimentoSubcontratados

Componentes / subsistemas utilizados como unidades para

DesenvolvimentoGerência de configuraçãoTesteImplantação e evolução

Componentes / subsistemas desenvolvidos concorrentemente

Pós-Engenharia de Software - FAT 38

Motivação e benefíciosEvitar ou reduzir custos

Minimizar o custo de (re)trabalhoEconomias com o reúso

Reúso de componentesDesenvolvimento de componentes reutilizáveis

Economias com a utilização efetiva de recursos do projetoEconomias com estimativas de custo / cronograma mais precisasEconomias com manutenção aprimoradas

Page 20: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

20

Pós-Engenharia de Software - FAT 39

Motivação e benefíciosEvitar ou reduzir custos

O investimento em arquitetura ocorre nas fases iniciais do desenvolvimento

ConcepçãoElaboração

Modelos de estimativa de custo são imprecisos nas fases iniciaisOs benefícios da arquitetura ocorrem durante a implementação e manutenção

Pós-Engenharia de Software - FAT 40

A longo prazo, não arquitetar o sistema pode ser muito caro

Motivação e benefíciosEvitar ou reduzir custos

A gerência sempre é muito relutante em bancar custos nas fases iniciais do projetoArquiteturas robustas são mais críticas se a complexidade do projeto, criticalidade e tamanho são grandesBoa arquitetura ajuda a estimar e a controlar os custos do projeto

Page 21: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

21

Pós-Engenharia de Software - FAT 41

Exercício

Com sua experiência atual de desenvolvimento de software, projete a arquitetura do software definido anteriormente.

Pós-Engenharia de Software - FAT 42

Conceitos

AcoplamentoCoesãoInterfaceComponentesConectoresEstilo arquiteturalPadrões de projetoVisão arquitetural

Page 22: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

22

Pós-Engenharia de Software - FAT 43

ConceitosAcoplamento

Grau de interconexão entre diferentes pedaços de um sistemaPedaços menos acoplados são mais fáceis de entender, testar, reusar e manterBaixo acoplamento também promove o paralelismo de implementação

Alto Acoplamento(efeito cascata)

Pós-Engenharia de Software - FAT 44

ConceitosCoesão

Quão proximamente são relacionadas as atividades dentro de um único pedaço (componente) ou entre um grupo de padaços?

Componentes altamente coesos = relacionados a apenas UMA funcionalidade

Impressão

Relatório

Interface

ImpressãoRelatórioInterfaceAlta coesão

Baixa coesão

Page 23: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

23

Pós-Engenharia de Software - FAT 45

ConceitosInterface

As maneiras em que subsistemas dentro de um projeto maior interagem são claramente definidas. Idealmente, interações são especificadas de um modo que possam se manter relativamente estáveis ao longo do ciclo de vida do sistema. Um modo de alcançar isso é através de abstrações sobre a implementação concreta.

Pós-Engenharia de Software - FAT 46

ConceitosInterface

Exemplo clássico: tomada!

Interface bem definida

Page 24: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

24

Pós-Engenharia de Software - FAT 47

ConceitosInterface

Exemplo clássico: tomada!

Abstração sobre... ... a implementação concreta

Pós-Engenharia de Software - FAT 48

ConceitosComponentes

Unidades de distribuição, montagem, implantação e substituiçãoExecutam funcionalidade não trivialUm componente é definido pelos serviços que provê e pelos serviços que requer

Os serviços revelam o comportamento até onde necessário para a montagem (assembly)

Não necessariamente uma única unidade de código ou um único executável

Page 25: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

25

Pós-Engenharia de Software - FAT 49

ConceitosConectores

Veículos de comunicação entre componentesDescrição das interações entre componentes

Exemplos de conectores:Chamadas de procedimentoAnúncios de eventosProtocolos de comunicaçãoInvocações de serviços

Pós-Engenharia de Software - FAT 50

ConceitosEstilo ou padrão arquitetural

Vocabulário de tipos de componentes e conectores

+Conjunto de restrições sobre como eles podem ser combinados

Exemplos:Cliente-Servidor, Pipes and Filters, Model-View-Controller, Broker

Page 26: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

26

Pós-Engenharia de Software - FAT 51

ConceitosPadrões de projeto

Soluções de projeto de baixo nívelClasses, objetos...

Mais detalhadaVisão interna dos componentes da arquitetura

Assunto para a próxima disciplinaArquitetura de Software II

Pós-Engenharia de Software - FAT 52

ConceitosVisão arquitetural

Projeção de um modelo da arquitetura sob determinada perspectivas

Diferentes visões para diferentes stakeholders

Visão Modelo

Stakeholder

Page 27: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

27

Pós-Engenharia de Software - FAT 53

ConceitosVisão arquitetural

ModeloUma descrição completa de um sistema sob uma perspectiva particular e um nível específico de abstração

VisãoUma projeção de um modelo, que é visto sob uma determinada perspectiva, e omite entidades que não são relevantes a essa perspectiva

Pós-Engenharia de Software - FAT 54

ConceitosVisão arquitetural

Cliente Arquiteto

Page 28: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

28

Pós-Engenharia de Software - FAT 55

ConceitosVisão arquitetural

Cliente Arquiteto

Pós-Engenharia de Software - FAT 56

Exercício

Revisem e atualizem a arquitetura definida anteriormente considerando os conceitos aprendidos.

Vocês já viram UML...Considerem diferentes stakeholders

ArquitetoDesenvolvedorCliente

Page 29: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

29

Pós-Engenharia de Software - FAT 57

Visões arquiteturais

Modelo “4+1” (Rational Software)

VisãoLógica

Visão deDesenvolvimento

Visão deProcesso

VisãoFísica

Cenários

Pós-Engenharia de Software - FAT 58

Visões arquiteturaisLógica

Visão Lógica“Retrato estático” dos relacionamentos existentes entre as entidades do sistemaPode possuir duas ou mais representações, dentre elas, uma conceitual e outra de esquema de banco de dados

VisãoLógica

Page 30: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

30

Pós-Engenharia de Software - FAT 59

Visões arquiteturaisProcesso

Visão de ProcessoDescreve aspectos de sincronização e concorrênciaDescrição de processos concorrentesDiferentes linhas de execução (threads), entidades ativas

Visão deProcesso

Pós-Engenharia de Software - FAT 60

Visões arquiteturaisDesenvolvimento

Visão de DesenvolvimentoDescreve a organização do software em seu ambiente de desenvolvimento

ComponentesLinguagens

Visão deDesenvolvimento

Page 31: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

31

Pós-Engenharia de Software - FAT 61

Visões arquiteturaisFísica

Visão FísicaDescreve o mapeamento do software para o hardwareDistribuição de componentesVerificação de alta disponibilidade, confiabilidade, desempenho...Também chamada “deployment”

Visão Física

Pós-Engenharia de Software - FAT 62

Visões arquiteturaisCenários (+1)

Cenários (+1)Cenários de funcionamento do sistema diretamente ligados à arquiteturaPrincipais casos de usoLembram de RUP?

Centrado em arquitetura!

Cenários

Page 32: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

32

Pós-Engenharia de Software - FAT 63

Descrevendo arquiteturas com UML

De acordo com o que foi estudado na disciplina anterior, que diagramas UML poderiam ser usados para descrever cada uma das visões?

Pós-Engenharia de Software - FAT 64

Descrevendo arquiteturas com UMLCenários

Não definem a estrutura do sistemaSão necessários para entender como o sistema trabalha e por que a arquitetura é como é

Desenvolvedor

GerenteAssitente

administrativo

Medir tempo para uma atividade

Extrair planilhas de

tempo semanais

Consolidar dados do projeto

Configurar banco de dados

e ferramenta

Page 33: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

33

Pós-Engenharia de Software - FAT 65

Descrevendo arquiteturas com UML

Descrições textuais dos casos de uso e seqüência de eventos

Caso de uso: Medir tempo para uma atividadeAtores: DesenvolvedorDescrição: O desenvolvedor solicita ao sistema que uma nova atividade seja registrada de acordo com seu tempo de duração.Seqüência de ações

Ator Sistema

1. O desenvolvedor determina o nome e o tempo de duração da atividade e encaminha ao sistema.

2. O sistema armazena a informação e retorna OK para o desenvolvedor.

3. O desenvolvedor recebe OK do sistema

Pós-Engenharia de Software - FAT 66

Descrevendo arquiteturas com UML

Visão LógicaQual a composição lógica do sistema?Quais responsabilidades foram atribuídas aos diferentes elementos do sistema?Qual o agrupamento lógico dos elementos do sistema?

Page 34: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

34

Pós-Engenharia de Software - FAT 67

Descrevendo arquiteturas com UML

Visão LógicaEstrutura

Diagramas de PacotesPartições maiores (pacotes)

Diagramas de ClassesElementos de design significativos para a arquitetura (classes, subsistemas, interfaces) e relacionamentos entre eles

Pós-Engenharia de Software - FAT 68

Descrevendo arquiteturas com UML

Visão LógicaDiagramas de Pacotes

InterfaceGráfica

Cronômetro

Page 35: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

35

Pós-Engenharia de Software - FAT 69

Descrevendo arquiteturas com UML

Visão LógicaDiagramas de Classes

Desenvolvedor Atividade*nome: Stringduracao: intdata: Date

Usuarionome: String

GerenteAssistente

ListaDeDesenvolvedores

*

Pós-Engenharia de Software - FAT 70

Descrevendo arquiteturas com UML

Visão LógicaComportamento

Diagramas de interação (seqüência e colaboração)

:Atividade :Desenvolvedor

criar(“Teste”)

registrar(atividade)

setDuracao(120)

ok

Desenvolvedor

Page 36: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

36

Pós-Engenharia de Software - FAT 71

Descrevendo arquiteturas com UML

Visão LógicaComportamento

Diagramas de interação (seqüência e colaboração)

:Desenvolvedor

:Atividade

1:extrairPlanilhaGeral() 2:extrairPlanilha()

3:planilha

2.1:getNome()2.3:getDuracao()

2.2:nome2.4:duracao

4:consolidarPlanilha()

:ListaDeDesenvolvedores

5:planilhaGeral

Gerente/Assitente

Pós-Engenharia de Software - FAT 72

Descrevendo arquiteturas com UML

Visão de ProcessoQuais as entidades ativas do sistema?Quais threads de controle eles implementam (executam em)?Quais os mecanismos de projeto necessários para suportar comunicação entre objetos?

Page 37: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

37

Pós-Engenharia de Software - FAT 73

Descrevendo arquiteturas com UML

Visão de ProcessoDiagramas de Classes

Classes ativas <<process>> e <<thread>>Relacionamentos de comunicação interprocessos(IPC)Tantos diagramas de classes quanto necessário

Pós-Engenharia de Software - FAT 74

Descrevendo arquiteturas com UML

Visão de Processo

Desenvolvedor Atividade*nome: Stringduracao: intdata: Date

Usuarionome: String

GerenteAssistente

ListaDeDesenvolvedores

*

<<thread>>Notificador

<<process>>SendMail

IPC(HTTP)

Page 38: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

38

Pós-Engenharia de Software - FAT 75

Descrevendo arquiteturas com UML

Visão de ProcessoComportamento

Diagramas de Interação (seqüência ou comunicação) mostrando IPC

Instâncias ativasComunicação

Diagramas de atividadesPelo menos um diagrama por processo

Pós-Engenharia de Software - FAT 76

Descrevendo arquiteturas com UML

Visão de ProcessoDiagrama de atividades (Notificador)

Verificarcronômetro

Início

Finalizarciclo

[tempo>3] Notificarusuário

[tempo<=3]

CancelarTarefa

EnviarEmail

Fim

Page 39: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

39

Pós-Engenharia de Software - FAT 77

Descrevendo arquiteturas com UML

Visão de DesenvolvimentoQuais os elementos que implementam a instanciação de execução do sistema?De onde eles vêm (desenvolvimento interno, compra, etc.)?Quais as linguagens de programação, técnicas, ferramentas, etc., usadas para criar esses elementos? Quais as competências requeridas para desenvolvê-los, mantê-los?Como os elementos são organizados em unidades de desenvolvimento e implantação?

Pós-Engenharia de Software - FAT 78

Descrevendo arquiteturas com UML

Visão de DesenvolvimentoDiagrama de classes (detalhado)

Atividade*nome: Stringduracao: intdata: Date

Usuarionome: String

GerenteAssistente

ListaDeDesenvolvedores

*

Desenvolvedorregistrar(Atividade):booleanextrairPlanilha():List

getNome():StringgetDuracao():intsetDuracao(int)

extrairPlanilhaGeral():ListconsolidarPlanilha()

Page 40: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

40

Pós-Engenharia de Software - FAT 79

Descrevendo arquiteturas com UML

Visão de DesenvolvimentoDiagrama de componentes

ChronoApplet.class

Navegador

Servidor Web

chrono.jarDia

gram

a de

com

pone

ntes

Pós-Engenharia de Software - FAT 80

Descrevendo arquiteturas com UML

Visão FísicaQual o hardware (processadores, elementos de rede, etc.) será necessário para executar o sistema?Como esses nós serão conectados?Quanto isso vai custar?Qual será o desempenho, throughput, confiabilidade e disponibilidade do sistema?Como o sistema será instalado e mantido?

Page 41: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

41

Pós-Engenharia de Software - FAT 81

Descrevendo arquiteturas com UML

Visão FísicaTopologia de rede e mapeamento de elementos

Diagrama de Implantação

ServidorWeb

MáquinaCliente

1*

Diagrama de implantação

TCP/IP

Pós-Engenharia de Software - FAT 82

Estilos arquiteturais

Um estilo/padrão arquitetural expressa:Uma organização estruturalUm conjunto pré-definido de subsistemas e suas responsabilidadesInclui regras e diretrizes para organizar o relacionamento entre os subsistemas

São “templates” para arquiteturas concretas

Page 42: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

42

Pós-Engenharia de Software - FAT 83

Estilos arquiteturaisDivisão em Camadas (Layers)Cliente-ServidorPipes and FiltersModel-View-ControllerBroker

Pós-Engenharia de Software - FAT 84

Estilos arquiteturaisDivisão em camadas

Estrutura aplicações que podem ser decompostas em grupos de sub-tarefas

Cada grupo está em um nível de abstraçãoExemplo: Modelo OSI

Aplicação

Apresentação

Sessão

Transporte

Rede

Dados

Física Transmitir bits: velocidade, bit-code, conexão, etc.

Detectar e corrigir erros nas seqüências de bits

Escolher uma rota do remetente ao destinatário

Dividir a mensagem em pacotes e garantir a entrega

Dar suporte para “diálogos” e sincronização

Estruturar a informação

Fornecer protocolos comuns para as aplicações

Page 43: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

43

Pós-Engenharia de Software - FAT 85

Estilos arquiteturaisDivisão em camadas

ProblemaSistema com várias camadas de abstraçãoCamadas de níveis superiores dependem das camadas de níveis inferioresPartes do sistema devem poder ser trocadas

Trocar a camada de comunicaçãoTrocar a camada de acesso a dados

Podem existir várias camadas em um mesmo nível de abstração dependendo de camadas inferiores

Interface gráfica standalone (Swing) X Interface WEB

Pós-Engenharia de Software - FAT 86

Estilos arquiteturaisDivisão em camadas

SoluçãoEstruture o sistema em camadasSobreponha as camadas em níveis de abstração

Serviços da camada X são compostos de serviços da camada X-1

Page 44: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

44

Pós-Engenharia de Software - FAT 87

Estilos arquiteturaisDivisão em camadas

ConseqüênciasPontos positivos

Reúso das camadasDependências tendem a permanecer “locais”

Pontos negativosCascateamento de alterações para as camadas superiores quando o comportamento de uma camada inferior muda

Pós-Engenharia de Software - FAT 88

Estilos arquiteturaisDivisão em camadas

As aplicações que vocês desenvolvem utilizam o padrão Divisão em Camadas?

Se sim, faça o desenho desta arquitetura da sua empresa

Se não, é possível estruturá-la em camadas? Quais seriam as vantagens e desvantagens?

Page 45: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

45

Pós-Engenharia de Software - FAT 89

Estilos arquiteturaisCliente-Servidor

Baseado em programas servidores e programas clientesCliente

Estabelece a conexão, envia mensagens para o servidor e aguarda mensagens de resposta.

ServidorAguarda mensagens, executa serviços e retorna resultados.

Pós-Engenharia de Software - FAT 90

Estilos arquiteturaisCliente-Servidor

Os primeiros sistemas cliente-servidor surgiram por causa de limitações nas arquiteturas de compartilhamento de arquivos

Introdução de um banco de dados substituindo o servidor de arquivosReduziu o tráfego de rede, uma vez que somente as consultas (e suas respostas) trafegavam, ao invés de arquivos

Page 46: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

46

Pós-Engenharia de Software - FAT 91

Estilos arquiteturaisCliente-Servidor

Atualmente muitas aplicações possuem arquitetura Cliente-Servidor

Navegador WEB X Servidor WEBPrograma JAVA X Gerenciador de Banco de Dados

Pós-Engenharia de Software - FAT 92

Estilos arquiteturaisCliente-Servidor

Estrutura

Cliente Servidor

Protocolo de comunicação

Page 47: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

47

Pós-Engenharia de Software - FAT 93

Estilos arquiteturaisCliente-Servidor

VantagensUtilização dos recursos do servidorEscalabilidade

Aumentando a capacidade computacional do servidor

DesvantagensIntroduz complexidadeCustos de comunicação

Pós-Engenharia de Software - FAT 94

Estilos arquiteturaisCliente-Servidor

Descreva a arquitetura de um sistema de troca de mensagens instantâneas usando o padrão cliente-servidor

Page 48: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

48

Pós-Engenharia de Software - FAT 95

Estilos arquiteturaisPipes and filters

ProblemaDesenvolvimento de um sistema que processa ou transforma um “stream” de dados.

Exemplo:Compilador

Código fonte AnalisadorLéxico

AnalisadorSintático

AnalisadorSemântico

Gerador decódigo

intermediário

Otimizador

Intel backend

MIPS backend

SPARC backend

tokens Árvore sintática Árvore sintática c/ semântica

ExecutávelExecutável otimizado

Pós-Engenharia de Software - FAT 96

Estilos arquiteturaisPipes and filters

E se o desenvolvimento fosse monolítico?Como dividir a tarefa entre vários desenvolvedores?E se for possível trocar etapas no processo? E recombinar etapas?

Page 49: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

49

Pós-Engenharia de Software - FAT 97

Estilos arquiteturaisPipes and filters

SoluçãoDividir a tarefa entre várias etapas seqüenciaisSaída de uma etapa é a entrada da etapa seguinteCada etapa de processamento é implementada por um filtro (filter)

Consome e entrega os dados incrementalmente, ao invés de consumir todos os dados de uma só vez

Cada “pipe” implementa o fluxo dos dados entre os filtros

Pós-Engenharia de Software - FAT 98

Estilos arquiteturaisPipes and filters

SoluçãoFilter

Receber o dado da entradaProcessar o dadoColocar o dado na saída

PipeTransferir o dadoRealizar “buffer”Sincronizar os filtros “vizinhos”

Outros participantesFonte de dadosSaída de dados

Page 50: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

50

Pós-Engenharia de Software - FAT 99

Estilos arquiteturaisPipes and filters

ConseqüênciasNão é preciso criar arquivos intermediários (mas é possível)Flexibilidade na troca de filtrosFlexibilidade na recombinaçãoEficiência no processamento em paralelo

Vários filtros consumindo e produzindo dados em paralelo.

Ponto negativoGerenciamento de erros

Ausência de um estado global compartilhado

Pós-Engenharia de Software - FAT 100

Estilos arquiteturaisModel-View-Controller

A aplicação é dividida em 3 componentesModel – contém a funcionalidade principal e os dadosView – exibe a informação aos usuáriosController – gerenciam a entrada do usuário, deixando o modelo transparente

Interface do usuário = View + Controller

Page 51: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

51

Pós-Engenharia de Software - FAT 101

Estilos arquiteturaisModel-View-Controller

Quando usar?Necessidade de várias interfaces com o usuário

WEB, Swing

Necessidade de várias visões dos dadosPlanilhas, Tabelas, Gráficos

Mudanças nos dados devem ser refletidas na interface

Pós-Engenharia de Software - FAT 102

Estilos arquiteturaisModel-View-Controller

EstruturaModel

Funcionalidade principal da aplicaçãoRegistrar controllers e viewsNotificar controllers e views registrados de alterações

Page 52: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

52

Pós-Engenharia de Software - FAT 103

Estilos arquiteturaisModel-View-Controller

EstruturaView

Criar e inicializar o controlador associadoExibir informação ao usuárioImplementar o procedimento de atualizaçãoRecuperar dados do modelo

ControllerReceber a entrada de dados/requisições do usuárioTransformar as requisições dos usuários em requisições ao modeloImplementar o procedimento de atualização (se necessário)

Pós-Engenharia de Software - FAT 104

Estilos arquiteturaisModel-View-Controller

Exemplo: Pesquisa de opiniãoUsuários interagem através da interfacesMudanças devem refletir nas outras interfaces

View

Controller

Model

Page 53: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

53

Pós-Engenharia de Software - FAT 105

Estilos arquiteturaisModel-View-Controller

ConseqüênciasPontos positivos

Múltiplas “views” de um mesmo modelo“views” sincronizadasOrganização clara de abstrações

Pontos negativosAumento da complexidade“Controllers” e “Views” tendem a ser bastante acoplados

Pós-Engenharia de Software - FAT 106

Estilos arquiteturaisBroker

Estruturar sistemas distribuídos que precisam interagir através de invocação remota de serviços.

ExemplosB2B

Interação com fornecedores para a solicitação de serviços

Utilização de serviços de buscaGoogle, amazon

Objetos em uma mesma aplicação estão distribuídosEscalabilidade, tolerância a falhas, etc.

Page 54: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

54

Pós-Engenharia de Software - FAT 107

Estilos arquiteturaisBroker

EstruturaClientes

Implementam a funcionalidade para o usuárioEnvia requisições para os servidores através dos representantes do lado cliente (proxies)

ServidoresExpõem a funcionalidade através de interfaces (IDLsou binária)

BrokersRegistro de servidoresTransferência de mensagensRecuperação de errosComunicação com outros brokers através de bridgesLocalizar servidores

Pós-Engenharia de Software - FAT 108

Estilos arquiteturaisBroker

EstruturaBridges

Encapsulam funcionalidades de redeMediam comunicações entre o broker local e a bridgepertencente ao broker remoto

Representantes do cliente (Client-side proxies)Encapsulam funcionalidades específicas do sistema (comunicação inter-processo, memória, empacotamento e desempacotamento dos dados)Mediam comunicações entre o cliente e o broker

Representantes do servidor (Server-side proxies)Invocam os serviços do servidorEncapsulam funcionalidades específicas do sistemaMediam comunicações entre o servidor e o broker

Page 55: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

55

Pós-Engenharia de Software - FAT 109

Estilos arquiteturaisBroker

Cliente

ProxyBroker

A

BrokerB

Requisitaserviço

Bridge

Servidores

Servidores

regis

troProxy

Proxy

Proxy

Proxy

Proxy

Pós-Engenharia de Software - FAT 110

Servidores

Proxy

Proxy

Servidores

Proxy

Proxy

Proxy

Estilos arquiteturaisBroker

Cliente

BrokerA

BrokerB

Proxy

Requisitaserviço

Bridge

regis

tro

Page 56: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

56

Pós-Engenharia de Software - FAT 111

Estilos arquiteturaisBroker

ConseqüênciasPontos positivos

Transparência de localização dos serviçosFlexibilidade

Se os servidores forem trocados mas as interfaces permanecerem as mesmas, não há impacto para o resto do sistema.

Portabilidade

Pós-Engenharia de Software - FAT 112

Estilos arquiteturaisBroker

ConseqüênciasPonto negativo

Sobrecarga de processamentoIndireção

DebugUma falha na execução de um serviço pode ter sido causada tanto pelo cliente quanto pelo servidor. Mais variáveis para observar.

Page 57: Arquitetura de Software I - webx.sefaz.al.gov.brwebx.sefaz.al.gov.br/posengsoft/documentos/as1/arquitetura1.pdf · 2 Pós-Engenharia de Software - FAT 3 Motivação para o curso zNa

57

Pós-Engenharia de Software - FAT 113

Exercício

Especifiquem novamente a arquitetura definida anteriormente de acordo com as visões e estilos arquiteturais

Documentação em UML