UML Diagramm bei Subinterfaces?
Wir hatten folgende Aufgabe:
Und das habe ich gezeichnet:
Das Interface B extends A, also ist B ein sogenanntes Subinterface, richtig? Aber wie male ich diese Beziehung dann in das Klassendiagramm? Mit dem klassischen Vererbungsbeziehungspfeil?
2 Antworten
In UML gibt es eine Unterscheidung zwischen einer Generalisierung (Vererbung bzw. Spezialisierung) und einer Realisierung (Implementation).
Ein Sub-Interface eines Interface implementiert/realisiert dessen Methoden nicht, aber erbt sie. Es besteht ein Kind-Elternverhältnis. Daher handelt es sich um eine Vererbung, die mit einem leeren Pfeil und durchgezogener Linie dargestellt wird.
Eine Klasse, die ein Interface implementiert, repräsentiert eine Realisierung (sie erfüllt die ihr vorgesetzten Vorgaben). Die Linie wird gestrichelt gezogen, der Pfeil bleibt leer.
In Java kannst du dich der Einfachheit halber auch an den Schlüsselwörtern orientieren, die im Code genutzt werden:
SubClass extends BaseClass => Generialization
Class implements Interface => Realization
SubInterface extends Interface => Generialization
Zusammengefasst lässt sich sagen, dass deine Zeichnung so richtig ist.
Im UML-Diagramm wird meistens die Vererbung so gezeigt, wie du sie aufgemalt hast.
Wir mussten im UML sogar "void" nicht mitangeben. Gab sogar in der Arbeit Punktabzug, wenn wir das machten..
Aber eine richtige Norm gibt es dort halt auch nicht wirklich.
M.W. und das Wissen von andern Usern im Internet wird zwischen implements und extends bezüglich des Pfeiles nichts unterschieden, es bleibt wie bei der Vererbung nur ein normaler durchgezogener Strich mit nicht ausgefühlter Pfeilspitze. Aber wie ich schon sagte eine genaue 100% Norm gibt es bezüglich UML nicht. Ist wie bei den eEPKs dort gibt es eine Grundnorm, aber der Rest macht jeder andere unterschiedlich.
Als ich das Thema durchgenommen hatte haben wir nie bezüglich gestichelt oder durchgezogen unterschieden. Daher kann ich dir das hier nicht genau sagen.
Wir haben auch nur "4" Formen kennengelernt: Assoziation - Aggregation - Komposition und halt die normale Vererbung.
und ist mein UML Diagramm bezüglich des Subinterfaces auch richtig? Also wird zwischen Interface und Subinterface eine durchgezogene oder gestrichelte Linie gemacht?