• Nenhum resultado encontrado

ES 09 - Projeto de Arquitetura

N/A
N/A
Protected

Academic year: 2021

Share "ES 09 - Projeto de Arquitetura"

Copied!
42
0
0

Texto

(1)

Projeto de Arquitetura

Projeto de Arquitetura

(2)

Projeto de Arquitetura

Agenda

IntroduçãoEstruturação do sistemaModelos de controleDecomposição em módulos

Arquiteturas de domínio específicoBibliografia

(3)

Projeto de Arquitetura

Introdução

Objetivos

 Explicar por que o projeto de arquitetura de software é importanteExplicar por que diferentes modelos podem ser requeridos para

documentar uma arquitetura de sistema

Apresentar diferentes tipos de arquitetura de software, que abrangem

estrutura de sistema, controle e decomposição modular

Explicar como os modelos de arquitetura de domínio específico podem

ser utilizados como base para arquiteturas tipo produto de linha e para comparar implementações de arquitetura

(4)

Projeto de Arquitetura

Introdução

Projeto de Arquitetura é estabelecer uma arquitetura geral do sistema

É o processo para identificar os subsistemas que compõem um sistema e o framework de controle e de comunicação dos subsistemas

A saída do processo de projeto de arquitetura é uma descrição da arquitetura de software, Documento de Arquitetura de Software (DAS)  O projeto arquitetural é um etapa inicial do projeto do sistema

Representa o link entre os processos de especificação e de projetoFreqüentemente, realizado em paralelo com as atividades de

especificação

Consiste de identificar os principais componentes do sistema e suas formas de comunicação

(5)

Projeto de Arquitetura

Introdução

Vantagens de uma Arquitetura Explícita

 Comunicação com os stakeholders

Arquitetura podem ser usada como um ponto de discussão pelos

stakeholdersAnálise de sistema

Significa a análise de como o sistema pode atender os requisitos não funcionais

Reutilização em larga escala

(6)

Projeto de Arquitetura

Introdução

Atividades comuns nos processos de Projeto Arquitetural

 Estruturação do sistema

O sistema é decomposto em vários subsistemas principais e as comunicações entre estes subsistemas são identificados

Modelagem do controle

Um modelo de relacionamento de controle entre as diferentes partes do sistema é estabelecido

Decomposição modular

(7)

Projeto de Arquitetura

Introdução

Subsistemas e Módulos

 Um subsistema é um sistema cuja operação não depende dos serviços

fornecidos por outros subsistemas

 Os subsistemas são compostos de módulos e têm interfaces definidas,

as quais são utilizadas para a comunicação entre subsistemas

 Um módulo é geralmente um componente de sistema que fornece um ou

mais serviços para outros módulos. Ele utiliza serviços fornecidos por outros módulos e normalmente não é considerado um sistema

independente

Os módulos são compostos de uma série de outros componentes de

(8)

Projeto de Arquitetura

Introdução

Modelos de Arquitetura

 Diferentes modelos arquiteturais podem ser produzidos durante o

processo de projeto

 Cada modelo apresenta diferentes perspectivas da arquitetura:

Um modelo de estrutura estática que mostra os principais componentes do sistema

Um modelo de processo dinâmico que mostra como o sistema é organizado em processos em tempo de execução

Um modelo de interface que define os serviços oferecidos por cada subsistema

 Modelos de relacionamento que mostram relacionamentos como fluxo de

(9)

Projeto de Arquitetura

Introdução

Estilo de Arquitetura

 O modelo de arquitetura de um sistema pode ter como base um modelo

ou estilo de arquitetura genérico

 O conhecimento destes estilos podem simplificar o problema de

definição do sistema

 Embora, muitos sistemas grandes são heterogêneos e não seguem um

(10)

Projeto de Arquitetura

Introdução

Estilo de Arquitetura

A escolha dos estilos de arquitetura podem depender dos requisitos não funcionais do sistema

Desempenho

