28.02.2014 Aufrufe

Übungsblatt 8 - Lehrstuhl Software-Systemtechnik - BTU Cottbus

Übungsblatt 8 - Lehrstuhl Software-Systemtechnik - BTU Cottbus

Übungsblatt 8 - Lehrstuhl Software-Systemtechnik - BTU Cottbus

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. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

<strong>Übungsblatt</strong> 8<br />

Aufgabe 1<br />

(2 Punkte)<br />

Welche Unterschiede bestehen zwischen Lastenheft und Pflichtenheft? Warum werden beide benötigt? In<br />

welcher Reihenfolge werden sie durch welche Prozessschritte erstellt?<br />

Aufgabe 2<br />

(6 Punkte)<br />

Beantworten Sie folgende Fragen für <strong>Software</strong>entwicklungsphasen.<br />

1. Was ist die Produkt-Definition?<br />

2. Was sind die Ergebnisse der Produkt-Definition?<br />

3. Was ist der Produkt-Entwurf?<br />

4. Was sind die Ergebnisse des Produkt-Entwurfs?<br />

5. Was ist der Unterschied zwischen Produkt-Entwurf und <strong>Software</strong>-Entwurf?<br />

6. Sowohl in der Produkt-Definition als auch im Produkt-Entwurf werden Modelle (Beschreibungen)<br />

des Produkts erstellt. Was ist der grundlegende Unterschied zwischen diesen Modellen?<br />

Aufgabe 3<br />

(5 Punkte)<br />

Wesentliches Ergebnis des <strong>Software</strong>-Entwurfs ist eine <strong>Software</strong>-Architektur. Stellen Sie möglichst vollständig<br />

dar, welche Rolle eine SW-Architektur im SW-Entwicklungsprozess spielt.<br />

Aufgabe 4<br />

(3 Punkte)<br />

Was versteht man unter folgenden Konzepten der Objektorientierung?<br />

1. Vererbung?<br />

2. Polymorphie?<br />

3. Kapselung?<br />

Aufgabe 5<br />

(15 Punkte)<br />

Auf der nächsten Seite des <strong>Übungsblatt</strong>es ist eine kleine Fallstudie gegeben. Lesen Sie sich diese genau<br />

durch und erstellen Sie dazu passend<br />

1. ein Kontextdiagram<br />

2. eine Verfeinerung des Kontextdiagramms aus 1. (DFD 0).<br />

Nehmen Sie hierbei an, dass das zu beschreibende System alle Anfragen, Bewerbungen, Rechnungen, Studienunterlagen<br />

sowie Testate verwaltet.<br />

Aufgabe 6<br />

(4 Punkte)<br />

Erklären Sie die charakteristischen Unterschiede bei einer synchronen und eine asynchronen Operation in<br />

einem Sequenzdiagram. Modellieren Sie beide Varianzten grafisch und erklären Sie kurz den Unterschied<br />

der Notation.<br />

Seite 1 von 2


3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

Fallstudie - Fernstudium<br />

Die <strong>BTU</strong> <strong>Cottbus</strong> bietet Fernkurse für Studenten an. Dabei dauert jeder Kurs 20 Wochen und wird wöchentlich<br />

im Rahmen einer digitalen Übungssitzung und eines Testats organisiert. Am Ende des Kurses wird eine<br />

beaufsichtigte Prüfung durchgeführt.<br />

Ein Sachbearbeiter aus dem Studieredensekretariat befasst sich mit diesbezüglichen Anfragen und Anträgen<br />

sowie Bewerbungen von Studenten. Verfügen potentielle Bewerber über die nötigen Qualifikationen,<br />

werden diese gebeten, ein Antragsformular auszufüllen und an das Studierendensekretariat zu senden.<br />

Nachdem der Modulverantwortliche eine Bewerbung geprüft hat, geht diese zurück an das Studierendensekretariat.<br />

Dieses legt eine Liste der angenommenen Bewerber an. Dazu werden die Daten aus dem Antragsformular<br />

verwendet. Im Anschluss wird eine Rechnung erstellt, welche den angehenden Studenten<br />

zugesendet wird. Geleistete Zahlungen werden in einer Übersicht notiert, die ausstehende Forderungen dokumentiert.<br />

Die erste Charge von Studienmaterial sowie dazu passenden Testaten wird durch die Bibliothek<br />

