10 diagrama de classes
TRANSCRIPT
![Page 1: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/1.jpg)
Engenharia de Software
Diagrama de Classes
Prof. Marcelo de Barros
![Page 2: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/2.jpg)
Um dos mais importantes e mais utilizados da UML
Permite visualizar:◦ As classes e interfaces que comporão o sistema com seus respectivos
atributos e métodos◦ Como as classes do diagrama se relacionam, complementam e
transmitem informações entre si
Visão estática de como as Classes estão organizadas
Serve como base para a construção dos outros diagramas da UML
Introdução
![Page 3: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/3.jpg)
Diagrama é composto de:◦ Classes◦ Associações entre elas (relacionamentos)
Processo Unificado recomenda que se utilize o diagrama de Classes ainda durante a fase de análise
Diagrama de Classes
![Page 4: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/4.jpg)
Representação
Diagrama de Classes
![Page 5: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/5.jpg)
Diagrama de Classes
![Page 6: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/6.jpg)
Representação da Visibilidade:◦ Público (+):
Qualquer classes em qualquer pacote pode acessar a variável
◦ Privado (-): Acessado somente pela própria classe
◦ Protegido (#): Acessado por subclasses localizadas em outros pacotes
◦ Padrão,default ou friendly (~): Disponível para acesso somente para classes dentro do mesmo
pacote
Diagrama de Classes
![Page 7: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/7.jpg)
Código C# da Classe:
Diagrama de Classes
![Page 8: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/8.jpg)
Pode conter características extras:
Diagrama de Classes
![Page 9: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/9.jpg)
Observações
![Page 10: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/10.jpg)
Classes costumam ter relacionamentos entre si◦ Permite que elas compartilhem informações entre si e
colaborem para a execução dos processos executados pelo sistema
Associação descreve um vínculo que ocorre entre os objetos de uma ou mais classes
Representadas por linhas que ligam as classes envolvidas
Relacionamentos ou Associações
![Page 11: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/11.jpg)
Exemplos de Multiplicidade:
◦ 0..1
◦ 1..1 ou 1
◦ 0..*
◦ 1..* ou *
◦ 3..5
Relacionamentos ou Associações
![Page 12: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/12.jpg)
Tipos de Relacionamentos:◦ Unária ou Reflexiva◦ Binária◦ Ternária ou N-ária◦ Agregação◦ Composição◦ Generalização/Especialização◦ Classe Associativa◦ Dependência◦ Realização
Relacionamentos ou Associações
![Page 13: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/13.jpg)
Relacionamento de um objeto de uma classe com objetos da mesma classe◦ Definição de Papéis: Informações extras na associação que
podem ajudar a explicar a função de um objeto dentro da associação
Representação:
Associação Unária ou Reflexiva
![Page 14: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/14.jpg)
Identifica relacionamentos entre objetos de duas classes distintas
Mais comumente encontrada
Representação:
Associação Binária
![Page 15: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/15.jpg)
Navegabilidade é representada por uma seta em uma das extremidades da associação
Representação:
Associação Binária
![Page 16: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/16.jpg)
Conectam objetos de mais de duas classes
Representadas por um losango para onde convergem todas as ligações da associação
Representação:
Associação Ternária ou N-ária
![Page 17: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/17.jpg)
Tipo especial de associação
Tenta demonstrar que as informações de um objeto precisam ser complementadas pelas informações contidas em um ou mais objetos de outra classe
Relação todo/parte◦ Parte “agrega” valor ao todo
Utiliza um losango na extremidade da classe que contém os objetos que precisam ser complementados
Agregação
![Page 18: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/18.jpg)
Representação:
Agregação
![Page 19: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/19.jpg)
Representação:
Agregação
![Page 20: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/20.jpg)
Variação da Agregação, na qual é apresentado um vínculo mais forte entre os objetos
Procura demonstrar que os objetos que precisam ser complementados tem de estar associados a um único objeto que irá complementar
Objetos-partes têm de estar associados a um único objeto-todo
Composição define uma associação que é indivisível e não compartilhada
Composição
![Page 21: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/21.jpg)
Representação:
Composição
![Page 22: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/22.jpg)
Representação:
Composição
![Page 23: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/23.jpg)
Representa a ocorrência de herança entre as classes
Identifica as classes-pai e classes-filhas
Demonstra a hierarquia entre as classes e possivelmente métodos polimórficos nas classes especializadas
Generalização/Especialização
![Page 24: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/24.jpg)
Representação:
Generalização/Especialização
![Page 25: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/25.jpg)
Representação:
Generalização/Especialização
![Page 26: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/26.jpg)
Produzidas quando da ocorrência de associações que tenham multiplicidade muitos (*) em todas as extremidades
Representação:
Classe Associativa
![Page 27: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/27.jpg)
Identifica certo grau de dependência de uma classe em relação à outra
Representada por uma linha tracejada entre as classes, e uma seta apontando para a classe do qual a outra é dependente
Representação:
Dependência
![Page 28: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/28.jpg)
Relacionamento especial que mistura características dos relacionamentos de generalização e dependência
Usada para identificar classes responsáveis por executar funções para outras classes
Herda o comportamento de uma classe, mas não sua estrutura
Realização
![Page 29: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/29.jpg)
Representação:
Realização
![Page 30: 10 diagrama de classes](https://reader035.vdocuments.net/reader035/viewer/2022062419/5573236bd8b42aae7b8b4ece/html5/thumbnails/30.jpg)
Informações extras que definem condições a serem validadas durante a implementação dos métodos de uma classe, das associações entre as classes ou mesmo de seus atributos
Representação:
Restrições