Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais...

123
Estilos Arquiteturais Silvia Regina Vergilio

Transcript of Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais...

Page 1: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilos Arquiteturais

Silvia Regina Vergilio

Page 2: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilos e padrões arquiteturais Estilos arquiteturais

Definem meios de selecionar e apresentar blocos de construção de arquitetura

Padrões arquiteturais Projetos de alto nível, testados e validados, de

blocos de construção de arquitetura

Shaw, M., Garlan, D. Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1966

F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad e M. Stahl. Pattern-Oriented Software Architecture - A System of Patterns, NY: John Wiley and Sons, Inc. 1996

Page 3: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Categorias de Estilos de Arquiteturas

• Estrutura (“From mud to structure”)- oferecem decomposição controlada das tarefas em sub-tarefas. Consideram requisitos estáveis e bem definidos.

• Sistemas distribuídos – aplicações distribuídas• Sistemas interativos – interação HM.• Sistemas adaptáveis – oferecem suporte para

extensão e adaptação de aplicações devido a tecnologias e mudança de requisitos.

F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad e M. Stahl. Pattern-Oriented Software Architecture - A System of Patterns, NY: John Wiley and Sons, Inc. 1996D. Garlan and Mary Shaw. An introduction to software architecture. Technical Report- CMU-CS-94166,Carnegie Mellon University, January 1994.

Page 4: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilos Arquiteturais: TaxonomiaSistemas de

Fluxo de Dados

Sistemas de Chamada e

Retorno

Componentes Independen-

tes

Máquinas Virtuais

Sistemas Centrados em Dados

Seqüenciais Batch

Programa Principal e Sub-rotinas

Processos Comunican-

tes

Interpreta-dor

Bancos de Dados

Pipes & Filters

Sistemas OO Invocação Implícita (ou

Sistemas Baseados em

Eventos)

Sistemas Baseados em

Regras

Sistemas de Hipertexto

  Camadas     Blackboards (Quadro-

Negro)

Extraído de (SHAW e GARLAN, 1996)

Page 5: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilos arquiteturais Fluxo de dados (Data Flow)

1. Sequenciais Batch

2. Pipes & Filters (Dutos e Filtros)

Page 6: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Fluxo de Dados• Originário de sistemas operacionais UNIX e do

projeto de compiladores Ex. Unix Pipes: condutores da saída de um programa para a

entrada de um outro programa. > Who | Sort • Transformações funcionais processam entradas para

produzir saídas.– Componentes são chamados de filtros: recebem (tratam e

refinam) entradas especificadas e transformam essas entradas em saídas

– Conectores são dutos (pipes) - trasmitem saídas de um filtro para serem entradas de outro

Page 7: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Seqüências (Batch Sequential)

Especialização de pipes &filtros

Programas independentes executados em seqüência (pipelines: seqüências linear de filtros)

Um após o outro

Dado transmitido por completo entre um programa e outro

Page 8: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Análise léxica

Análisesintática

Análisesemântica Otimização Geração de

código

Jar JavaJavac

class{}

Arquivos fonte

A$n3*3N4*#

Bytecode

00010011001

Arquivo Jar

executandoEmpacotandoCompilando

–Ex: Arquitetura de Compiladores

Ex: Arquitetura de Compiladores

Page 9: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Pipes & Filters (Dutos e Filtros)

• Tipo mais geral – não precisa ser sequencial

• Pipes tipados – os tipos passados entre dois filtros tem um tipo bem definido.

PIPESPIPES

FILTERSFILTERS

AB

C

D

E

Page 10: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Sistema de processamento de faturas

Page 11: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Dutos e Filtros• Vantagens

– Útil para aplicações de processamento de informação que interagem pouco com usuários

– Rápida prototipação– Apóia reúso de transformações (filtros)– É fácil adicionar, recombinar, ou trocar, novas

transformações (flexibilidade)– É relativamente simples implementar como sistema

concorrente (vários filtros em paralelo) ou seqüencial

– Eficiência em processamento

Page 12: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Dutos e Filtros• Desvantagens

– Requer um formato comum para a transferência de dados ao longo do pipeline

– Não é apropriado para aplicações interativas– Não existe compartilhamento de dados– Ausência de gerenciamento de erros.

Page 13: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Implementação

– Divida as tarefas do sistema em uma sequência de estágios de processamento

