composition | has definition A strong kind of aggregation in which if the aggregate is destroyed, then the parts are destroyed as well | ![2001-08-30 14:55:00.0](facet.gif) |
has example The rooms of a building cannot exist without the building | ![2001-08-30 14:55:00.0](facet.gif) |
is a subtopic of 5.6 - More Advanced Features of Class Diagrams | ![2001-08-30 14:55:00.0](facet.gif) |
is drawn as a solid (filled-in) diamond in a UML diagram | ![2001-08-30 14:55:00.0](facet.gif) |
is a kind of aggregation | ![2001-08-30 14:55:00.0](facet.gif) |
aggregation | represents 'part-whole' relationships | ![2001-08-30 14:54:29.0](facet.gif) |
association | can have a label which is an association name or a role name | ![2001-08-30 14:54:35.0](facet.gif) |
describes a relationship that will exist between instances at run time | ![2001-08-30 14:54:35.0](facet.gif) |
has default name "has" if it has neither an association name nor a role name | ![2001-08-30 14:54:35.0](facet.gif) |
has part association name | ![2001-08-30 14:54:35.0](facet.gif) |
has part role name | ![2001-08-30 14:54:35.0](facet.gif) |
is bi-directional unless it has an arrow at one end indicating directionality | ![2001-08-30 14:54:35.0](facet.gif) |
is legitimate only if its links will survive beyond the execution of any particular operation | ![2001-08-30 14:54:35.0](facet.gif) |
is usually implemented using instance variables in Java: you divide each two-way association into two one-way associations - so each associated class has an instance variable | ![2001-08-30 14:54:35.0](facet.gif) |
may be implemented in several ways in Java | ![2001-08-30 14:54:35.0](facet.gif) |
must not be added to a model unless it is relevant to the application - it will be needed to implement some requirement | ![2001-08-30 14:54:35.0](facet.gif) |
should exist if a class possesses, controls, is connected to, is related to, is a part of, has as parts, is a member of, or has as members, some class in your model | ![2001-08-30 14:54:35.0](facet.gif) |
should have sufficient names to make the association clear and unambiguous | ![2001-08-30 14:54:35.0](facet.gif) |
shows how two classes are related to each other | ![2001-08-30 14:54:35.0](facet.gif) |
data abstraction | groups the pieces of data that describe some entity, so that programmers can manipulate that data as a unit | ![2001-08-30 14:55:09.0](facet.gif) |
helps a programmer to cope with the complexity of data | ![2001-08-30 14:55:09.0](facet.gif) |
hides the details of data | ![2001-08-30 14:55:09.0](facet.gif) |