CIn-UFPECIn-UFPE 11/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Arquitetura de Software
CIn-UFPECIn-UFPE 77/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelos arquiteturaisModelos 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ão-funcionais (ex: performance, segurança, disponibilidade, manutenabilidade e distributividade)
CIn-UFPECIn-UFPE 88/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelos arquiteturaisModelos 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 sub-
sistemas ou componentes do sistema Modelos de controle - lidam com fluxo de controle entre sub-
sistemas. Modelos de decomposição modular - outro nível estrutural
onde sub-sistemas são decompostos em módulos
CIn-UFPECIn-UFPE 99/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelos Estruturais
CIn-UFPECIn-UFPE 1010/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Exemplo de Modelo Estrutural:Exemplo de Modelo Estrutural: Sistema de Controle de um Sistema de Controle de um RobotRobot para para
EmpacotamentoEmpacotamento
Visionsystem
Objectidentification
system
Armcontroller
Grippercontroller
Packagingselectionsystem
Packingsystem
Conveyorcontroller
CIn-UFPECIn-UFPE 1111/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
O modelo de repositórioO 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 sub-sistemas
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-UFPECIn-UFPE 1212/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelo repositório:Modelo repositório:Arquitetura de um conjunto de ferramentas Arquitetura de um conjunto de ferramentas
CASECASE
Projectrepository
Designtranslator
Programeditor
Designeditor
Codegenerator
Designanalyser
Reportgenerator
CIn-UFPECIn-UFPE 1414/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Arquitetura cliente-servidorArquitetura 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-UFPECIn-UFPE 1515/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelo cliente-servidor:Modelo cliente-servidor:Biblioteca de filmes e fotografiasBiblioteca de filmes e fotografias
Catalogueserver
Catalogue
Videoserver
Film clipfiles
Pictureserver
Digitizedphotographs
Hypertextserver
Hypertextweb
Client 1 Client 2 Client 3 Client 4
Wide-bandwidth network
CIn-UFPECIn-UFPE 1717/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelo de máquina abstrataModelo de máquina abstrata
Usado para modelar o interfaceamento entre sub-sistemas
Organiza o sistema num conjunto de camadas (ou máquinas abstratas), cada uma provendo um conjunto de serviços
Suporta o desenvolvimento incremental de sub-sistemas em camadas diferentes. Quando uma interface de uma camada muda, somente a camada adjacente é afetada
Contudo, geralmente é difícil estruturar sistemas desta forma
CIn-UFPECIn-UFPE 1818/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelo de máquina abstrata:Modelo de máquina abstrata:Sistema de gerenciamento de versãoSistema de gerenciamento de versão
Operatingsystem
Database system
Object management
Version management
CIn-UFPECIn-UFPE 1919/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelos de Controle
CIn-UFPECIn-UFPE 2020/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelos de controleModelos 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-UFPECIn-UFPE 2121/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Controle centralizadoControle 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 gerenteUm 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-UFPECIn-UFPE 2222/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelo de retorno de chamada Modelo de retorno de chamada (controle centralizado)(controle centralizado)
Routine 1.2Routine 1.1 Routine 3.2Routine 3.1
Routine 2 Routine 3Routine 1
Mainprogram
CIn-UFPECIn-UFPE 2323/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Sistema de controle de tempo-real Sistema de controle de tempo-real (modelo de gerente-centralizado)(modelo de gerente-centralizado)
Systemcontroller
Userinterface
Faulthandler
Computationprocesses
Actuatorprocesses
Sensorprocesses
CIn-UFPECIn-UFPE 2424/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Controle baseado em eventosControle baseado em eventos
Dirigidos por eventos gerados externamente, onde a ocorrência do evento está fora do controle dos sub-sistemas que processam o evento.
Dois modelos principais Modelo broadcast. Um evento é enviado para todos os sub-
sistemas. 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-UFPECIn-UFPE 2525/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelo Modelo BroadcastBroadcast (controle baseado em evento)(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-UFPECIn-UFPE 2626/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
BroadcastBroadcast seletivo seletivo
Sub-system1
Event and message handler
Sub-system2
Sub-system3
Sub-system4
CIn-UFPECIn-UFPE 2727/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Sistemas dirigidos a interrupção Sistemas dirigidos a interrupção (controle baseado em evento)(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-UFPECIn-UFPE 2828/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Controle dirigido a interrupçãoControle dirigido a interrupção
Handler1
Handler2
Handler3
Handler4
Process1
Process2
Process3
Process4
Interrupts
Interruptvector
CIn-UFPECIn-UFPE 2929/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelos de Decomposição Modular
CIn-UFPECIn-UFPE 3030/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Decomposição modularDecomposiçã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-UFPECIn-UFPE 3131/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Arquiteturas de domínios específicos
CIn-UFPECIn-UFPE 3232/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Arquiteturas de domínios específicosArquiteturas 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-UFPECIn-UFPE 3333/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelos genéricos Modelos genéricos (Arquitetura de domínio específico)(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-UFPECIn-UFPE 3434/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelo de compiladorModelo de compilador
Lexicalanalysis
Syntacticanalysis
Semanticanalysis
Codegeneration
Symboltable
CIn-UFPECIn-UFPE 3535/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Sistema de processamento de linguagemSistema de processamento de linguagem
Syntaxanalyser
Lexicalanalyser
Semanticanalyser
Abstractsyntax tree
Grammardefinition
Symboltable
Outputdefinition
Pretty-printer
Editor
Optimizer
Codegenerator
Repository
CIn-UFPECIn-UFPE 3636/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelos de referênciaModelos 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-UFPECIn-UFPE 3737/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio
Modelo OSI de referência Modelo OSI de referência
Application
Presentation
Session
Transport
Network
Data link
Physical
7
6
5
4
3
2
1
Communica tions medium
Network
Data link
Physical
Application
Presentation
Session
Transport
Network
Data link
Physical
Top Related