an Studierende verschickt, sobald diese bezahlt haben (dazu haben die verantwortlichen Bibliothekare Zugriff<br />

auf die Übersicht der ausstehenden Forderungen).<br />

Die zurückgeschickten Testate werden durch das wissenschaftliche Personal kontrolliert. Die Ergebnisse<br />

werden anschließend zusammen mit Kommentaren bis zur nächsten Woche bzw. zum nächsten Block versendet.<br />

Weiterhin wird neues Material durch die Bibliothek nur dann versendet, sofern ein Student auch die<br />

Antworten für das aktuelle Testat zurückgeschickt hat.<br />

Das <strong>Übungsblatt</strong> ist bestanden, wenn bei jeder Aufgabe mindestens 50% der Punkte erreicht wurden. Jede<br />

Lerngruppe gibt eine gemeinsame Lösung in einer PDF-Datei mit einer maximalen Dateigröße von 2 MByte<br />

bis zum 05.12.2013 um 23:59 Uhr per eMail bei Ihrem Tutor sowie bei M.Schubanz@tu-cottbus.de ab.<br />

Ausnahmen kann der Tutor auf Nachfrage zulassen. Die mündliche Kontrolle der Lösung und Rückgabe<br />

des <strong>Übungsblatt</strong>es findet in der Woche vom 09.12.2013 statt.<br />

Seite 2 von 2


3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

Material 8<br />

Lastenheft<br />

Quelle: http://www.stefan-baur.de/<br />

In [ . . . ] der Definitionsphase eines IT-Projektes stellt sich immer die Frage über die Vorgehensweise, die<br />

selbstverständlich immer vom jeweiligen Auftraggeber abhängig ist. Doch kann meines Erachtens unabhängig<br />

vom Auftraggeber folgender, grober Verlauf während der Anforderungsdefinition angestrebt werden:<br />

1. Lastenheft vom Auftraggeber erhalten<br />

2. Anforderungen erheben und Lastenheft korrigieren<br />

3. Korrigiertes Lastenheft vom Kunden absegnen lassen<br />

4. Pflichtenheft gegen Bezahlung erstellen<br />

5. Anhand des Pflichtenhefts den Aufwand schätzen<br />

6. Angebot und Vertrag<br />

Lastenheft vs. Pflichtenheft<br />

1. Während im Lastenheft die Anforderungen des zu entwickelnden Produkts aus Sicht des fachunkundigen<br />

Auftraggebers beschrieben werden, spiegelt das Pflichtenheft die Anforderungen des Lastenhefts<br />

im Hinblick auf eine risikoarme Umsetzung aus Sicht des fachkundigen Auftragnehmers wider. (Als<br />

Fach ist die technologische Gesamtheit zu verstehen, mit der das Produkt entwickelt wird.)<br />

2. Zur Erstellung eines Heftes scheint allerdings folgender Unterschied weitaus nützlicher zu sein: Das<br />

Lastenheft stellt die Problemstellung des Auftraggebers dar und das Pflichtenheft den Lösungsvorschlag<br />

des Auftragnehmers.<br />

Aufgabe 1<br />

Szenario:<br />

Ein Kunde möchte einen Internetdienst für Brettspiele in Auftrag geben.<br />

Die grobe Zielvorstellung des Kunden lautet:<br />

Dem einzelnen Benutzer soll das Spielen (von Brettspielen) mit anderen Benutzern über einen Internetdienst<br />

ermöglicht werden. Folgende Brettspiele sollen für den einzelnen Benutzer zunächst zur Verfügung<br />

stehen:<br />

• Mühle,<br />

• Dame<br />

• Schach<br />

Erstellen Sie ein Lastenheft!<br />

Seite 1 von 9


3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

Architektur<br />

Quelle: R. Reussner, W. Hasselbing, „Handbuch der <strong>Software</strong>-Architektur“, dpunkt.verlag, 2008<br />

Definition:<br />

Die <strong>Software</strong>-Architektur ist die grundlegende Organisation eines Systems, dargestellt durch dessen Komponenten,<br />

deren Beziehungen zueinander und zur Umgebung sowie die Prinzipien, die den Entwurf und die<br />

Evolution des Systems bestimmen.<br />

