Diagrama de Classe Profa Simone Sawasaki Tanaka [email protected] Diagrama de Classe • Mostra um conjunto de classes, interfaces e colaborações e seus relacionamentos. • Os diagramas de classes abrangem a visão estática do projeto de um sistema. Workflow do Diagrama de Classe Identificar as Classes do Sistema • Todas as classes devem fazer sentido no domínio da aplicação. Nem todas as classes surgem explicitamente na definição do problema; algumas estão implícitas no domínio da aplicação ou no conhecimento geral [30]. • A partir da definição do requisitos, comece a listar as classes de objetos candidatas encontradas na descrição do problema. Não seja muito seletivo; registre todas as classes que vierem à cabeça. As classes muitas vezes correspondem a substantivos. Por exemplo, na frase “um sistema de reservas para vender entradas para peças em diversos teatros”, as classes possíveis seriam “Reserva, Sistema, Entrada, Peça e Teatro” [30]. Definir Atributos • Um atributo é uma propriedade nomeada de uma classe que descreve um intervalo de valores que as instâncias da propriedade podem apresentar. • Conforme Rup, durante a definição de métodos e a identificação de estados, são identificados os atributos que a classe precisa para executar suas operações. Os atributos fornecem armazenamento de informações para a instância da classe e muitas vezes são utilizados para representar o estado da instância da classe. Qualquer informação que a própria classe mantém, ela o faz através de seus atributos. Para cada atributo, defina: Definir Atributos • seu nome • seu tipo, que será um tipo de dado elementar suportado pela linguagem de implementação; • seu valor padrão ou inicial, com o qual é inicializado quando novas instâncias da classe são criadas; • a visibilidade • a multiplicidade especifica a quantidade valores que podem estar associados a um elemento do modelo. • String_propriedade O elemento propriedades permite acrescentar praticamente qualquer informação adicional sobre o atributo que não se encaixe em um dos elementos predefinidos. Passo a passo para Definir o Atributo [visibilidade] [/] nome-do-atributo : [tipo] [multiplicidade] [=default] [{string_propriedade}] -Nome: String=no default, {Required, 1..30 carac, espaços e pontuação permitidos} Definir Operação • Uma operação é uma abstração de algo que pode ser feito com um objeto e que é compartilhado por todos os objetos dessa classe. Uma classe pode ter qualquer número de operações ou até nenhuma operação. • Para identificar operações em classes : • Estude as responsabilidades de cada classe de análise correspondente, criando uma operação para cada responsabilidade. Use a descrição da responsabilidade como a descrição inicial da operação. • Estude as realizações de casos de uso nas participações de classe para ver como as operações são utilizadas pelas realizações de casos de uso. Amplie as operações, uma realização de Caso de Uso por vez, refinando as operações, suas descrições, tipos de retorno e parâmetros. Os requisitos de cada realização de Caso de Uso pertencentes às classes são descritos textualmente no Fluxo de Eventos da realização de Caso de Uso. Passo a Passo para Definir a Operação [visibilidade] nome ([lista-parâmetro]) “:” [ resultado-retorno] [{propriedades}] + definirDuracao(nova_duracao: int) : void {a nova duracao não pode causar sobreposição com outro evento planejado} Estabelecer a Relacionamento • As associações proporcionam o mecanismo para os objetos se comunicarem entre si. Elas fornecem aos objetos um canal pelo qual as mensagens podem fluir. Além disso, documentam as dependências entre as classes, destacando que as mudanças em uma classe podem ser percebidas entre muitas outras classes. Definir a Multiplicidade • A multiplicidade procura determinar o número mínimo e o máximo de objetos envolvidos em cada extremidade da associação, além de permitir especificar o nível de dependência de um objeto para com os outros envolvidos na associação. Elaborar o Diagrama de Classe • Os diagramas de classes mostram a estrutura estática do modelo, principalmente os elementos existentes, como classes, sua estrutura interna e seus relacionamentos com outras classes. Eles não mostram informações temporárias. • Um diagrama de classes é apresentado como um conjunto de elementos do modelo declarativos (estáticos) - como classes, pacotes e seus relacionamentos - que são conectados entre si e a seu conteúdo como um gráfico. Os diagramas de classe podem ser organizados em (e pertencentes a) pacotes, mostrando apenas o que é relevante em um determinado pacote. Mapa Conceitual do Diagrama de Classe Diagrama de Atividade Conceitos Publica Operação Privada que pode ser Pode ser Pacote possui Realização (Interface) Protegido Visibilidade pode ser Relacionamento possui Classe possui possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser pode ser Multiplicidade Associação Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser possui Tem pode ser possui Bidirecional Ternária Estático Tipos Classe Diagrama de Atividade Conceitos Publica Exemplo: Operação Privada que pode ser Pode ser Pacote possui Realização (Interface) Protegido Visibilidade pode ser Relacionamento possui Atributos possui Definição: pode ser possui Representa uma categoria, e os objetos são os Tem Dependência ou exemplos dessa membros categoria. Em geral, uma classeTem tem atributos e métodos, mas é possível encontrar classes que contenham pode ser Associação apenas uma dessas características ou mesmo Generalização pode ser nenhuma delas, como no caso de classes ser abstratas. Podendo ser de dois tipos:pode abstratas pode ser pode ser e concretas. pode ser possui Estereótipo pode ser Bidirecional Ternária possui pode ser possui pode ser Multiplicidade Classe Associação Composição Agregação Unidirecional possui Classe possui Derivado Estático Tipos Classe • As classes são os blocos de construção mais importante de qualquer sistema orientado a objetos. • É uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos. Classe • Representa a abstração de um conjunto de OBJETOS do Mundo Real que possuem tipos de características e de comportamento em comum. Classe Veículo Notação da Classe • A notação da classe é representada por um retângulo subdividido em 3 partes. • Nome da Classe • Atributo • Operação Relacionamento Diagrama de Atividade Conceitos Publica Operação Definição: Privada que pode ser Realização (Interface) pode ser Relacionamento possui pode ser As classes costumam ter relacionamentos entre si, possui chamados associações, que permitem que elas compartilhem informações entre si Classe e colaborarem para a possui execução possui dos processos executados pelo sistema. possui Pode ser Pacote possui Atributos possui Estereótipo Tem Dependência pode ser Classe Associação pode ser pode ser Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser Multiplicidade Generalização pode ser possui possui Tem Associação Protegido Visibilidade Bidirecional Ternária Estático Tipos Relacionamento • Na UML, os modos pelos quais os itens podem estar conectados a outros, isto é, logicamente ou fisicamente, são modelados como relacionamentos, que permitem compartilhar informações e colaboram para a execução dos processos pelo sistema (GUEDES, 2005). • Existem 4 tipos de relacionamentos: – – – – Associação Generalização Dependência Realização Operação Diagrama de Atividade Definição: Também conhecido como método ou Conceitos comportamento da qual representa uma atividade que um objeto de uma classe que pode ser pode executar. Publica Operação Privada Pode ser Pacote possui operação() : int operação() : boolean Realização (Interface) Protegido Visibilidade pode ser Relacionamento possui Classe possui possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser pode ser Multiplicidade Associação Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser possui Tem pode ser possui Bidirecional Ternária Estático Tipos Operação • Uma ação que o objeto executa, é uma ordem que faz o objeto a agir. • A implementação de uma operação é chamada de método. Operação Atributos Diagrama de Atividade Conceitos Definição: que pode ser Publica Operação Privada Representam as características de Pode ser possui uma classe, ou seja, as Pacote peculiaridades que costumam variar Protegido de um objeto para outro. Visibilidade Realização (Interface) pode ser Relacionamento possui Classe possui possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser Generalização pode ser Composição pode ser Agregação Unidirecional pode ser Multiplicidade Derivado pode ser pode ser pode ser Classe Associação pode ser pode ser possui Tem Associação possui Bidirecional Ternária Estático Tipos Notação do Atributo • Esses elementos normalmente são expressos em uma única string de texto, utilizando a sintaxe: • [visibilidade] [/] nome [: tipo] • A maioria das ferramentas trazem essas informações em campos separados, tornando assim mais fácil a visualização. Derivado Diagrama de Atividade Conceitos Publica Operação Privada Definição: Pode ser É o atributo do qual seus valores possui são representados por algum tipo de calculo. Nestes casos o Visibilidade atributo é representado por uma / na frente possui Classe do atributo. que pode ser Realização (Interface) pode ser possui Relacionamento possui /atributo possui Estereótipo Tem Dependência pode ser Classe Associação pode ser pode ser pode ser Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional possui Multiplicidade Generalização pode ser possui possui Tem Associação Protegido Atributos possui pode ser Pacote Bidirecional Ternária Estático Tipos Estático Diagrama de Atividade Definição: Conceitos que pode ser Realização (Interface) São atributos cujos Operação valores são Publica idênticos Privada para todos os objetos de uma classe, ou seja é um atributo pertencente Pode a classe ser Pacote possui propriamente dita. Sua identificação se dá através do nome da variável Protegido Visibilidade sublinhado. pode ser Classe possui Relacionamento possui atributo possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser pode ser Multiplicidade Associação Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser possui Tem pode ser possui Bidirecional Ternária Estático Tipos Tipos Diagrama de Atividade Definição: O tipo de atributo identifica um classificador que Publica explica aPrivada Operação espécie de informação que pode ser armazenada no atributo. Pode ser Conceitos que pode ser Pacote possui int, boolean, Visibilidade varchar, double possui Realização (Interface) pode ser Classe possui Relacionamento possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser Classe Associação pode ser pode ser Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser Multiplicidade Generalização pode ser possui possui Tem Associação Protegido Bidirecional Ternária Estático Tipos Associação Diagrama de Atividade Conceitos Publica Operação que pode ser Definição: Pode ser Uma associação descreve um vínculo ocorre normalmente Realização que (Interface) entre os objetos de uma ou mais classes. pode ser Pacote possui possui Classe possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser pode ser pode ser Multiplicidade Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser possui possui Tem Associação Protegido Visibilidade possui Relacionamento pode ser Composição pode ser Agregação Unidirecional Privada Bidirecional Ternária Estático Tipos Unidirecional Diagrama de Atividade Conceitos Publica Operação Privada que pode ser Pode ser Pacote possui Realização Definição: (Interface) relacionamento de um objeto pode ser de uma classe com objetos da mesma classe.Relacionamento possui Classe possui possui possui possui Estereótipo Tem pode ser Generalização pode ser Composição pode ser Agregação Unidirecional pode ser pode ser Multiplicidade Derivado pode ser pode ser pode ser Classe Associação pode ser possui possui Exemplo: Tem Associação Atributos possui pode ser Dependência Protegido Visibilidade Bidirecional Ternária Estático Tipos Bidirecional Diagrama de Atividade Conceitos Publica Operação Privada que pode ser Pode ser Pacote possui Realização (Interface) Definição:pode ser relacionamento entre objetos Relacionamento de duas classes distintas. possui Classe possui possui possui possui Estereótipo Tem Exemplo: Tem Associação pode ser pode ser pode ser Multiplicidade Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional possui possui Classe Associação pode ser Generalização pode ser Atributos possui pode ser Dependência Protegido Visibilidade Bidirecional Ternária Estático Tipos Ternária Diagrama de Atividade Definição: São associações que conectam objetos Conceitos de mais de duas classes. São representadas por um losango para onde que pode ser convergem todas as ligações da associação. Publica Operação Privada Pode ser Pacote possui Realização (Interface) Protegido Visibilidade pode ser Relacionamento possui Classe possui Exemplo: possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser pode ser Multiplicidade Associação Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser possui Tem pode ser possui Bidirecional Ternária Estático Tipos Agregação Diagrama de Atividade Definição: É um tipo especial de associação onde se tenta demonstrar que as informações de Conceitos um objeto (chamado objeto-todo) precisam ser pode ser em complementadas pelas informações que contidas um ou mais objetos de outra classe (chamados objetos-parte). Esse tipo de associação tenta Realização demonstrar uma relação todo/parte entre os (Interface) objetos associados. Publica Operação Privada Pode ser Pacote possui Protegido Visibilidade pode ser Relacionamento possui Classe possui possui Atributos possui pode ser possui Exemplo: Estereótipo Tem Dependência pode ser pode ser pode ser Multiplicidade Associação Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional possui possui Tem pode ser possui Bidirecional Ternária Estático Tipos Composição Diagrama de Atividade Conceitos Exemplo: que pode ser Publica Operação Privada Pode ser Definição: É Realização um tipo de composição da qual constitui-se (Interface) em uma variação da agregação, onde é pode ser apresentado um vínculo mais forte entre os Classe objetos-todo e os Relacionamento objetos-parte, possui procurando demonstrar que os objetos-parte têm de estar pode ser possui associados a um único objeto-todo. possui possui possui possui pode ser possui Tem pode ser Multiplicidade Associação Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser Atributos possui Estereótipo pode ser Protegido Visibilidade Tem Dependência pode ser Composição pode ser Agregação Unidirecional Pacote possui Bidirecional Ternária Estático Tipos Classe Associação Diagrama de Atividade Conceitos Publica Operação Privada que pode ser Exemplo: Pode ser Pacote possui Definição: Realização (Interface) são aquelas produzidas quando da ser ocorrência podede associações que tenham multiplicidade muitos (*) em possui Relacionamento todas as suas extremidades. pode ser possui Classe possui possui Estereótipo Tem pode ser Generalização pode ser Composição pode ser Agregação Unidirecional pode ser pode ser Multiplicidade Derivado pode ser pode ser pode ser Classe Associação pode ser possui possui Tem Associação Atributos possui possui Dependência Protegido Visibilidade Bidirecional Ternária Estático Tipos Multiplicidade Diagrama de Atividade Conceitos Publica Operação Privada que pode ser Pode ser Pacote possui Realização (Interface) Protegido Visibilidade pode ser Relacionamento possui Classe possui possui Atributos possui pode ser Dependência Tem Definição: possui possui especifica a quantidade valores Tem pode ser a possui que podem estar associados um elemento dopode modelo. Classe Associação ser Associação Generalização ser [0..5] oupode 0..5 pode ser pode ser pode ser Composição pode ser Agregação Unidirecional Bidirecional Ternária Estereótipo possui pode ser pode ser Multiplicidade Derivado Estático Tipos Realização (Interface) Diagrama de Atividade Definição:Conceitos Publica É um tipo de relacionamento especialOperação que que pode ser mistura características dos relacionamentos de generalização e dependência, sendo possui usada para identificar classes responsáveis por executar funções para outras classes. Realização (Interface) Privada Pode ser Pacote Protegido Visibilidade pode ser Relacionamento possui Classe possui possui Atributos possui pode ser possui Exemplo: Dependência possui Estereótipo Tem pode ser pode ser Multiplicidade Associação Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser possui Tem pode ser possui Bidirecional Ternária Estático Tipos Generalização Diagrama de Atividade Conceitos Definição: O objetivo dessa associação é representar a que pode ser ocorrência de herança entre as classes, identificando as superclasses, chamadas gerais e subclasses, chamadas especializadas, Realização demonstrando a hierarquia entre as classes e (Interface) possivelmente pode ser métodos polimórficos nas classes Exemplo: especializadas. Classe possui Relacionamento Publica Operação Pode ser Pacote possui possui possui possui Atributos possui Estereótipo Tem Dependência pode ser Classe Associação pode ser pode ser Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser Multiplicidade Generalização pode ser possui possui Tem Associação Protegido Visibilidade possui pode ser Privada Bidirecional Ternária Estático Tipos Estereótipo Diagrama de Atividade Definição: Permite a extensibilidade aos componentes ou associação da Publica Operação UML. Como exemplo tem-se o include e o extend. Pode ser Conceitos que pode ser Privada Pacote possui Realização (Interface) <<entity>> <<boundary>> Visibilidade <<control>> possui <<enumeration>> Exemplo: pode ser Classe possui Relacionamento possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser Classe Associação pode ser pode ser Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser Multiplicidade Generalização pode ser possui possui Tem Associação Protegido Bidirecional Ternária Estático Tipos Visibilidade Diagrama de Atividade Conceitos Definição: Realização (Interface) pode ser Publica Operação que pode ser É utilizada para indicar o nível de acessibilidade de um determinado atributo ou método, sendopossui representada à esquerda destes, existindo basicamente quatro modos de visibilidade: público, protegido, privado e pacote. Pode ser Pacote possui possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser Classe Associação pode ser pode ser Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser Multiplicidade Generalização pode ser possui possui Tem Associação Protegido Visibilidade Classe possui Relacionamento Privada Bidirecional Ternária Estático Tipos Publica Diagrama de Atividade Definição: Conceitos Determina que o atributo ou Operação método pode ser utilizado por que pode ser qualquer objeto. Publica Privada Pode ser Pacote possui + atributo3 Realização (Interface) Protegido Visibilidade pode ser Relacionamento possui Classe possui possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser pode ser Multiplicidade Associação Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser possui Tem pode ser possui Bidirecional Ternária Estático Tipos Privada Diagrama de Atividade Definição: Somente os objetos da classe detentora do atributo ou método Operação poderão enxergá-lo. que pode ser Conceitos Publica Privada Pode ser - atributo1 Pacote possui Realização (Interface) Protegido Visibilidade pode ser Relacionamento possui Classe possui possui Atributos possui pode ser possui possui Estereótipo Tem Dependência pode ser pode ser Multiplicidade Associação Classe Associação pode ser Generalização Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser possui Tem pode ser possui Bidirecional Ternária Estático Tipos Pacote Definição: Diagrama de Atividade Determina que o atributo ou método é visível por qualquer objeto dentro do pacote. Somente elementos que fazem Conceitos parte de um pacote podem Operação ter essa que pode ser Nenhum elemento fora do visibilidade. pacote poderá ter acesso a um atributo possui ou método com essa visibilidade. Realização (Interface) Relacionamento possui possui possui Estereótipo Tem Dependência pode ser Generalização Classe Associação pode ser Composição pode ser Agregação Unidirecional pode ser pode ser Derivado pode ser pode ser pode ser possui Multiplicidade pode ser Protegido possui Tem Associação Pacote Atributos possui pode ser Pode ser possui Classe possui Privada Visibilidade ~ atributo4 pode ser Publica Bidirecional Ternária Estático Tipos Protegido Diagrama de Atividade Definição: Determina Conceitos que além dos objetos da classe detentora do atributoOperação ouquemétodo também os objetos pode ser de suas subclasses poderão ter possui acesso ao mesmo. Realização (Interface) # atributo2 pode ser Pacote possui possui possui Atributos possui Estereótipo Tem Dependência pode ser Classe Associação pode ser pode ser Derivado pode ser pode ser pode ser Composição pode ser Agregação Unidirecional pode ser Multiplicidade Generalização pode ser possui possui Tem Associação Protegido Visibilidade possui pode ser Privada Pode ser Classe possui Relacionamento Publica Bidirecional Ternária Estático Tipos Dependência Diagrama de Atividade Conceitos Publica Operação Privada que pode ser Pode ser Pacote possui Realização (Interface) Protegido Visibilidade pode ser Relacionamento possui possui Classe possui Atributos possui pode ser Dependênci a possui possui Estereótipo Tem Definição: Este relacionamento, como o próprio nome diz, identifica Classe Associação pode ser Associação certo grau de dependência de um Generalização pode ser Caso de Uso em relação à outra. O Composição pode ser pode ser pode ser de dependência é relacionamento pode ser apresentado por uma linha tracejada Agregação Unidirecional entre Caso deTernária Uso. Bidirecional pode ser Tem possui pode ser possui pode ser Multiplicidade Derivado Estático Tipos Onde fazer o Diagrama de Classe no Rational Rose? • O Diagrama de Classe deve ser feito no Logical View Design Model • Dentro do pacote Use-Case Realization 44 1. Expandir o Logical View 2. Expandir o Design Model 3. Expandir Use-Case Realization 45 4. Criar o pacote com o nome do Caso de Uso 46 5. Fazer a realização de caso de uso 47 6. Clique duplo na Realização do Caso de uso, para fazer a realização 6.1. Arrastar o caso de uso do Use Case View 6.2. Arrastar o elemento do use case realization 6.3. Fazer a associação entre eles utilizando o Realize 48 49 7. VoPC – View of Participating Class 50 8. Clique duplo no VoPC, para a criação da classe 8.1. Arrastar o elemento que representa a classe 8.2. Inserir o nome da classe, atributos e operações 8.3. Caso necessário, efetuar a associação entre as classes. 51 52 • Após realizado todos os VoPC´s para as classes, deverá arrastá-las para o Welcome e efetuar as associações entre elas. 53