As operações com esta restrição devem ter operações dentro de um pequeno número de subsistemas com a menor comunicação possível entre esses subsistemas

Proteção

Os itens mais importantes devem ficas nas camadas mais internas, sendo os mas protegidos

Segurança

As operações que requerem segurança devem ficar dentro do mesmo subsistema.

Disponibilidade

A arquitetura deve ser projetada para incluir componentes redundantes, para que seja possível substituir e atualizar componentes, sem a interrupção do sistema

Manutenibilidade

A arquitetura deve ser projetada utilizando-se componentes encapsulados de menor granularidade, que possam ser rapidamente modificados

(11)

Projeto de Arquitetura

Estruturação do Sistema

Compreende a decomposição do sistema em subsistemas

O projeto da arquitetura é normalmente expresso como um diagrama de blocos, apresentando uma visão geral da estrutura do sistema

Modelos mais específicos mostrando como os subsistemas compartilham dados, como são distribuídos e como se comunicam também são

construídos

 Modelo de Repositório  Modelo Cliente-Servidor

(12)

Projeto de Arquitetura

Estruturação do Sistema Diagrama de Blocos – Sistema de Controle

Robotizado de Embalagem

Vision system Object identification system Arm controller Gripper controller Packaging selection system Packing

system Conveyorcontroller

Sistema de visão

Controlador de braço Controlador de garra

Controlador de transportadora Sistema de embalagem Sistema de seleção de embalagem Sistema de identificação de objetos

(13)

Projeto de Arquitetura

Estruturação do Sistema – Modelo de Repositório

Os subsistemas devem trocar dados e podem fazê-lo de dois modos:

 O dado compartilhado é mantido em um banco de dados central e pode

ser acessado por todos os subsistemas

 Cada subsistema mantém seu próprio banco de dados e passa o dado

explicitamente para outros subsistemas

Quando uma grande quantidade de dados deve ser compartilhada, o modelo de repositório onde os dados são compartilhados é mais

(14)

Projeto de Arquitetura

Estruturação do Sistema – Modelo de Repositório – Arquitetura de um

Conjunto de Ferramentas CASE Integrado

Project repository Design translator Program editor Design editor Code generator Design analyser Report generator Tradutor de projeto Editor de projeto Gerador de código Editor de programa Gerador de relatório Analisador de projeto Repositório de projeto

(15)

Projeto de Arquitetura

Estruturação do Sistema – Modelo de Repositório

Vantagens:

 Eficiente modo de compartilhar grande quantidade de dado

 Subsistemas não necessitam ser conhecedores de como o dado é

produzido

Gerenciamento centralizado: backup, segurança, etc.

Modelo de compartilhamento é visível por meio do esquema de repositório

Desvantagens:

Subsistemas devem concordar sobre um mesmo modelo de dadosA evolução dos dados é cara e difícil

Diferentes subsistemas podem ter diferentes requisitos para políticas de gerenciamento: backup, segurança, etc.

 Difícil de distribuir eficientemente, podem haver problemas de

(16)

Projeto de Arquitetura

Estruturação do Sistema – Modelo Cliente-Servidor

É um modelo de sistemas distribuído, que mostra como os dados e o processamento são distribuídos em uma série de processadores

Os componentes principais são:

Um conjunto de servidores individuais, que oferece serviços a outros subsistemas, tais com impressão, gerenciamento de dados, etc.

Um conjunto de clientes que solicita os serviços oferecidos pelos

servidores

(17)

Projeto de Arquitetura

Estruturação do Sistema – Modelo Cliente-Servidor – Arquitetura de um

Sistema de Biblioteca de Filmes e Fotografias

Catalogue server Catalogue Video server Film clip files Picture server Digitized photographs Hypertext server Hypertext web Client 1 Client 2 Client 3 Client 4

Wide-bandwidth network

Cliente 1 Cliente 2 Cliente 3 Cliente 4

