1

In a project I have a rather complex class design with many interfaces and implementing classes. When I create an UML diagram it gets rather big. If I would be able to remove intermediary interfaces this would save a lot of space in the diagram.

As I am not very experienced with UML I have two questions:

  • is removing intermediary interfaces "legitimate" in UML ?
  • how could this be done with ObjectAid UML Explorer ?

Here is a simplified diagram that should show what I am talking about. If I were able to remove interface Person and only show the connection with class PersonImpl this would be sufficient.

This is what I would like to achieve (sorry, I did not have access to a better image manipulation program):

enter image description here

Marged
  • 10,577
  • 10
  • 57
  • 99
  • Without the interface Person, what will the connection between Family and PersonImpl become? Wouldn't you lose the original meaning of the UML diagram? – almightyGOSU Jun 05 '15 at 12:31
  • @Gosu perhaps I did not get your question right: I would like to connect Family and PersonImp directly because in this design PersonImpl is just an inplementation of the Person interface, nothing added / nothing removed. – Marged Jun 05 '15 at 12:33
  • Aren't you asking whether you can "remove intermediary interfaces in UML", which would be `Person` in this case? – almightyGOSU Jun 05 '15 at 12:36
  • @Gosu yes I am, I updated the image to better explain what I mean – Marged Jun 05 '15 at 12:45

2 Answers2

3

What you can do is to use the lollipop notation:

Lollipop

Which is also called the Ball & Socket.

almightyGOSU
  • 3,731
  • 6
  • 31
  • 41
qwerty_so
  • 35,448
  • 8
  • 62
  • 86
  • Do you happen to know how this can be done in ObjectAid (if not: ObjectAid creates the diagrams from source, so normally I don't draw them manually and have limited influence on how the diagram gets drawn) ? Does the "lollipop notation" have another name ? I did not find such an option in ObjectAid, perhaps I can find it with a different name. – Marged Jun 05 '15 at 13:00
  • Unfortunately I don't know ObjectAid. Hopefully the edit from @Gosu will help. Socket is the required interface and shown as a half circle while the above is a provided interface. – qwerty_so Jun 05 '15 at 16:28
1

I don't think that would be a useful or legitimate diagram. Unless Family is already aware of PersonImpl (which usually I'd expect it not to be), there's no association to be drawn, there's no direct relationship between the two types.

E-Riz
  • 31,431
  • 9
  • 97
  • 134