Unified Modelling Language (UML) Notes
- UML Class and Object Diagrams Overview, uml-diagrams.org.
- UML Association, uml-diagrams.org.
- UML Aggregation, uml-diagrams.org.
- UML Association vs Aggregation vs Composition, visual-paradigm.com.
- UML Relationships and Associations, Aggregation and Composition.
- Unified Modeling Language Specification Version 2.5, Overload Journal #30 - Feb 1999.
Class As A Model
A class is something that groups objects with similar characteristics. For
example, the class
Animal groups dogs, cats, giraffes etc. into the group
labelled "animal". I.e it is a model.
A class defines the abstract idea or concept of the group it represents. The class
Animal, for example, defines the idea of an animal. This idea is a
model, which means that it does not capture absolutely everything possible about
an animal. It only captures characteristics relevant to the domain in which it is
being used. For example, for a kennel, it might only need to capture an ID, name and
owner. For a veterinary surgery it would need to capture even more detailed characteristics
like blood type. This is what is mean by "domain": the context in which the class
is being used.
A class is an abstraction. For example, all the characteristics of a real animal are not represented in the model, only those required. The other real-world characteristics are abstracted away. The kennel, for instance, doesn't need to know the blood type of the animal, so does not represent that in its model of an animal. The surgery, however, does so would not abstract it away. Thus the level of abstraction depends on the domain.
One other bit of modelling jargon is the "intent" of a class. This is the
definition of class membership. For example, in the veterinary surgery,
represents the set of animals that are registered with the surgery, not the the set of
What I have called "characteristics" are referred to as "attributes"
in UML. As well as its name, an attribute has a type, multiplicity and may also have
additional properties such as
This is what the UML spec has to say about modelling:
... A model is always a model of something. The thing being modeled can generically be considered a system within some domain of discourse. The model then makes some statements of interest about that system, abstracting from all the details of the system that could possibly be described ...
Ternary and Association Classes
... Sometimes a Property is used to model circumstances in which one instance is used to group together a set of instances; this is called aggregation ...
none Indicates that the Property has no aggregation semantics. shared Indicates that the Property has shared aggregation semantics. Precise semantics of shared aggregation varies by application area and modeler. composite Indicates that the Property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects.
Composite aggregation is a strong form of aggregation that requires a part object be included in at most one composite object at a time. If a composite object is deleted, all of its part instances that are objects are deleted with it.
NOTE. A part object may (where otherwise allowed) be removed from a composite object before the composite object is deleted, and thus not be deleted as part of the composite object.