Joice Mendes [email protected] Samuel Martins sbm ...Joice Mendes – [email protected]...

39
Joice Mendes – [email protected] Samuel Martins – [email protected] 1

Transcript of Joice Mendes [email protected] Samuel Martins sbm ...Joice Mendes – [email protected]...

Page 1: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Joice Mendes – [email protected]

Samuel Martins – [email protected]

1

Page 2: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Design de software;

Aspectos gerais de arquitetura de software;

Modelos de arquitetura de software;

2

Page 3: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Aumento da complexidade dos sistemas;

Redução de tempo x custo x manutenção;

Desafio em manter os sistemas escaláveis,

performáticos e com alta qualidade;

Desenho de sistemas é uma tarefa difícil;

Sistemas que alcancem os objetivos.

3

Page 4: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Projetar antes de construir

Design facilita duas atividades:

1. Avaliação do sistemas contra seus objetivos

confiabilidade;

2. Construção do sistema guia para a construção.

4

Page 5: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Descreve aspectos do software:

◦ Estrutura estática;

◦ Descrição dos dados a serem utilizados;

◦ Algoritmos a serem utilizados;

◦ Módulos e agrupamentos;

◦ Interação entre módulos.

5

Page 6: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Processo de escolha da representação de uma

solução a partir de várias alternativas, dadas

as restrições dos objetivos.

◦ Diversificação: alternativas são geradas, ideias de

soluções.

◦ Convergência: seleção das alternativas que

satisfazem as restrições.

6

Page 7: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Tem início com uma necessidade;

◦ Requisitos funcionais e não funcionais.

É projetado para, posteriormente, ser construído;

O produto supre as necessidades do cliente.

Aquilo que se pretende alcançar para resolver as necessidades do cliente

Visão geral do sistema

7

Page 8: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Duas atividades:

◦ Design de alto nível: descreve a arquitetura do

software, como o software é decomposto e

organizado em módulos e suas relações.

◦ Design de baixo nível: Descreve o comportamento

específico e em detalhes dos módulos que

compõem o design arquitetural

8

Page 9: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Arquitetura é a definição dos elementos que

compõem uma estrutura e como eles se

relacionam.

9

Page 10: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

A estrutura é o próprio software e os

elementos são os constituintes do software

como: classes, componentes e serviços;

A arquitetura define como são organizados

esses elementos para montar o software.

10

Page 11: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

11

Page 12: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

“Uma arquitetura de software envolve a

descrição de elementos arquiteturais dos quais

os sistemas serão construídos, interações entre

esses elementos, padrões que guiam suas

composições e restrições sobre estes padrões”.

Garlan, 2000

12

Page 13: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Arquitetura = {Elementos, Organização,

Decisões}

Elementos de processamento, de dados e de

conexão;

Organização dita as relações entre os

elementos.

13

Page 14: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

É influenciada por fatores de implementação ◦ arquitetura de computador;

◦ sistema operacional;

◦ SGBD;

◦ protocolos de rede;

◦ linguagem de programação;

◦ ambiente de interface gráfica;

◦ bibliotecas de funções disponíveis;

◦ sistemas legados;

◦ necessidades de performance, portabilidade etc.

14

Page 15: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

15

Page 16: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Benefícios da arquitetura de software como

elemento norteador do processo de

desenvolvimento:

◦ Suporte ao reuso;

◦ Base para estimar custos e prazos;

◦ Base para análise da consistência e dependência;

◦ Determinar atributos de qualidade;

◦ Base para atender os requisitos do sistema

16

Page 17: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Caracteriza a arquitetura de um sistema:

◦ Identificação de componentes;

◦ Identificação de mecanismos de interação;

◦ Identificação de propriedades.

Oferece

◦ Suporte a atributos de qualidade;

◦ Diferenciação entre arquiteturas;

◦ Menos esforço para entender o projeto;

◦ Reuso

17

Page 18: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

18

Estruturação do Sistema

◦ Modelo de repositório;

◦ Modelo cliente-servidor;

◦ Modelo em camadas.

Page 19: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Os subsistemas precisam trocar informações

para trabalhar em conjunto:

◦ Dados em um banco de dados central;

◦ Cada subsistema mantem seu próprio banco de

