UML User Guide – Modelagem Estrutural UML User Guide – Divisão Modelagem Estrutural Classes Relacionamento Diagramas de Classes Modelagem Estrutural Avançada Interface Tipos Regras Pacotes Instância Modelagem Comportamental Interações Casos de Uso Diagramas de Interfaces Diagramas de Casos de Uso Diagramas de Atividade Modelagem Compartamental Avançada Eventos e Sinais Máquinas de Estado Processos e Threads Tempo e Espaço Diagramas de Estados (Máquinas de Estado) Modelagem Arquitetural Componentes Desenvolvimento Colaboração Padrões e Frameworks Diagramas de Componentes Diagramas de Desenvolvimento Sistemas e Modelos Empacotamento (Wrapping Up) O uso da UML 1 UML User Guide – Modelagem Estrutural 1 CLASSES (CAP 04) 1.1 1.2 1.3 MOTIVAÇÃO REPRESENTAÇÃO GRÁFICA TERMOS E CONCEITOS 1.3.1 Nome 1.3.2 Atributo 1.3.3 Operação 1.3.4 Organização de Atributos e Operações 1.3.5 Responsabilidades 1.3.6 Outras Características TÉCNICAS DE MODELAGEM COMUNS 1.4.1 Modelando o Vocabulário do Sistema 1.4.2 Modelando a Distribuíção de Responsábilidades 1.4.3 Modelando Coisas que não são do Software 1.4.4 Modelagem de Tipos Primitivos 4 4 5 5 6 7 7 8 9 9 9 9 10 10 RELACIONAMENTOS (CAP. 05) 11 1.4 2 4 INTRODUÇÃO TERMOS E CONCEITOS 2.2.1 Dependência 2.2.2 Generalização 2.2.3 Associação 2.2.3.1 Formação do Nome 2.2.3.2 Regra (Role) 2.2.3.3 Multiplecidade 2.2.3.4 Agregação 2.3 ALGUMAS CONCLUSÕES 11 11 11 12 13 13 13 14 14 15 3 MECANISMOS COMUNS (CAP. 06) 16 3.1 3.2 3.3 3.4 NOTA ESTERIÓTIPO TAGGED VALUE – RÓTULO CONSTRAINT 16 16 17 17 4 DIAGRAMAS DE CLASSES (CAP. 8) 19 4.1 4.2 TERMOS E CONCEITOS USO COMUM 4.2.1 Falando um pouco mais sobre Modelo Lógico de Base de Dados 20 20 20 2.1 2.2 2 UML User Guide – Modelagem Estrutural 5 CLASSES AVANÇADAS (CAP 9) 22 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 CLASSIFICADORES VISIBILIDADE ESCOPO ABSTRAÇÃO POLIMORFISMO MULTIPLICIDADE SINTAXE COMPLETA DO ATRIBUTO SINTAXE COMPLETA DA OPERAÇÃO 22 22 22 23 23 24 24 24 6 REALACIONAMENTOS AVANÇADOS (CAP 10) 25 6.1 6.2 6.3 6.4 DEPENDÊNCIA GENERALIZAÇÃO ASSOCIAÇÃO REALIZAÇÃO 25 25 25 25 7 INTERFACES, TIPOS E REGRAS (CAP. 11) 27 7.1 INTERFACE 7.1.1 Regra para Nomes 27 27 8 PACOTES (CAP 12) 30 8.1 TERMOS E CONCEITOS 8.1.1 Composição do Nome 8.1.2 Elementos Contidos (Owned Elements) 8.1.3 Visibilidade 8.1.4 Importação e Exportação 8.1.5 Generalizações 30 30 31 31 32 32 9 INSTÂNCIAS OU OBJETOS (CAP 13) 34 9.1 TERMOS E CONCEITOS 9.1.1 Abstração e Instâncias 9.1.2 Formação do Nome 9.1.3 Estado 34 34 35 35 10 DIAGRAMA DE OBJETOS (CAP 14) 36 10.1 TERMOS E CONCEITOS 36 3 UML User Guide – Modelagem Estrutural 1 Classes (Cap 04) Definição: Uma classe é a descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica. 1.1 Motivação A modelagem de sistemas envolve identificar as coisas importantes na sua visão particular; As coisas levantadas formam o que se chama de Vocabulário; As coisas são diferenciadas umas das outras e possuem um conjunto de propriedades Exemplo: Portas, Paredes e Janelas As coisas não vivem isoladas, elas se encaixam. O relacionamento que existe uma com a outra vai depender de como você vai utilizar. Os Atores vão ver as coisas com e seus relacionamentos com olhos diferentes Exemplo: Construtores x Moradores Em UML as coisas são modeladas em Classes. Uma Classe é uma abstração de coisas que fazem parte do seu Vocabulário. Não é somente um objeto, mas a representação de um conjunto completo de Objetos. Exemplo: Parede. 1.2 Representação Gráfica Nada melhor que a imagem: 4 UML User Guide – Modelagem Estrutural 1.3 Termos e Conceitos Definição: Uma classe é a descrição de um conjunto de objetos que compartilham Atributos Operações Relacionamentos Semântica 1.3.1 Nome Obrigatório (destingue classes) String textual comum Pode ser um Nome Simples Pode conter prefixos que identificam o pacote (Nome com Caminho – path name) Pode-se omitir compartimentos para didática. Exemplos: FFIIIGGG.. 44--22 Regra de formação Qualquer número de letras + números + pontuação (menos “:”) Pode continuar em outra linha Deveria ser um nome curto ou uma frase para nome com palavras, que venham do Vocabulário levantado para o modelo. Não deveria usar espaços entre as palavras Quando for mais de uma palavra usar sempre a primeira letra maiúscula Exemplo: 5 UML User Guide – Modelagem Estrutural Cliente, SensorDeTemperatura 1.3.2 Atributo Definição: É uma propriedade com nome de uma Classe, que possui um universo de valores (Range) que venham a ser assumidos em uma instância da classe. Uma classe pode possuir muitos ou nenhum (0 ou N) Em um dado momento, um objeto vai possuir um determinado valor para cada atributo Sendo assim um atributo é uma abstração de um tipo de dado – Primitivo ou Uma outra Classe. Representação gráfica FFIIIGGG.. 44--11 Regra de Formação Mesmo que nome, exceto a primeira letra da primeira palavra (sendo composto ou não) do atributo deve ser minúscula Pode-se especifica o tipo e valor default: 6 UML User Guide – Modelagem Estrutural FFIIIGGG.. 0044--44 1.3.3 Operação Definição: É uma implementação de um serviço que pode ser requerido por qualquer objeto de uma classe. É a abstração de alguma coisa que pode ser feita com o objeto qualquer da Classe Uma classe pode possuir muitos ou nenhum (0 ou N) Freqüentemente (mas não sempre) a invocação de uma operação muda o valor de um atributo ou o estado de um Objeto Representação gráfica FFIIIGGG.. 44--55 Regra de Formação Mesmo que nome, exceto a primeira letra da primeira palavra (sendo composto ou não) da operação deve ser minúscula Usa o parênteses para diferenciar do atributo Normalmente usa-se um verbo ou uma frase com verbo que representa um comportamento da classe a qual pertence Pode trazer assinatura da Operação ( Nome + Tipo + Valor default para parâmetros + Tip de Retorno (se for função) ) 1.3.4 Organização de Atributos e Operações Não precisa mostrar tudo de uma vez Na maioria dos casos não é possível Mostrar somente o que for interessante para uma determinada visão Pode-se mostrar alguns ou nenhum se for necessário. Um compartimento vazio não indica necessariamente a ausência de atributos ou operações Pode-se usar “...” 7 UML User Guide – Modelagem Estrutural Pode-se usar Estereótipos (Agrupo ou classifica elementos do Vocabulário – classes, atributos, operações, etc.) FFIIIGGG.. 77 1.3.5 Responsabilidades Definição: É um contrato ou uma obrigação da classe Quando se cria uma classe se declara que um todos os objetos de uma classe vão possuir o mesmo intervalo de status e o mesmo tipo de comportamento Em um nível mais abstrato os atributos e as operações da classe são as ferramentas usadas para que as responsabilidades sejam propagadas. A classe SensorDeTemperatura é responsável em medir temperatura e disparar alarme em uma situação crítica Uma classe tem pelo menos uma responsabilidade e deveria ter um punhado. Graficamente usa o quarto compartimento da classe. Representação gráfica 8 UML User Guide – Modelagem Estrutural FFIIIGGG.. 88 Regra de Formação Uma frase, ou uma sentença, ou pelo menos um parágrafo curto. 1.3.6 Outras Características Atributos, Operações e Responsabilidades são os elementos mais comumente usados. Somente eles já cobrem a semântica da classe. Outras representações para Classes: o Operações para Atributos o Características ligadas a linguagem de programação o Operação polimórfica o Operação Constante o Exceções Lançadas São tratadas em conceitos avançados Modelos mais complexos: o Interfaces o Classes de Processos e Threads o Classes que representam coisas físicas: Applets, Java Beans, Objetos Com+ 1.4 Técnicas de Modelagem Comuns Apresenta somente algumas dicas e coisas comumente usadas em modelagem 1.4.1 Modelando o Vocabulário do Sistema Classes são construídas para modelar abstrações do seu sistema Cada abstração é uma parte do Vocabulário do Sistema O conjunto das abstrações representam as coisas que são mais importantes tanto para o usuário quanto para o implementador Menciona como técnicas excelentes para levantamento das abstrações: o CRC Cards o Análise Baseada em Caso de Uso 1.4.2 Modelando a Distribuição de Responsabilidades Não se deve construir classes que são grandes demais ou pequenas demais. Devese saber balancear as responsabilidades da classe. Classes grandes não são reutilizáveis Classes pequenas são tão abstratas que você não vai saber para que servem 9 UML User Guide – Modelagem Estrutural 1.4.3 Modelando Coisas que não são do Software As vezes as Classes modeladas não tem um representação análoga no software ou no produto final Aqui também temos Atores Seriam Classes Externas.... 1.4.4 Modelagem de Tipos Primitivos Em outro extremo as coisas que você modela podem ser diretamente ligadas à linguagem de programação – Tipos primitivos (int, char, enum) Usa a notação da Classe com um estereótipo para o nome da classe Especifica Constraints para ranges. Exemplo: FFIIIGGG.. 44--1122 Para enumerações usa o compartimento de atributos para os valores possíveis 10 UML User Guide – Modelagem Estrutural 2 Relacionamentos (Cap. 05) 2.1 Introdução Na construção de abstrações, precebe-se que poucas classes são independentes; umas colaboram com as outras de várias maneiras A modelagem estrutural de um sistema consiste no levantamento do Vocabulário + a relação entre classes Em OO três tipos de relacionamentos são os mais importantes: o Dependência: que representa relacionamento de uso entre as classes; o Generalização: que liga classes gernéricas as suas especialistas; o Associação: que representa realacionamentos estruturais entre objetos; Definição: Em UML a maneira com que as coisas podem se conectar, tanto lógico quanto fisicamente, são modeladas com relacionamentos. 2.2 Termos e Conceitos Relacionamento é uma conexão entre coisas; Graficamente é uma ligação que usa diferente tipos de linha e adornos. 2.2.1 Dependência Definição: É um relacionamento que declara que uma mudança na especificação de uma coisa pode afetar outra coisa que a usa, mas não necessariamente o contrário. Dica: É bem comum usar a Dependência no contexto de uma classe, quando essa recebe a classe de uso com parâmetro de uma operação. FFIIIGGG.. 55--22 ((PPPAAAGGG.. 6644)) É raro se usar nomes para uma Dependência, mas pode ocorrer. 11 UML User Guide – Modelagem Estrutural Quando uma classe possui dois relacionamentos de dependência com uma mesma classe, basta que se grafe uma vez e fique explicito na declaração da assinatura da operação ( veja a figura 5-8 da página 69) 2.2.2 Generalização Definição: É um relacionamento entre coisas gerais (Chamadas de Super-Classes ou Classe Pai) e coisas específicas ( Subclasses ou Classes Filhas). Também é chamada de “É-Um-Tipo-De” Exemplo: JanelaDeDialogo é-um-tipo-de Janela (classe filha) (classe pai) Os filhos podem ser usados em qualquer lugar onde os pais são esperados, mas não ao contrário. (O filho tem tudo o que o pai tem) (O pai tem parte do que o filho tem) A partir dessas regras é possível se usar o Polimormismo (Uma operação que o filho contém com a mesma assinatura da operação que o pai contém – usando-se Sobrescrita) FFIIIGGG.. 55--33 PPAAAGGG.. 6655 Generalizações raramente usam nomes, mas pode ocorrer 12 UML User Guide – Modelagem Estrutural Quando uma classe é abstrata (quando uma ou mais operações são virtuais) tanto o nome da classe quanto o nome da operações virtuais são grafadas em itálico; 2.2.3 Associação Definição: É um relacionamento estrutural que especifica que um objeto está conectado em outro. Dada uma associação entre classes você pode navegar entre os objetos das classes nos dois sentidos; Duas classes podem ter mais de um tipo de relacionamento associativo entre as duas; As associações mais comuns são aquelas que conectam duas classes (Associações Binárias), mas podem existir associações que conectam mais de duas classes ao mesmo tempo (Associações n-árias). 2.2.3.1 Formação do Nome Uma associação pode ter um nome que descreva a natureza da ligação Você pode dar a direção para o nome através de um triângulo cheio FFIIIGGG 55--44 PPAAAGGG.. 6666 2.2.3.2 Regra (Role) Especifica o papel das classes na associação 13 UML User Guide – Modelagem Estrutural FFIIIGGG 55--55 PPAAAGGG.. 6666 A mesma classe pode atuar da mesma maneira em regras diferentes em diferentes associações, ou seja, geralmente uma classe sempre assume um papel. 2.2.3.3 Multiplicidade Definição: Limita (Estabelece) o número de objetos que podem se conectar através de uma instância da associação. Isto é chamado de “Multiplecidade de uma Regra de associação”. Tipos o (0..1) um ou zero o (0..*) muitos ( ou * simplesemente) o (1..*) um ou muitos Tipos complexos devem ser separados por vírgula o 0..1, 3..4, 6..* , que é igual a qualquer número de objetos menos 2 e 5 2.2.3.4 Agregação Definição: é o relacionamento associativo do TODO/PARTE. Contém um diamente (aberto ou vazio) no lado que representa o todo. FFIIIGGG 55--77 PPAAAGGG.. 6688 14 UML User Guide – Modelagem Estrutural Quando o diamante é cheio (fechado) está se modelando uma Associação de Agregação especial chamada de Composição. Na Composição os objetos do lado da Parte não existem sem que o objeto da classe do lado do Todo exista; Em uma modelagem pode-se deixar de lado a indicação da Agregação e tornar o relacionamento uma Associação “Plana”, mas especificando o Todo/Parte você torna claro a relação de superioridade do Todo. 2.3 Algumas Conclusões Nos relacionamentos de Dependência e Generalização, você está modelando relacionamentos chamados de “Lado Único”. A filha conhece o pai, mas o pai desconhece a filha. A Classe dependente conhece a outra classe, que despresa a dependente. Nos relacionamentos associativos as duas classes se conhecem. 15 UML User Guide – Modelagem Estrutural 3 Mecanismos Comuns (Cap. 06) A UML possui quatro mecanismos que são comuns em toda a linguagem: o Especificações; o Adornos; o Divisões Comuns; o Mecanismos de Extensão (ou de Extensibilidade) O capítulo explica dois deles: o Adornos O mais comum é a NOTA o Mecanismos de Extensão, que permitem extender a linguagem de maneira controlada: Esteriótipo; Tagged Value (Rótulo) Constraints 3.1 Nota Definição: Nota é uma nota. FFIIIGGG.. 66--11 PPAAAGGG.. 7766 3.2 Esteriótipo Definição: É um mecanismo de extensão que permite extender a linguagem de forma controlada. O esteriótipo extende o Vocabulário da linguagem permitindo que você crie um novo tipo de blocos mais específicos para o seu problema; Graficamente são usados os caracteres <<>> para delimitar o esteriótipos e geralmente são colocados acima do nome de outro elemento que está sendo eseriótipado. Pode ser visto como um Metatipo 16 UML User Guide – Modelagem Estrutural FFIIIGGG 66--22 PPAAAGGG.. 7777 3.3 Tagged Value – Rótulo Definição: É uma extensão de uma propriedade de um elemento qualquer da UML, permitindo que se crie novas informações na especificação do elemento. Graficamente é um texto entre {} 3.4 Constraint Definição: é uma Constraint Usada para adicionar ou retirar regras. Também é representada por {}; Deve ser colocado perto do elemento que se limita ou se expande. 17 UML User Guide – Modelagem Estrutural FFIIIGGG 66--77 PPAAAGGG.. 8822 18 UML User Guide – Modelagem Estrutural 4 Diagramas de Classes (Cap. 8) É o diagrama mais comum para OO Mostra um conjunto de Classes, Interfaces e Relacionamentos NOTA: Diagra de Classes são usados par modelar a visão de design estático de um sistema e envolve: Modelar o Vocabulário; Modelar Colaborações; Modelar Esquemas. Os Diagramas de Classes são o fundamento básico para outros digramas (de Componente e de Desenvolvimento) A figura a seguir traz elementos básicos par o D.C.: FFIIIGGG 88--11 PPAAAGGG.. 110066 19 UML User Guide – Modelagem Estrutural 4.1 Termos e Conceitos Definição: Um D.C. é um diagrama que mostra um conjunto de Classes, Interfaces, Colaborações e seus relacionamentos. “Graficamente é um conjunto de ângulos e arcos.” Conteúdo: o Classes o Interfaces o Colaborações o Dependências, Generalizações, e Associações Assim como em outros diagramas, um DC pode ter Notas e Constraints. 4.2 Uso Comum Usado para modelar “A visão do Design Estático de um Sistema” Usa-se DC de três maneiras: o Para modelar o vocabulário do sistema. Envolve decisões do tipo qual abstação faz parte, qual não faz. o Para modelar colaborações simples. Um colaboração é uma socieda de classes, que trabalham juntas para prover algum algum comportamento cooperativo; o Para modelar um esquema lógico de uma Base de dados 4.2.1 Falando um pouco mais sobre Modelo Lógico de Base de Dados O DC da UML é um superset do diagrama ER. Enquanto o ER só modela o dado (foca somente o DADO), o DC se preocupa também com o comportamento do dado; Especificidades: o Criar um modelo que contenha classes do tipo de Entidade do ER e marcálas com a Constraint {persistent} o Expandir os detalhes estruturais da notação da classes. Isso significa especificar os detalhes dos atributos (Campos) e focar nas associações e suas cardinalidades (Relacionamentos). o Note que os atributos são todos de Tipos Primitivos: 20 UML User Guide – Modelagem Estrutural FFIIIGGG 88--33 PPAAAGGG 111122 FFIIIGGG 55--1100 PPGGG 7733 21 UML User Guide – Modelagem Estrutural 5 Classes Avançadas (Cap 9) Este capítulo dedica-se a descrever elementos avanças na declaração de classes. 5.1 Classificadores A Classe é um tio de Classificador pois ela representa um conjunto de objetos que compatilham operaçoes, atributos, relacionamentos e semântica Existem os seguintes classificadores: o Interface, Datatype, Sinal, Componente, Nó, Use Case, Subsystem 5.2 Visibilidade É um classificador de atributos de operações; Classifica se um elemento pode ou não ser visto por outras classes: o (+) Público; o (#) Protegido – somente classes filhas podem ver; o (-) Privado – exclusivo da classe 5.3 Escopo É um classificador de atributo e operação; Classifica um elemento conforme a multiplicidade nas instâncias de uma classe o De Instância – cada instância possui sua cópia o Estático – somente um atributo é usado para instâncias da classe (Deve-se sublinhar o atributo) FFIIIGGG 99--11 PPAAAGGG.. 112244 22 UML User Guide – Modelagem Estrutural 5.4 Abstração Uma classe é abstrata quando alguma de suas operações são virtuais (ou abstratas) representada por um nome em itálico Não se pode ter uma herança direta de uma classe desse tipo; Alguns detalhes: o {root} Constraint indica que a classe não tem pai; o {leaf} Indica que a classe é derivada. 5.5 Polimorfismo Uma operação é polimorfica quando na hierarquia de Classes você pode especificar operações com a mesma assinatura em diferentes pontos da hieraquia. A operação da classe filhe Sobrescreve a operação da classe pai. FFIIIGGG 99--55 PPAAAGGG 112266 23 UML User Guide – Modelagem Estrutural 5.6 Multiplicidade Especifica o número de instâncias que uma classe pode ter. Para representá-la coloca-se um número no canto superior direito da classe 5.7 Sintaxe Completa do Atributo [visibilidade] nome [multiplicidade] [:tipo] [= valor inicial] [nome da propriedade] Exemplos: o origem o + origem o origem : Point o nome[0..1] : String o id: Integer {frozen} Existem 3 tipos de propriedades para atributos: o changeable - sem restrições para modificação de valores; o addOnly – para atributos com multiplicidade acima de 1, mas que só podem ser adicionados; o Frozen – Não pode ser atualizado após a criação do objeto 5.8 Sintaxe Completa da Operação [visibilidade] nome [( lista completa de parâmetros )] [: tipo de retorno] [{propriedade}] Exemplos: o display o + display o set( n : Name, s : String ) o getId() : Integer o restart() {guarded} Para a assinatura a seguinte sintaxe é usada: [direção] nome : tipo[= valor default] Onde direção: o in o out o inOut 24 UML User Guide – Modelagem Estrutural 6 Realacionamentos Avançados (Cap 10) Este capítulo descreve os elementos avançados para Relacionamentos. Aqui aparece além da Dependência, Generalização e Associação, o relacionamento de Realização 6.1 Dependência É um relacionamento de uso que diz que a mudança de especificação de uma classe afeta a especificação da classe dependente; Graficamente é uma linha tracejada apontada para a classe dependente Use a frase “Depende de” A dependência simples é suficiente para a maioria dos modelos, mas a UML tem 17 esteriótipos divididos em 5 grupos para classificar uma dependência (ver de pag. 137 a 140) 6.2 Generalização Relacionamentos entre coisas gerais e coisas específicas; A UML permite o mapeamento de heranças Multiplas 6.3 Associação Tenho que estudar {Detalhar pag. 143} 6.4 Realização Definição: É um relacionamento semântico entre classificadores onde um classificador especifica um contrato que o outro classificador carrega. Graficamente é uma mistura entre Dependência e Realização Usado no contexto para representar o relacionamento entre Uma Classe e suas Interfaces; Uma interface é a coleção de operações que são usadas para especificar serviços de uma classe ou componente Uma só inteface pode ser usada por uma série de classes e objetos que queiram disponibilizar um serviço comum (ODBC) Uma classe ou componente pode implementar uma série de interfaces (view para objetos) 25 UML User Guide – Modelagem Estrutural FFIIIGGG.. 1100--99 PPAAAGGG.. 115500 26 UML User Guide – Modelagem Estrutural 7 Interfaces, Tipos e Regras (Cap. 11) Este capítulo descreve os elementos citados no título Interface: é uma coleção de operações que são usadas para especificar um serviço de uma classe ou um compenente; Tipo: é um esteriótipo de uma classe usado para especificar um domínio de objetos; Regra: é o comportamento de uma entidade participando de um contexto especial Realização: é o relacionamento entre uma classe e sua Interface. 7.1 Interface Pode ser representadas de duas maneiras: o Com um Círculo o De uma maneira expandida é uma classe eteriotipada FFIIIGGG 1100--99 PPAAAGGG.. 115500 7.1.1 Regra para Nomes O Nome é obrigatório; Pode ser um nome simples ou com caminho 27 UML User Guide – Modelagem Estrutural FFIIIGGG 1111--22 PPAAAGGG.. 115588 Possui operações, mas não atributos Pode participar de relacionamentos com outras classes do tipo Associativo, Generalização e de Dependência. Possui um relacionamento extra chamado de Realização com a classe que a implementa; FFIIIGGG 1111--44 PPAAAGGG.. 116600 28 UML User Guide – Modelagem Estrutural Nota: Uma interface parece com uma classe abstrata, mas não é. Tem representação própria na UML e não possui atributos. 29 UML User Guide – Modelagem Estrutural 8 Pacotes (Cap 12) Definição: Um pacote é um mecanismo de proposito geral para organização de elementos de modelagem em grupo Pacotes bem modelados possuem elementos que são semanticamente semelhantes que tendem a se relacionar. Pacotes podem controlar acesso dos seus componentes Representação gráfica: FFIIIGGG 1122--11 PPAAAGGG 117711 Graficamente é uma pasta com abas (Tabbed folder) 8.1 Termos e Conceitos 8.1.1 Composição do Nome O aparecimento do nome é obrigatório para distinção entre pacotes Pode ser: o Nome simples o Nome com caminho Na maioria das vezes ele e desenhado somete com o nome, mais aind pode aparecer: o Tagged Value (Rótulo) o Constraints o Compartimentos adicionais para detalhamentos 30 UML User Guide – Modelagem Estrutural FFIIIGGG 1122--22 PPAAAGGG 117711 8.1.2 Elementos Contidos (Owned Elements) Um pacote pode possuir outros elementos o Classes o Interfaces o Nós o Colaborações o Use Case o Diagramas o Outros Pacotes “Possuir” é um relacionamento composto que significa que o elemento é declarado dentro desse pacote. Caso o pacote seja elimidado, todos os seus elementos serão eliminados também Cada elemento é possuído unicamente por um só pacote Casso eu possua duas classes com o mesmo nome em pacotes diferentes, elas serão tratadas com classes diferentes O conteúdo do pacote pode ser mostrado explicitamente. (Veja figura anterior.) 8.1.3 Visibilidade Pode-se controlar a visibilidade de elementos de pacotes Por default todos os elementos são públicos o (+) Público o (#) Protegido, só podem ser vistos por pacotes que herdam de outros pacotes o (-) Privado, que só pode ser visto dentro do própio pacote 31 UML User Guide – Modelagem Estrutural 8.1.4 Importação e Exportação O ato de importar um pacote garante a permissão de acesso a elementos do pacote em somente um sentido. Em UML o relacionamento de importação é representado com o adereço do relacionamento de dependência com o esteriótipo <<import>> ou <<access>> A parte pública dos pacotes importados são chamadas de Exportações Veja a figura: FFIIIGGG 1122--44 PPAAAGGG 117755 8.1.5 Generalizações Existem dois relacionamentos possíveis entre pacotes: o Importação ( ou Acesso) o Generalização de Pacotes É muito semelhante a generalização de Classes {Detalhar} 32 UML User Guide – Modelagem Estrutural FFIIIGGG 1122--55 PPAAAGGG 117766 33 UML User Guide – Modelagem Estrutural 9 Instâncias ou Objetos (Cap 13) Definição: Uma instância é a manifestação concreta de uma classe (de uma abstração) para o qual um conjunto de operações podem ser aplicadas e o resultado dessas operações pode ser armazenado. Usada para modelar coisas concretas do mundo real Para diferenciar da classe, o nome do objeto é sublinhado Graficamente: FFIIIGGG 1133--22 PPAAAGGG 118877 9.1 Termos e conceitos 9.1.1 Abstração e Instâncias Geralmente andam casadas, ou seja, você insta uma abstração (torma-se uma instância de uma abstração) Pode-se classifcar a Instância em o Instância Concreta o Instância Prototipada – intância de elementos do tipo Classes Virtuais e Interfaces Você pode instar uma Classe Virtual? Sim. Você pode isntar uma Interface? Sim. Os objetos são colocados em dois tipos de diagramas o Diagrama de Objetos – usado para visualização dos seus detalhes estruturais; o Diagrama de Interação e Atividade – usado para visualização da participação de objetos em cituações dinâmicas. 34 UML User Guide – Modelagem Estrutural 9.1.2 Formação do Nome O nome é obrigatório para distinção entre objetos Pode ser um nome simples ou com caminho Usa-se “:” para se identificar o nome da abstração de origem. O nome da abstração pode ser omitido quando ela é evidente Quando o nome do objeto é desconhecido então tem-se um objeto anonymous Veja as variações na Fig anterior 9.1.3 Estado Definição: O estado do objeto é a representação dos valores dos atributos mais comuns em um espaço do tempo. Dois tipos de representações são possíveis. Veja a figura: FFIIIGGG 1133--33 PPAAAGGG 118888 35 UML User Guide – Modelagem Estrutural 10 Diagrama de Objetos (Cap 14) Os diagramas de objetos modelam as instâncias de abastrações contidas em um diagrama de Classes. Um diagrama de objetos mostra um conjunto de objetos e seus relacionamentos em um ponto no tempo Usado para modelar visões de Design Estático ou de processos estásticos de um sistema. É uma fotografia do Sistema em um determinado momento. FFIIIGGG 1144--11 PPAAAGGG.. 119966 10.1 Termos e Conceitos Definição: Um diagrama de Objetos é um diagrama que mostra um conjunto de objetos e seus realacionamentos em um ponto no tempo. Contém: o Objetos o Links Pode Conter: o Notas o Constraints 36