Análise e Projeto de Sistemas
Arquitetura de Software
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
1/41
Modelos arquiteturais



O projeto de arquitetura pode ser baseado num
modelo ou estilo específico de arquitetura.
Contudo, a maioria dos sistemas são
heterogêneos, ou seja, diferentes partes do
sistema são baseados em diferentes modelos e,
em alguns casos o sistema pode seguir um modelo
composto
O modelo escolhido afeta os requisitos nãofuncionais (ex: performance, segurança,
disponibilidade, manutenabilidade e
distributividade)
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
7/41
Modelos arquiteturais


Diferentes modelos ou estilos arquiteturais podem
ser produzidos durante o projeto arquitetural
Cada um dos modelos representa diferentes
perspectivas da arquitetura. Ex:



Modelos estruturais estáticos - mostram os principais subsistemas ou componentes do sistema
Modelos de controle - lidam com fluxo de controle entre subsistemas.
Modelos de decomposição modular - outro nível estrutural
onde sub-sistemas são decompostos em módulos
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
8/41
Modelos Estruturais
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
9/41
Exemplo de Modelo Estrutural:
Sistema de Controle de um Robot para
Empacotamento
Vision
system
Object
identification
system
Arm
controller
Gripper
controller
Packaging
selection
system
Packing
system
CIn-UFPE
Conveyor
controller
©2003, Alexandre Vasconcelos & Augusto Sampaio
10/41
O modelo de repositório

Sub-sistemas devem compartilhar dados. Isto pode
ser feito de duas formas:



O dado compartilhado é colocado num banco de dados ou
repositório, podendo ser acessado por todos os subsistemas
Cada sub-sistema mantém seu próprio banco de dados
independente e passa dado explicitamente para os outros
sub-sistemas
Quando a quantidades de dados compartilhados é
grande, o modelo de repositório compartilhado é
mais apropriado
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
11/41
Modelo repositório:
Arquitetura de um conjunto de ferramentas
CASE
Design
editor
Design
translator
Project
repository
Design
analyser
CIn-UFPE
Code
generator
Program
editor
Report
generator
©2003, Alexandre Vasconcelos & Augusto Sampaio
12/41
Arquitetura cliente-servidor




Modelo de sistema distribuído que mostra como
dados e processamento são distribuídos entre um
número de componentes (processadores)
Conjunto de servidores separados que provêem
serviços específicos tais como impressão,
gerenciamento de dados, etc.
Conjunto de clientes que usam estes serviços
Rede permite que clientes acessem os servidores
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
14/41
Modelo cliente-servidor:
Biblioteca de filmes e fotografias
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
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
15/41
Modelo de máquina abstrata




Usado para modelar o interfaceamento entre subsistemas
Organiza o sistema num conjunto de camadas (ou
máquinas abstratas), cada uma provendo um
conjunto de serviços
Suporta o desenvolvimento incremental de subsistemas em camadas diferentes. Quando uma
interface de uma camada muda, somente a camada
adjacente é afetada
Contudo, geralmente é difícil estruturar sistemas
desta forma
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
17/41
Modelo de máquina abstrata:
Sistema de gerenciamento de versão
Version management
Object management
Database system
Operating
system
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
18/41
Modelos de Controle
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
19/41
Modelos de controle

Tipos de Controle:
 centralizado
Um sub-sistema tem responsabilidade geral
pelo controle de ativação e desativação de
outros sub-sistemas
 baseado em eventos
Cada sub-sistema pode responder a eventos
gerados externamente por outros sub-sistemas
ou pelo ambiente do sistema
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
20/41
Controle centralizado

Dividem-se em duas categorias:
 Modelo
de retorno de chamada
Se aplica a sistemas seqüenciais. Modelo de sub-rotina
top-down, onde o controle começa no topo de uma
hierarquia de sub-rotinas e move em direção para baixo.
 Modelo
de gerente
Um componente do sistema controla a parada, início e
coordenação de outros processos do sistema. Pode ser
implementado em sistemas seqüenciais através de
sentenças “case”, mas também pode ser aplicado a
sistemas concorrentes.
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
21/41
Modelo de retorno de chamada
(controle centralizado)
Main
program
Routine 1
Routine 1.1
CIn-UFPE
Routine 2
Routine 1.2
Routine 3
Routine 3.1
©2003, Alexandre Vasconcelos & Augusto Sampaio
Routine 3.2
22/41
Sistema de controle de tempo-real
(modelo de gerente-centralizado)
Sensor
processes
Actuator
processes
System
contr oller
Computation
processes
CIn-UFPE
User
interface
Fault
handler
©2003, Alexandre Vasconcelos & Augusto Sampaio
23/41
Controle baseado em eventos


