View
214
Download
1
Category
Preview:
Citation preview
Introdução à Arquitetura de Software
Virgínia C. C. de Paula - DIMAp/UFRN - DI/UFPE
Nelson Souto Rosa - DI/UFPE
Paulo R. F. Cunha - DI/UFPE
2XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Agenda
Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências
3XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Introdução
Contexto
Arquitetura de Software
Pontos básicos Tópicos de pesquisa
HistóricoAS como disciplina
ADLs
Estilos
Formalização Novas ADLs
Arquiteturas convergentes
Ferramentas
Engenharia de Software
Desenvolvimentobaseado em arquiteturaEstilos
Engenharia de requisitos ...
4XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Introdução
Motivação
A estrutura do software é importante, e adotar a estrutura correta pode trazer
benefícios
O aumento do tamanho e da complexidade dos softwares
5XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Introdução
Motivação
A importância da Arquitetura de Software para os projetistas de software nos anos 90 é comparável a importância das estruturas de dados para os programadores nos anos 60
6XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Introdução
Histórico– Dijkstra, 1968
• particionamento • estruturação do software
– Parnas, 1970-2• família de programas• estrutura do software
– DeRemer, 1975• Programming-in-the-small X Programming-in-the
large
7XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Introdução
Histórico– 1970-80
• Componentes de um compilador– 1980
• Divisão em camadas das pilhas de protocolos
8XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Agenda
Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências
9XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Sobre o termo Arquitetura de Software Disciplina
área emergente da ES aborda as questões ligadas à estrutura do software
Estrutura do software
várias definições nenhuma aceita como padrão semelhanças no núcleo das definições e diferenças nas características adicionais
10XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Definição 1
“Uma arquitetura de software deve conter: a definição dos elementos de projeto que
compõe o software; a descrição das interações entre estes elementos; os
padrões de composição dos elementos; e um conjunto de restrições sobre estes
padrões.” [Shaw 96]
11XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Definição 2
“A descrição da arquitetura de software é um passo intermediário entre a análise de
requisitos e o projeto. Esta descrição consiste de elementos arquiteturais, as interações entre estes elementos, e as
restrições sobre estes elementos e sobre as suas interações.” [Perry 92]
12XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Definição 3
“Uma arquitetura de software é um conjunto de componentes genéricos junto com uma descrição de propriedades, regras
de como estes componentes podem interagir, e estilo de interação destes
componentes.” [Jackson 95]
13XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Definição 4
“Arquitetura de software é a estrutura de um programa ou um sistema, seus
relacionamentos e os princípios que guiam o seu projeto e a sua evolução
no tempo.” [Garlan 95]
14XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Pontos comuns
“elementos arquiteturais” “elementos de projeto” “componentes genéricos”
“estrutura”
“interações” “interagir”
Componentes
Conectores
Configuração
15XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Modelos– Perry, 1992
• elementos – processamento, armazenamento, interação
• forms – conjunto de propriedades dos elementos e dos
relacionamentos
• rationale – “justificativa” para os elementos e forms
16XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Modelos– Shaw, 1996
• componentes• conectores• configuração
17XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Componente– modela a computação e o armazenamento de
informações
– desenvolvido independentemente
– exemplos de componentes• cliente• servidor• aplicação inteira
18XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Conector
– modela as interações entre os componentes
– desenvolvido independentemente
– exemplos de conectores
• protocolos de comunicação
19XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Configuração – topologia
– composição
– conjunto de componentes combinados usando-se os conectores
– grafo de componentes e conectores ligados, descrevendo uma estrutura arquitetural
20XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Visão de uma Arquitetura de Software
Componente
Conector
Configuração
21XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Componentes e formas de interação
Módulo Chamada de procedimento Dados compartilhados Objeto Invocação de método Filtro Fluxo de dados ( pipe ) Processo Passagem de mensagem, RPC Arquivo de dados Leitura e escrita Base de dados Consulta
Componentes Tipos de interação
22XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Software X Hardware
número pequeno de elementos de projeto mudança de escala com a replicação dos elementos de projeto ênfase na organização e configuração
Arquitetura de Hardware
grande número de elementos de projeto mudança de escala com a adição de novos elementos de projeto ênfase na organização e configuração
Arquitetura de Software
23XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Software X Rede
nós conexões poucas topologias
Arquitetura de Rede
componentes conectores muitas topologias
Arquitetura de Software
24XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Software X Construção
visões enfatizando diferentes aspectos da construção restrição sobre os elementos de projeto e a composição estreita relação entre o estilo arquitetural e os princípios de engenharia a relação entre o estilo e o material utilizado para a construção é fundamental
Arquitetura de Construção
visões para diferentes usos e usuários estilos arquiteturais
princípios de engenharia e estilo arquitetural
implementação ( algoritmos e estrutura de dados que satisfazem a arquitetura )
Arquitetura de Software
25XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Sobre Arquitetura de Software– descrição mais abstrata no ciclo de vida do
software
– suprime detalhes da implementação
– Arquitetura de Software sempre existiu, mas era implícita
26XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Sobre Arquitetura de Software– separação de interesses
• funcionalidade• interação
Funcionalidadee
Interação
Funcionalidade Interação
27XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Sobre Arquitetura de Software– define aspectos estruturais importantes
– fornece uma base para as outras fases de desenvolvimento do software
– a arquitetura é normalmente descrita usando-se linhas e caixas de diagramas acompanhados por uma descrição textual
28XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Desenvolvimento de software
Análise de requisitos
Arquitetura
Projeto
Análise de requisitos
Implementação
Análise do domínio
Desenvolver / escolher a arquitetura
Representação da arquitetura
Projeto
Implementação
Desenvolvimento tradicional Desenvolvimento baseado em arquitetura
Análise e avaliação da arquitetura
29XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Arquitetura X Projeto
componentes e conectores restrições sobre componentes e conectores composição de componentes
Arquitetura
procedimentos e interfaces algoritmos e estruturas de dados composição procedural
Projeto
30XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Por que definir uma Arquitetura de Software?
– reuso de elementos de projeto permitindo
maior rapidez na construção do software
– definindo-se uma arquitetura é possível
predizer algumas características do software
31XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Por que definir uma Arquitetura de Software?
– facilita a comunicação entre os
desenvolvedores do software
– permite um entendimento maior da evolução
do software
32XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Arquitetura de software
Por que definir uma Arquitetura de Software?– possibilidade de análise da descrição da
arquitetura nas fases iniciais do desenvolvimento• consistência da configuração, componentes e
conectores• completude• propriedades não funcionais• conformidade com um determinado estilo
33XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Agenda
Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências
34XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais
Sobre o termo Estilo arquitetural
– padrão organizacional
– padrão arquitetural
– padrão idiomático
– padrão de organização estrutural
– idioma arquitetural
35XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais Definição
“Um estilo arquitetural consiste de um vocabulário de elementos de projeto, um conjunto de regras de configuração, uma interpretação semântica da composição dos elementos, e um conjunto de análises
que podem ser executadas sobre um sistema construído em um determinado estilo.”
[Garlan 95]
36XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais Vocabulário
– idioma de projeto
– restringe os elementos arquiteturais que podem ser utilizados em uma descrição de arquitetura
– elementos arquiteturais• componentes • conectores
37XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais Regras de configuração
– restrições topólogicas
– restrigem as composições dos elementos
arquiteturais
• proibição de ciclos no estilo Fipe-filter
• relacionamento n-para-1 no estilo Cliente-
servidor
38XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais
Análise– verificação de propriedades
• ausência de deadlock em um estilo Cliente-servidor
Interpretação semântica– a composição dos elementos de projeto
precisa de uma semântica bem definida
39XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais Sobre Estilo Arquitetural
– uso ad hoc• “Camelot é baseado no modelo Cliente-servidor e usa
RPC para comunicação remota e local dos clientes e servidore” [Spector 87]
– define uma família e não apenas um sistema– explora os pontos comuns entre famílias de sistemas
e ignora detalhes específicos– a construção de compiladores é o primeiro exemplo
do uso de estilos
40XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais Sobre Estilo Arquitetural
– a descrição da arquitetura é uma instância de um estilo
– exemplos• Cliente-servidor• Pipe-filter• Objetos• Invocação implícita• Camadas, repositórios
41XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais
Sobre Estilo Arquitetural
Arquitetura de software
Servidor
Cliente
Cliente
Cliente
Request-reply
Estilo Cliente-servidor
42XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais
Sobre Estilo Arquitetural
Arquitetura de software
Central
Fonte
Fonte
Fonte
Estilo Blackboard
43XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais
Sobre Estilo Arquitetural
Arquitetura de software
Filtro
Filtro
Filtro
Filtro
Pipe
Estilo Pipe-Filter
44XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais
Sobre Estilo Arquitetural
Arquitetura de software
Filtro
Filtro
Filtro
Filtro
Pipe
Estilo Pipe-Filter
45XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Estilos arquiteturais Por que definir estilos arquiteturais?
– reuso de projetos
– reuso de código
– o uso de estruturas convencionais facilita o entendimento da arquitetura• “cliente-servidor”
– a restrição do espaço de projeto permite análises mais especializadas para os estilos
46XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Agenda
Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências
47XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
ADL - Architecture Description Language O que podemos esperar de uma linguagem
para descrição de arquitetura de software? – ênfase em estruturas de alto nível em oposição
a detalhes de implementação
48XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Como uma ADL se relaciona com outras linguagens?
Linguagens deRequisitos
Linguagem deRequisitos
Linguagens deProgramação
Linguagens deModelagem
49XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
ADLs e outras linguagens
vinculam abstrações arquiteturais à soluções específicas
Linguagens de Programação
representam trechos de comportamento para facilitar a apresentação dos requisitos, adequando-se a representação de componentes arquiteturais têm enfoque no problema
Linguagens de Requisitos
50XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
ADLs e outras linguagens
enfatizam o comportamento do todo ao invés do comportamento das partes podem representar componentes cooperativos e representam arquiteturas razoavelmente bem
Linguagens de Modelagem
intencionalmente, suprimem o vínculo de abstrações com soluções específicastêm enfoque na solução concentram-se na representação das partes
ADLs
51XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Propriedades desejáveis de uma ADL– Composição
• divisão hierárquica de um sistema complexo em partes menores
– Abstração• explicitar a estrutura de mais alto nível
– Reusabilidade• componentes, conectores e padrões de
arquitetura
52XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Propriedades desejáveis de uma ADL– Configuração
• separação da descrição de estruturas compostas da descrição dos elementos dessas composições
– Análise• permite verificar propriedades dos sistemas,
especialmente referentes a Arquiteturas Dinâmicas
Arquiteturas dinâmicas são aquelas que permitem evolução da estrutura
de um sistema durante sua execução.
53XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Propriedades desejáveis de uma ADL
– Heterogeneidade
• habilidade para combinar diferentes padrões
arquiteturais em um mesmo sistema
• possibilidade de combinar componentes
escritos em linguagens diferentes
54XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Propriedades desejáveis de uma ADL– habilidade para representar componentes
(primitivos ou compostos)
– habilidade para representar conectores
– abstração e encapsulamento
– tipos e checagem de tipos
– permitir a construção de ferramentas de análise
55XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Propriedades desejáveis de uma ADL
– abstração de componentes
– abstração de comunicação
– integridade de comunicação
• a comunicação é limitada a componentes
conectados arquiteturalmente a outros
– habilidade de modelar arquiteturas dinâmicas
56XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Propriedades desejáveis de uma ADL
– habilidade de ter intuição sobre causa e tempo
– suporte a refinamento hierárquico
– relatividade
• mapeamento de comportamentos para
arquiteturas diferentes (checagem de
conformidade)
57XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Generalidade das ADLs – instâncias arquiteturais
• projetadas para descrever sistemas específicos– estilos arquiteturais
• projetadas para descrever padrões de estruturas de arquitetura
– arquiteturas em geral• procuram dar significado à questões de
arquitetura e as formas como abstrações arquiteturais permitem análise de projeto.
58XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de componentes– conceitos diferentes em cada ADL
• MetaH – um programa
• C2 – uma aplicação inteira (componentes hierárquicos)
– interfaces de componentes• pontos de interação com o ambiente externo• permitem a percepção da semântica dos
componentes– serviços oferecidos– portas de comunicação
59XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de componentes– componentes como tipos para serem reusados– uso explícito de parametrização
• ACME, Darwin e Rapide
– semântica dos componentes permite análise do comportamento, estabelecimento de restrições e mapeamento consistente de um nível para outro da arquitetura
60XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de componentes– restrições podem ser definidas por uma
linguagens específica– componentes podem evoluir
• subtipagem de componentes• refinamento
A maioria das ADLs não oferece suporte à evolução.
61XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de componentes– especificação de propriedades não-funcionais
• permite simulação do comportamento em tempo de execução
• análise dos componentes• verificação de restrições• auxilia no gerenciamento do projeto
A maioria das ADLs não oferece suporte à especificação de propriedades não-funcionais.
62XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de conectores– não necessariamente corresponde a uma
unidade de compilação em uma implementação
– podem ser modelados explicitamente• possuem interface própria
63XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de conectores
– podem ser modelados como entidades de
primeira classe
• tipos ou instâncias
• estabelecer restrições de uso via interface
• suportar evolução
64XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de conectores– ADLs podem fornecer protocolos de
conectores e semântica de transações.• análise sobre as interações• verificação de restrições
A maioria das ADLs não oferece suporte à evolução e à especificação de propriedades não-funcionais.
65XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de configurações– a estrutura de um sistema deve, idealmente,
permitir que a especificação da configuração seja compreendida sem se conhecer os componentes e os conectores
– descrição de configurações permite estimar aspectos concorrentes e distribuídos de uma arquitetura
66XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de configurações– ADLs podem modelar evolução e dinamismo das
configurações– suporte à composição hierárquica é fundamental
em uma ADL– em algumas ADLs uma configuração é modelada
simplesmente como um componente composto• Darwin• UniCon• CL
67XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de configurações– heterogeneidade
• uma configuração deve idealmente lidar com componentes e conectores programados em diversas linguagens
– a especificação de restrições é fundamental para descrever dependências entre componentes e conectores
– Uma ADL deve permitir refinamento da arquitetura
68XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Modelagem de configurações– devem suportar especificação e
desenvolvimento de sistemas que possam sofrer alterações durante sua execução.
• C2• Darwin• Rapide• ZCL
69XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
ACME– tentativa de definir um denominador comum
através de uma linguagem de intercâmbio para arquitetura de software
– modela• componentes• conectores• sistemas (configurações)
70XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
ACME– propriedades
• Portas– pontos de interação
• Roles– especifica o papel desempenhado por cada
participante de uma interação
71XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
ACME– propriedades
• Representações– cada detalhamento de uma estrutura hierárquica
• Rep-maps (represention maps)– indica a correspondência entre a representação
interna de um sistema e a interface externa do componente ou conector
72XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Exemplo CL - descrição textual
O sistema de monitoramento de pacientes consiste de medições periódicas ou por solicitação de
pulso, temperatura e pressão através de sensores colocados no paciente. Tais sensores disparam um alarme sempre que qualquer das medições
atingirem valores não adequados.
Sistema de Monitoramento de Pacientes
73XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Exemplo CL - representação gráfica
Paciente
estado
alarmealarme
estado
Enfermeira
Hospital
74XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Linguagens de descrição de arquitetura
Exemplo CL - descrição CLsystem hospital begin
use task enfermeira, paciente; create cama from paciente; create cuidado from enfermeira ; link cama.alarme to
cuidado.alarme; link cuidado.estado to cama.estado; activate cuidado, cama; end.
75XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Agenda
Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências
76XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Exemplo
Sistema de Informação da Internet ( SII )– sistemas usados para busca de informações na
Internet
– exemplos• Gopher• WAIS• Archie / Prospero• WWW
77XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Exemplo
World-Wide Web“WWW é um sistema hipermídia distribuído organizado como um conjunto de clientes e
servidores que compartilham um conjunto comum de protocolos de comunicação. Os servidores
disponibilizam recursos para uma comunidade de clientes que usam o HTTP (HyperText Transfer
Protocol)”
78XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Exemplo
Componentes do servidor– servidor HTTP– resolvedor de caminho
• permite determinar o arquivo que está sendo requisitado
– gerenciador de streams• gerencia a comunicação com a rede
– gerenciador de interface• interface para mostrar os resultados das solicitações
dos usuário
79XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Exemplo
Componentes do cliente– gerenciador de acesso
• formula as solicitações de acordo com o protocolo utilizado
– gerenciador de protocolo• faz o mapeamento entre os vários protocolos
( HTTP, NNTP, FTP, Gopher ) e o gerenciador de acesso
80XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Exemplo
Componentes do cliente
– gerenciador de streams
• trata as comunicações de rede
– gerenciador de cache
• mantém uma cópia local das informações
solicitadas
81XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Exemplo
Arquitetura
CGI
Sistema de Arquivos
Ger. InterfaceUsuário
Ger. Acesso
Ger. Protocolos
Ger.Cache
Ger. Streams
Protocolos
Cliente Servidor
Resolvedor decaminho
Ger. Streams
Servidor HTTP
82XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Exemplo
Estilo arquitetural– vocabulário
• processo• componente computacional• repositório de dados passivo• repositório de dados ativo
– conector• fluxo de dados bi e uni direcional• fluxo de controle bi e uni direcional
83XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Agenda
Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências
84XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
ADLs e arquiteturas dinâmicas– arquiteturas dinâmicas são aquelas que
permitem evolução da estrutura de um sistema durante sua execução
– geralmente descrevem sistemas críticos e de longa vida
– as mudanças devido à evolução do sistema normalmente são descritas no nível de configuração
85XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
ADLs e arquiteturas dinâmicas– adição de novos componentes
86XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
ADLs e arquiteturas dinâmicas– substituição de um componente existente por
um outro de mesma assinatura.
87XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
ADLs e arquiteturas dinâmicas– remoção de componentes desnecessários.
88XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
ADLs e arquiteturas dinâmicas– reconfiguração da arquitetura
89XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
ADLs e arquiteturas dinâmicas
– pode ser necessário mover um componente de
uma máquina para outra. A arquitetura deve dar
suporte a modificações no mapeamento dos
componentes para os processadores.
– ADLs que suportam dinamismo: C2, Darwin,
Rapide e ZCL.
90XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
Formalização de arquitetura de software– modelo de Abowd, Allen e Garlan
– definição de estilos• domínio sintático
– componentes, conectores e configurações
• mapeamento do domínio sintático para o modelo semântico do estilo
91XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
Formalização de arquitetura de software– inicialmente foi proposto um modelo para
MILs, incorporando elementos essenciais e operações como esquemas genéricos em Z• o modelo inicial foi estendido formando o
Architectural Style Description Language (ASDL)– Semântica de componentes e interacões– Estruturas hierárquicas– Arquiteturas estáticas
92XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
Formalização de arquitetura de software– Modelo Wright
• descrição da arquitetura com base na descrição formal do comportamento abstrato de componentes e conectores
• comportamento dos componentes especificado em CSP
• é possível descrever aplicações e estilos
93XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
Formalização de arquitetura de software
– Modelos formais que suportam dinamismo
• Darwin
• Allen, Douence e Garlan
• ZCL
94XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
Formalização de estilos– comparar estilos– relacionar sistemas desenvolvidos em
diferentes estilos– desenvolver ferramentas para explorar estilos– combinar estilos para formar um novo
Desenvolvimento de software baseado em arquitetura
95XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil
Tendências
ADLs de alto nível Desenvolvimento de arquiteturas para
domínios específicos Integração de ADLs com metodologias de
projeto padrões
Recommended