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

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

Arquitetura de software

Apresentações semelhantes


Apresentação em tema: "Arquitetura de software"— Transcrição da apresentação:

1 Arquitetura de software

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

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
Relacionamentos e interações entre componentes 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 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 Usabilidade Desempenho Reuso Segurança Facilidade de compreensão Restrições e equilíbrio de fatores econômicos e tecnológicos

10 A arquitetura envolve um conjunto de decisões de design, regras ou padrões que restringem o projeto e a implementação arquitetura projeto implementação Código As decisões de arquitetura são as mais fundamentais e alterá-las provoca efeitos colaterais significativos. Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida)

11 Distinções importantes

12 Arquitetura vs. Projeto
A arquitetura é um aspecto do projeto, focada em elementos que são importantes estruturalmente 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 Argumentação lógica 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 Controle da complexidade Previsibilidade Testabilidade Reuso Comunicação Organização e gerência de projetos Ajuda a assegurar atributos de qualidade Ajuda a comunicar com interessados Separa trabalho em unidades paralelizáveis

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

18 Alguns conceitos relevantes
Acoplamento Coesão Interface Componentes Conectores Estilo arquitetural Padrões de projeto Visão arquitetural

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

20 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 Impressão Impressão Relatório Interface Relatório Alta coesão Baixa coesão Interface Arquitetura de Software e Padrões Arquiteturais (Hyggo Oliveira de Almeida)

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

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

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

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

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

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

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

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

29 Visão estática

30 Visão dinâmica

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

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

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


Carregar ppt "Arquitetura de software"

Apresentações semelhantes


Anúncios Google