Qual é a diferença entre agregação e generalização em UML
Índice:
- O que é agregação em UML
- O que é generalização em UML
- Diferença entre agregação e generalização em UML
o principal diferença entre agregação e generalização em UML é que A agregação é uma associação de dois objetos que estão conectados com o relacionamento “tem um”, enquanto a generalização é o processo de formação de uma classe geral a partir de várias classes.
Não é possível desenvolver software complexo de uma vez. Portanto, é necessário entender o que o software deve executar antes de implementá-lo. Unified Modeling Language (UML) é uma linguagem de diagramação visual que ajuda a modelar software. É diferente e mais fácil do que linguagens de programação como Java e C ++. Como ele fornece uma representação pictórica, mesmo uma pessoa não técnica pode aprender e entender UML. Diagrama de classe e objeto são dois tipos de diagramas UML. Além disso, eles descrevem a visão estática do sistema. Agregação e generalização estão relacionadas a esses diagramas.
Agregação, generalização, herança, UML
O que é agregação em UML
Uma associação representa o relacionamento entre dois objetos. A agregação é um tipo de associação. Em outras palavras, é um caso especial de associação. Quando um objeto “tem” outro objeto, podemos considerá-lo uma agregação. Portanto, a agregação descreve o relacionamento “tem um” entre os objetos.
Figura 1: agregação
O funcionário e o endereço estão vinculados à relação “tem um”. Uma instância da classe Address pode existir sem uma instância de Employee. É uma agregação. Na UML, o símbolo do diamante representa uma agregação. A direção denota qual objeto contém o outro objeto.
O que é generalização em UML
A generalização está associada à herança, que é o processo de permitir que as classes usem as propriedades e métodos de classes já existentes. A classe existente é a superclasse, enquanto a nova classe é a subclasse. A generalização combina várias classes em uma classe geral. Além disso, a superclasse possui as propriedades e métodos mais gerais. As subclasses podem compartilhar essas propriedades e métodos. As subclasses podem ter propriedades e métodos especializados. Como uma subclasse é um tipo de superclasse, a generalização representa o relacionamento “é um”.
Figura 2: Generalização
O funcionário é a superclasse. Empregado Permanente e Temporário são subclasses enquanto Empregado é a forma generalizada de Empregado Permanente e Temporário. Já o Colaborador Permanente e Temporário são formas especializadas de Colaborador. Employee possui as propriedades id, name, salary e o método de exibição. As subclasses Funcionário permanente e Funcionário temporário também podem usar essas propriedades e métodos. Além disso, as subclasses têm suas próprias propriedades e métodos. Na UML, uma seta representa a generalização.
Diferença entre agregação e generalização em UML
Definição
A agregação é uma associação entre dois objetos que descreve o relacionamento “tem um”, enquanto a generalização é um mecanismo para combinar classes semelhantes de objetos em uma única classe geral. Portanto, isso explica a principal diferença entre agregação e generalização em UML.
Relação
Agregação denota relacionamento “tem um” enquanto Generalização denota relacionamento “é um”.
Representação UML
Um símbolo de diamante representa uma agregação, enquanto um símbolo de seta representa a generalização. Conseqüentemente, isso explica ainda mais a diferença entre agregação e generalização em UML.
Conclusão
Em resumo, Agregação e Generalização são dois conceitos que podem ser representados em diagramas UML. A principal diferença entre Agregação e Generalização em UML é que Agregação é uma associação de dois objetos que estão conectados com o relacionamento “tem um”, enquanto Generalização é o processo de formar uma classe geral a partir de várias classes.
Referências:
1. “Associação, Agregação, Composição, Abstração, Generalização, Realização, Dependência.” Javapapers, disponíveis aqui.
![Qual é a diferença entre agregação e generalização em UML Qual é a diferença entre agregação e generalização em UML](https://img.books-kingdom.com/images/002/image-4042.jpg)