Modelação Aula T16 Modelação Conceptual de Sistemas A Estrutura do Sistema José Borbinha Programa T01-T03 – Módulo 1 – Introdução à Modelação de Sistemas T04-T07 – Módulo 2 – Modelação Conceptual de Sistemas T08-T11 – Módulo 3 – Ontologias T12 – Correcção do Teste 1 T13-T15 – Módulo 4 – Modelação de Sistemas: Comportamento T16-T18 – Módulo 5 –Modelação de Sistemas: Arquitectura (A Estrutura do Sistema…) T19-T25 – Módulo 6 – Temas avançados Modelação 2 Modelação da estrutura de sistemas em UML e SysML Modelação 3 Diagramas de Estrutura em UML – 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 UML - Diagramas de Componentes Modelaçã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 – ... Formas equivalentes em UML 2.0: 6 Componentes e Interfaces • “Interface” é um conceito que: – 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 • Conceito suportado por alguns modelos ou linguagens de programação (Java, Corba IDL, COM IDL, …) 7 Diagramas de Componentes • A Component diagram illustrates the pieces of software, embedded controllers and such that make up a system, and their organization and dependencies . • A Component diagram has a higher level of abstraction than a Class diagram; usually a component is implemented by one or more Classes (or Objects) at runtime. They are building blocks, built up so that eventually a component can encompass a large portion of a system. • The diagram below demonstrates some components and their inter-relationships. • Assembly connectors link the provided interfaces supplied by Product and Customer to the required interfaces specified by Order. • A Dependency relationship maps a customer's associated account details to the required interface Payment, indicated by Order. Modelação Retirado do “Help” do Enterprise Architect 8 Componentes e Interfaces “Interfaces” são relevantes para os 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 9 Diagramas de Componentes Um diagrama de componentes pode ilustrar as dependências entre vários componentes de software, tais como: 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 (para ilustrar instâncias de componentes devem ser usados diagramas de instalação) Apenas se ilustram componentes executáveis... 10 Diagramas de Componentes Representação de vários detalhes de um componente 11 Diagramas de Componentes Um componente pode conter outros componentes wordsmith.dll Speller.obj Thesaurus.obj Speller.obj wordsmith.dll Thesaurus.obj 12 Elementos de Diagramas de Componentes Modelação Retirado do “Help” do Enterprise Architect 13 UML - Diagramas de Pacotes Modelação 14 Pacotes (“Packages”) • Pacotes são um mecanismo genérico para organizar elementos em grupos, facilitando a modelação parcial do sistema pacote Package A Um pacote pode conter outros elementos, incluindo: classes, interfaces, … e mesmo outros pacotes. Mas qualquer elemento é definido em apenas um único pacote!!! Um pactoe providencia um contexto, logo um suporte para um espaço de nomes (X::A é diferente de X::Y:A, diferente de Z::A, ...) 15 Packages - Exemplos 16 Pacotes... Um package bem estruturado é: • Coerente: providencia uma fronteira bem definida que agrega um conjunto de elementos relacionados • Minimizar as dependências: exportar e importar entre pacoters apenas os elementos estritamente necessários • Hierarquias balanceadas: evitar longas hierarquias de pacotes aninhadas • Conteúdo balanceado: dentro do conjunto de pacotes de um sistema, não deverão existir pacotes nem demasiado grandes nem demasiado pequenos Quando utilizar Packages? • Pragmatismo e legibilidade: sempre que um determinado diagrama não seja legível num espaço útil, deve-se repartir (p.ex. numa “folha A4”) • Rastreabilidade: representar um caso de testes por pacote… • Alinhamento com o desenvolvimento: pacote como unidades de programação... 17 Elementos de diagramas de pacotes Modelação Retirado do “Help” do Enterprise Architect 18 UML - Diagramas de Instalação Modelação 19 Diagramas de Instalação • A Deployment diagram shows how and where the system is to be deployed; that is, its execution architecture. Hardware devices, processors and software execution environments (system Artifacts) are reflected as Nodes, and the internal construction can be depicted by embedding or nesting Nodes. As Artifacts are allocated to Nodes to model the system's deployment, the allocation is guided by the use of deployment specifications. • Example: Two Nodes have a TCP/IP communication path indicated. Deployment relationships indicate the deployment of Artifacts. Furthermore, a deployment spec defines the process of deployment for the networkScanner Artifact. The Manifestation relationships reveal the physical implementation of components ReposCustomer and ReposInternalRecords. Modelação Retirado do “Help” do Enterprise Architect 20 Diagramas de Instalação Modelação Retirado do “Help” do Enterprise Architect 21 Nós Um nó é um objecto físico que representa um recurso (geralmente com capacidades de memória e de processamento). Os nós podem consistir em recursos – computacionais (hardware) – humanos – organizacionais – processamento mecânico – … 22 Nós e instâncias 23 Nós e Componentes • Semelhanças – Ambos podem participar em relações de generalização, dependência e associação – 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 24 Diagramas de Instalação (“deployment”) • Mostram a configuração de hardware de um sistema, identificando: – nós (computadores, periféricos, …) – instâncias de componentes de software – objectos – canais de comunicação existentes entre os nós... 25 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») 26 Diagramas de Instalação - Exemplo “O sistema de trabalho doméstico”: Diagrama de componentes e Diagrama de instalação com componentes “connection”: associações que representam ligações fisicas entre nós 27 Diagramas de Estrutura e de Blocos... Modelação 28 O que há de potencialmente errado neste domínio? Modelação Exemplo retirado de: http://www.jot.fm/issues/issue_2004_11/column5/ 29 Potencialmente, uma grande trapalhada… Instanciação possível Modelação Exemplo retirado de: http://www.jot.fm/issues/issue_2004_11/column5/ 30 Diagrama de Estrutura Composta em UML (“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) • Podem ser equivalentes aos diagramas de classes, mas mostram as partes individuais das classes, em vez das classes no seu todo... 31 Diagramas de Estrutura em UML e em SysML Os “Composite Structure Diagram” são no entanto um conceito confuso em UML! O seu objectivo é melhor conseguido em SysML, nos diagramas de blocos (a ver na próxima aula…) Modelação 32