Servidor de hipertexto Web de hipertexto Servidor de Fotografias Fotografias digitalizadas Servidor de vídeo Arquivos de clipes de filmes Servidor de catálogo Catálogo

(18)

Projeto de Arquitetura

Estruturação do Sistema – Modelo Cliente-Servidor

Vantagens:

 A distribuição dos dados é direta

Faz uso efetivo dos sistemas da rede. Podem requerer hardware mais

barato

Fácil de acrescentar novos servidores ou melhorar os servidores

existentes

 Desvantagens:

 Não há nenhum modelo de dados compartilhado, os subsistemas usam

diferentes organizações de dados. A troca de dados pode ser ineficiente

 Pode haver gerenciamento redundante em cada servidor

Nenhum registro central de nomes e serviços, pode ser difícil achar um

(19)

Projeto de Arquitetura

Estruturação do Sistema – Modelo de Máquina Abstrata

Mais conhecido como Modelo em Camadas

Usado para modelar as interfaces dos subsistemas

Organiza um sistema em uma série de camada, cada uma fornece um conjunto de serviços

Suporta o desenvolvimento incremental de subsistemas em diferentes camadas. Quando a interface de uma camada muda, somente as

camadas adjacentes são afetadas

(20)

Projeto de Arquitetura

Gerenciamento de Versões

Gerenciamento de Objetos

Sistema de Banco de Dados

Estruturação do Sistema – Modelo de Máquina Abstrata – Um Sistema

de Gerenciamento de Versões

(21)

Projeto de Arquitetura

Modelos de Controle

Está relacionado com o o fluxo de controle entre os subsistemas. Complementa os modelos estruturais

Duas abordagens:

Controle Centralizado

 Um subsistema tem toda a responsabilidade de controlar, iniciar e parar os

outros subsistemas

Controle Baseado em Eventos

Cada subsistema pode responder a eventos gerados externamente a partir de outros subsistemas ou ambiente de outros sistemas

(22)

Projeto de Arquitetura

Modelos de Controle – Controle Centralizado

Um subsistema de controle assume a responsabilidade de gerenciar a execução dos outros subsistemas

Dividi-se em duas classes:

Modelo de Retorno de Chamadas

 Conhecido como modelo de sub-rotinas Top-down, onde o controle inicia no

topo de uma hierarquia de sub-rotinas e passa para as rotinas mais baixas. Aplicável a sistemas seqüenciais

Modelo Gerenciador

 Aplicável a sistemas concorrentes. Um componente de sistema controla a

parada, o início e a coordenação de outros processos dos sistemas. Uma variação deste modelo pode também ser implementado em sistemas seqüenciais

(23)

Projeto de Arquitetura

Modelos de Controle – Controle Centralizado – Modelo de Retorno de

Chamadas

Routine 1.2

Routine 1.1 Routine 3.1 Routine 3.2 Routine 2 Routine 3 Routine 1 Main program Programa principal

Rotina 1 Rotina 2 Rotina 3

(24)

Projeto de Arquitetura

Modelos de Controle – Controle Centralizado – Sistema de Tempo Real

System

controller

User

interface

Fault

handler

Computation

processes

Actuator

processes

Sensor

processes

Processos de sensor Processos de atuador Processos computacionais Interfaces com usuário Manipulador de defeitos Controlador de sistema

(25)

Projeto de Arquitetura

Modelos de Controle – Controle Baseado em Eventos

O controle dos subsistemas é baseado em eventos gerados externamente2 principais modelos baseados em eventos:

Modelos de transmissão

 Um evento é transmitido a todos os subsistemas e aqueles que podem

manipular esse evento responderá a ele

Modelos orientados a interrupções:

Usado em sistemas de tempo real, onde interrupções são detectadas por um manipulador de interrupções e repassadas a algum outro componente para processamento

Outros exemplos de modelos são as planilhas de cálculo e sistemas de produção com inteligência artificial

(26)

Projeto de Arquitetura

Modelos de Controle – Controle Baseado em Eventos – Modelo de

