30
CIn-UFPE CIn-UFPE 1 /41 /41 ©2003, Alexandre Vasconcelos & Augusto Sampaio ©2003, Alexandre Vasconcelos & Augusto Sampaio Análise e Projeto de Sistemas Análise e Projeto de Sistemas Arquitetura de Software

©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

Embed Size (px)

Citation preview

Page 1: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 2: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Aná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)

Page 3: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 4: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

CIn-UFPECIn-UFPE 99/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio

Modelos Estruturais

Page 5: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 6: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 7: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 8: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 9: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 10: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 11: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 12: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

CIn-UFPECIn-UFPE 1919/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio

Modelos de Controle

Page 13: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 14: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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.

Page 15: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 16: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 17: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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.

Page 18: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 19: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 20: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 21: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 22: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

CIn-UFPECIn-UFPE 2929/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio

Modelos de Decomposição Modular

Page 23: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 24: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

CIn-UFPECIn-UFPE 3131/41/41©2003, Alexandre Vasconcelos & Augusto Sampaio©2003, Alexandre Vasconcelos & Augusto Sampaio

Arquiteturas de domínios específicos

Page 25: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 26: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 27: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 28: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 29: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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

Page 30: ©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software

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