APD 3 - Aula 2 - 1 - Estilos Arquiteturais.pptx
-
Upload
daniel-camargo -
Category
Documents
-
view
221 -
download
0
Transcript of APD 3 - Aula 2 - 1 - Estilos Arquiteturais.pptx
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
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
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
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
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
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
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