Eine <strong>Software</strong>-Architektur beschreibt [...] nicht den detaillierten Entwurf, vielmehr geht es darum, die Zusammenhänge<br />

zwischen den Anforderungen und dem konstruierten System zu beschreiben, möglichst mit<br />

einer Begründung für die Entwurfsentscheidungen. Die Wahl einer bestimmten Architektur hat dann einen<br />

starken Einfluss auf die nicht funktionalen (qualitativen), technischen Eigenschaften der resultierenden Systeme.<br />

Beispiel: Drei-Schichten-Architektur<br />

Presentation tier<br />

The top-most level of the application<br />

is the user interface. The main function<br />

of the interface is to translate tasks<br />

and results to something the user can<br />

understand.<br />

>GET SALES<br />

TOTAL<br />

>GET SALES<br />

TOTAL<br />

4 TOTAL SALES<br />

Logic tier<br />

This layer coordinates the<br />

application, processes commands,<br />

makes logical decisions and<br />

evaluations, and performs<br />

calculations. It also moves and<br />

processes data between the two<br />

surrounding layers.<br />

GET LIST OF ALL<br />

SALES MADE<br />

LAST YEAR<br />

ADD ALL SALES<br />

TOGETHER<br />

Data tier<br />

Here information is stored and retrieved<br />

from a database or file system. The<br />

information is then passed back to the<br />

logic tier for processing, and then<br />

eventually back to the user.<br />

QUERY<br />

SALE 1<br />

SALE 2<br />

SALE 3<br />

SALE 4<br />

Database<br />

Storage<br />

Beispiel für eine Dreischichten-Architektur (Quelle: Wikipedia)<br />

Seite 2 von 9


3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

Eine typische Drei-Schichten-Architektur besteht aus den folgenden Schichten:<br />

• Präsentationsschicht - Diese, auch Front-End bezeichnet, ist für die Repräsentation der Daten, Benutzereingaben<br />

und die Benutzerschnittstelle verantwortlich.<br />

• Logikschicht - Sie beinhaltet alle Verarbeitungsmechanismen. Hier ist die Anwendungslogik vereint.<br />

• Datenhaltungsschicht - Sie enthält die Datenbank und ist verantwortlich für das Speichern und Laden<br />

von Daten.<br />

Quelle: Wikipedia:<br />

Durch eine Schichtenarchitektur wird die Komplexität der Abhängigkeiten innerhalb des Systems<br />

reduziert und somit eine geringere Kopplung bei gleichzeitig höherer Kohäsion der einzelnen<br />

Schichten erreicht. Insbesondere werden durch sie Zyklen im Abhängigkeitsgraphen<br />

vermieden, insofern das Dependency Inversion Principle eingehalten wird. Dies hat Vorteile<br />

sowohl für das Verständnis wie auch für die Wartung des Systems.<br />

Vorteile einer Schichtenarchitektur:<br />

• Übersichtlichkeit<br />

• Schichten können einfach ausgetauscht werden, weil die einzelnen Schichten nicht miteinander verwoben<br />

sind (Beispiel: Datenbank austauschen)<br />

• Programmlogik ist von GUI getrennt<br />

• Getrennte Entwicklung wird vereinfacht<br />

Schematische Darstellung in einem Klassendiagramm<br />

Eine sehr vereinfachte Darstellung einer Architektur ist auf der nächsten Seite zu finden. Die 3-Schichten<br />

sind über das Entwurfsklassendiagramm für einen Artikel gezeichnet. Im Analyseklassendiagramm wäre<br />

nämlich nur die Klasse Artikel vorhanden, was aber zur Darstellung der 3-Schichten-Architektur ungeeignet<br />

wäre.<br />

Seite 3 von 9


3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

javax.swing.JDialog<br />

Präsentations-Schicht<br />

ArtikelDialog<br />

Logik-Schicht<br />

Artikel<br />

java.io.FileReader<br />

Daten-Schicht<br />

ArtikelFileReader<br />

ArtikelFile<br />

Beispiele<br />

Schichtenarchitektur schematisch dargestellt anhand von Cluster-Hardware – Quelle: http://bobi.blog.com/<br />

Seite 4 von 9


Echtes Beispiel: http://www.openkm.com/Architecture.html<br />

3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

Echtes Beispiel angelehnt an nicht mehr existierende Quelle von http://www.openkm.com/<br />

Seite 5 von 9


