Does a relation (aggregation, composition) replace

2019-04-14 16:14发布

问题:

I'm pretty new at UML modelling so bear with me.

Say I have a class with an attribute students that is a list of Student instances. I have set an aggregation relation to the Student class which is also in the diagram. Does this relation replace an attribute entry such as #students : Student[] in the container class, or can the attribute and relation co-exist?

Thanks in advance for any answers!

回答1:

Short answer: Can the attribute and relationship both exist? No...

But if your classes are software classes you may have many choices for showing them:

But if your classes are not sofware classes and you model the domain you should be more carefully to show an entity as an attribute or class. Generally if the entity is complex type, it is shown as seperate class. But that is not a rule: depends on context.



回答2:

An attribute helps to identify the structure of the object. Aggregation gives a high level overview that the object will contain one (or more) of another type. Neither replaces, but instead shows the relationship between the object types.



回答3:

You generally do not have attributes of a user-defined (or any complex) class. You certainly don't show an attribute AND an association for the same thing in UML. If I understand your situation, you're in need of an association (or aggregation/composition)... And play with the multiplicities to get it right.



标签: uml