UML & Padrões Aula 4 1
UML & Padrões Aula 4 Diagramas Estruturais Profª Kelly Christine C. Silva
UML O que vamos tratar: Diagramas UML Estruturais (Estáticos ) Diagrama de Pacotes Diagrama de Componentes Diagrama de Instalação 3
UML Diagrama de Pacotes Um pacote(package) em UML é um mecanismo de agrupamento genérico Notação: pasta com o nome no interior ou na prega No caso de um pacote contido noutro, o nome completo do pacote contido inclui o nome do seu contentor Sentido Visão Visão Visão Sentido: Visão 4
UML Diagrama de Pacotes Um diagrama de pacotes mostra pacotes e relações entre pacotes. Na realidade, não existem propriamente diagramas de pacotes em UML; em vez disso, pacotes e relações entre pacotes aparecem em outros diagramas, de acordo com o tipo de pacote : Pacotes de classes (pacotes lógicos) - em diagramas de classes Pacotes de componentes em diagramas de componentes Pacotes de nós em diagramas de distribuição/ instalação Pacotes de casos de utilização em diagramas de casos de utilização 5
UML Diagrama de Pacotes Uma vez que representa um agrupamento, um pacote é em geral dono de diversos elementos: classes, interfaces, componentes, nós, colaborações, casos de uso, diagramas, e até outros pacotes. Esses elementos podem ser indicados no interior do pacote, na forma de uma lista de nomes ou diagrama. Cliente + OrderForm +TrackingForm - Order Cliente + OrderForm +TrackingForm - Order A classe Order do pacote Cliente é designada Cliente::Order 6
UML Diagrama de Pacotes <<IU>> Processamento De Pedido AWT <<IU>> Mala Direta <<Aplicação>> Processamento De Pedido Clientes <<Aplicação>> Mala Direta Pedidos pacote dependência 7
UML Diagrama de Pacotes Quando existe dependência entre pacotes? Quando houver dependência entre quaisquer duas classes nos pacotes Técnica útil: Dentro do pacote dê uma visibilidade private para as classes, assim elas só podem ser vistas dentro do mesmo pacote. Acrescente então classes públicas extras ao seu pacote e exclusivas para o comportamento público fora do pacote. Elas são chamadas fachadas e são elas que delegam as operações as outra classes internas do pacote. 8
UML Diagrama de Pacotes IU Processamento De Pedido AWT IU Mala Direta Aplicação Processamento De Pedido Domínio Aplicação Mala Direta Pedidos Clientes <<global>> Comum Quantidade ValorMonetario EscopodeDatas Diagrama de Pacotes avançado {abstract} Interface de Banco de Dado Interface de Oracle Interface de Sybase 9
UML Diagrama de Pacotes Aplicação Processamento De Pedido Aplicação Mala Direta Domínio Fachada Fachada Pedidos Clientes Diagrama de Pacotes avançado (detalhado) 10
UML Diagrama de Pacotes Quando utilizar Diagramas de Pacotes? 1. Considerados ferramentas vitais para projetos grandes; 2. Sempre use quando um diagrama de classe que compreenda todo o sistema não for mais legível numa única folha A4; 3. Úteis para testes 11
UML Diagramas Físicos Diagrama de Componentes Diagrama de Instalação componente nó 12
UML Diagrama de Componentes Um diagrama de componentes ilustra as dependências entre várias componentes de software (e.g. artefatos* de código fonte, de código binário, de código executável, procedimentos de negócio e documentos, dentre outros). Um módulo de software pode ser representado por um estereótipo, por exemplo, para ter uma apresentação gráfica distinta de outros tipos de componentes. << library>> <<document>> <<executable>> Um diagrama de componentes representa apenas tipos de componentes e nunca instâncias de componentes. Para ilustrar instâncias de componentes deve ser usado um diagrama de instalação (possivelmente uma versão simplificada sem nós). * Artefato: é o produto de uma ou mais atividades dentro do contexto do desenvolvimento de um software ou sistema 13
UML Diagrama de Componentes Entre muitas motivações para a construção de modelos de componentes, salientam-se as seguintes: 1. Os clientes podem ver a estrutura final do sistema, mesmo antes deste estar concluído. 2. A equipe de desenvolvimento tem uma visão da arquitetura física do sistema, e assim pode trabalhar de forma mais controlada e sistemática. 3. O pessoal técnico (que produzem, por exemplo, a documentação do sistema, manuais de utilizador, manuais técnicos) podem entender melhor sobre o que estão escrevendo, e detalhar alguns aspectos do sistema antes deste estar concluído. 14
UML Diagrama de Componentes Exemplo: Diagrama de Componentes relativo a uma Página HTML. O diagrama de componentes correspondente a este mini-sistema consiste nos seguintes arquivos: example1.html, Animator.class, e Animator.java. O componente Animator.class é a compilação do programa Animator.java, logo podemos dizer que ele depende de Animator.java. Por sua vez, o programa Animator.java lida com a interface java responsável pelo tratamento de eventos do mouse - MouseListener.java do pacote java.awt. Tanto Animator.java quanto Animator.class são necessário para que o página example1.html roda. Assim, temos uma relação de dependência explicitada como: example1.html { Animator.class, Animator.java } Animator.class { Animator.java} Animator.java {awt::mouselistener.java } A Figura ilustra essas relações de dependência. 15
UML Diagrama de Componentes Exemplo 1: Diagrama de Componentes relativo a uma Página HTML. Example1.html Animator.java Animator.class java.awt.event Media Tracker MouseListener 16
UML Diagrama de Componentes Com base no exemplo anterior, faça o exercício da Lista 3: Exercício 01: Considere a página Web Teste.html com uma referência a um Applet Java: <html> <head> <title>the Animator Applet (1.1) teste 1</title> </head> <body> <h1>the Animator Applet (1.1) - example 1</h1> <applet codebase="." code=vacalouca.class width=460 height=160> </applet> <a href=" VacaLouca.java">The source.</a> <hr> </body> </html> O diagrama de componentes correspondente a este mini-sistema consiste nos seguintes arquivos: teste.html, VacaLouca.class,e VacaLouca.java. Desenhe o diagrama. 17
UML Diagrama de Componentes Exemplo 2 : Diagrama de Componentes relativo à instalação de uma aplicação. Considere as dependências identificadas entre as diferentes componentes de instalação. Estas dependências definem que o executável wincor.exe (i.e., a aplicação WinCOR) apenas pode correr se todas as restantes componentes tiverem sido instaladas adequadamente e que o módulo sdemdb32.dll depende do módulo sde32.dll. WinCOR.exe sdemdb32.dll { public.dll, Entrada.db, Saida.db, sde.dll. sdemdb32.dll, cor.ini, cor.hlp } {sde.dll} 18
UML Diagrama de Componentes Exemplo 2 : Diagrama de Componentes relativo à instalação de uma aplicação. << document>> cor.hlp << library>> public.dll << table>> entrada.db << document>> cor.ini << executable>> wincor.exe {versão=32} << table>> Saida.db << library>> sde32.dll << library>> sdemdb.dll 19
UML Diagrama de Componentes Com base no exemplo anterior, faça o exercício da Lista 3: Exercício 02: Considere uma aplicação desenvolvida sobre ambiente MSWindows e responsável pelo gerenciamento de (entrada e saída de) processos de uma organização. A aplicação consiste num conjunto variado de componentes de instalação, chamados: principal.exe: arquivo que contêm o executável da aplicação; libp.dll, bin64.dll, gtempdb.dll: bibliotecas com código binário que providenciam funcionalidades adicionais; ajuda.hlp: arquivo de ajuda sobre a aplicação; configp.ini: arquivo de configuração da aplicação; in.db, out.db: arquivos/tabelas da base de dados de suporte Construa o diagrama de Componentes. 20
UML Diagrama de Instalação Um diagrama de instalação consiste num conjunto de nós ligados por associações de comunicação. Os nós podem conter instâncias de componentes (de execução), o que significa que uma componente é instalada e executada num nó. Por outro lado, as componentes são compostas por objetos (note-se que um processo é apenas um caso particular de objeto: objeto ativo). Um diagrama de instalação ilustra a configuração dos elementos de processamento e das componentes de software, processos e objetos neles inseridos. Instâncias de componentes de software representam manifestações de execução das unidades de código. 21
UML Diagrama de Instalação Nó Servidor Nó Cliente... Pelo fato do diagrama de instalação apresentar componentes, todos os elementos apresentados têm de ser instâncias. Neste caso são apresentadas instâncias de nós e de componentes. 22
UML Diagrama de Instalação 118-servidor : Servidor Diretório de Telefones : PC * Programa de Pesquisa Resultados Programa de Apresentação 118 Componentes: Instalação: Diretorio de Telefones. 118-Servidor:Servidor (instância) Programa de Pesquisa. :PC (instância) Programa de Apresentação118 Resultados onde, Programa de Apresenração 118 Programa de Pesquisa::Resultados Outro aspecto relevante deste exemplo é que existem vários nós cliente ligados ao Nó servidor. Este fato é representado pela inserção do caracter * colocado no canto superior direito do nó Cliente. 23
UML Diagrama de Instalação Exercício: Desenvolva o diagrama de instalação corresponde a um sistema de trabalho doméstico constituído por um PC (onde é feito o processamento), com alguns equipamentos adicionais, como: 1. uma impressora, (device) 2. um monitor, (device) 3. colunas de som, (device) 4. e um modem. (device) O modem permite a ligação à Internet através de um determinado ISP (Internet Service Provider). Diagrama de Instalação (de tipos) 24
UML Diagrama de Instalação Internet <<device>> Monitor <<processador>> ISP <<processador>> PC <<device>> Impressora <<device>> Modem <<device>> Coluna Som Diagrama de Instalação (de tipos) 25
UML Diagrama de Instalação Exercício: Para ilustrar uma configuração particular do diagrama anterior ou ilustrar as componentes de software que deveriam existir numa determinada configuração precisamos de um diagrama de configuração a nível de instâncias. 1. uma impressora : (HP LJ1100) 2. um monitor, (device) : (ICL-5550) 3. colunas de som, (device) 4. e um modem. (device) : (Zoom 56k) 5. ISP : (Stelepac) 26
UML Diagrama de Instalação Diagrama de Instalação (de instâncias) :Monitor (ICL-5550) STelepac : ISP meupc : PC (PC XPTO, PIII 450 Mhz) Windows 2000 : Impressora (HP LJ1100) : Modem (Zoom 56k) Office 97 Netscape <<device>> Coluna Som 27