Você está na página 1de 23

Universidade Presbiteriana

Mackenzie

Estilos Arquiteturais

Prof. Anderson Diniz Hummel

Faculdade de Computao e Informtica


1

Estilos Arquiteturais
Um estilo arquitetural define uma
famlia de sistemas de acordo com
sua organizao estrutural. De forma
mais especfica, um estilo arquitetural
define um vocabulrio de tipos de
componentes e conectores alm de
um conjunto de restries de como
podem ser combinados.
Arquitetura de Software

Estilos Arquiteturais

EA01:
EA02:
EA03:
EA04:
EA05:
EA06:

Pipes & Filters


ADT e OO
Invocao implcita
Camadas
Repositrios
Interpretadores

Arquitetura de Software

EA01 Pipes & Filters

Arquitetura de Software

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 sada. Os conectores permitem
que a sada de um componente seja
conectada entrada de outro.
Arquitetura de Software

EA01 Pipes & Filters


Modelo Computacional:
O componente iniciar a produo do stream de
dados de sada antes de consumir todo o stream de
dados de entrada.

Exemplos de uso
Uso difundido em um nmero grande de sistemas.
Programas do shell do Unix.
Compiladores
Processamento de sinais.
Programao paralela
Sistemas Distribudos
Arquitetura de Software

EA02 Abstract Data Types e


Orientao a Objetos

Arquitetura de Software

EA02 ADT e OO
Componentes e conectores
Componentes: Objetos
Conectores: Mensagens (Chamadas de
mtodos)

Estrutura
Sistema composto por objetos
(instncias de tipos abstratos de dados)
que interagem atravs de chamadas
explcitas de funes ou procedimentos.
Arquitetura de Software

EA02 ADT e OO
Modelo Computacional:
Representao escondida de outros
objetos.
Interao atravs de chamadas de
mtodos disponibilizados por cada objeto
(pblicos).

Exemplos de uso
Uso difundido em um nmero grande de
sistemas.
Arquitetura de Software

EA03 Invocao implcita

Arquitetura de Software

10

EA03 Invocao implcita


Componentes e conectores
Componentes: Mdulos que disponibilizam em suas
interfaces um conjunto de procedimentos e um
conjunto de eventos.
Conectores: Chamadas de mtodos e anncio de
eventos.

Estrutura
Componentes podem chamar mtodos de outros de
forma explcita.
Componentes lanam eventos e podem registrar
mtodos para que sejam executados na ocorrncia de
determinados eventos.
Arquitetura de Software

11

EA03 Invocao implcita


Modelo Computacional:
H a necessidade de um mecanismo de
registro de mtodos, difuso de eventos e
chamadas de mtodos.

Exemplos de uso
Integrao de ferramentas de
desenvolvimento.
Banco de Dados (triggers).
GUI - separao de apresentao e modelo.
Arquitetura de Software

12

EA04 Camadas

Arquitetura de Software

13

EA04 Camadas
Componentes e conectores
Componentes: Camadas (mquinas virtuais)
Conectores: Protocolos que determinam
como as Camadas interagem

Estrutura
Camadas organizadas de forma hierrquica.
Cada camada prov servios para a camada
imediatamente acima e cliente da camada
imediatamente abaixo.
Arquitetura de Software

14

EA04 Camadas
Modelo Computacional:
Cada camada esconde sua implementao da
camada acima, permitindo acesso a seus servios
atravs de protocolos bem definidos.
Cada camada uma mquina virtual para a
camada acima.

Exemplos de Uso
Exemplo mais conhecido o modelo OSI de
protocolos de comunicao. (as 7 camadas...).
Sistemas Operacionais.
Sistemas de Gerenciamento de Banco de Dados
Arquitetura de Software

15

EA05 Repositrios

Arquitetura de Software

16

EA05 Repositrios
Componentes e conectores
Componentes: Estrutura de dados central e mdulos
clientes.
Conectores: Protocolos de interao dos mdulos clientes
e a estrutura de dados central.

Estrutura
H basicamente dois padres estruturais para este estilo.
A transao de entrada define os processos que sero
executados na estrutura de dados central.
O estado da estrutura de dados central define os processos que
sero executados.

Exemplo de Uso
Compartilhamento de dados.
Arquitetura de Software

17

EA06 Interpretadores

Arquitetura de Software

18

EA06 Interpretadores
Modelo Computacional:
Mquina virtual para execuo de
pseudoprogramas.
Tem como objetivo compatibilizar a
semntica de um programa/linguagem
de programao com o mecanismo
computacional disponvel em Hardware.

Exemplo de Uso:
Maquina virtual do Java
Arquitetura de Software

19

Exerccio
Discuta com o seu grupo dois estilos
abaixo:
EA01:
EA02:
EA03:
EA04:
EA05:
EA06:

Pipes & Filters


ADT e OO
Invocao implcita
Camadas
Repositrios
Interpretadores
Arquitetura de Software

20

Referncias

Para saber mais...

Obrigado

Ana Claudia Rossi


Fbio Takase
Ismar Frango

23