3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

Einschub: Objektorientierung<br />

Entnommen aus:<br />

• Helmut Balzert, Lehrbuch der <strong>Software</strong>-Technik, 1996<br />

• Bernhard Lahres, Gregor Raýman, Praxisbuch Objektorientierung<br />

Beispiel<br />

• jedes Einfamilienhaus ist ein Objekt<br />

• Firma Nobel & Teuer hat Auftrag zum Verkauf eines<br />

Landhauses<br />

• zum ”Landhaus“-Objekt werden folgende Daten<br />

(auch Attributwerte) gespeichert: Haustyp, Name des<br />

Besitzers, Adresse des Landhauses, Wohnfläche, Anzahl<br />

der Bäder, Schwimmbad vorhanden, Baujahr,<br />

Verkaufspreis<br />

(Einfamilienhaus)<br />

Haustyp: Landhaus<br />

Besitzer: Dr. Kaiser<br />

Adresse: Konigstein<br />

Wohnfläche: 400 m 2<br />

Anzahl Bäder: 3<br />

Hat Schwimmbad: ja<br />

Garten: 5000 m 2<br />

Baujahr: 1976<br />

Verkaufspreis: 2 Mio e<br />

• Käufer möchte Verkaufspreis wissen ⇒ Funktion<br />

(auch Operation) auf Landhaus angewendet (Ein<br />

Objekt enthält Attributwerte, auf die nur über die<br />

Operationen zugegriffen werden kann. Die Attributwerte<br />

des Objekts sind verkapselt, d.h. von außen<br />

nicht sichtbar.)<br />

(Einfamilienhaus)<br />

Haustyp: Landhaus<br />

Besitzer: Dr. Kaiser<br />

Adresse: Konigstein<br />

Wohnfläche: 400 m 2<br />

Anzahl Bäder: 3<br />

Hat Schwimmbad: ja<br />

Garten: 5000 m 2<br />

Baujahr: 1976<br />

Verkaufspreis: 2 Mio e<br />

Verkaufspreis erfragen<br />

• Außer dem Objekt ”Landhaus“ werden noch andere Einfamilienhäuser angeboten.<br />

(Einfamilienhaus)<br />

Haustyp: Landhaus<br />

Besitzer: Dr. Kaiser<br />

Adresse: Konigstein<br />

Wohnfläche: 400 m 2<br />

Anzahl Bäder: 3<br />

Hat Schwimmbad: ja<br />

Garten: 5000 m 2<br />

Baujahr: 1976<br />

Verkaufspreis: 2 Mio e<br />

(Einfamilienhaus)<br />

Haustyp: Bungalow<br />

Besitzer: Herzog<br />

Adresse: Stiepel<br />

Wohnfläche: 250 m 2<br />

Anzahl Bäder: 2<br />

Hat Schwimmbad: nein<br />

Garten: 1500 m 2<br />

Baujahr: 1986<br />

Verkaufspreis: 1.5 Mio e<br />

(Einfamilienhaus)<br />

Haustyp: Stadthaus<br />

Besitzer: Urban<br />

Adresse: Bochum<br />

Wohnfläche: 200 m 2<br />

Anzahl Bäder: 2<br />

Hat Schwimmbad: nein<br />

Garten: 400 m 2<br />

Baujahr: 1990<br />

Verkaufspreis: 1 Mio e<br />

Seite 6 von 9


3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

Beispiel<br />

• Sie haben zwar alle unterschiedliche Attributwerte,<br />

die aber von der gleichen Art sind. Man spricht von<br />

Attributen ”Haustyp“, ”Besitzer“ usw. Außerdem<br />

besitzen alle Objekte die gleiche Operation ”Verkaufspreis<br />

erfragen.“ Diese Objekte werden zu der<br />

Klasse ”Einfamilienhaus“ zusammengefasst. (Eine<br />

Klasse definiert die Attribute und Operationen ihrer<br />

Objekte.)<br />

Einfamilienhaus<br />

Haustyp<br />

Besitzer<br />

Adresse<br />

Wohnfläche<br />

Anzahl Bäder<br />

Hat Schwimmbad<br />

Garten<br />

Baujahr<br />

Verkaufspreis<br />

Verkaufspreis erfragen<br />

Geschäftshaus<br />

• Nobel & Teuer vermittelt nun auch Geschäftshäuser<br />

