Qual é a diferença entre agregação e generalização em UML

Índice:

Anonim

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