I'm confused about the difference between something being a "stereotype" and being a "superclass" in UML.
Let's say I want to create a diagram involving a "WidgetMaker
." WidgetMaker
is clearly an Actor
so the UML standard is to stereotype it actor:
<<Actor>> WidgetMaker
But I grew up programming in the Java/Ruby/C++ world. In that world, the relationship is:
class Actor
end
class WidgetMaker < Actor
end
That looks like this in UML:
Actor
^
|
WidgetMaker
So my question is: why does UML have stereotypes at all when you can just as easily model those concepts using class inheritance, which it also has.
Once we have more "kinds" of actors, the question becomes even murkier:
Actor
^
|
------------------------
| | |
Person Robot Group
^
|
WidgetMaker
versus
<<Actor>> <<Person>> WidgetMaker