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
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
3.1 Begriffe 19<br />
3.1.5 Abstrakte Klasse<br />
Eine abstrakte Klasse ist eine Klasse, die nicht instantiiert werden kann. Das liegt<br />
daran, dass es Operationen in <strong>der</strong> Klasse gibt, für die keine Implementierung angegeben<br />
wurde (abstrakte Operationen). Weil keine Objekte <strong>der</strong> Klasse erzeugt werden<br />
können, scheinen abstrakte Klassen überflüssig zu sein. Sie sind aber für die Modellierung<br />
sinnvoll, weil alle Unterklassen gezwungen sind, die abstrakten Operationen<br />
zu implementieren, wenn sie konkret, d. h. instantiierbar, sein wollen. Damit legt die<br />
abstrakte Klasse fest, über welche Schnittstelle ihre Unterklassen mindestens verfügen<br />
sollen. Das gibt Sinn, wenn die abstrakte Klasse ein allgemeines Konzept repräsentiert,<br />
für das keine allgemeine Implementierung angegeben werden kann. Die<br />
Deklaration einer abstrakten Klasse erzeugt auch einen neuen Typ, so dass (polymorphe)<br />
Variablen von diesem Typ deklariert werden können. Instanzen konkreter Unterklassen<br />
können einer solchen Variablen zugewiesen werden.<br />
In <strong>der</strong> UML-Darstellung werden die Namen von abstrakten Klassen und die Signatur<br />
abstrakter Operationen kursiv gesetzt, um sie von konkreten Klassen und Operationen<br />
abzuheben. Alternativ kann man auch das Stereotyp «abstract» verwenden.<br />
3.1.6 Interface<br />
Ein Interface ist eine spezielle Form <strong>der</strong> abstrakten Klasse. Es ist völlig abstrakt, d. h.<br />
es besitzt keine Attribute und ausschließlich abstrakte Operationen. Damit besteht<br />
sein Zweck ausschließlich in <strong>der</strong> Definition des zugehörigen Typs. Dies wird vor<br />
allem eingesetzt, um bestimmte Eigenschaften zu definieren. Beispielsweise wird in<br />
<strong>der</strong> Standardbibliothek <strong>der</strong> Programmiersprache Java das Interface Comparable deklariert.<br />
Dieses hat eine abstrakte Operation compareTo, die das Objekt mit einem an<strong>der</strong>en<br />
Objekt vergleicht. Eine Klasse, die dieses Interface realisiert, d. h. alle Operationen<br />
implementiert, besitzt dann die vom Interface definierte Eigenschaft, dass sie über die<br />
Vergleichsoperation verfügt.<br />
In UML werden Interfaces wie konkrete Klassen dargestellt, nur dass man zur Unterscheidung<br />
das Stereotyp «interface» verwendet. Die Realisierung eines Interfaces<br />
durch eine Klasse wird durch einen gestrichelten Vererbungspfeil dargestellt (vgl.<br />
Abbildung 3-3). Soll nur <strong>der</strong> Name des Interfaces angegeben werden, kann es auch<br />
durch einen Kreis dargestellt werden („Lollipop-Notation“), <strong>der</strong> durch eine durchgezogene<br />
Linie mit <strong>der</strong> realisierenden Klasse verbunden ist.<br />
3.1.7 Assoziation, Aggregation und Komposition<br />
One of the distinguishing features of object design is that no object is an island. All objects<br />
stand in relationship to others, on whom they rely for services and control.<br />
(Beck, Cunningham, 1989, S. 2)<br />
Die Assoziation ist nach <strong>der</strong> Vererbung die wichtigste Beziehungsart zwischen Klassen.<br />
In ihrer allgemeinsten Form drückt sie aus, dass zwei Klassen (genauer: Instanzen<br />
<strong>der</strong> Klassen) eine Verbindung haben. Diese Verbindung kann unidirektional o<strong>der</strong><br />
bidirektional sein. In UML wird die Assoziation durch eine durchgezogene Linie dargestellt<br />
(vgl. Abbildung 3-4). Durch eine einfache Pfeilspitze am Ende <strong>der</strong> Verbindungslinie<br />
kann zusätzlich die Navigierbarkeit angezeigt werden. Außerdem kann<br />
ein Verbindungsende mit Rollenname und Multiplizität versehen werden. Die Multi-