Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
5.3 Kern 49<br />
und I muss in genau einem Paket enthalten sein (mit Ausnahme von S, das in keinem<br />
Paket enthalten ist).<br />
Die Komposition im UML-Metamodell von ModelElement in NameSpace lässt sich<br />
als Relation formulieren. contains(p,q) gilt genau dann, wenn eine Komposition<br />
zwischen p in <strong>der</strong> Rolle namespace und q in <strong>der</strong> Rolle ownedElement existiert.<br />
5.3.3 Interface<br />
I ist die Menge aller Interfaces, die im System vorkommen.<br />
Attribute<br />
• name: Name. Der Name des Interfaces.<br />
• isAbstract: Boolean. Interfaces sind immer abstrakt (Wert true).<br />
• visibility: VisibilityKind. Bedeutung und Herleitung analog zu <strong>der</strong> bei den Paketen.<br />
Beziehungen<br />
• extends: I × I<br />
Ein Interface erweitert ein an<strong>der</strong>es Interface, d. h. es erbt von ihm. Ein Interface<br />
kann beliebig viele Interfaces erweitern, auch keine.<br />
Im UML-Metamodell wird diese Beziehung durch die Klasse Generalization repräsentiert.<br />
extends(i,j) gilt genau dann, wenn es eine Instanz g von Generalization gibt,<br />
bei <strong>der</strong> die Rolle g.parent mit j und die Rolle g.child mit i belegt ist.<br />
• has: I × O<br />
Ein Interface besitzt eine Operation. Ein Interface kann beliebig viele Operationen<br />
haben, auch keine. Geerbte Operationen zählen nicht mit.<br />
Im UML-Metamodell wird das Besitzen einer Operation durch die Komposition<br />
zwischen Classifier und Feature (einer Oberklasse von Operation) modelliert. has(i,o)<br />
gilt genau dann, wenn es eine Instanz <strong>der</strong> Komposition gibt, bei <strong>der</strong> die Rolle owner<br />
mit i und die Rolle feature mit o besetzt ist.<br />
• uses: I × (C ∪ I)<br />
Ein Interface benutzt eine Klasse o<strong>der</strong> ein Interface. Ein Interface kann beliebig<br />
viele an<strong>der</strong>e Klassen/Interfaces benutzen, auch keine. Für die Benutzung gibt es<br />
unterschiedliche Gründe, z. B. die Verwendung als Parametertyp in einer Operation.<br />
Im UML-Metamodell steht die Klasse Usage für Benutzungsbeziehungen. uses(i,j)<br />
gilt genau dann, wenn es eine Instanz u von Usage gibt, bei <strong>der</strong> die Rolle u.client mit<br />
i und die Rolle u.supplier mit j belegt ist.<br />
5.3.4 Klasse<br />
C ist die Menge aller Klassen, die im System vorkommen.<br />
Attribute<br />
• name: Name. Der Name <strong>der</strong> Klasse.