30.10.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

52 5 Ein Referenzmodell für den objektorientierten Entwurf<br />

Die Komposition von Parameter in BehavioralFeature (<strong>der</strong> Oberklassen von Operation)<br />

kann als Relation ausgedrückt werden: has(o,p) gilt genau dann, wenn es eine<br />

Instanz <strong>der</strong> Komposition gibt, bei <strong>der</strong> die Rolle type mit o und die Rolle parameter<br />

mit p belegt ist.<br />

5.3.7 Parameter<br />

M ist die Menge aller Parameter von Operationen.<br />

Attribute<br />

• name: Name. Der Name des Parameters.<br />

• kind: ParameterDirectionKind. Die Art des Parameters (in, out, inout, return). in,<br />

out und inout stehen für die Richtung <strong>der</strong> Parameterübergabe beim Aufruf (analog<br />

zur Programmiersprache Ada, vgl. ISO/IEC 8652:1995, S. 123ff.). return kennzeichnet<br />

den Pseudoparameter für die Rückgabe, mit dessen Hilfe <strong>der</strong> Rückgabetyp<br />

modelliert wird.<br />

• type: Classifier. Typ des Parameters, <strong>der</strong> sich aus <strong>der</strong> gerichteten Assoziation von<br />

Parameter mit Classifier im UML-Metamodell ableitet.<br />

5.4 Erweiterungen<br />

In diesem Abschnitt werden Erweiterungen von ODEM vorgestellt. Zunächst werden<br />

Relationen eingeführt, die aus den bereits eingeführten Relationen abgeleitet werden<br />

können. Diese Relationen vereinfachen die Definition von Metriken auf <strong>der</strong> Basis von<br />

ODEM. Dann wird diskutiert, wie Relationen gewichtet werden können. Abschließend<br />

werden verschiedene Aspekte einer Erweiterung von ODEM um parametrisierte<br />

Klassen (Templates) betrachtet.<br />

5.4.1 Abgeleitete Relationen<br />

Die allgemeine Abhängigkeitsbeziehung depends_on fasst alle Arten von Abhängigkeiten<br />

zwischen Modellelementen zusammen. Sie setzt voraus, dass tatsächlich alle<br />

Arten von Benutzung zwischen Klassen (z. B. Aufruf einer Methode, Zugriff auf ein<br />

Attribut, Benutzung als Attributtyp o<strong>der</strong> Parametertyp) im UML-Modell als Instanzen<br />

von Usage repräsentiert sind. Nur im Falle <strong>der</strong> Benutzung als Typ bei Attributen<br />

o<strong>der</strong> Parametern können uses-Beziehungen aus <strong>der</strong> vorliegenden Information automatisch<br />

abgeleitet werden. Für die an<strong>der</strong>en genannten Fälle (z. B. Zugriff auf ein<br />

Attribut) ist das nicht möglich, daher ist es wichtig, diese Arten von Benutzungsbeziehungen<br />

explizit anzugeben.<br />

depends_on(x,y) ⇔ extends(x,y) ∨ realizes(x,y) ∨ associates(x,y) ∨ uses(x,y).<br />

Von dieser Relation kann eine Relation depends_on für Paketabhängigkeiten abgeleitet<br />

werden. Ein Paket p hängt von einem Paket q genau dann ab, wenn es eine Klasse<br />

o<strong>der</strong> ein Interface c aus p gibt, das von einer Klasse o<strong>der</strong> einem Interface d aus q<br />

abhängt.<br />

depends_on(p,q) ⇔∃c,d∈C∪I: c ≠ d ∧ contains(p,c) ∧ contains(q,d) ∧ depends_on(c,d)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!