• Cada estágio deve depender somente da saída do seu predecessor

• Todos os estágios são conectados por um fluxo de dados

– Defina o formato de dados a ser passado ao longo de cada pipe

– Decida como implementar cada conexão com pipe• Se estes serão ativos ou passivos

Page 14: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilos arquiteturais Chamada (ou invocações) e Retorno

1. Programa Principal e Sub-Rotina

2. Invocação Remota de Procedimento (RPC)

3. Sistema Orientados a Objetos

4. Camadas (Layered)

Page 15: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

O controle de execução de um componente é realizado O controle de execução de um componente é realizado por outro componente através de uma invocação, que por outro componente através de uma invocação, que geralmente produz um retorno.geralmente produz um retorno.

– ComponentesComponentes: módulos, sub-rotinas, funções, objetos, e ou componentes complexos (grupos de componentes)

– ConectoresConectores: chamada de procedimentos, envios de mensagem, protocolos de comunicação, etc.

Chamada e Retorno

Page 16: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Programa principal e Sub-Rotinas (Main Program/Subroutines)

• Controle se inicia no topo de uma hierarquia de subrotinas e move-se para baixo na hierarquia.

• Componentes – subrotinas• Conectores – chamadas de procedimento

• Vantagens: desenvolvimento pode ser independente; Gerenciamento de controle mais fácil de visualizar, na hierarquia de módulos.• Desvantagens: o reúso, bem como alterações podem ser difíceis.

Page 17: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Exemplo:

Page 18: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Invocação remota de procedimento (RPC – remote procedure call)

- especialização do programa principal e sub-rotinas

Programa principal

Subrotina 1 Subrotina 2

192.168.10.11

Rede

Subrotina 3

192.168.10.8

Page 19: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Vantagens

Programa principal

Subrotina 1 Subrotina 2

192.168.10.11

Rede

Subrotina 3

192.168.10.8

Ganho de desempenho

(2 processadores)

Page 20: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

3. Sistema Orientados a Objetos• Sistema como um conjunto de objetos fracamente

acoplados e com interfaces bem definidas– Cada objeto oferece um conjunto de serviços

• Sistemas Orientados a Objetos (OO) podem ser vistos como uma rede ou grafo de objetos comunicantes.– ComponentesComponentes: Objetos.– ConectoresConectores: envio de mensagem – RegrasRegras: objetos encapsulam seus dados; um objeto é

responsável pela manutenção da integridade de sua representação.

Page 21: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Sistema de processamento de faturas

Page 22: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Sistemas Orientados aObjetos

• Vantagens– Objetos são fracamente acoplados devido ao uso

de interfaces– Linguagens de implementação orientada a objeto

são amplamente usadas.

• Desvantagens– Mudanças de interface têm alto impacto– Não envolve restrições topológicas, o que pode

dificultar a manutenção• Dependências entre objetos não são limitadas

Page 23: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

4. Camadas (Layered)• Sistema organizado hierarquicamente.• Cada camada oferece o serviço para a camada

superior (externa) e utiliza um serviço da camada inferior (interna).– Componentes: são camadas, grupo de tarefas em um

mesmo nível de abstração– Conectores: protocolos que indicam como as camadas

irão interagir e limitam as comunicações a camadas adjacentes; permitem comunicação em máquinas diferentes

• Cada camada está associada a um conjunto de entidades (entidade complexa), constituindo-se de diferentes componentes (por ex.: conjunto de objetos, funções, etc).

Page 24: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Exemplos

Aplicação

Apresentação

Sessão

Transporte

Rede

Dados

Física

Apresentação (GUI)

Negócio

Armazenamento (Persistência)

ISO-OSIClássica3 camadas

Ex: para um sistema de informação

Page 25: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características

Camadas se comunicam apenas com outras adjacentes

Apresentação

Negócio

Armazenamento

Page 26: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características

Alterações locais não são propagadas

Apresentação

Negócio

Armazenamento

Page 27: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Outra maneira de representar

CoreLevel

Base Utility

Useful SystemsAgregados de Elementos Menores

Users

Page 28: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Sistema de gerenciamento de versões

Page 29: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Implementação• Defina o critério de abstração para agrupar tarefas em

camadas– Exemplo: a distância do hardware pode formar os níveis mais

baixos e a complexidade conceitual os níveis mais altos• Determine o número de níveis de abstração de acordo