Transmissão

Efetivo na integração de subsistemas em diferentes computadores em uma rede

Subsistemas registram interesses em eventos específicos. Quando os eventos ocorrem, o controle é transferido para um subsistema que trata o evento

A política de controle não está no evento ou no manipulador de

mensagens. São os subsistemas que decidem quais eventos são de seu interesse

(27)

Projeto de Arquitetura

Modelos de Controle – Controle Baseado em Eventos – Modelo de

Transmissão – Modelo de Controle com base em Transmissão

Seletiva

Sub-system 1 Eventandmessagehandler Sub-system 2 Sub-s3ystem Sub-s4ystem

Subsistema 1 Subsistema 2 Subsistema 3 Subsistema 4

(28)

Projeto de Arquitetura

Modelos de Controle – Controle Baseado em Eventos – Modelo

Orientado a Interrupções

Usado em sistemas de tempo real, onde respostas rápidas aos eventos e essencial

Existem tipos de interrupções conhecidas com um manipulador definido para cada tipo

Cada tipo de interrupção está associado com uma localização de

memória que contém o endereço do manipulador e, quando ocorre um evento, um comutador de hardware provoca a transferência de controle imediatamente para seu manipulador

Permitem respostas rápidas, mas são necessários programas complexos e difíceis de validar

(29)

Projeto de Arquitetura

Modelos de Controle – Controle Baseado em Eventos – Modelo

Orientado a Interrupções

Handler 1 Handler 2 Handler 3 Handler 4 Process 1 Process 2 Process 3 Process 4 Interrupts Interrupt vector Interrupções Vetor de interrupção Manipulador 1 Manipulador 2 Manipulador 3 Manipulador 4 Processo 1 Processo 2 Processo 3 Processo 4

(30)

Projeto de Arquitetura

Decomposição em Módulos

Depois que uma arquitetura estrutural foi projetada, a decomposição dos subsistemas em módulos é realizada

2 modelos de decomposição modular:

 Um modelo de objetos, onde o sistema é decomposto em objetos que

interagem uns com os outros

 Um modelo de fluxo de dados, onde o sistema é decomposto em modelos

funcionais, que transformam dados de entrada em saídas. Também conhecidos como modelo pipeline

(31)

Projeto de Arquitetura

Decomposição em Módulos – Modelos de Objetos

Estrutura o sistema em um conjunto de objetos fracamente acoplados com interfaces bem definidas

Decomposição orientada a objetos está relacionada com a identificação de classes de objetos, seus atributos e operações

Quando implementados, objetos são criados a partir destas classes e um modelo de controle é usado para coordenar a troca de mensagens entre os objetos

(32)

Projeto de Arquitetura

Decomposição em Módulos – Modelos de Objetos – Sistema de

Processamento de Faturas

issue () sendReminder () acceptPayment () sendReceipt () invoice# date amount customer Invoice invoice# date amount customer# Receipt invoice# date amount customer# Payment customer# name address credit period Customer

(33)

Projeto de Arquitetura

Decomposição em Módulos – Modelos de Fluxo de Dados

Transformações funcionais processam suas entradas e produzem saídasConhecido também como modelo “Pipe and Filter”

Os dados fluem de uma transformação para outra, sendo transformados à medida que se movimentam ao longo da seqüência

(34)

Projeto de Arquitetura

Decomposição em Módulos – Modelos de Fluxo de Dados – Sistema de

Processamento de Faturas

Read issued invoices Identify payments Issue receipts Find payments due Receipts Issue payment reminder Reminders Invoices Payments Faturas Pagamentos Recibos Avisos Ler faturas emitidas Identificar pagamentos Emitir recibos Encontrar Pagamentos devidos Emitir avisos de pagamento

(35)

Projeto de Arquitetura

Arquiteturas de Domínio Específico

Modelos de arquitetura que são específicos de algum domínio de aplicação

 Dois tipos de modelos específicos de domínio