analog zu Einfamilienhäuser wird eine Klasse ”Geschäftshaus“<br />

gebildet<br />

Besitzer<br />

Adresse<br />

Anzahl Büroräume<br />

Geschosszahl<br />

Hat Aufzug<br />

Hat Tiefgarage<br />

Baujahr<br />

Verkaufspreis<br />

Verkaufspreis erfragen<br />

Anzahl Büroräume erfragen<br />

• vergleicht man beide Klassen fallen die gleichen Attribute ”Besitzer“ usw. auf diese werden in eine<br />

neue Klasse ”Immobilie“ eingetragen<br />

Immobilie<br />

Besitzer<br />

Adresse<br />

Baujahr<br />

Verkaufspreis<br />

Verkaufspreis erfragen<br />

Einfamilienhaus<br />

Adresse<br />

Wohnfläche<br />

Anzahl Bäder<br />

Hat Schwimmbad<br />

Garten<br />

Verkaufspreis erfragen<br />

Geschäftshaus<br />

Anzahl Büroräume<br />

Geschosszahl<br />

Hat Aufzug<br />

Hat Tiefgarage<br />

Verkaufspreis erfragen<br />

Anzahl Büroräume erfragen<br />

• die Klasse ”Immobilien“ vererbt alle ihre Attribute an die Klassen ”Einfamilienhaus“ und ”Geschäftshaus.“<br />

Die Klasse ”Einfamilienhaus“ besitzt also zusätzlich zu ihren eigenen Attributen und<br />

Operationen alle Attribute und Operationen der Klasse ”Immobilie.“<br />

• Polymorphismus bedeutet, dass dieselbe Botschaft an Objekte verschiedener Klassen einer Vererbungshierarchie<br />

gesendet werden kann und diese Objekte die Botschaft ganz unterschiedlich interpretieren<br />

können. So könnte ”Verkaufspreis erfragen“ angewendet bei ”Einfamilienhaus“ den Verkaufspreis<br />

erhöht um Mehrwertsteuer und Maklergebühr zurückgeben, wobei ”Verkaufspreis erfragen“<br />

angewendet bei ”Geschäftshaus“ nur den Verkaufspreis erhöht um die Maklergebühr zurückgibt<br />

Seite 7 von 9


3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

Konzepte<br />

Kapselung von Daten<br />

Daten gehören in der Objektorientierung explizit einem Objekt, ein direkter Zugriff wie auf die Datenstrukturen<br />

wie in der strukturierten Programmierung ist nicht mehr erlaubt.<br />

Objekte haben damit also das alleinige Recht, ihre Daten zu verändern oder auch lesend auf sie zuzugreifen.<br />

Möchte ein Aufrufer (zum Beispiel ein anderes Objekt) diese Daten lesen oder verändern, muss er sich über<br />

eine klar definierte Schnittstelle an das Objekt wenden und eine Änderung der Daten anfordern.<br />

Der große Vorteil besteht nun darin, dass das Objekt selbst dafür sorgen kann, dass die Konsistenz der Daten<br />

gewahrt bleibt. Falls zum Beispiel zwei Dateneinträge immer nur gemeinsam geändert werden dürfen, kann<br />

das Objekt dies sicherstellen, indem eine Änderung eines einzelnen Wertes gar nicht vorgesehen wird.<br />

Ein weiterer Vorteil besteht darin, dass von einer Änderung der zugrunde liegenden Datenstruktur nur die<br />

Objekte betroffen sind, die diese Daten verwalten. Wenn jeder beliebig auf die Daten zugreifen könnte,<br />

wäre die Anzahl der Betroffenen in einem System möglicherweise sehr hoch, eine Anpassung entsprechend<br />

aufwändig.<br />

Durch das in der Objektorientierung gegebene Prinzip der Datenkapselung haben Sie also auf jeden Fall<br />

Vorteile, weil Sie die Konsistenz von Daten wesentlich einfacher sicherstellen können. Damit ist es auch<br />

einfacher, die Korrektheit Ihres Programms zu gewährleisten. Außerdem reduzieren Sie den Aufwand bei<br />

Änderungen. Die internen Daten und Vorgehensweisen eines Objekts können geändert werden, ohne dass<br />

andere Objekte ebenfalls angepasst werden müssten.<br />

