A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura de software. Problema: vamos implementar um clone do compraentrega.com.br Mantém preços atualizados Mantém preços atualizados Recebe encomendas.

Apresentações semelhantes


Apresentação em tema: "Arquitetura de software. Problema: vamos implementar um clone do compraentrega.com.br Mantém preços atualizados Mantém preços atualizados Recebe encomendas."— Transcrição da apresentação:

1 Arquitetura de software

2 Problema: vamos implementar um clone do compraentrega.com.br Mantém preços atualizados Mantém preços atualizados Recebe encomendas e pagamento Recebe encomendas e pagamento Recomenda itens a usuários Recomenda itens a usuários Por onde começamos?

3 Arquitetura = {Elementos, Organização, Decisões} (Perry & Wolf) a estrutura ou estruturas do sistema, a qual é composta de elementos de software, as propriedades externamente visíveis desses elementos, e os relacionamentos entre eles. (Bass et al.) Arquitetura é a organização fundamental de um sistema, representada por seus componentes, seus relacionamentos com o ambiente, e pelos princípios que conduzem seu design e evolução. (IEEE)

4 Elementos em comum: Descrição dos componentes principais Descrição dos componentes principais Relacionamentos e interações entre componentes Relacionamentos e interações entre componentes Omite informação sobre o conteúdo dos componentes não relacionada a suas interações Omite informação sobre o conteúdo dos componentes não relacionada a suas interações O comportamento dos componentes é uma parte da arquitetura enquanto possa ser discernido do ponto de vista de outro componente O comportamento dos componentes é uma parte da arquitetura enquanto possa ser discernido do ponto de vista de outro componente A arquitetura define uma lógica por trás dos componentes e da estrutura A arquitetura define uma lógica por trás dos componentes e da estrutura

5 Arquitetura é processo e artefato (assim como projeto ) Arquitetura do Facebook vs. Um livro sobre Arquitetura de Software

6

7 Visão focada em módulos funcionais

8 Visão focada em elementos de processamento e dados

9 Arquitetura não é só sobre funcionalidade Envolve: Funcionalidade Funcionalidade Usabilidade Usabilidade Desempenho Desempenho Reuso Reuso Segurança Segurança Facilidade de compreensão Facilidade de compreensão Restrições e equilíbrio de fatores econômicos e tecnológicos Restrições e equilíbrio de fatores econômicos e tecnológicos 9

10 10 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) 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.

11 Distinções importantes

12 Arquitetura vs. Projeto A arquitetura é um aspecto do projeto, focada em elementos que são importantes estruturalmente elementos que são importantes estruturalmente elementos que têm impacto significativo em desempenho, confiabilidade, custo, adaptabilidade, etc. elementos que têm impacto significativo em desempenho, confiabilidade, custo, adaptabilidade, etc. A arquitetura não diz respeito ao projeto detalhado de componentes individuais

13 Arquitetura vs. Infraestrutura Infraestrutura é parte integral e importante da arquitetura A arquitetura define interoperabilidade entre a infraestrutura e os componentes da aplicação Arquitetura aborda estrutura, decomposição, interfaces, etc. Arquitetura aborda... Aspectos dinâmicos Aspectos dinâmicos Argumentação lógica Argumentação lógica Adequação ao contexto Adequação ao contexto

14 A arquitetura é um diagrama A arquitetura é plana apenas em casos muito triviais A arquitetura tem muitas dimensões, que representam múltiplas questões de múltiplos stakeholders Usar 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

15 como e porque

16 Como e por que Queremos organizar módulos, dependências, processos e acesso a dados * Queremos promover: Integridade e qualidade do sistema Integridade e qualidade do sistema Controle da complexidade Controle da complexidade Previsibilidade Previsibilidade Testabilidade Testabilidade Reuso Reuso Comunicação Comunicação Organização e gerência de projetos Organização e gerência de projetos

17 Arquitetar ou não? Sistemas muito simples têm arquitetura trivial Sistemas grandes dependem de arquitetura

18 Alguns conceitos relevantes AcoplamentoCoesãoInterfaceComponentesConectores Estilo arquitetural Padrões de projeto Visão arquitetural

19 19 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Acoplamento Grau de interconexão entre diferentes pedaços de um sistema Pedaços menos acoplados são mais fáceis de entender, testar, reusar e manter Baixo acoplamento também promove o paralelismo de implementação Alto Acoplamento (efeito cascata)

20 20 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Conceitos Coesã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 Componentes altamente coesos = relacionados a apenas UMA funcionalidade ImpressãoRelatórioInterface Impressão Relatório Interface Alta coesão Baixa coesão

21 21 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Interface 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.

22 22 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Conceitos Interface Exemplo clássico: tomada! Interface bem definida

23 23 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Conceitos Interface Exemplo clássico: tomada! Abstração sobre a implementação concreta

24 24 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Componentes Unidades de distribuição, montagem, implantação e substituição Executam funcionalidade não trivial Um componente é definido pelos serviços que provê e pelos serviços que requer Não necessariamente uma única unidade de código ou um único executável (não estamos falando de ES orientada a componentes)

25 25 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Conectores Veículos de comunicação entre componentes Descrição das interações entre componentes Exemplos de conectores: Chamadas de procedimento Anúncios de eventos Protocolos de comunicação Invocações de serviços

26 26 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Estilo 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 Cliente-Servidor, Pipes and Filters, Model-View-Controller, Broker

27 27 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Padrões de projeto Soluções de projeto de baixo nível Classes, objetos... Classes, objetos... Mais detalhada Visão interna dos componentes da arquitetura Visão interna dos componentes da arquitetura

28 Visão arquitetural Diferentes visões pedem diferentes representações Diagramas de pacotes Diagramas de pacotes de componentes de componentes de classes de classes de sequência de sequência

29 Visão estática

30 Visão dinâmica

31 31 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) Padrões Arquiteturais Um estilo/padrão arquitetural expressa: Uma organização estrutural Uma organização estrutural Um conjunto pré-definido de subsistemas e suas responsabilidades Um conjunto pré-definido de subsistemas e suas responsabilidades Inclui regras e diretrizes para organizar o relacionamento entre os subsistemas Inclui regras e diretrizes para organizar o relacionamento entre os subsistemas São templates para arquiteturas concretas

32 32 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) O que vimos hoje? Arquitetura de software O que é? O que é? Para que serve? Para que serve? Como documentar? Como documentar? O que é padrão arquitetural

33 33 Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida) O que veremos na próxima aula? Padrão Layers (Camadas)


Carregar ppt "Arquitetura de software. Problema: vamos implementar um clone do compraentrega.com.br Mantém preços atualizados Mantém preços atualizados Recebe encomendas."

Apresentações semelhantes


Anúncios Google