diagrama de classes de projeto
DESCRIPTION
UML Diagrama de Classes de Projeto e Diagrama de Objetos Profª . Marcelo Siedler [email protected]. Diagrama de Classes de Projeto. Oferecem uma notação gráfica formal para a modelagem de classes e seus relacionamentos - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/2.jpg)
Diagrama de Classes de Projeto
Oferecem uma notação gráfica formal para a modelagem de classes e seus relacionamentos
Uma Classe refere-se a descrição de um conjunto de objetos que compartilham os mesmos atributos, operações e relacionamentos
![Page 3: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/3.jpg)
Notação
![Page 4: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/4.jpg)
Nome da Classe
O nome de uma classe distingue uma classe de outra classe. Nome simples Nome do caminho: o nome da classe é precedido pelo
nome do pacote (subsistema) em que a classe existe
![Page 5: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/5.jpg)
Atributo
Características de uma classe
Exemplos: Idade - endereço : String + CPF : inteiro # nroCorrentistas : Inteiro
![Page 6: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/6.jpg)
Operações / Métodos
Uma operação é um serviço que pode ser requisitado a qualquer objeto da classe, afetando seu estado (afetando valor de seus atributos)
Operações de classes X Operações de Objetos Operações de objetos: atuam sobre um objeto (instância) Operações de classes: atuam sobre a classe
Ex: consultar
![Page 7: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/7.jpg)
Visibilidade
Público (+) : o que pode ser visto pelas operações de outras classes
Protegido (#) : o que pode ser visto apenas pelas operações da própria classe e por suas classes herdeiras
Privado (-) : o que pode ser visto apenas pelas operações da própria classe
![Page 8: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/8.jpg)
Estereótipos
Mecanismos de extensão da UML Podem ser utilizados em diversos diagramas Graficamente, um estereótipo é representado por um
nome entre << >> (dois sinais de menor e dois sinas de maior).
Exemplos: No diagrama de classes, podem ser utilizados para
classificar o comportamento dos métodos, por exemplo <<construtor>>
![Page 9: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/9.jpg)
Relacionamentos entre classes
Os relacionamentos determinam as ligações entre as classes.
Fornecem um caminho para a comunicação entre elas
Principais tipos: Associação
Agregação e Composição Generalização
![Page 10: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/10.jpg)
Associação
Uma associação é um relacionamento estrutural que descreve uma ligação (conexão entre as classes ou objetos)
![Page 11: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/11.jpg)
Adornos da Associação
Multiplicidade
Papel
Navegabilidade
![Page 12: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/12.jpg)
Multiplicidade (Cardinalidade)
A multiplicidade (ou cardinalidade) indica a quantidade de ocorrências de um conceito.
Ela é aplicada para atributos, classes e associações
![Page 13: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/13.jpg)
Multiplicidade (Cardinalidade)
![Page 14: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/14.jpg)
Papel
Sua utilização é opcional
![Page 15: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/15.jpg)
Navegabilidade
Por definição, a navegação entre classes associadas é bidirecional (segmento de reta)
Por conveniência, a navegação pode ser restringida a uma única direção
![Page 16: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/16.jpg)
Tipos de Associação
Agregação
Composição
![Page 17: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/17.jpg)
Agregação Agregação é um tipo especial de associação
Representa uma relação todo-parte
Tenta demonstrar que as informações de um objeto todo precisam ser complementadas pelas informações de um objeto parte
Quando o todo é eliminado, as partes continuam existindo
É transitiva (Se A faz parte de B, e B faz parte de C, então A faz parte de C)
É não-simétrica(Se A faz parte B, então B não faz parte de A)
![Page 18: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/18.jpg)
Composição É uma variação da Agregação
Quando uma parte é criada, sua existência deve ser coincidente com o todo.
Quando um todo é eliminado, suas partes também devem ser eliminadas
![Page 19: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/19.jpg)
Generalização
A generalização é o compartilhamento de atributos, operações e relacionamentos entre classes com base em um relacionamento hierárquico (herança). Superclasses e subclasses; Subclasses herdam os atributos e métodos da
superclasse, permitindo ainda modificações nos mesmos (polimorfismo).
![Page 20: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/20.jpg)
Sem generalização
Com generalização
![Page 21: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/21.jpg)
Especialização
Processo inverso ao de generalização
Consiste em: Definir uma ou mais subclasses a partir de uma classe
existente. Adicionar propriedades e associações específicas de cada
nova subclasse. Associações comuns ficam ligadas à superclasse. Pode existir mais de um tipo de especialização com base
em diferentes características
![Page 22: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/22.jpg)
Generalização / Especialização
![Page 23: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/23.jpg)
Classe Associativa
É uma classe derivada de uma associação
![Page 24: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/24.jpg)
Classe Associativa
Transformação de uma Classe Associativa para uma Classe Regular
![Page 25: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/25.jpg)
Classe Concreta / Abstrata
Concreta: pode ter instâncias
Abstrata: não pode ter instâncias Contém uma ou mais operações abstratas:
Uma operação abstrata possui apenas a assinatura (cabeçalho) mas não possui implementação
A classe abstrata é sempre uma superclasse que não possui instâncias, e só tem sentido se tiver subclasses que implementem as operações abstratas
O nome de uma classe abstrata é escrito em itálico, ou possui a restrição {abstract}
![Page 26: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/26.jpg)
Exemplo de Classe Abstrata
![Page 27: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/27.jpg)
Interface
Interface é uma “classe abstrata” que não possui atributos e que todas as operações são públicas e abstratas.
Notação:
![Page 28: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/28.jpg)
Herança Múltipla
Muitas linguagens orientadas a objetos não possuem o mecanismo de herança múltipla.
![Page 29: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/29.jpg)
Diagrama de ClassesSistema Bancário
![Page 30: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/30.jpg)
Diagrama de Objetos
SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIALFACULDADE DE TECNOLOGIA SENAC PELOTAS
![Page 31: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/31.jpg)
Diagrama de Objetos
Da mesma forma que um objeto é uma instância de uma classe, um diagrama de objetos é uma instância de um diagrama de classes.
Um diagrama de objetos apresenta uma determinada configuração de um diagrama de classes, sendo interessante para realizar discussões sobre o modelo de objetos.
![Page 32: Diagrama de Classes de Projeto](https://reader035.vdocuments.com.br/reader035/viewer/2022062517/56813219550346895d9877fe/html5/thumbnails/32.jpg)
Diagrama de ObjetosSistema Bancário