Polymorphie<br />

Wörtlich übersetzt bedeutet Polymorphie ”Vielgestaltigkeit“. Mit Bezug auf Glühbirnen können wir diesen<br />

Begriff definitiv anwenden: Glühbirnen gibt es in den verschiedensten Formen und Gestalten. Wir können<br />

diese verschiedenen Formen aber alle an einer ganz definierten Stelle anbringen: in einer dafür vorgesehenen<br />

Fassung.<br />

Energiesparlampen können in dasselbe Gewinde geschraubt werden wie eine Birne, die von Greenpeace den<br />

Preis ”Umweltschwein des Jahres“ erhalten hat. Dass sich die einzelnen Birnen dann ganz unterschiedlich<br />

verhalten, ist nicht mehr relevant.<br />

Genau diese Möglichkeiten, die es für den (auf den ersten Blick banalen) Bereich der Glühbirnen gibt,<br />

möchten wir auch in unseren objektorientierten Systemen nutzen. Wir möchten Stellen in unserem Code<br />

haben, die es uns erlauben, einzelne Elemente auszutauschen – wie eine Fassung für Glühbirnen: Ein Berechnungsverfahren<br />

für eine bestimmte Aufgabe ist nicht mehr schnell genug für Ihre Ansprüche? Tauschen<br />

Sie es doch einfach gegen ein effizienteres Verfahren aus, und klinken Sie es in die dafür vorgesehene Fassung<br />

ein. Ein neues Übertragungsprotokoll für Daten muss unterstützt werden? Schrauben Sie es in die<br />

Fassung, in die schon alle anderen Übertragungsprotokolle eingesetzt werden konnten.<br />

Die Polymorphie im Zusammenspiel mit einem cleveren Systementwurf ermöglicht uns ein solches Vorgehen.<br />

Gegenstand des Entwurfs ist es, die Stellen zu finden, an denen Fassungen vorgesehen werden müssen,<br />

und die Objekte zu bestimmen, die in diese Fassungen geschraubt werden. An den richtigen Punkten eingesetzt,<br />

kann die Nutzung der Polymorphie dadurch zu wesentlich flexibleren Programmen führen. Sie<br />

steigert damit die Wartbarkeit und Änderbarkeit unserer <strong>Software</strong>.<br />

Seite 8 von 9


3. Dezember 2013<br />

LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />

Entwicklung von <strong>Software</strong>-Systemen<br />

Vererbung<br />

Die Glühbirnen in unserem Beispiel können ganz unterschiedliche Formen aufweisen, der Energieverbrauch<br />

und die Leuchtkraft können sich erheblich unterscheiden. Trotzdem können wir sie alle in die gleiche Fassung<br />

schrauben, und, sofern sie nicht defekt sind, werden sie das tun, was wir von Glühbirnen erwarten: Sie<br />

leuchten.<br />

Wir stellen also fest, dass diese verschiedenen Glühbirnen eine grundlegende Gemeinsamkeit haben: Sie<br />

entsprechen einer Spezifikation, die es erlaubt, sie in eine genormte Fassung zu drehen und mit der in<br />

Deutschland vorgesehenen Standardstromspannung von 220 Volt zu<br />

betreiben.<br />

In einer objektorientierten Anwendung könnten wir diese Gemeinsamkeiten der verschiedenen Glühbirnenarten<br />

modellieren, indem wir die so genannte Vererbung der Spezifikation verwenden. Eine abstrakte<br />

Spezifikation, wie sie für Glühbirnen von einer Normungsorganisation kommt, gibt dabei vor, welche Eigenschaften<br />

die Objekte haben müssen, um die Spezifikation zu erfüllen. In objektorientierten Anwendungen<br />

würden wir in diesem Fall davon sprechen, dass die verschiedenen Arten von Glühbirnen ihre Spezifikation<br />

von der abstrakten Spezifikation erben, die als Norm ausgegeben worden ist.<br />

Die Vererbung der Spezifikation hängt sehr eng mit der Polymorphie zusammen. Dass unsere Elektrogeräte<br />

nämlich alle die Normen für den Stromanschluss erfüllen, macht sie austauschbar. Jedes von ihnen kann<br />

an die gleiche Steckdose angeschlossen werden und wird dann seine Arbeit verrichten.<br />

Seite 9 von 9

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!