15.3.  Class Selection

These are critics concerning how classes are chosen and used.

ArgoUML has the following critics in this category.

15.3.1.  Wrap DataType

DataTypes are not full classes within UML 1.4. They can only have enumeration literals as values, and only support query operations (that is operations that do not change the DataType's state).

DataTypes cannot be associated with classes, unless the DataType is part of a composite (black diamond) aggregation. Such an association relects the tight binding of a collection of DataType instances to a class instance. In effect such a DataType is an attribute of the class with multiplicity.

Good OOA&D depends on careful choices about which entities to represent as full objects and which to represent as attributes of objects.

There are two options to fix this problem.

  • Replace the DataType with a full class.

  • or change the association aggregation to composite relationship at the DataType end.

15.3.2.  Reduce Classes in namespace <namespace>

Suggestion to improve understandability by having fewer classes in one namespace. If one namespace (such as the model, a package, or a class) has too many classes it may become very difficult for humans to understand. Defining an understandable set of namespaces is an important part of your design.

The Wizard of this critic allows setting of the treshold, i.e. the maximum number of classes allowed before this critic fires.

[Caution]Caution

This number is not stored persistently, and there is no way to reduce it after it has been set higher, except by creating more classes until the critic fires again. Restarting ArgoUML resets this number to its default: 20.

15.3.3.  Clean Up Diagram

Suggestion that the diagram could be improved by moving model elements that are overlapping.