Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 UML Estrutural - Diagrama de Componentes Franklin Ramalho Universidade Federal de Campina Grande - UFCG DDM- UFCG 2 Agenda • Contexto e motivação • Diagrama de Componentes – Conceitos • Artefatos • Conectores • Meta-modelo • Sintaxe concreta • Exemplos DDM- UFCG 3 Contexto e Motivação • Como construir sistemas de software de tamanho e complexidade arbitrárias? – Como especificar um sistema com centenas de classes, atributos, relações, etc? • Como permitir que outros sistemas reusem os artefatos já construídos? • Como abstrair as funcionalidades destes artefatos? • Como se preocupar no quê ao invés do como? DDM- UFCG 4 Contexto e Motivação • Como representar a arquitetura de um sistema? • A arquitetura de software de um sistema consiste na definição dos módulos de software, suas propriedades externas, seus contratos, e seus relacionamentos com outros módulos e/ou softwares • Adotar uma arquitetura correta pode ajudar na gerência complexidade e trazer diversos benefícios – Diminuir riscos • Baixa escalabilidade e performance, podem ser decorrentes de uma arquitetura ruim DDM- UFCG 5 Diagrama de Componentes • Um diagrama de componentes é uma unidade modular com interfaces bem definidas indicando sua(s) funcionalidade(s) • Diagrama UML para descrever arquiteturas de software DDM- UFCG 6 Diagrama de Componentes • Componentes devem ser independentes – Maior grau de reuso • Componentes conectados via interfaces – Providas – Requeridas – Opcionalmente, expostas através de portas • Componentes contêm: – Especificação externa – Implementação interna • Componentes lógicos versus componentes físicos – Pode ser utilizado em ambos – Componentes de negócio, componentes de processo, etc. – Componentes EJB, CORBA, .NET, etc. 2 DDM- UFCG 7 Componentes • Um componente representa uma parte modular de um sistema que encapsula seu conteúdo e cuja manifestação é substituível dentro de um ambiente. • Como uma caixa-preta • Podem ser substituídos por outros componentes – Contratos respeitados • Desenvolvimento Baseado em Componentes DDM- UFCG 8 Interfaces • Podem incluir atributos e operações públicas do componente • Interfaces definem apenas a especificação para suas operações – Isso não implica em qualquer implementação particular • Nomenclatura sugerida: – Iniciar com o prefixo “I” – Terminar com o sufixo “ável” (“able”) DDM- UFCG 9 Diagrama de Componentes • Perfis UML baseados em componentes são desenvolvidos para tecnologias específicas que dão suporte a componentes DDM- UFCG 10 Diagrama de Componentes • Componentes podem ser substituídos por outros componentes – Respeitando os contratos (interfaces providas e requeridas) • Montagem de componentes – Conectando interfaces • Funcionalidades complexas de um sistema podem ser “montadas” – Reuso de componentes • Diferentes níveis de abstração DDM- UFCG 11 Diagrama de Componentes • Componentes encapsulam a estrutura e comportamento de um conjunto de artefatos – Uses cases, classes, pacotes, etc. • Componentes especificam um contrato formal – Serviços que ele provê para os seus clientes (interfaces providas) – Serviços requeridos por outros (interfaces requeridas) • Interfaces podem ser organizadas em portas • Componentes podem ser agrupados em pacotes DDM- UFCG 12 Diagrama de Componentes • Componentes podem possuir portas • Uma porta é uma janela explícita em um componente encapsulado – Todas as interações passam pelas portas – Interfaces providas/requeridas podem ser suportadas por portas – Possuem nome e multiplicidade – Facilitam o encapsulamento e independência – Duas portas conectam-se apenas se elas casam suas interfaces (providas e requeridas) 3 DDM- UFCG 13 Diagrama de Componentes • Componentes podem conter outros componentes • Estrutura interna de um componente é a parte que compõe a sua implementação juntamente com suas conexões – Podem ser instâncias de componentes menores (partes) DDM- UFCG 14 Diagrama de Componentes • Mas, pacotes não permitem reuso? • Componentes são unidades autônomas dentro do sistema • Como autônomo? Não pode haver dependências? – Sim, mas componentes são encapsulados e suas dependências são projetadas de uma forma que o componente seja tratado de forma independente DDM- UFCG 15 Componentes - sintaxe Componente com 1 interface provida Componente com 2 interfaces providas e 3 interfaces requeridas DDM- UFCG 16 Componentes - sintaxe DDM- UFCG 17 Componentes - sintaxe DDM- UFCG 18 Componentes - sintaxe Realizam o componente Customer (Classes internas do Componente) 4 DDM- UFCG 19 Diagrama de Componentes • Conector é um relacionamento de comunicação entre duas partes ou portas no contexto de um componente • Conectores de delegação – Declara quais partes de um componente realizam/requerem, de fato, o comportamento disponibilizado por este (por outro) – Liga um contrato externo com partes internas de um componente • Conectores de montagem – Declara qual componente provê serviço para qual outro componente que requer este serviço e vice-versa – De uma interface requerida para uma interface provida DDM- UFCG 20 Diagrama de Componentes • É possível conectar portas internas e externas do componente • Conectores de montagem implicam que não há um conhecimento especial entre os dois componentes – Maior flexibilidade DDM- UFCG 21 Conectores de delegação - sintaxe Conectores de delegação DDM- UFCG 22 Conectores de montagem - sintaxe Conector de montagem DDM- UFCG 23 Componentes - sintaxe Componentes aninhados DDM- UFCG 24 Mais exemplos - WSMDA • WSMDA é um framework [Carlos et al, 2011] que permite a aplicação de operações de transformação Model to Model, de MDA, via Web Services. • O Framework adota uma arquitetura no modelo Cliente-Servidor, exercendo o lado do Servidor. Esta arquitetura permite que diferentes aplicações, de múltiplos clientes, se comuniquem com um único ponto de acesso que provê as operações do WSMDA. Desse modo, todos os clientes se mantêm utilizando a versão mais nova do servidor. A comunicação entre clientes e servidor é realizada com o uso de Web Services, permitindo versatilidade na escolha de linguagens de programação e plataforma para o desenvolvimento das aplicações cliente. 5 DDM- UFCG 25 Mais exemplos - WSMDA • A arquitetura do WSMDA é composta por três componentes de alto nível: WebService, Core e Serializer. • O componente WebService provê a interface de comunicação para os usuários finais online. Ele tem oobjetivo de gerenciar pedidos para as operações disponíveis e redirecionar tais pedidos para o componente controlador de informações, WSMDA Core. O tratamento de requisições concorrentes é controlado também pelo componente WebService que passa apenas solicitações em sequência para as operações do Core. As definições das operações de MDA e de transferência de dados são feitas pela fachada WSMDAWebServiceFacade. O uso dessa fachada permite que os componentes mencionados passem por modificações internas e ainda assim mantenham a integridade das operações entre si e os clientes. DDM- UFCG 26 Mais exemplos - WSMDA [Carlos et al, 2011] DDM- UFCG 27 Mais exemplos - WSMDA • O componente Core é responsável por gerenciar os artefatos MDA que foram enviados por diferentes usuários e usar estes artefatos para realizar as operações MDA requisitadas. Ele também trata os erros internos que podem ocorrer pelo envio de arquivos incorretos ou parâmetros inválidos. DDM- UFCG 28 Mais exemplos - WSMDA [Carlos et al, 2011] DDM- UFCG 29 Mais exemplos - WSMDA • A serialização de arquivos e sua organização é feita pelo componente Serializer. Ele controla a forma como esses arquivos são guardados, o modo como algumas informações úteis são salvas e, principalmente, mantém a privacidade dos usuários quanto aos seus dados, não permitindo que outros clientes, usando o serviço ao mesmo tempo, vejam informações que não foram enviadas por eles. Os artefatos enviados são guardados com a biblioteca padrão de java para arquivos, File Stream, mas dados importantes são guardados no formato XML para fácil acesso. DDM- UFCG 30 Mais exemplos - WSMDA [Carlos et al, 2011] 6 DDM- UFCG 31 Mais exemplos - WSMDA [Carlos et al, 2011] DDM- UFCG 32 UML 2.0 Superstructure • Dividido em 3 pacotes de alto nível: – Structure – Behavior – Supplement • Sub-dividida em outros sub-pacotes Diagramas estruturais Diagramas comportamentais Conceitos adicionais DDM- UFCG 33 UML 2.0 Superstructure – Part I Structure Conceitos relativos ao diagrama de classes Conceitos que permitem especificar a estrutura interna de uma classe (composição de elementos interconectados) Conceitos relativos ao diagrama de componentes Conceitos relativos ao diagrama de desenvolvimento DDM- UFCG 34 UML 2.0 Superstructure – Part II Behavior Define um componente como uma unidade executável dentro do sistema Define um componente como um grupo coerente de elementos dentro do processo de desenvolvimento DDM- UFCG 35 Meta-modelo para diagrama de componentes Define a forma como o componente é instanciado DDM- UFCG 36 Meta-modelo para diagrama de componentes 7 DDM- UFCG 37 Meta-modelo para diagrama de componentes DDM- UFCG 38 Exercícios • Elabore uma arquitetura com um diagrama de componentes UML para: – Um sistema de relacionamento da internet – Um sistema de busca da Web – Um sistema do campeonato brasileiro de futebol da série A ou da Copa do Mundo DDM- UFCG 39 Referências • Especificação de UML da OMG.
Compartilhar