Engenharia de Software
Projeto de Arquitetura
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
A arquitetura
“Desde que o primeiro programa foi dividido
em módulos, os sistemas passaram a ter
arquiteturas.”
Mary Shaw e David Garlan
Software Architecture: Perspectives on an Emerging Discipline
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Aspectos de uma arquitetura
• Nos requisitos, a arquitetura aparece assim:
– “Nossa aplicação deve operar via Web nas plataformas Unix,
Macintosh, OS/2 e Windows.”
– “O produto deve ser compatível com CORBA.”
– “O sistema deve garantir excelente tempo de resposta em
todas as configurações cliente-servidor.”
– “Camelot é baseado no modelo cliente-servidor e usa
chamada remota a procedimentos.”
– “Abstrações em camadas e a decomposição do sistema
oferecem uniformidade aos clientes do sistema.”
– “Escolhemos uma abordagem distribuída, orientada a
objetos.”
– “Um compilador paralelo faz um pipeline da execução das
fases de compilação.”
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Aspectos de uma arquitetura
• Às vezes, a arquitetura aparece em um
diagrama de caixas e linhas
Sistema de Simulação Acústica
Processo de Controle
Modelo de Ruído
Modelo de Perda
Modelo de Reverberação
O que podemos extrair deste diagrama?
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Aspectos de uma arquitetura
Sistema de Simulação Acústica
Processo de Controle
Modelo
de Ruído
Modelo
de Perda
Modelo de
Reverberação
• O que podemos extrair?
– O sistema consiste de quatro componentes
– Três dos componentes têm mais em comum que
o Processo de Controle (por que?)
– Os componentes relacionam-se de alguma forma
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Aspectos de uma arquitetura
Sistema de Simulação Acústica
Processo de Controle
Modelo
de Ruído
Modelo
de Perda
Modelo de
Reverberação
• Qual a natureza dos componentes?
– Por que existe a separação?
– São executados em momentos diferentes?
– Os componentes são módulos a serem desenvolvidos de
forma quase independentes?
– Os componentes são hardware, objetos, módulos,
processos ou programas distribuídos?
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Aspectos de uma arquitetura
Sistema de Simulação Acústica
Processo de Controle
Modelo
de Ruído
Modelo
de Perda
Modelo de
Reverberação
• O significam as conexões?
–
–
–
–
–
–
Controle?
Envio de dados?
Uso (Processo de Controle usa Modelo de Ruído)?
Sincronização?
Ou uma combinação das anteriores?
E quais são os mecanismos de tal comunicação?
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Aspectos de uma arquitetura
Sistema de Simulação Acústica
Processo de Controle
Modelo
de Ruído
Modelo
de Perda
Modelo de
Reverberação
• O significa a hierarquia?
– Por que Processo de Controle está em um nível acima?
– O Processo de Controle chama os demais? E estes podem
chamar o Processo de Controle?
• Como a arquitetura opera em tempo de execução?
– Qual o fluxo dos dados e do controle através do sistema?
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Aspectos de uma arquitetura
Sistema de Simulação Acústica
Processo de Controle
Modelo
de Ruído
Modelo
de Perda
Modelo de
Reverberação
Diagramas como este não são suficientes para
descrever a arquitetura do sistema
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
O que é arquitetura?
“A arquitetura é composta de estruturas do
sistema que incluem
• Componentes de software
• Suas propriedades visíveis externamente
• O relacionamento entre os componentes.”
Len Bass, Paul Clements e Rick Kazman
Software Architecture in Practice
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
O que é arquitetura?
“A arquitetura define o sistema em termos de
componentes computacionais e interações entre
tais componentes.”
Mary Shaw e David Garlan
Software Architecture: Perspectives on an Emerging Discipline
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
O que é arquitetura?
“A arquitetura está relacionada com
–
–
–
–
–
–
–
–
–
–
Organização do sistema em termos de componentes
Estruturas globais de controle
Protocolos de comunicação
Sincronização e acesso a dados
Alocação de funcionalidades aos elementos de projeto
Composição dos elementos de projeto
Distribuição física
Escalabilidade e desempenho
Evolução do sistema
Seleção entre alternativas sobre decisões de projeto.”
Mary Shaw e David Garlan
Software Architecture: Perspectives on an Emerging Discipline
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
O que é arquitetura?
“Uma arquitetura é composta de
• Uma coleção de componentes, conexões e restrições.
• Uma coleção de declarações de stakeholders sobre suas
necessidades
• As razões que justifiquem que os componentes, suas
conexões e restrições satisfazem as necessidades dos
stakeholders.”
Barry Boehm
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
O que é arquitetura?
“A arquitetura forma a espinha dorsal para
se construir sistemas de software com
sucesso.”
Software Engineering Institute (SEI)
Carnegie Mellon
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Como descrever uma
arquitetura?
• Nas definições apresentadas, temos em comum
– Componentes
– Relacionamentos entre os componentes
– Propriedades destes componentes e relacionamentos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Como descrever uma
arquitetura?
• Além disso, tais elementos tratam de vários aspectos
– “Espinha dorsal do sistema”
– “Organização do sistema em termos de componentes”
– “Estruturas globais de controle”
– “Protocolos de comunicação”
– “Interações entre componentes”
– “Distribuição física”
– “Escalabilidade e desempenho”
– “Evolução do sistema”
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Como descrever uma
arquitetura?
• Porém, tais componentes e relacionamentos podem
representar diferentes conceitos
Módulos
Servidor
Hardware
Objetos
Threads
Pipes
Cliente
BD
Funções
Classes
Protocolos
• Como descrever aspectos tão diferentes?
Através de diferentes visões
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Os stakeholders envolvidos na construção de um
edifício têm diferentes visões
Pintor
Arquiteto
Engenheiro
Mestre-de-obra
Que
visão interessa a cada um Eletricista
Paisagista
Construtora
destes stakeholders?
Encanador
Marceneiro
Cliente
Prefeitura
Decorador
Pedreiro
• Cada visão é descrita de forma diferente (plantas,
maquetes, esboços, etc)
– Todas se referem ao mesmo edifício
– E nenhuma é completa
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma arquitetura
• A arquitetura de software também deve ser descrita
por diferentes visões
–
–
–
–
–
–
–
–
–
–
–
–
–
Módulos
Lógica
Processos
Físico
Utilização
Chamada
Fluxo de dados
Fluxo de controle
Classes
Casos de uso
Segurança
Implementação
Camadas, etc
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Módulos
– Os componentes são módulos do sistema
– Os relacionamentos são do tipo “é-submódulo-de”
– Esta visão geralmente define produtos e auxilia na
estruturação do planejamento do projeto (por
módulos) e em alocação de recursos
• Que módulos desenvolver primeiro?
• Que equipes serão alocadas por módulo?
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Lógico
– Os componentes são abstrações dos requisitos
funcionais do sistema (tipicamente, funções)
– Os relacionamentos são do tipo “compartilhadados-com”
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Processos
– Os componentes são processos ou threads
– Os relacionamentos são do tipo
•
•
•
•
•
“sincroniza-com”
“não-executa-sem”
“não-executa-com”
“preempts”
etc
– É uma visão ortogonal às visões de módulos e
lógico
– É útil em análises de escalonamento e
desempenho
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Físico
– Os componentes são dispositivos de hardware
– Os relacionamentos são do tipo “comunica-se
com”
– Permite analisar desempenho, disponibilidade e
segurança
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Utilização
– Os componentes são procedimentos ou módulos
– Os relacionamentos são do tipo
• “usa”
• “assume-a-presença-de”
– Auxilia no projeto de sub-sistemas ou sistemas
que podem ser facilmente estendidos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Chamadas
– Os componentes são procedimentos
– Os relacionamentos são do tipo “invoca”
– Permite rastrear o fluxo de execução do sistema e
eventual detecção e eliminação de gargalos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Fluxo de dados
– Os componentes são programas ou módulos
– Os relacionamentos são do tipo “pode-enviardados-a”
– Os links podem ser rotulados com o nome dos
dados transmitidos
– É útil para rastreamento de requisitos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Fluxo de controle
– Os componentes são programas, módulos ou
estados do sistema
– Os relacionamentos são do tipo “ativa”
– Auxilia na verificação do comportamento temporal
– Esta visão é a mesma que a visão de chamadas,
caso o único mecanismo de transferência de
controle disponível seja a chamada a função ou
procedimentos.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Classes
– Componentes são objetos ou classes
– Relacionamentos são do tipo
• “herda-de”
• “é-uma-instância-de”
– Eventualmente, uma notação mais complexa como
UML é mais eficiente que um modelo (ou visão)
simplificada como esta
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Diferentes visões de uma
arquitetura
• Cada projeto vai possuir uma visão
dominante
– Por exemplo, freqüentemente a visão de módulos
é dominante
– As demais visões são moldadas ou adaptadas
para se enquadrarem na visão dominante
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Propriedades
• Arquiteturas definem componentes
– Porém, omitem seus detalhes privados
(informações não arquiteturais)
– Explicita informações de como um componente
•
•
•
•
Usa
É usado por
Se relaciona com
Interage com outro componente
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Propriedades
• Comportam várias visões
Segurança
Módulos
Classes
Processos
Implementação
Chamada
Físico
Utilização
Camadas
Lógica
Casos de Uso
Fluxos
• Porém, nenhuma visão isoladamente pode ser
considerada “A Arquitetura”
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Propriedades
• Relembrando: o papel dos componentes, relacionamentos e
até mesmo o contexto da arquitetura mudam em cada visão
• Exemplo
– Componentes podem ser
• Módulos
• Processos
• etc
– Relacionamentos
• É-submódulo
• Sincroniza-com
• etc
– Contexto
• Em tempo de desenvolvimento
• Em tempo de execução
• etc
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Propriedades
• Todo sistema tem arquitetura
– Não significa que esteja bem documentada
– Não significa que seja conhecida por todos
– Portanto, a arquitetura existe independente de sua
documentação
• O comportamento dos componentes é parte da
arquitetura
– Tal comportamento é o que permite que outros
componentes saibam como interagir
– Também não significa que o comportamento preciso de
todas as interfaces devem ser especificadas
• Apenas aspectos de como usar o componente
• Questões que tenham impacto na viabilidade do sistema
como um todo (por exemplo, performance)
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
A importância da arquitetura
“Se o projeto ainda não definiu a
arquitetura do sistema, incluindo sua
justificativa, ele não deve prosseguir com
o desenvolvimento em larga escala.”
Barry Boehm
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
A importância da arquitetura
• A arquitetura abstrai informações detalhadas
do sistema, mas consegue prover informação
suficiente para
– Análise do sistema como um todo
– Tomada de decisões (técnicas ou gerenciais)
– Redução de riscos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
A importância da arquitetura
• Uma bom projeto de arquitetura é um fator
determinante para o sucesso do projeto
• A arquitetura ajuda
– Comunicação com os stakeholders
• A arquitetura representa uma abstração de alto nível do sistema
comum a todos os stakeholders
• Cria um entendimento mútuo e consensual entre os stakeholders
– Decisões iniciais de projeto
• As decisões iniciais de projeto são críticas (infra-estrutura, espinha
dorsal do sistema) e com impacto em todo o ciclo de vida
– Reusabilidade de abstrações
• A arquitetura é um artefato relativamente pequeno, fácil de
entender e que pode ser reusado em outros projetos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
A importância da arquitetura
• A boa arquitetura
– Bem documentada e que utiliza uma notação que todos os
stakeholders entendem
– Módulos são bem definidos e utilizam os princípios de
• Separation of concerns (separação de interesses)
• Encapsulamento
– Módulos produtores de dados devem ser diferentes de
módulos consumidores de dados
– A arquitetura deve ser a mais independente possível de um
produto ou tecnologia específica
• Caso tal dependência exista, a arquitetura deve permitir uma
mudança fácil e de baixo custo
– A arquitetura deve permitir estender o sistema sem que a
complexidade aumente
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
O Processo de Projeto de
Arquitetura
• Estruturação do sistema
– O sistema é decomposto em vários subsistemas principais e as
comunicações entre eles são identificadas
• Modelagem de controle
– Um modelo do relacionamento de controle entre as diferentes
partes do sistema é estabelecido
• Decomposição modular
– Os subsistemas identificados são decompostos em módulos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Subsistemas e Módulos
• Não há uma distinção clara.
Em linhas gerais...
– Um subsistema é um sistema também cuja operação é
independente dos serviços providos por outros subsistemas.
– Um módulo é um componente do sistema que provê serviços a
outros componentes mas que normalmente não seria
considerado um sistema separado
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelos de Arquitetura
• Estrutura, controle e decomposição modular podem
ser baseados num modelo ou estilo de arquitetura
particular.
• Contudo, a maioria dos sistemas são heterogêneos
• O modelo de arquitetura usado afeta
– Desempenho
– Robustez
– Manutenibilidade
• Alguns domínios de aplicação possuem modelos
específicos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Estruturação dos Sistemas
• O projeto de arquitetura pode ser expresso através de
diagramas de bloco apresentando uma visão geral da
estrutura do sistema
• Modelos mais específicos mostram
– Compartilhamento de dados
– Distribuição
– Interface entre os sistemas
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Sistema de Controle de um
Robô para Empacotamento
Vision
system
Object
identification
system
Arm
controller
Gripper
controller
Packaging
selection
system
Packing
system
Conveyor
controller
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
O Modelo de Repositório
• Subsistemas compartilham dados de duas formas:
– O dado compartilhado é colocado num banco de dados ou
repositório, podendo ser acessado por todos os subsistemas
– Cada subsistema mantém seu próprio banco de dados e passa
dados para os outros subsistemas
• Quando a quantidade de dados compartilhados é
grande, o modelo de repositório é mais apropriado.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Arquitetura de um Conjunto de
Ferramentas CASE
Design
editor
Design
translator
Code
generator
Project
repository
Design
analyser
Program
editor
Report
generator
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Vantagens do Modelo de
Repositório
• Forma eficiente de compartilhar grande quantidades de
dados
• Subsistemas que produzem dados não precisam se
preocupar com como os dados são usados
• Gerenciamento (backup, segurança, etc.) centralizado
• O modelo de compartilhamento é tornado público
através do esquema do repositório
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Desvantagens do Modelo de
Repositório
• Subsistemas devem concordar no modelo de dados do
repositório. Inevitavelmente um compromisso.
• A evolução dos dados é difícil e cara
• Não há espaço para políticas específicas de
gerenciamento
• Dificuldade de distribuição efetiva de dados em
máquinas distintas
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelo Cliente-servidor
• Modelo de sistema distribuídos que mostra como
dados e processamento é distribuído entre
processadores
• Componentes:
– Conjunto de servidores separados que provêm serviços
específicos
– Conjunto de clientes que usam estes serviços
– Rede que permite que clientes acessem os servidores
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Biblioteca de Filmes e Retratos
Client 1
Client 2
Client 3
Client 4
Wide-bandwidth network
Catalogue
server
Video
server
Picture
server
Hypertext
server
Catalogue
Film clip
files
Digitiz ed
photographs
Hypertext
web
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Vantagens do Modelo Clienteservidor
• Fácil distribuição de dados
• Faz uso efetivos de sistemas em rede
• Adicionar novos servidores ou atualizar os atuais é fácil
• Modelos de dados otimizados para cada servidor podem
ser utilizados
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Desvantagens do Modelo
Cliente-servidor
• Troca de dados pode ser ineficiente
• Gerenciamento redundante em cada servidor
• Utilização de novos servidores pode requerer mudanças
no clientes
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelo de Máquina Abstrata
(Camada)
• Modela a interface dos subsistemas
• Organiza o sistema numa série de camadas
– Cada camada provê um conjunto de serviços
– Os serviços de uma camada são implementados usando os
serviços da camada logo abaixo
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Sistema de Gerenciamento de
Versão
Version management
Object management
Database system
Operating
system
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelo de Máquina Abstrata
(Camadas)
• Vantagens
– Portável
– Quando uma camada muda, somente a camada
adjacente é afetada
– Conveniente para desenvolvimento incremental
• Desvantagens
– É difícil estruturar sistemas nesta forma
– Desempenho
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelos de Controle
• Lidam com fluxo de controle entre subsistemas
• Complementam o modelo estrutural
• Abordagens
– Controle centralizado
• Um subsistema tem responsabilidade geral
– Controle baseado em eventos
• Cada subsistema pode responder a eventos gerados por
outros subsistemas ou pelo ambiente
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tipos de Controle Centralizado
• Modelo de retorno de chamada
– Aplicável a sistemas seqüenciais
– Modelo de subrotina top-down
• Modelo de gerente
– Aplicável a sistemas concorrentes
– Um componente do sistema controla a parada, início
e coordenação de outros processo do sistema.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelo de Retorno de Chamada
(Centralizado)
Main
program
Routine 1
Routine 1.1
Routine 2
Routine 1.2
Routine 3
Routine 3.1
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Routine 3.2
Sistema de Controle de Tempo Real
(Modelo de Gerente - Centralizado)
Sensor
processes
Actuator
processes
System
contr oller
Computation
processes
User
interface
Fault
handler
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tipos de Controle Baseado em
Eventos
• Modelo broadcast
– Um evento é enviado, em princípio, para todos os
subsistemas.
– Qualquer dos subsistemas que trate o evento poderá
fazê-lo.
• Modelo baseado em interrupções
– Usado em sistemas de tempo real
– Interrupções são detectadas por um gerenciador de
interrupções e repassadas para outro componente
para processamento
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelo Broadcast (Baseado em
Eventos)
• Efetivo na integração de subsistemas em diferentes
computadores de uma rede
• Subsistemas registram interesse em eventos
específicos
•
A política de controle não está embutida no controlador
de mensagens e eventos.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelo Broadcast (Baseado em
Eventos)
Sub-system
1
Sub-system
2
Sub-system
3
Event and messa ge handler
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Sub-system
4
Modelo Broadcast (Baseado em
Eventos)
• Vantagens
– Evolução simples
– Facilidade de distribuição
• Desvantagens
– Subsistemas não sabem se e quando um evento será
tratado
– Possibilidade de conflito
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelo Baseado em Interrupções
(Baseado em Eventos)
• Usado em sistemas de tempo real onde a resposta
rápida a um evento é essencial
• Existem tipos conhecidos de interrupção com um
tratador (“handler”) definido para cada tipo
• Cada tipo está associado com uma localidade de
memória e um dispositivo de hardware causa a
transferência para seu tratador
• Permite resposta rápida, porém complexo para
programar, difícil de validar e de difícil evolução
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelo Baseado em Interrupções
(Baseado em Eventos)
Interrupts
Interrupt
vector
Handler
1
Handler
2
Handler
3
Handler
4
Process
1
Process
2
Process
3
Process
4
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Decomposição Modular
• Outro nível de decomposição onde subsistemas são
organizados em módulos
• Modelos de decomposição estrutural se aplicam
• Modelos adicionais
– Modelo objeto
Sistema é decomposto em objetos que interagem
– Modelo de fluxo de dados
• Sistema é decomposto em módulos funcionais
• Se possível, decisões sobre concorrência devem ser
retardadas até os módulos serem implementados
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Arquiteturas de Domínio Específico
• Tipos de arquiteturas de domínio específico
– Modelos genéricos
• Abstrações de sistemas reais
• Aplicáveis a uma classe restrita de sistemas
• Podem ser usados diretamente
– Modelos de referência
• Mais abstratos
• Descrevem uma classe maior de sistemas
• Usados para informação de conceitos e comparação de
arquiteturas
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelos Genéricos
• Exemplo conhecido: modelo de um compilador
• Um grande número de outros modelos em
domínios de aplicação mais especializados
existem, mas poucos foram publicados
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Arquiteturas de Referência
• Modelos de referência são derivados de estudos do
domínio de aplicação
• Arquitetura idealizada
• Não devem ser a diretriz principal para a implementação
• Principal função: padrão contra o qual os sistemas
podem ser avaliados
• Exemplo: Modelo OSI, um modelo de camadas para
sistemas de comunicação
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelo OSI de Referência
7
Application
Application
6
Presentation
Presentation
5
Session
Session
4
Transport
Transport
3
Network
Network
Network
2
Data link
Data link
Data link
1
Physical
Physical
Physical
Communica tions medium
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Download

Projeto de Arquitetura-4 - fa7-trabalhos