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

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 17<br />

Klasse Person mit Attributen<br />

name, birthday und Operationen<br />

setName, getAge.<br />

Attribute, Parameter und<br />

Rückgabe haben einen Typ.<br />

Ein Objekt namens HAL <strong>der</strong><br />

Klasse Person mit <strong>der</strong> Wertebelegung<br />

<strong>der</strong> Attribute. Der<br />

Objektstatus wird durch die<br />

Unterstreichung angezeigt.<br />

Abbildung 3-1: UML-Darstellung von Klasse und Objekt<br />

Kommentare werden in UML durch einen Kasten mit Eselsohr dargestellt, <strong>der</strong> mit<br />

dem Modellelement, auf das sich <strong>der</strong> Kommentar bezieht, durch eine gestrichelte<br />

Linie verbunden ist.<br />

3.1.3 Vererbung<br />

Vererbung ist eine Beziehung zwischen Klassen. Eine Klasse kann sämtliche Eigenschaften<br />

(Attribute und Methoden) einer an<strong>der</strong>en Klasse erben, d. h. als Kopie übernehmen.<br />

Es dürfen außerdem weitere Eigenschaften hinzugefügt werden (Erweiterung)<br />

und geerbte Methoden modifiziert werden (Redefinition). Bei Einfachvererbung<br />

erbt eine Klasse von genau einer an<strong>der</strong>en Klasse, bei Mehrfachvererbung von mehreren<br />

Klassen. Die vererbende Klasse heißt Oberklasse, die erbende Unterklasse.<br />

Bei getypten objektorientierten Programmiersprachen wird die Vererbungsrelation<br />

auf die korrespondierenden Typen übertragen: Eine erbende Klasse definiert einen<br />

Subtyp des durch die vererbende Klasse definierten Typs. Dadurch entsteht eine zur<br />

Vererbungsstruktur <strong>der</strong> Klassen isomorphe Typstruktur.<br />

In UML wird die Vererbung durch einen Pfeil mit einer dreieckigen Spitze angezeigt,<br />

<strong>der</strong> von <strong>der</strong> Unterklasse zur Oberklasse geht (vgl. Abbildung 3-2). Geerbte Eigenschaften<br />

werden in <strong>der</strong> Darstellung <strong>der</strong> Unterklasse nicht wie<strong>der</strong>holt.<br />

Die Klasse<br />

OO_Designer erbt von<br />

Person und fügt dabei<br />

neue Eigenschaften<br />

hinzu.<br />

OO_Designer<br />

experience: int<br />

likesUML: boolean<br />

getExperience(): int<br />

Abbildung 3-2: UML-Darstellung <strong>der</strong> Vererbung<br />

Person<br />

name: String<br />

birthday: Date<br />

setName(n: String)<br />

getAge(): int<br />

HAL: Person<br />

name = "HAL 9000"<br />

birthday = 12.1.1997<br />

Person<br />

name: String<br />

birthday: Date<br />

setName(n: String)<br />

getAge(): int<br />

Vererbung ist ein mächtiges Konzept; durch sie kann viel redundante Implementierung<br />

eingespart werden. Durch Erben kann aber die Kapselung durchbrochen werden,<br />

weil eine Unterklasse Zugriff auf die Implementierung <strong>der</strong> Oberklasse erhält<br />

(Sny<strong>der</strong>, 1986). Außerdem ist die Unterklasse durch das Erben stark an ihre Oberklasse<br />

gekoppelt: Jede Än<strong>der</strong>ung <strong>der</strong> Oberklasse betrifft auch die Unterklasse.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!