| asymmetric reflexive association | has definition A reflexive association in which the roles at either end are different. |  |
| is a subtopic of 5.3 - Associations and Multiplicity |  |
| is a kind of reflexive association |  |
| should be labelled using role names instead of an association name |  |
| association | can have a label which is an association name or a role name |  |
| cannot be drawn as a hierarchy |  |
| describes a relationship that will exist between instances at run time |  |
| has default name "has" if it has neither an association name nor a role name |  |
| has example class Person in a business application might have the following relationships supervisor (association to class Manager) and tasksToDo (association to class Task) |  |
| has part association name |  |
| has part role name |  |
| is bi-directional unless it has an arrow at one end indicating directionality |  |
| is legitimate only if its links will survive beyond the execution of any particular operation |  |
| is drawn as a line, or set of connected lines, between two classes in a UML class diagram |  |
| 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 |  |
| may be implemented in several ways in Java |  |
| must not be added to a model unless it is relevant to the application - it will be needed to implement some requirement |  |
| normally represents something that will be stored in a database |  |
| represents all the links between two classes that may ever exist |  |
| 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 |  |
| should have sufficient names to make the association clear and unambiguous |  |
| shows how two classes are related to each other |  |
| data abstraction | groups the pieces of data that describe some entity, so that programmers can manipulate that data as a unit |  |
| helps a programmer to cope with the complexity of data |  |
| hides the details of data |  |