com seu critério de abstração• Nomeie as camadas e determine as tarefas de cadauma delas

– A tarefa da camada mais alta é a percebida pelo cliente– As tarefas das demais camadas visam ajudar a realização da

tarefa da camada mais alta

Page 30: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Implementação• Especifique os serviços• Especifique uma interface para cada camada• Refine cada camada:

– Estruturação de cada camada individualmente– Quando uma camada é complexa ela deve ser

separada em componentes individuais e cada componente pode seguir um padrão ou estilo diferente

Page 31: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Estilo em CamadasVantagens: • Facilidade de compreensão: utiliza níveis crescentes de

abstração, particionando problemas complexos em sequência de passos incrementais.

• Suporte a padronização• Desenvolvimento independente• Facilidade de manutenção, reúso das camadas e suporte

à evolução dos sistemas, oferencendo flexibilidade e boa manutenibilidade

• As dependências tendem a ser locais (dentro da camada)- restrição de comunicação entre camadas adjacentes, mudanças afetam no máximo duas camadas

• Se interface bem definida, permite uso de diferentes implementações da mesma camada

Page 32: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Estilo em CamadasDesvantagens • Às vezes é difícil estruturar um sistema através de

camadas. Conseqüências:– É comum que a estruturação seja violada– Camadas relaxadas são necessárias – todas as camadas

podem se comunicar entre si.– Mudanças em serviços de uma cada inferior, podem requerer

propagação de mudanças até as superiores– Pode haver necessidade de duplicação de funcionalidade

• Overhead (problemas) de implementação, comunicação, e desempenho

• Complexidade na Implementação e Testes do Sistema

Page 33: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilos arquiteturais Componentes Independentes

1. Processos comunicantes Cliente-servidor, Peer to peer

2. Baseado em eventos Invocação implícita

Page 34: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Componentes Independentes

• Processos são independentes • Envio de dados entre processos, normalmente sem

controlar a execução de cada um deles.• O controle geralmente é feito com envio de

mensagens ou baseado em eventos. • Alto grau de modificabilidade através do

desacoplamento de várias porções da computação

Page 35: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Processos comunicantes

Baseado na comunicação via troca de mensagens entre processosEm geral, via rede

Cliente - Servidor Ponto a ponto (Peer to Peer – P2P)

Page 36: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilo Cliente-Servidor

• Mostra como dados e processamento são distribuídos por uma variedade de componentes– Servidores independentes que fornecem serviços tais como

impressão, transferência de arquivos, gerenciamento de dados, etc.

– Clientes utilizam esses serviços• Clientes e servidores normalmente se comunicam

através de uma rede– Diversas tecnologias de comunicação são possíveis

Page 37: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Aplicação: Internet

Clientes

Servidor

Page 38: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Sistema– Cliente-Servidor

Page 39: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Biblioteca de filmes e fotografias

Page 40: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Cliente-Servidor

• Vantagens – Separação de interesses– Inerentemente distribuído: pode haver

balanceamento de carga, tolerância a falhas– É fácil adicionar novos servidores ou atualizar

servidores existentes. – Utilização dos recursos do servidor– Escalabilidade: aumentando a capacidade

computacional do servidor

Page 41: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Cliente-Servidor• Desvantagens

– Gerenciamento redundante em cada servidor;– Nenhum registro central de nomes e serviços –

pode ser difícil descobrir quais servidores e serviços estão disponíveis

– Requisições e respostas casadas– Introduz complexidade– Custos de comunicação– Falhas no servidor

Page 42: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ponto a Ponto (P2P) Não há distinção entre nós Cada nó mantém seus próprios dados e endereços

conhecidos Cada nó é “cliente e servidor ao mesmo tempo” Vantagem: reduz problemas de falhas Desvantagem: aumenta o tempo de consulta

Page 43: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Baseado em eventos

Desacoplamento entre consumidores e produtores de eventos

Escalabilidade: adição de novos observadores para eventos que já são produzidos

Invocação implícita: O produtor de eventos não controla quem será notificado ou quando ele será notificado

Page 44: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Produtores e consumidores são independentes Execução via procedimentos disparados via mudança de estados Escalabilidade no número de interessados Consumidores se registram nos Produtores Produtores notificam consumidores registrados

A B

ProdutorConsumidor

interessado(“relatorioOK”)

relatorioOKRelatóri

