Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.
Transcript of Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.
![Page 1: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/1.jpg)
Arquitetura de Software
Universidade Federal de Pernambuco Centro de InformáticaRecife - Brazil
![Page 2: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/2.jpg)
Introdução
Raízes da disciplina Dijkstra, 1968
particionamento
estruturação
não só a programação
Parnas, 1970 - 1972 estruturação
famílias de programas
– economia no desenvolvimento e na manutenção
![Page 3: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/3.jpg)
Introdução
Raízes da disciplina
DeRemmer, 1975
programming-in-the-large : programação da estrutura
comum em sistemas distribuídos
programming-in-the-small: programação das “funções” do
sistema
uso comum (C, Pascal)
![Page 4: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/4.jpg)
Introdução
Idéias fundamentais da Arquitetura de Software
Estrutura é o ponto chave
Reusabilidade de elementos de “grande escala”
A orientação a objetos reusa elementos de
“pequena escala”
![Page 5: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/5.jpg)
Introdução
Motivação problemas
aumento do tamanho dos softwares aumento na complexidade dos softwares
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
![Page 6: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/6.jpg)
Introdução
Vantagens
sistemas podem ser construídos rapidamente
reusando-se ou gerando-se grandes componentes
desenvolvidos independentemente
predizer qualidades (desempenho,
mantenabilidadde) do sistema a partir de sua
arquitetura, sem um projeto ou um código detalhado
![Page 7: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/7.jpg)
Introdução
Vantagens comunicação
decisões de projeto nas fases iniciais
restrições sobre a implementação
predizer atributos de qualidade
base para treinos de iniciantes
visão do sistema e das mudanças
transferência de conhecimento
linhas de produtos
![Page 8: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/8.jpg)
Princípios
Termo
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
![Page 9: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/9.jpg)
Princípios
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.”
![Page 10: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/10.jpg)
Princípios
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.”
![Page 11: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/11.jpg)
Princípios
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.”
![Page 12: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/12.jpg)
Princípios
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.”
![Page 13: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/13.jpg)
Princípios
Modelos
Perry & Wolf, 1992
elementos
– processamento, armazenamento, interação
formas
– propriedades dos elementos
rationale
– restrições de composição dos elementos
![Page 14: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/14.jpg)
Princípios
Modelos
Shaw & Garlan, 1996
Componentes
Conectores
Configuração
![Page 15: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/15.jpg)
Princípios
Componentes
modela a computação e o armazenamento de informações
desenvolvido independentemente
exemplos de componentes
cliente
servidor
aplicação inteira
![Page 16: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/16.jpg)
Princípios
Conectores
modela as interações entre os componentes
desenvolvido independentemente
exemplos de conectores
protocolos de comunicação
![Page 17: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/17.jpg)
Princípios
Configuração
topologia
composição
conjunto de componentes combinados usando-se os
conectores
grafo de componentes e conectores ligados,
descrevendo uma estrutura arquitetural
![Page 18: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/18.jpg)
Princípios
Visão de uma Arquitetura de Software
C++Java
C
Componente
Conector
Configuração
![Page 19: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/19.jpg)
Princípios
Componentes e formas de interação
Módulos Chamada de procedimento Dados compartilhados Objetos Invocação de método Filtros Fluxo de dados ( pipe ) Processos Passagem de mensagem, RPC Arquivo de dados Leitura e escrita Base de dados Consulta
Componentes Tipos de interação
![Page 20: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/20.jpg)
Princípios
Módulos
Módulo
Módulo
Módulo
Chamada de Procedimento
![Page 21: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/21.jpg)
Princípios
Objetos
Objeto
Objeto
Objeto
Invocação de método
![Page 22: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/22.jpg)
Princípios
Programas e funções
funções
ProgramaPrincipal
funções
funções
funções
Chamada de função
![Page 23: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/23.jpg)
Princípios
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
![Page 24: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/24.jpg)
Princípios
Software X Redes de Computadores
nós conexões poucas topologias
Arquitetura de Rede
componentes conectores muitas topologias
Arquitetura de Software
![Page 25: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/25.jpg)
Princípios
Software X Arquitetura de 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 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
![Page 26: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/26.jpg)
Princípios
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
![Page 27: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/27.jpg)
Princípios
Sobre Arquitetura de Software separação de interesses
funcionalidade interação
Arquitetura de Software separa claramente a funcionalidade (componentes) da interação (conectores)
![Page 28: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/28.jpg)
Princípios
Sobre Arquitetura de Software
Funcionalidade+interação
interaçãoFuncionalidade
![Page 29: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/29.jpg)
Princípios
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
![Page 30: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/30.jpg)
Princípios
Desenvolvimento de software
Implementação Implementação
Desenvolvimento tradicional Desenvolvimento baseado em arquitetura
Arquitetura
Análise do domínio
Desenvolver / escolher a arquitetura
Representação da arquitetura
Análise e avaliação da arquitetura
Análise de requisitos Análise de requisitos
Projeto Projeto
![Page 31: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/31.jpg)
Princípios
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
![Page 32: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/32.jpg)
Princípios
Por que definir uma Arquitetura?
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
![Page 33: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/33.jpg)
Princípios
Por que definir uma Arquitetura?
facilita a comunicação entre os desenvolvedores do
software
permite um entendimento maior da evolução do
software
![Page 34: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/34.jpg)
Princípios
Por que definir uma Arquitetura?
possibilidade de análise da descrição da arquitetura
nas fases iniciais do desenvolvimento
consistência da configuração, componentes e conectores
propriedades não funcionais
conformidade com um determinado estilo
![Page 35: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/35.jpg)
Estilos Arquiteturais
Termo
padrão organizacional
padrão arquitetural
padrão idiomático
padrão de organização estrutural
idioma arquitetural
![Page 36: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/36.jpg)
Estilos Arquiteturais
Termo
“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.”
![Page 37: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/37.jpg)
Estilos Arquiteturais
Termo
Vocabulário
idioma de projeto
restringe os elementos arquiteturais que podem ser
utilizados em uma descrição de arquitetura
elementos arquiteturais:
componentes , conectores
![Page 38: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/38.jpg)
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
![Page 39: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/39.jpg)
Estilos Arquiteturais
Análise
verificação de propriedades
ausência de impasses em um estilo Cliente-servidor
![Page 40: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/40.jpg)
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
servidores”
![Page 41: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/41.jpg)
Estilos Arquiteturais
Sobre estilo arquitetural
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
![Page 42: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/42.jpg)
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
![Page 43: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/43.jpg)
Estilos Arquiteturais
Arquitetura de software
Servidor
Cliente
Cliente
Cliente
Request-reply
Estilo Cliente-servidor
![Page 44: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/44.jpg)
Estilos Arquiteturais
Arquitetura de software
Pipe
Filtro
Filtro
Filtro
Estilo Pipe-Filter
![Page 45: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/45.jpg)
Estilos Arquiteturais
Arquitetura de software
Pipe
Filtro
Filtro
Filtro
Estilo Pipe-Filter
![Page 46: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/46.jpg)
Estilos Arquiteturais
Por que definir estilos
reuso de projetos
reuso de código
o uso de estruturas convencionais facilita o
entendimento da arquitetura
“cliente-servidor”
![Page 47: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/47.jpg)
Estilos Arquiteturais
Por que definir estilos
a restrição do espaço de projeto permite análises
mais especializadas para os estilos
“menos é mais”
![Page 48: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/48.jpg)
Linguagem 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
![Page 49: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/49.jpg)
Linguagem de Descrição de Arquitetura
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
![Page 50: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/50.jpg)
Linguagem de Descrição de Arquitetura
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
![Page 51: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/51.jpg)
Linguagem de Descrição de Arquitetura
Heterogeneidade
habilidade para combinar diferentes padrões arquiteturais
em um mesmo sistema
possibilidade de combinar componentes escritos em
linguagens diferentes
![Page 52: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/52.jpg)
Linguagem de Descrição de Arquitetura
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
![Page 53: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/53.jpg)
Linguagem de Descrição de Arquitetura
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
![Page 54: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/54.jpg)
Linguagem de Descrição de Arquitetura
Modelagem de componentes
conceitos diferentes em cada ADL MetaH
– um programa
C2
– uma aplicação inteira (componentes hierárquicos)
Wright
– componente
![Page 55: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/55.jpg)
Linguagem de Descrição de Arquitetura
Modelagem de componentes
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
![Page 56: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/56.jpg)
Linguagem de Descrição de Arquitetura
Modelagem de componentes
componentes como tipos para serem reusados
uso explícito de parametrização
ACME, Darwin e Rapide
![Page 57: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/57.jpg)
Linguagem de Descrição de Arquitetura
Modelagem de componentes
restrições podem ser definidas por uma linguagem
específica
componentes podem evoluir
subtipagem de componentes
refinamento
![Page 58: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/58.jpg)
Linguagem 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
![Page 59: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/59.jpg)
Linguagem 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
![Page 60: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/60.jpg)
Linguagem 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
![Page 61: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/61.jpg)
Linguagem 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 detalhes internos
dos componentes e os conectores
![Page 62: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/62.jpg)
Linguagem de Descrição de Arquitetura
Modelagem de configurações
descrição de configurações permite estimar
aspectos concorrentes e distribuídos de uma
arquitetura
ADLs podem modelar evolução e dinamismo das
configurações
![Page 63: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/63.jpg)
Linguagem de Descrição de Arquitetura
Modelagem de 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
![Page 64: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/64.jpg)
Linguagem de Descrição de Arquitetura
Modelagem de configurações
heterogeneidade
uma configuração deve idealmente lidar com componentes
e conectores programados em diversas linguagens
![Page 65: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/65.jpg)
Linguagem de Descrição de Arquitetura
Modelagem de configurações
a especificação de restrições é fundamental para
descrever dependências entre componentes e
conectores
Uma ADL deve permitir refinamento da arquitetura
![Page 66: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/66.jpg)
Linguagem 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
Wright
![Page 67: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/67.jpg)
Linguagem de Descrição de Arquitetura
Exemplo - Sistema de Monitoramento de Pacientes
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.
![Page 68: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/68.jpg)
Linguagem de Descrição de Arquitetura
Exemplo
Paciente
estado
alarmealarme
estado
Enfermeira
Hospital
![Page 69: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/69.jpg)
Linguagem de Descrição de Arquitetura
Exemplo - CL
system 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.
![Page 70: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/70.jpg)
Linguagem de Descrição de Arquitetura
Wright Componentes
interface (portas)
computação (comportamento)
Conectores Role (comportamento de um único participante)
Glue (comportamento completo)
Configuração componentes + conectores
![Page 71: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/71.jpg)
Linguagem de Descrição de Arquitetura
Exemplo - pipe-filter
Este sistema lê um conjunto caracteres e transforma-os em caracteres maiúsculos
![Page 72: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/72.jpg)
Linguagem de Descrição de Arquitetura
Exemplo - pipe-filter
UpperCaseinput output
Mergeleft
right
Split
left
right
![Page 73: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/73.jpg)
Linguagem de Descrição de Arquitetura
Exemplo - pipe-filter
Component SplitFilter port input [entrada de dados] port left [porta de saída para o UpperCase] port right [porta de saída para o Merge] computation [lê dados e envia-os para as portas de saída]
Splitleft right
![Page 74: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/74.jpg)
Linguagem de Descrição de Arquitetura
Exemplo - pipe-filter
Connector Pipe role Source [envia dados repetidamente] role Sink [recebe dados repetidamente] glue right [Sink recebe dados na mesma ordem
que foram enviados por Source]
UpperCaseinput output
![Page 75: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/75.jpg)
Linguagem de Descrição de Arquitetura
Configuration CapitaliseComponent UpperCase ...Component MergeFilter ...Component SplitFilter ...Connector Pipe ...Instances
Split : SplitFilterUpper: UpperCaseMarge: MergeFilterP1, P2, P3 : Pipe
Attachments Split.left as P1.Source
Upper.input as P1.SinkSplit.right as P2.SourceMerge.right as P2.SinkUpper.output as P3.SourceMerge.left as P3.Sink
End Capitalise.
Componentes
Conector
Instanciação
Configuração
![Page 76: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/76.jpg)
Linguagem de Descrição de Arquitetura
Exemplo - incluindo comportamento
A Bout in
C
A||C||B
{a} {a,c} {b,c}
![Page 77: Arquitetura de Software Universidade Federal de Pernambuco Centro de Informática Recife - Brazil.](https://reader036.fdocumentos.tips/reader036/viewer/2022070311/552fc142497959413d8df5fc/html5/thumbnails/77.jpg)
Linguagem de Descrição de Arquitetura
Configuration ABCComponent A-Type
Port Out =a Out � Computation = Out.a Computation �
Component B-Type Port In = c In � Computation = In.c b Computation �
Connector C-TypeRole Origin = a Origin � Role Target = c Target � Glue Origin = Origin.a Target.c Glue �
InstancesA : A-TypeB : B-TypeC : C-Type
AttachmentsA.Out as C.OriginB.In as C.Target
End ABC.