23
Universidade Presbiteriana Mackenzie Estilos Arquiteturais Prof. Anderson Diniz Hummel Faculdade de Computação e Informática 1

APD 3 - Aula 2 - 1 - Estilos Arquiteturais.pptx

Embed Size (px)

Citation preview

1

Universidade Presbiteriana Mackenzie

Estilos Arquiteturais

Prof. Anderson Diniz Hummel

Faculdade de Computação e Informática

2

Estilos Arquiteturais

• Um estilo arquitetural define uma família de sistemas de acordo com sua organização estrutural. De forma mais específica, um estilo arquitetural define um vocabulário de tipos de componentes e conectores além de um conjunto de restrições de como podem ser combinados.

Arquitetura de Software

3

Estilos Arquiteturais

• EA01: Pipes & Filters• EA02: ADT e OO• EA03: Invocação implícita• EA04: Camadas• EA05: Repositórios• EA06: Interpretadores

Arquitetura de Software

4

EA01 – Pipes & Filters

Arquitetura de Software

5

EA01 – Pipes & Filters

• Componentes e conectores– Componentes: Filters– Conectores: Pipes

• Estrutura– Um componente lê stream de dados em sua

entrada e produz stream de dados em sua saída. Os conectores permitem que a saída de um componente seja conectada à entrada de outro.

Arquitetura de Software

6

EA01 – Pipes & Filters

• Modelo Computacional:– O componente iniciar a produção do stream de dados de

saída antes de consumir todo o stream de dados de entrada.• Exemplos de uso– Uso difundido em um número grande de sistemas.– Programas do shell do Unix.– Compiladores– Processamento de sinais.– Programação paralela– Sistemas Distribuídos

Arquitetura de Software

7

EA02 – Abstract Data Types e Orientação a Objetos

Arquitetura de Software

8

EA02 – ADT e OO

• Componentes e conectores– Componentes: Objetos– Conectores: Mensagens (Chamadas de métodos)

• Estrutura– Sistema composto por objetos (instâncias de tipos

abstratos de dados) que interagem através de chamadas explícitas de funções ou procedimentos.

Arquitetura de Software

9

EA02 – ADT e OO

• Modelo Computacional:– Representação escondida de outros objetos.– Interação através de chamadas de métodos

disponibilizados por cada objeto (públicos).• Exemplos de uso– Uso difundido em um número grande de sistemas.

Arquitetura de Software

10

EA03 – Invocação implícita

Arquitetura de Software

11

EA03 – Invocação implícita

• Componentes e conectores– Componentes: Módulos que disponibilizam em suas

interfaces um conjunto de procedimentos e um conjunto de eventos.

– Conectores: Chamadas de métodos e anúncio de eventos.• Estrutura– Componentes podem chamar métodos de outros de

forma explícita.– Componentes lançam eventos e podem registrar métodos

para que sejam executados na ocorrência de determinados eventos.

Arquitetura de Software

12

EA03 – Invocação implícita

• Modelo Computacional:– Há a necessidade de um mecanismo de registro de

métodos, difusão de eventos e chamadas de métodos.

• Exemplos de uso– Integração de ferramentas de desenvolvimento.– Banco de Dados (triggers).– GUI - separação de apresentação e modelo.

Arquitetura de Software

13

EA04 – Camadas

Arquitetura de Software

14

EA04 – Camadas

• Componentes e conectores– Componentes: Camadas (máquinas virtuais)– Conectores: Protocolos que determinam como as

Camadas interagem• Estrutura– Camadas organizadas de forma hierárquica.– Cada camada provê serviços para a camada

imediatamente acima e é cliente da camada imediatamente abaixo.

Arquitetura de Software

15

EA04 – Camadas

• Modelo Computacional:– Cada camada esconde sua implementação da camada

acima, permitindo acesso a seus serviços através de protocolos bem definidos.

– Cada camada é uma máquina virtual para a camada acima.• Exemplos de Uso– Exemplo mais conhecido é o modelo OSI de protocolos de

comunicação. (as 7 camadas...).– Sistemas Operacionais.– Sistemas de Gerenciamento de Banco de Dados

Arquitetura de Software

16

EA05 – Repositórios

Arquitetura de Software

17

EA05 – Repositórios

• Componentes e conectores– Componentes: Estrutura de dados central e módulos clientes.– Conectores: Protocolos de interação dos módulos clientes e a

estrutura de dados central.• Estrutura

– Há basicamente dois padrões estruturais para este estilo.• A transação de entrada define os processos que serão executados na

estrutura de dados central.• O estado da estrutura de dados central define os processos que serão

executados.

• Exemplo de Uso– Compartilhamento de dados.

Arquitetura de Software

18

EA06 – Interpretadores

Arquitetura de Software

19

EA06 – Interpretadores

• Modelo Computacional:– Máquina virtual para execução de

pseudoprogramas.– Tem como objetivo compatibilizar a semântica de

um programa/linguagem de programação com o mecanismo computacional disponível em Hardware.

• Exemplo de Uso:– Maquina virtual do Java

Arquitetura de Software

20

Exercício

• Discuta com o seu grupo dois estilos abaixo:– EA01: Pipes & Filters– EA02: ADT e OO– EA03: Invocação implícita– EA04: Camadas– EA05: Repositórios– EA06: Interpretadores

Arquitetura de Software

Referências

Para saber mais...

23

Obrigado

Ana Claudia RossiFábio TakaseIsmar Frango