o OK

imprimir()

Exemplo: relatório de impressão

Page 45: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Interface Gráfica

menuDown

onMouseOver

onMouseClick

onMousePressed

onMouseReleased

onSelected

onKeyDown

onKeyUp

Page 46: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Sistemas orientados a eventos• Dirigidos por eventos gerados externamente

– O 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

• Estilo Orientado a Interrupções– Usado em sistemas de tempo real – Interrupções são detectadas por tratadores e passadas por

outro componente para processamento.

Page 47: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Modelo Publisher/Subscriber• É efetivo na integração de componentes em

computadores diferentes em uma rede– Desacoplamento espacial e temporal

– Componentes não sabem se um evento será tratado e nem quando será.

• Alguns componentes (publishers) publicam eventos• Componentes (subscribers) registram interesse em eventos

específicos e podem tratá-los• A política de controle não é embutida no tratador de

eventos e mensagens

Page 48: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Publisher/Subscriber

Page 49: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilo Orientado a Interrupções

• Usado em sistemas de tempo real onde a resposta rápida para um evento é essencial

• Existem tipos de interrupções conhecidos – Um tratador definido para cada tipo

• Cada tipo é associado a uma localização da memória– Uma chave de hardware causa a transferência de controle

para um tratador.• Permite respostas rápidas, mas é complexo para

programar e difícil de validar.

Page 50: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Controle dirigido a interrupções

Page 51: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilos arquiteturais Máquina Virtual

(Virtual Machine)

1. Interpretador

2. Baseado em Regras

Page 52: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Máquina Virtual

Uma máquina virtual é produzida no software, geralmente para uma determinada linguagem.Simular funcionalidade não nativa para obter

portabilidade Ex: Simuladores de Software (linguagens - Java VM)

Page 53: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Interpretador (Interpreter)

Esta arquitetura inclui geralmente 4 componentes: - mecanismo de interpretação - uma memória que contém o pseudo-código a ser interpretado - representação do estado do mecanismo de interpretação - representação do estado atual do programa sendo simulado

A máquina tenta preencher a lacuna que existe entre o que o programa precisa e o que o hardware disponibiliza

Page 54: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Componentes de um Interpretador

Mecanismo deinterpretação Estado interno

(Instruções + dados)

Programa sendo interpretado

Dados (Estado do programa)

dados Atualiza

Dados de estado Instruções do

programa

saída Instrução selecionadaDados selecionados

entrada

Page 55: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Java VM

public class Oi{ ...}

Arquivo “Oi.java”

Compilador Java“javac.exe”

Êþº¾ 1 <init> ()V Code LineNumberTable