dados

Podem usar abstração de repositório centrado

Implementação distribuída

19

Page 20: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Vantagens

◦ Eficiência em

compartilhar grandes

quantidades de dados;

◦ Dados aderem a uma

representação comum

◦ Simplifica o projeto de

aplicações fortemente

baseadas em dados

Desvantagens

◦ Subsistemas de acordo

com um modelo de dados

padronizado;

◦ Evolução de dados é

difícil e dispendiosa;

◦ Dificuldade para distribuir

de forma eficiente

20

Page 21: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Arquitetura de conjunto de ferramentas CASE

21

Page 22: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Dados e processamento distribuídos por uma

variedade de componentes;

Servidores independentes que fornecem

serviços;

Clientes utilizam os serviços;

Comunicação através de uma rede

22

Page 23: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Vantagens

◦ Separação de

interesses

◦ Inerentemente

distribuído

◦ Facilidade em adicionar

servidores ou atualizar

servidores

Desvantagens

◦ Gerenciamento

redundante em cada

servidor;

◦ Restrições e respostas

casadas;

◦ Sem centralização

23

Page 24: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Biblioteca de filmes e fotografias

24

Page 25: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Organiza o sistema em um conjunto de

camadas

◦ Cada uma fornece um conjunto de serviços

◦ Cada camada é cliente da camada subjacente

Desenvolvimento incremental dos

subsistemas em camadas diferentes

25

Page 26: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Vantagens

◦ Facilidade de

compreensão

◦ Facilidade de

manutenção

◦ Desenvolvimento

independente

Desvantagens

◦ Duplicação de

funcionalidade;

◦ Dificuldade em

estruturar em camadas

◦ Overhead de

implementação e

desempenho

26

Page 27: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Sistema de gerenciamento de versões

27

Page 28: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

28

Modelos de Controle

◦ Controle centralizado;

◦ Orientados a eventos

Page 29: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Um componente é responsável pelo

gerenciamento e execução de outros

componentes;

◦ Chamada-Retorno: controle se inicia no topo de uma

hierarquia. Pode ser sequencial ou concorrente;

◦ Gerenciador: aplicável a sistemas concorrentes e de

tempo real. Um componente controla a parada, início e a

coordenação de outros processos

29

Page 30: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Chamada-Retorno

Gerenciador

30

Page 31: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Dirigidos por eventos externos

◦ Timing dos eventos está fora do controle dos

componentes que os processam

Estilo Publisher/Subscriber

◦ Eventos são transmitidos a todos os componentes

◦ Qualquer componente interessado pode respondê-

los

31

Page 32: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Dirigidos por eventos externos

◦ Timing dos eventos está fora do controle dos

componentes que os processam

Estilo orientado a interrupções

◦ Usado em sistemas de tempo real

◦ Interrupções são detectadas por tratadores e

passadas por outros componentes para

processamento.

32

Page 33: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

33

Decomposição em Módulos

◦ Modelos de objetos;

◦ Modelos de fluxo de dados

Page 34: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Conjunto de objetos com interfaces bem

definidas;

Cada objeto oferece um conjunto de serviços;

Uma implementação orientada a objetos não

implica em uma arquitetura orientada a

objetos

34

Page 35: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Vantagens

◦ Objetos fracamente

acoplados devido ao

uso de interfaces;

◦ Linguagens de

implementação

orientada a objeto são

amplamente usadas.

Desvantagens

◦ Mudanças de interface

tem alto impacto;

◦ Dependências entre

objetos não são

limitadas.

35

Page 36: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Sistema de processamento de faturas

36

Page 37: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Transformações funcionais processam

entradas para produzir saídas

◦ Componentes são chamados de filtros

◦ Conectores são dutos

Útil para sistemas com pouca interação com

usuários

37

Page 38: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Vantagens

◦ Reuso de transformações

◦ Fácil adicionar novas

transformações

◦ Simples implementar

como sistema

concorrente ou

sequencial

Desvantagens

◦ Requer formato comum

para transferência de

dados ao longo dos

conectores

◦ Não apropriado para

aplicações interativas

38

Page 39: Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com Samuel Martins – sbm.martins@gmail.com 1

Sistema de processamento de faturas

39