In short
In an UML communication diagram, the objects that interact with each other are visually connected with lines along which sequenced messages can circulate in both directions. Lines between objects usually represent links, i.e. instances of an association. But objects can exchange message even if they are not associated (e.g. if one object is passed as parameter or return to the other).
I wish to represent such a message exchange between objects that are not associated. But I would like to disambiguate and clarify that there is no direct association between the involved objects. Do the UML specs allow to express this without creating user-defined stereotypes?
Moreover do the current UML specifications define somewhere a term for the relation between objects in a communication diagram that interact ? And is it possible to further specify in the diagram how the communicating objects know about each other?
More research done before asking the question
I am currently re-reading "The UML User Guide, 2nd edition" by Grady Booch, James Rumbaugh and Ivar Jacobson, a great book that explains the UML specifications in reader-friendly plaintext. It's the updated UML 2 edition of the book and I could map back to the UML 2.5.1 specifications most of their claims.
In chapter 16 on interactions however, they explain that objects communicate along links:
A link specifies a path along which one object can dispatch a message to another (or the same) object. (...) If you need to be more precise about how that path exists, you can adorn the appropriate end of the link with one of the following constraints:
- association: (...) object is visible by association
- self: (...) object is visible because it is the dispatcher of the operation
- global: (...) object is visible because it is in an enclosing scope
- local: (...) object is visible because it is in a local scope
- parameter: (...) object is visible because it is a parameter
In chapter 19, they explain for communication diagrams that objects involved in the interaction are shown interlinked:
you render the links that connect these objects as the arcs of this graph. The links may have rolenames to identify them. Finally, you adorn these links with the messages that objects send and receive.
This seemed straightforward. So I looked for the corresponding UML 2.5.1 specifications:
- Links are solely defined as instances of associations.
- For communication diagrams, there is no mention at all in section 17.9 of links nor communication channels. Figure 17.26 shows interlinked objects (i.e. lifelines), but the lines linking the objects AND the arrows representing the messages along this line seem both to be graphically defined as "messages". This seems very ambiguous to me.
- Moreover I have not found any reference to constraints, keywords or pre-defined stereotypes that could describe how the objects know about each other in a particular diagram and that could justify a communication channel between them.
- I could find
«association»
,«local»
,«global»
,«parameter»
(with the same meaning as above) defined as stereotypes in the obsolete UML 1.4 specification, but no longer in the current specs.
Hence my question.