Análise e Concepção de Sistemas de Informação Unified Modeling Language (UML) - Modelação da Arquitectura - Alberto Silva / José Borbinha 1 2 Modelação da Arquitectura • Introdução • Componentes • Diagramas de Componentes • Nós • Diagramas de Instalação 3 Diagramas de Arquitectura Diagramas de arquitectura (ou estrutura) permitem • A descrição física do software: Os diagramas de componentes são usados para modelar a arquitectura de um sistema na perspectiva dos seus componentes de software (e.g., ficheiros de código fonte, de executáveis, de configuração, tabelas de dados, documentos de gestão do projecto), explicitando principalmente as suas múltiplas dependências. • A descrição física do hardware: Os diagramas de instalação, por outro lado, são usados para modelar a arquitectura de um sistema na perspectiva dos seus componentes de hardware (e.g., computadores, adaptadores de rede, impressoras, routers, cablagem), explicitando as suas dependências de comunicação. • A integração do software com o hardware: Os diagramas de instalação com componentes são usados para modelar um determinado ambiente de execução com componentes, através da identificação de instâncias de componentes que são instaladas em determinada instância de nó computacional. 4 Modelação da Arquitectura • Introdução • Componentes • Diagramas de Componentes • Nós • Diagramas de Instalação 5 Componentes (de software) • Um componente de software é uma agregação de várias peças de software. • Um componente pode concretizar uma ou mais classes. • Vantagens e motivações para a construção de modelos de componentes: – os clientes podem ver a estrutura final do sistema – a equipa de desenvolvimento tem uma estrutura de orientação que lhe permite trabalhar de forma controlada – a equipa de documentação e ajudas (help) podem entender melhor o âmbito do seu trabalho – promove-se a reutilização – ... 6 Componentes 7 Componentes e Interfaces (outra vez...) Interface – Providencia uma separação clara entre a vista externa e a vista interna de uma abstracção – Permite compreender melhor uma abstracção sem conhecer os seus detalhes de implementação – Promove a abstracção; desenvolvimento baseado em componentes; separação de aspectos – Suportada por algumas linguagens de programação (e.g., Java, Corba IDL, COM IDL, …) – A adequada definição de interfaces é essencial para um bom desenho e desenvolvimento de sistemas OO 8 Componentes e Interfaces (outra vez...) exemplo de interfaces de uma componente em Active-X... WP.exe <<Interface>> ISpell WP.exe wordsmith.dll wordsmith.dll ISpell 9 Componentes e Interfaces interfaces IThesaurus ISpell wordsmith.dll IUnknown componente exemplo de interfaces de uma componente em Active-X... 10 Componentes e Interfaces Substituição e Reutilização As interfaces têm um impacto significativo nos conceitos de substituição e reutilização de componentes: – Pode-se substituir um componente por outro, se o novo componente providenciar as interfaces do anterior – Pode-se reutilizar um componente noutro sistema, se o novo sistema puder aceder e reutilizar o componente através das suas respectivas interfaces 11 Componentes Tipos de Componentes Componentes de trabalho, a partir dos quais são criados os componentes de instalação (ficheiros com código fonte, ficheiros de dados, documentos, ...) Componentes de instalação, constituem a base dos sistemas executáveis (DLL, executáveis, controlos Active-X, classes Java, ...) Componentes de execução, criados como resultado da execução de um sistema, ou seja, correspondem a instâncias dos componentes de instalação (processos, threads, agentes de software, ...) NOTA: Os componentes de execução são apenas representados nos diagramas de instalação (como instâncias de “componentes de instalação”) 12 Componentes • Estereótipos para componentes (UML, v1.3) «document»: denota um documento. «executable»: denota um programa que possa ser executado num nó. «file»: denota um documento contendo código fonte ou dados. «libary»: denota uma biblioteca dinâmica ou estática. «table»: denota uma tabela de uma base de dados. 13 Modelação da Arquitectura • Introdução • Componentes • Diagramas de Componentes • Nós • Diagramas de Instalação 14 Diagramas de Componentes Um diagrama de componentes ilustra as dependências entre vários componentes de software. Incluem-se nesta definição lata, por exemplo, artefactos: de código fonte, de código binário, de código executável, procedimentos de negócio, documentos... Notas: Um diagrama de componentes representa apenas tipos de componentes e nunca instâncias de componentes (para ilustrar instâncias de componentes devem ser usados diagramas de instalação) Apenas se ilustram componentes executáveis... 15 Diagramas de Componentes Componentes de Instalação e Interfaces… A relação entre interface e componente designa-se por realização 16 Diagramas de Componentes Relação entre Componentes 17 Diagramas de Componentes Representação de vários detalhes de um componente 18 Diagramas de Componentes Componentes com Componentes… Um componente pode conter outros componentes: inclusão física wordsmith.dll Speller.obj Thesaurus.obj Speller.obj wordsmith.dll Thesaurus.obj 19 Diagramas de Componentes Exemplo1: Página Web com um applet Java demo/applets/Animator/example1.html <html> <head> <title>The Animator Applet - example 1</title> </head> <body> <h1>The Animator Applet - example 1</h1> <applet codebase=".“ code=Animator.class width=46 height=160> </applet> <a href="Animator.java">The source.</a> <hr> </body> </html> 20 Diagramas de Componentes Exemplo: Pretende-se o diagrama de componentes da aplicação WinCOR, desenvolvida sobre ambiente Windows, para gestão de correspondência de uma organização, que consiste no seguinte conjunto de componentes de instalação: wincor.exe: ficheiro que contêm o executável da aplicação pblib32.dll, sde32.dll, sdemdb32.dll: bibliotecas com código binário de funcionalidades adicionais wincor.hlp: ficheiro de ajuda sobre a aplicação. wincor.ini: ficheiro de configuração da aplicação entrada.db, saida.db: ficheiros/tabelas da base de dados de suporte 21 Modelação da Arquitectura • Introdução • Componentes • Diagramas de Componentes • Nós • Diagramas de Instalação 22 Nós Um nó é um objecto físico que representa uma recurso, geralmente tendo capacidades de memória e de processamento. 23 Nós e instâncias 24 Nós Os nós podem consistir em recursos – – – – computacionais (hardware) humanos organizacionais processamento mecânico Nós e Componentes Semelhanças Ambos podem participar em relações de generalização, dependência e associação Ambos podem ser aninhados Ambos podem ter instâncias Ambos podem participar em interacções Diferenças Componentes são coisas que participam na execução de um sistema Nós são coisas que executam componentes Componentes representam agrupamento de elementos lógicos Nós representam a instalação fisica de componentes 25 Modelação da Arquitectura • Introdução • Componentes • Diagramas de Componentes • Nós • Diagramas de Instalação 26 Diagramas de Instalação (“deployment”) O objectivo dos diagramas de instalação é mostrar a configuração de hardware de um sistema, consistindo na identificação de... • nós (computadores, periféricos, …) • instâncias de componentes de software • objectos ...bem como nos canais de comunicação existentes entre esses nós... 27 Diagramas de Instalação Nós e Componentes Podem-se representar os componentes relevantes que existem ou são suportados em determinado nó… (relação de dependência, de estereótipo «support») 28 Diagramas de Instalação “connection”: associação que representa a ligação fisica entre nós Embora a ligação seja o tipo de associação mais comum entre dois nós, outros tipos de associações (e.g., agregação e dependência) são também possíveis. 29 Diagramas de Instalação Nós e Componentes 30 Diagramas de Instalação - Exemplo “O sistema de trabalho doméstico”: Diagrama de componentes e Diagrama de instalação com componentes 31 Diagramas de Instalação... 32 Diagramas de Instalação - Exemplo (2) PC com SIG-C-Gás e GestãoGIS PC com acesso ao SIG-C-Gás, via Web Browser Web Browser (e.g., IE) HTTP Editor SIG-C-Gás (e.g., baseado em ArcEditor, Map, GeoMedia) HTTP Servidor SIG-C-Gás Servidor Map (e.g., ArcIMS, MapGuide) Interfaces Web (e.g., HTML, JSP, ASPX) Servidor Web (e.g., IIS, Apache) Ficheiro SIG (e.g., .shp, .dwg) Componentes Aplicacionais (e.g., .NET, EJB) Servidor Aplicacional (e.g. .NET/COM+, J2EE) Base Dados Servidor Base Dados (e.g., Oracle, SQL Server) 33 Relações entre Diagramas de Componentes e de Instalação Exemplo: Sistema de informação de uma universidade 34 Exemplo: Diagrama de Componentes do Sistema de informação de uma universidade 35 Exemplo: Diagrama de Instalação do Sistema de informação de uma universidade 36 Exemplo: Sistema de informação de uma universidade 37 A propósito dos Diagramas de Arquitectura • Estes diagramas podem também ser aplicados na modelação de negócios e de organizações em que – os componentes de “código” representam os procedimentos e regras de negócio; – os nós (isto é, os componentes não digitais) representam a infraestrutura da organização através de um conjunto de recursos do negócio (humanos e outros). 38 39 ...!!! Extra à matéria da cadeira !!!... Diagrama de Estrutura Composta (“Composite Structure Diagram”) • Diagrama para representar a estrutura interna de alguns elementos (classes, componentes, nós, ...) usando: • Partes (instâncias que compõem o elemento) • Portos (pontos de interacção entre as Partes) • Conectores (“links” entre Partes ou Portos) • Pode ser equivalente aos diagramas de classes, mas mostra as partes individuais das classes, em vez das classes no seu todo... 40