main ([Ljava/lang/String;)...

Arquivo “Oi.class”

bytecode

MáquinaVirtual

MáquinaVirtual

MáquinaVirtual

MáquinaVirtual

MáquinaVirtual

INTERPRETA

Page 56: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características - Interpretador

Desvantagens: Desempenho

Vantagens: Portabilidade

Algumas pesquisas apontam que algumas das linguagens interpretadas já conseguem ser mais rápidas que C

Java, por exemplo

Page 57: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Baseado em Regras (Rule-Based) Conjunto de regras sobre um estado Definição do estado atual com base em dados de

entrada Regras alteram o estado

Memória de trabalho

Base deRegras

Máquina de inferência

entrada

saída

Page 58: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Prolog, Sistemas Especialistas

SE “HORA=21:00” ENTÃO “AÇÃO=LANCHE”

SE “HORA=22:00”ENTÃO “AÇÃO=LIBERAR”

SE “HORA<19:00”ENTÃO “AÇÃO=ESPERAR”

SE “HORA=19:00”ENTÃO “AÇÃO=COMEÇAR”

HORA = ?AÇÃO = ?

Máquina deinferência

HORA=18:00

Base de Regras

Memória de trabalho

Page 59: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

HORA = 18:00AÇÃO = ?

SE “HORA=21:00” ENTÃO “AÇÃO=LANCHE”

SE “HORA=22:00”ENTÃO “AÇÃO=LIBERAR”

SE “HORA<19:00”ENTÃO “AÇÃO=ESPERAR”

SE “HORA=19:00”ENTÃO “AÇÃO=COMEÇAR”

Máquina deinferência

Base de Regras

Memória de trabalho

Page 60: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

SE “HORA=21:00” ENTÃO “AÇÃO=LANCHE”

SE “HORA=22:00”ENTÃO “AÇÃO=LIBERAR”

SE “HORA<19:00”ENTÃO “AÇÃO=ESPERAR”

SE “HORA=19:00”ENTÃO “AÇÃO=COMEÇAR”

Máquina deinferência

HORA = 18:00AÇÃO = ESPERAR

Base de Regras

Memória de trabalho

Page 61: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

SE “HORA=21:00” ENTÃO “AÇÃO=LANCHE”

SE “HORA=22:00”ENTÃO “AÇÃO=LIBERAR”

SE “HORA<19:00”ENTÃO “AÇÃO=ESPERAR”

SE “HORA=19:00”ENTÃO “AÇÃO=COMEÇAR”

Máquina deinferência

HORA = 18:00AÇÃO = ESPERAR

AÇÃO=ESPERAR

Base de Regras

Memória de trabalho

Page 62: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilos arquiteturais Centrado em Dados

1. Repositório

2. Blackboard

Page 63: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Centrado em Dados (Data-centered)

• A meta é a integração de dados• Sistemas cujas partes precisam trocar dados com

frequência• Descreve o acesso e atualização de repositórios de

dados amplamente acessíveis• Existe um grande depósito de dados centralizado,

manipulado por computações independentes

Page 64: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Repositório (Repository)

– Dados compartilhados podem ser mantidos em um banco de dados central e acessados por todos os subsistemas

– Cada subsistema mantém seu próprio banco de dados e passa dados para outros subsistemas

• Podem usar uma abstração de repositório centralizado

• Implementação distribuída

Page 65: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Repositório (Repository)

Integridade, escalabilidade (novos clientes, novos dados)

Dados compartilhados

Cliente 1

Cliente 2 Cliente 3

Cliente n

Estado atualconsistente

Clientes operamsobre os dados

Page 66: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Banco de dados tradicional

Dados compartilhados

Cliente 1

Cliente 2 Cliente 3

Cliente n

Transações

Gatilhos(triggers)

Page 67: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Ex: Arquitetura de uma Ferramenta Case

Page 68: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Repositório• Vantagens

– É uma maneira eficiente de compartilhar grandes quantidades de dados

– Dados aderem a uma representação comum– Simplifica a projeto de aplicações fortemente baseadas em

dados• Tanto para troca de informações quanto para armazenamento

• Desvantagens – Os subsistemas devem estar de acordo com um modelo de

dados padronizado– A evolução de dados é difícil e dispendiosa– Dificuldade para distribuir de forma eficiente

Page 69: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Quadro negro (Blackboard)

• O sistema é dividido em– blackboard: aramazena dados – o vocabulário– base de conhecimento: subsistemas

independentes, cada qual resolvendo aspectos específicos do problema

– componente de controle: monitora mudanças no blackboard e decide as ações

Page 70: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Quadro negro (Blackboard)

Quadro Negro

Ap 4Ap 5

Ap n

Ap 3Ap 2Ap 1

Controlador

Page 71: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Controlador

Quadro negro (Blackboard)

+

x 2

-x

Gerência dos dados

Fontes de conhecimento

Page 72: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Quadro negro (Blackboard)

2 x (3+2)2 + 3 - 6 = ?

Sei somar!

Sei multiplicar!

Sei subtrair!

Sei exponencial!

+

x 2

-x

Controlador

Page 73: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Quadro negro (Blackboard)

2 x (3+2)2 + 3 - 6 = ?

+

x 2

-x

Controlador

2 x (5)2 + 3 - 6 = ?

Page 74: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Quadro negro (Blackboard)

+

x 2

-x

Controlador

2 x (5)2 + 3 - 6 = ? 2 x 25 + 3 - 6 = ?

Page 75: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Quadro negro (Blackboard)

+

x 2

-x

Controlador

2 x 25 + 3 - 6 = ? 50 + 3 - 6 = ?

Page 76: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Quadro negro (Blackboard)

+

x 2

-x

Controlador

53 - 6 = ? 47

Page 77: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: BlackboardUsado em: Sistemas que não possuem estratégias de

soluções determinísticas conhecidas e são baseados em soluções aproximadas ou parciais.

Problemas que podem ser decompostos em sub-problemas e abrangem muitos domínios de conhecimento Sistemas complexos - Resolução Distribuída de

Problemas - RDP Paradigma de agentes

Page 78: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Blackboard

• Vantagens:– Ajuda a resolver problemas de experimentação– Suporte a mudanças e manutenção– Escalabilidade – aplicações independentes– Reúso de conhecimentos– Suporte: tolerância a falhas e robustez

Page 79: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Características: Blackboard

• Desvantagens– Dificuldades para testar por não usar algoritmos

determinísticos– Nenhuma boa solução é garantida– Dificuldade em estabelecer uma boa estratégia de

controle.– Baixa eficiência e alto esforço de

desenvolvimento– Não suporta paralelismo

Page 80: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Seleção de Estilos

O que considerar?Passos a seguir

Page 81: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Fluxo de Dados

• As interfaces entre os componentes são simples

• O sistema produz resultados simples e bem identificáveis que derivam diretamente da transformação seqüencial de uma entrada facilmente identificável

• A relação entre entrada e saídas é temporalmente independente

Page 82: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Fluxo de Dados

• Sequencial: transformações são seqüenciais– Existe uma única saída, resultante de uma única

entrada de dados• Fitros e Pipes:

– A computação envolve transformações sobre uma cadeia de dados contínua

– As transformações são incrementais. Umatransformação pode executar antes do término do

passo anterior

Page 83: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Chamada/Retorno

• A ordem da computação é fixa• Componentes não podem fazer progresso

enquanto aguardando o resultado das chamadas

Page 84: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Chamada/Retorno

• Orientação a objetos:- Ocultamento da Informação: produz módulos

similares, que no decorrer do desenvolvimento e teste se beneficiam do uso de herança

Page 85: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Chamada/Retorno

• Camadas:– As tarefas do sistema podem ser particionadas

entre: específicas da aplicação, e genéricas a muitas aplicações, mas específicas à plataforma subjacente

– Portabilidade é importante– Pode-se usar uma infra-estrutura de

computação pré-existente

Page 86: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Componentes Independentes

• O sistema executa em uma plataforma multi-processada (ou que pode vir a ser no futuro)

• O sistema pode ser estruturado como um conjunto de componentes fracamente acoplados, de modo que um componente pode fazer progressos de forma independente dos outros.

• Ajuste de desempenho é importante, seja através da re-alocação de tarefas a processos,seja através da re-alocação de processos a processadores

Page 87: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Componentes Independentes

• Processos Comunicantes:– Objetos Distribuídos: OO + Componentes Independentes

– Redes de filtros: Data-Flow + Componentes Independentes

– Cliente-Servidor: As tarefas podem ser divididas entre geradores de pedidos (ou consumidores de dados) executores de pedidos (ou produtores de dados)

Page 88: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Componentes Independentes

• Baseada em Evento– Quando é necessário desacoplar consumidores e

produtores de eventos– Quando é necessário escalabilidade, e permitir a adição

de novos processos ao sistema, os quais serão integrados a eventos já sinalizados no sistema

Page 89: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Centrada em Dados

• As questões importantes são o armazenamento, representação, gerenciamento e recuperação de uma grande quantidade de dados persistentes

Page 90: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Máquina Virtual

• Não existe uma máquina que execute ummodelo computacional que foi projetado

Page 91: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Seleção de estilos –Passos a seguir

1. Identificar os principais elementos da arquitetura2. Identificar o estilo arquitetural dominante3. Considerar responsabilidades adicionais associadas

com a escolha do estilo4. Modificar o estilo para atingir objetivos adicionais

Page 92: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Identificar os principais elementos da arquitetura

• Cada elemento arquitetural tem um estilo arquitetural dominante que reflete as qualidades importantes que devem ser alcançadas no contexto daquele elemento

• A escolha do estilo arquitetural dominante é baseada nos principais elementos arquiteturais

• Os atributos de qualidade sobre cada elemento arquitetural podem acarretar a utilização ou não de um estilo

Page 93: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Identificar o estilo arquitetural dominante

• O estilo dominante pode ser modificado para alcançar objetivos particulares

• Se nenhum estilo conhecido parece ser apropriado, o arquiteto deve projetar e documentar um novo estilo

• As decisões sobre escolhas baseadas em atributos de qualidade dentro de um estilo devem ser documentadas

Page 94: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

3. Considerar responsabilidades adicionais associadas com a escolha do estilo

• A escolha de um estilo arquitetural introduzirá responsabilidades adicionais

• Por exemplo: Se o estilo é “Quadro negro”, então devem-se gerenciar os

mecanismos para o controle do quadro negro Se o estilo é “cliente-servidor”, devem-se gerenciar os

protocolos de interação Responsabilidades adicionais devem ser atribuídas a

elementos arquiteturais existentes ou a novos elementos criados para este fim.

Page 95: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

4. Modificar o estilo para atingir objetivos adicionais

Pode-se alterar o estilo arquitetural caso este necessite ser adaptado devido a atributos de qualidade ou até mesmo funcionalidade

Page 96: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Exemplo: Sistema de matrícula• 1. Identificar os principais elementos da arquitetura

Módulo de armazenamento de

dados

Módulo de acesso do usuário

Page 97: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Exemplo: Sistema de matrícula• 2. Identificar o estilo arquitetural dominante

Módulo de armazenamento de

dados

Módulo de acesso do usuário

Acesso à máquina do BD só via rede

Utiliza banco de outraaplicação (legada)

Não há confiança na disponibilidade da

máquina do BD

Deve executar na Internet

Deve ser fino!

Não deve requererinstalação!

Deve ser possívelacessar de qualquer

lugar

Deve ter altadisponibilidade

Page 98: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Exemplo: Sistema de matrícula• 3. Considerar responsabilidades adicionais associadas com

a escolha do estilo Estilo dominante escolhido: Cliente-servidor Estilo secundário: Repositório Responsabilidades: considerar protocolo de comunicação

Cliente

Servidor

Rede/HTTP

Page 99: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Cliente/Servidor

Cliente/Servidor

Cliente/Servidor

Repositório

Exemplo: Sistema de matrícula• 4. Modificar o estilo para atingir objetivos adicionais

Cliente servidor de 2 camadas e repositório com backup

Módulo Servidor(Dados)

Módulo cliente(Acesso do usuário)

Módulo Servidor(Web)

Módulo Backup(Dados)

Aplicação legada

leitura

leitura/escrita

sincronização

leitura/escrita

consulta/atualização

Page 100: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Exemplo: Sistema de matrícula

• 4. Modificar o estilo para atingir objetivos adicionais Objetivos atingidos!

Módulo Servidor(Dados)

Módulo cliente(Acesso do usuário)

Módulo Servidor(Web)

Módulo Backup(Dados)

Aplicação legada

leitura

leitura/escrita

sincronização

leitura/escrita

consulta/atualização

- Alta disponibilidade- Fino- Executar na Internet- Acesso de qualquer lugar- Não requer instalação

- Acesso à maquina do BD só via rede- Banco de outra aplicação- Não há confiança na disponibilidade

Page 101: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Estilos arquiteturais Estudo de Caso- Garlan e Shaw (1994)

Page 102: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Pós-Engenharia de Software - FAT

Objetivo

– Ilustrar como princípios de arquitetura podem aumentar o entendimento de sistemas de software.

– Avaliar diferentes soluções e seus impactos para um mesmo problema

Page 103: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Palavra-chave em contexto: objetivo

• Analisar diferentes arquiteturas com respeito às seguintes considerações de projeto:– Mudança no algoritmo de processamento (ex: shifts nas linhas

podem ser feitos em cada linha lida, em todas as linhas após terem sido lidas, ou por demanda);

– Mudança na representação dos dados;– Mudança na funcionalidade (extensibilidade);– Performance (espaço e tempo);– Grau de reuso.

Page 104: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Problema exemplo: palavra-chave em contexto

Page 105: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Palavra-chave em contexto: entrada e saída produzida

Page 106: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

Selecione um estilo para o sistema KWIC, e represente os elementos arquiteturais do sistema no estilo escolhido.

Page 107: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Palavra-chave em contexto: canais e filtros

Input medium Input CircularShift

Output mediumOutputAlphabetizer

Canal (Pipe)

I/O

Page 108: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Palavra-chave em contexto: canais e filtros

• Pontos fortes:– Suporta reuso já que cada filtro pode funcionar isoladamente desde

que receba o “stream” que está esperando.– Novas funções podem ser adicionadas inserindo novos filtros no

lugar apropriado.– O algoritmo de processamento de cada filtro pode ser modificado.

• Pontos fracos:– É impossível modificar o sistema para funcionar interativamente.– Os dados têm que ser completamente copiados de um filtro para

outro.

Page 109: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Palavra-chave em contexto: programa principal/subrotinas com dados

compartilhadosMaster

OutputAlphabetizerCircular ShiftInput

AlphabetizedindexIndexLines

Output medium

Input medium

Acesso direto na memória

Chamada de subrotinaI/O

Page 110: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Palavra-chave em contexto: programa principal/subrotinas com dados

compartilhados

• Pontos fortes:– Dados podem ser representados de forma eficiente (boa

performance), pois são compartilhados. – A extensibilidade é permitida por meio da adição de um

novo componente, acessando os dados compartilhados.

• Pontos fracos:– Uma mudança na estrutura dos dados irá afetar todos os

módulos.– Mudanças no algoritmo de processamento não são fáceis.– Devido à forte dependência dos dados, os módulos não

são facilmente reusáveis.

Page 111: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Palavra-chave em contexto: tipos abstratos de dados

Master

Output

Circular Shift

Input

AlphabetizerLines

Output mediumInput medium Chamada de subrotina

I/O

Page 112: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Palavra-chave em contexto: tipos abstratos de dados

• Pontos fortes:– Em cada módulo, tanto o algoritmo como o formato interno dos

dados podem ser modificados sem afetar os outros módulos.– Reuso é melhor suportado, pois cada módulo não precisa conhecer

detalhes internos dos outros módulos.– A performance não é tão boa quanto a anterior, pois o fluxo de

dados é provavelmente maior.

• Ponto fraco:– A extensibilidade implica modificação dos módulos ou adição de

um novo módulo.

Page 113: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Palavra-chave em contexto: invocação implícita

Master

Output

Lines

Input

Lines Output mediumInput medium

Chamada de subrotina

Inssert

Circular Shift Alphabetizer

I/O

Invocação implícita

Inssert

Page 114: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

1. Palavra-chave em contexto: invocação implícita

• Características:– Tão logo os dados são modificados, outras computações são

invocadas implicitamente. Existe um “line storage” para “input” e outro para “shifts”.

• Ponto forte:– A representação dos dados pode ser modificada sem afetar os

módulos.

• Ponto fraco:– É difícil controlar a ordem de processamento dos módulos

invocados implicitamente.

Page 115: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Software para instrumentação (osciloscópio)

• Sistema de instrumentação que recebe sinais elétricos e mostra figuras numa tela;

• Osciloscópio também executa medidas sobre estes sinais e mostra-as numa tela.

Page 116: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Software para instrumentação (osciloscópio):modelo orientado a objetos

Osciloscópio

MedidasSinaisFormato da onda ...

Page 117: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Software para instrumentação (osciloscópio):modelo orientado a objetos

• Problema:– Confusão sobre o particionamento. Ex: as

medidas devem ser associadas com os tipos de dados sendo medidos, ou representadas externamente? Quais são os objetos que a interface com o usuário interage?

Page 118: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Software para instrumentação (osciloscópio): modelo em camadas

hardware

digitalização

manipulaçãovisualização

Interface com usuário

Page 119: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Software para instrumentação (osciloscópio): modelo em camadas

• Problema:– Em osciloscópios reais, os usuários precisam

afetar diretamente funções em todos os níveis. Ou seja, a interação não se dá apenas com o último nível.

Page 120: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Software para instrumentação (osciloscópio): modelo de canais e filtros

Acoplar Adquirir To-X-Y Clip

MedirSubsistemade Gatilhos

sinal

Forma da onda

medida

tempo

Page 121: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Software para instrumentação (osciloscópio): modelo de canais e filtros

• Problema:– Não fica claro como o usuário interage com o

sistema.

Page 122: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Software para instrumentação (osciloscópio): modelo de canais e filtros modificado

Acoplar Adquirir To-X-Y Mostrar

MedirSubsistemade Gatilhos

sinal

Forma da onda

medida

tempo

acoplamento Tipo, taxa trans tamanho

Page 123: Estilos Arquiteturais Silvia Regina Vergilio. Estilos e padrões arquiteturais Estilos arquiteturais Definem meios de selecionar e apresentar blocos de.

2. Software para instrumentação (osciloscópio): modelo de canais e filtros modificado

• Problemas:– Performance, devido à grande transferência de

dados;– Filtros lentos podem atrasar o processamento

do sistema.