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 Agenda Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 2 Introdução Contexto Engenharia de Software Arquitetura de Software Engenharia de requisitos Pontos básicos Tópicos de pesquisa Formalização Histórico Novas ADLs AS como disciplina ADLs Estilos XII SBES ... Arquiteturas convergentes 13-16 de Outubro de 1998 Ferramentas Estilos Desenvolvimento baseado em arquitetura Maringá - Paraná - Brasil 3 Introdução Motivação O aumento do tamanho e da complexidade dos softwares A estrutura do software é importante, e adotar a estrutura correta pode trazer benefícios XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 4 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 5 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-inthe large XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 6 Introdução Histórico – 1970-80 • Componentes de um compilador – 1980 • Divisão em camadas das pilhas de protocolos XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 7 Agenda Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 8 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 9 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] XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 10 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] XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 11 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] XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 12 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] XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 13 Arquitetura de software Pontos comuns Componentes “elementos arquiteturais” “elementos de projeto” “componentes genéricos” Conectores “interações” “interagir” Configuração “estrutura” XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 14 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 15 Arquitetura de software Modelos – Shaw, 1996 • componentes • conectores • configuração XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 16 Arquitetura de software Componente – modela a computação e o armazenamento de informações – desenvolvido independentemente – exemplos de componentes • cliente • servidor • aplicação inteira XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 17 Arquitetura de software Conector – modela as interações entre os componentes – desenvolvido independentemente – exemplos de conectores • protocolos de comunicação XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 18 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 19 Arquitetura de software Visão de uma Arquitetura de Software Componente Conector Configuração XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 20 Arquitetura de software Componentes e formas de interação Componentes Módulo Objeto Filtro Processo Arquivo de dados Base de dados XII SBES Tipos de interação Chamada de procedimento Dados compartilhados Invocação de método Fluxo de dados ( pipe ) Passagem de mensagem, RPC Leitura e escrita Consulta 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 21 Arquitetura de software Software X Hardware Arquitetura de Hardware Arquitetura de Software 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 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 22 Arquitetura de software Software X Rede Arquitetura de Rede Arquitetura de Software nós conexões poucas topologias componentes conectores muitas topologias XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 23 Arquitetura de software Software X Construção Arquitetura de Construção Arquitetura de Software 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 visões para diferentes usos e usuários estilos arquiteturais XII SBES 13-16 de Outubro de 1998 princípios de engenharia e estilo arquitetural implementação ( algoritmos e estrutura de dados que satisfazem a arquitetura ) Maringá - Paraná - Brasil 24 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 25 Arquitetura de software Sobre Arquitetura de Software – separação de interesses • funcionalidade • interação Interação Funcionalidade XII SBES Funcionalidade e Interação 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 26 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 27 Arquitetura de software Desenvolvimento de software Desenvolvimento tradicional Desenvolvimento baseado em arquitetura Análise de requisitos Análise de requisitos Análise do domínio Desenvolver / escolher a arquitetura Arquitetura Representação da arquitetura Análise e avaliação da arquitetura XII SBES Projeto Projeto Implementação Implementação 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 28 Arquitetura de software Arquitetura X Projeto Arquitetura Projeto componentes e conectores restrições sobre componentes e conectores composição de componentes procedimentos e interfaces algoritmos e estruturas de dados composição procedural XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 29 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 30 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 31 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 32 Agenda Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 33 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 34 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] XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 35 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 36 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 Clienteservidor XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 37 Estilos arquiteturais Análise – verificação de propriedades • ausência de deadlock em um estilo Clienteservidor Interpretação semântica – a composição dos elementos de projeto precisa de uma semântica bem definida XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 38 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 39 Estilos arquiteturais Sobre Estilo Arquitetural – a descrição da arquitetura é uma instância de um estilo – exemplos • • • • • XII SBES Cliente-servidor Pipe-filter Objetos Invocação implícita Camadas, repositórios 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 40 Estilos arquiteturais Sobre Estilo Arquitetural Arquitetura de software Request-reply Cliente Servidor Cliente Estilo Cliente-servidor Cliente XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 41 Estilos arquiteturais Sobre Estilo Arquitetural Arquitetura de software Fonte Central Fonte Estilo Blackboard Fonte XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 42 Estilos arquiteturais Sobre Estilo Arquitetural Arquitetura de software Pipe Filtro Filtro Filtro Estilo Pipe-Filter Filtro XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 43 Estilos arquiteturais Sobre Estilo Arquitetural Arquitetura de software Pipe Filtro Filtro Filtro Estilo Pipe-Filter Filtro XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 44 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 45 Agenda Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 46 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 47 Linguagens de descrição de arquitetura Como uma ADL se relaciona com outras linguagens? Linguagem de Requisitos Linguagens de Programação Linguagens Linguagens de de Modelagem Requisitos XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 48 Linguagens de descrição de arquitetura ADLs e outras linguagens Linguagens de Programação vinculam abstrações arquiteturais à soluções específicas Linguagens de Requisitos representam trechos de comportamento para facilitar a apresentação dos requisitos, adequando-se a representação de componentes arquiteturais têm XII SBES enfoque no problema 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 49 Linguagens de descrição de arquitetura ADLs e outras linguagens Linguagens de Modelagem enfatizam o comportamento do todo ao invés do comportamento das partes podem representar componentes cooperativos e representam arquiteturas razoavelmente bem ADLs intencionalmente, suprimem o vínculo de abstrações com soluções específicas têm enfoque na solução concentram-se na representação das partes XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 50 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 51 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. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 52 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 53 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 54 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 55 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) XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 56 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. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 57 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 58 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 59 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. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 60 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. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 61 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 62 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 63 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. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 64 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 65 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 66 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 67 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 68 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) XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 69 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 70 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 71 Linguagens de descrição de arquitetura Exemplo CL - descrição textual 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. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 72 Linguagens de descrição de arquitetura Exemplo CL - representação gráfica Hospital alarme Enfermeira estado XII SBES 13-16 de Outubro de 1998 alarme Paciente estado Maringá - Paraná - Brasil 73 Linguagens de descrição de arquitetura Exemplo CL - descrição 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. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 74 Agenda Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 75 Exemplo Sistema de Informação da Internet ( SII ) – sistemas usados para busca de informações na Internet – exemplos • Gopher • WAIS • Archie / Prospero • WWW XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 76 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)” XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 77 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 78 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 79 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 80 Exemplo Arquitetura Cliente Ger. Interface Usuário Resolvedor de caminho Ger. Acesso Ger. Streams Ger. Protocolos Ger.Cache Protocolos Ger. Streams XII SBES Servidor 13-16 de Outubro de 1998 Servidor HTTP CGI Sistema de Arquivos Maringá - Paraná - Brasil 81 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 82 Agenda Introdução Arquitetura de software Estilos arquiteturais Linguagens de descrição de arquitetura Exemplo Tendências XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 83 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 84 Tendências ADLs e arquiteturas dinâmicas – adição de novos componentes XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 85 Tendências ADLs e arquiteturas dinâmicas – substituição de um componente existente por um outro de mesma assinatura. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 86 Tendências ADLs e arquiteturas dinâmicas – remoção de componentes desnecessários. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 87 Tendências ADLs e arquiteturas dinâmicas – reconfiguração da arquitetura XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 88 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. XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 89 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 90 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 91 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 92 Tendências Formalização de arquitetura de software – Modelos formais que suportam dinamismo • Darwin • Allen, Douence e Garlan • ZCL XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 93 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 94 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 XII SBES 13-16 de Outubro de 1998 Maringá - Paraná - Brasil 95