Modelos genéricos, que são abstrações de um conjunto de sistemas

reais e que encapsulam as características principais destes sistemas

Modelos de referência, que são abstrações de modelos idealizados e

abstratos.

Modelos genéricos são geralmente modelos botton-up e os modelos de referência são modelos top-down

(36)

Projeto de Arquitetura

Arquiteturas de Domínio Específico – Modelos Genéricos

São abstrações de um conjunto de sistemas reais e que encapsulam as características principais destes sistemas

 O modelo de compilador é um ótimo exemplo:

Analisador Léxico  Tabela de Símbolos  Analisador SintáticoÁrvore Sintática  Analisador SemânticoGerador de Código

O modelo do compilador genérico podem ser organizado em diferentes modelos arquiteturais

(37)

Projeto de Arquitetura

Arquiteturas de Domínio Específico – Modelos Genéricos – Fluxo de Dados

de um Compilador

Lexical

analysis

Syntactic

analysis

Semantic

analysis

Code

generation

Symbol

table

Tabela de símbolos Análise léxica Análise sintática Análise semântica Geração de código

(38)

Projeto de Arquitetura

Arquiteturas de Domínio Específico – Modelos Genéricos – Modelo de

Repositório de um Sistema de Processamento de Linguagens

Syntax analyser Lexical analyser Semantic analyser Abstract syntax tree Grammar definition Symbol table Output definition Pretty-printer Editor Optimizer Code generator RepositoryRepositório Árvore de sintaxe abstrata Definição gramatical Tabela de símbolos Definição de saída Editor Impressora Analisador léxico Analisador sintático Analisador semântico Otimizador Gerador de código

(39)

Projeto de Arquitetura

Arquiteturas de Domínio Específico – Arquiteturas de Referência

Modelos de referência são derivados do estudo de um domínio de aplicação ao invés de sistemas existentes

Pode ser usado como uma base para implementação de sistemas ou para comparar sistemas diferentes. Agem como padrões contra os quais os sistemas podem ser avaliados

(40)

Projeto de Arquitetura

Arquiteturas de Domínio Específico – Arquiteturas de Referência –

Modelo de Referência OSI

A

pplication

Presentation

Session

Transport

N

etw

ork

D

ata link

Physical

7

6

5

4

3

2

1

Comm

unications medium

N

etw

ork

D

ata link

Physical

A

pplication

Presentation

Session

Transport

N

etw

ork

D

ata link

Physical

Meios de comunicação

Física Física Física

Ligação Ligação Ligação

Rede Rede Rede

Transporte Transporte

Sessão Sessão

Apresentação Apresentação

(41)

Projeto de Arquitetura

Bibliografia

Sommerville, Ian. Engenharia de Software, 6a. edição. Addison Wesley, 2004

(42)

Projeto de Arquitetura

Referências

Documentos relacionados

Estes resultados apontam para melhor capacidade de estabelecimento inicial do siratro, apresentando maior velocidade de emergência e percentual de cobertura do solo até os 60

Entendendo, então, como posto acima, propõe-se, com este trabalho, primeiramente estudar a Lei de Busca e Apreensão para dá-la a conhecer da melhor forma, fazendo o mesmo com o

A variação do pH da fase móvel, utilizando uma coluna C8 e o fluxo de 1,2 mL/min, permitiu o ajuste do tempo de retenção do lupeol em aproximadamente 6,2 minutos contribuindo para

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Little e Amyra El Khalili; também foi dissertado sobre a Agroecologia, entendida como um caminho para uma agricultura mais sustentável; sobre a ciência homeopatia e sua aplicação

Pode haver alguns acordos prévios, como visto na classificação proposta em trabalho anterior (GUERRERO, 2006), mas estes são propostos sempre mantendo elevado

4 RESULTADOS E DISCUSSÃO 4.1 Caracterização da cobertura florestal e da biodiversidade vegetal no entorno dos cultivos de tomate na região de Apiaí-SP a Módulos