Critics concerning containment in ArgoUML, that is where one model element forms a component part of another.
The current version of ArgoUML has the following critics in this category.
Suggestion that there is a series of composition relationships (associations with black diamonds) that form a cycle, which is not permitted.
Suggestion that a parameter list to an operation or event has two or more parameters with the same name, which is not permitted.
Only one end (role) of a binary association can be aggregate or composite. This a well-formedness rule of the UML 1.4 standard.
Aggregation and composition are used to indicate whole-part relationships, and by definition, the “part” end cannot be aggregate.
To fix this, identify the “part” end of
the association, and use the critic wizard (the
Next>
button, or manually set its aggregation to
none
using the button 2 pop-up menu or the
property sheet.
Composition (more correctly called composite aggregation) is used where there is a whole-part relationship that is one-to-one or one-to-many, and the lifetime of the part is inextricably tied to the lifetime of the whole. Instances of the whole will have responsibility for creating and destroying instances of the associated part. This also means that a class can only be a part in one composite aggregation.
An example of a composite aggregation might be a database of cars and their wheels. This is a one-to-four relationship, and the database entry for a wheel is associated with its car. When the car ceases to exist in the database, so do its wheels.
Aggregation (more correctly called shared aggregation) is used where there is a whole-part relationship, that does not meet the criteria for a composite aggregation. An example might be a database of university courses and the students that attend them. There is a whole-part relationship between courses and students. However there is no lifetime relationship between students and course (a student continues to exist even after a course is finished) and the relationship is many-to-many.
Three-way (or more) associations can not have aggregate ends (roles). This a well-formedness rule of the UML 1.4 standard.
Aggregation and composition are used to indicate whole-part relationships, and by definition can only apply to binary associations between model elements.
To fix this, manually select the association, and set
the aggregation of each of its ends (roles) to
none
using the button 2 pop-up menu or the property
sheet.
This critic is discussed under an earlier design issues category (see Section 15.3.1, “ Wrap DataType ” ).