Dirigidos por eventos gerados externamente, onde a
ocorrência do evento está fora do controle dos subsistemas que processam o evento.
Dois modelos principais


Modelo broadcast. Um evento é enviado para todos os subsistemas. Qualquer dos sub-sistemas que trate o evento
poderá fazê-lo.
Modelos dirigidos a interrupção. Usado em sistemas de
tempo-real, onde interrupções são detectadas por um
gerenciador de interrupções e repassadas para algum outro
componente para processamento.
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
24/41
Modelo Broadcast
(controle baseado em evento)




Efetivo na integração de sub-sistemas em diferentes
computadores de uma rede
Sub-sistemas registram um interesse em um evento
específico. Quando ele ocorre, o controle é transferido para o
sub-sistema que pode tratar o evento
A política de controle não está embutida no controlador de
mensagens e eventos. Os sub-sistemas decidem quais
eventos são de seu interesse.
Contudo, sub-sistemas não sabem se e quando um evento
será tratado
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
25/41
Broadcast seletivo
Sub-system
1
Sub-system
2
Sub-system
3
Sub-system
4
Event and messa ge handler
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
26/41
Sistemas dirigidos a interrupção
(controle baseado em evento)




Usado em sistemas de tempo real onde a resposta
rápida a um evento é essencial
Existem tipos conhecidos de interrupção com um
manipulador definido para cada tipo
Cada tipo está associado com uma localidade de
memória e um interruptor de hardware causa a
transferência para seu manipulador
Permite resposta rápida, porém complexo para
programar e difícil de validar
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
27/41
Controle dirigido a interrupção
Interrupts
Interrupt
vector
Handler
1
Handler
2
Handler
3
Handler
4
Process
1
Process
2
Process
3
Process
4
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
28/41
Modelos de Decomposição Modular
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
29/41
Decomposição modular

Dois tipos de decomposição abordados


Um modelo objeto onde o sistema é decomposto em objetos
que interagem
Um modelo de fluxo de dados onde o sistema é decomposto
em módulos funcionais que transformam entradas em
saídas. Também conhecido como modelo pipeline
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
30/41
Arquiteturas de domínios
específicos
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
31/41
Arquiteturas de domínios específicos


Modelos que são específicos para algum domínio de
aplicação
Dois tipos de modelo de domínio específico



Modelos genéricos que são abstrações de um número real
de sistemas e que encapsulam as principais características
destes sistemas
Modelos de referência que são mais abstratos, modelos
idealizados. Permitem comparar diferentes arquiteturas
Modelos genéricos são normalmente bottom-up;
Modelos de referência são top-down
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
32/41
Modelos genéricos
(Arquitetura de domínio específico)

Modelo de um compilador é bem conhecido, embora
outros modelos existam em domínios de aplicação
mais especializados







Lexical analyser
Symbol table
Syntax analyser
Syntax tree
Semantic analyser
Code generator
Um compilador genérico pode ser organizado de
acordo com diferentes modelos de arquitetura
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
33/41
Modelo de compilador
Symbol
table
Lexical
analysis
CIn-UFPE
Syntactic
analysis
Semantic
analysis
©2003, Alexandre Vasconcelos & Augusto Sampaio
Code
generation
34/41
Sistema de processamento de linguagem
Lexical
analyser
Syntax
analyser
Semantic
analyser
Prettyprinter
Abstract
syntax tree
Grammar
definition
Optimizer
Editor
Symbol
table
Output
definition
Code
generator
Repository
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
35/41
Modelos de referência



Modelos de referência são derivados de estudos do
domínio de aplicação em vez de modelos existentes
Pode ser usado como base para uma implementação
do sistema ou para comparar sistemas diferentes.
Funciona como um padrão contra o qual os sistemas
podem ser avaliados
Ex: O Modelo OSI é um modelo de camadas para
sistemas de comunicação
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
36/41
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
CIn-UFPE
©2003, Alexandre Vasconcelos & Augusto Sampaio
37/41
Download

projeto_arquitetura