I don't know which modeling tool you are using. If your tool allows, draw the dependency arrow to the derived from the base class as <<same instance>>, and label both columns with the same object name. Actually, since there is no standard, you could use a different name for your stereotype to help communicate your intent. If you follow my lead, it will look like this:
______________ <<same instance>> _________________
| myObject: Base | ------------------------------------------> | myObject: Derived |
Then show the messaging between these levels of abstraction as you wish to represent the pattern you intend to communicate. For example, if you wanted someone to call the base class method f(), you could show a messaging coming from a client to myObject:Base and show it implemented as a call directly to the method of the same name in myObject:Derived. To go the other way, show the call from myObject:Derived to myObject:Base and indicate super.f() on the message.
This is not ideal, but it works and I don't see any other mechanism in UML for representing behavior that is distributed vertically through a generalization relationship such as is found in several of the GoF Design Patterns.
I hope this was helpful,
On 3/5/08, uml <firstname.lastname@example.org> wrote:
Thanks Scott and Anthony,
So I didnīt miss anything, there just is no definite way of specifying this.
So the 2 ways of doing it are:
1) 2 columns for the same object, one for each class.
Scott: how would you write the stereotype dependency?
2) 1 column, with a reflexive call super.f() or A.f(), depending on what is in the code.
uml mailing list