is-Logo Taschenlampe V.1.2
Vererbung - eine spezielle Lampe wird eingebaut

S. Spolwig
 

[Home | Unterrichtssequenzen]
Startseite

Ziele:
Vererbung: Spezialisierung als eine Form der Vererbung verstehen

Informationen
zur Vertiefung

birne
Die vorher beschriebene Lampe ist sozusagen eine ganz allgemeine, die leuchtet, wobei es völlig egal war wie Technik funktioniert. Die neue Lampe soll eine elektrische Glühlampe sein, also etwas spezieller.

 


Anforderungsdefinition und vereinfachende Modellannahmen zur Version 1.
2

Die Taschenlampe erhält eine Glühlampe, die Licht abgibt, wenn sie Spannung bekommt. Die Lampe hat eine zufällig begrenzte Lebensdauer, die hier zu Testzwecken auf maximal 5 Leuchtzyklen festgelegt wird.
Die Taschenlampe hat eine 1.5 V Batterie, die eine konstante Spannung liefert.

 

 

 

 

V. 1.2
OOA zu TGluehlampe

Die Gluehlampe ist eine Art Lampe, die dieselben Attribute wie TLampe hat, als eine speziellere elektrische Lampe aber außerdem ein Attribut 'Spannung' braucht.

Sie braucht auch dieselben Methoden zuzüglich zweier Standard-Methoden Set.. zum Setzen der Spannung und Get... zum Prüfen, welche Spannung anliegt.

Diese Situation läßt sich vorteilhaft durch eine Vererbung realisieren:

TGluehlampe erbt alles von TLampe. Das spart natürlich auch das doppelte Schreiben von Code.

Spezifikation TGluehlampe

Methoden
----------
Create
  Auftrag : Lampe erzeugen und init.
  vorher  : -
  nachher: Spannung ist 0 V

SetSpannung
  Auftrag : Lampe mit Strom versorgen und leuchten lassen
  vorher  : -
  nachher: Leuchtet wenn Spannung > 0

Get...
  Auftrag : Attribut aus dem Objekt lesen
  vorher  : Objekt ist init.
  nachher: -

 

 

 

 

Vererbung

 


OOA zu TBatterie

Die Batterie hat nach der Anforderungsdefinition nur eine Spannung und eine Methode Get.., mit der man die Spannung abfragen, bzw. holen kann. Die Standardmethode Set... wird nicht benötigt, weil es sich nicht um einen aufladbaren Akku handelt.

 

 

Spezifikation TBatterie

Methoden
--------
Create
  Auftrag : Erzeugen und Anfangsspannung festlegen
  vorher  :
  nachher: Spannung ist 1.5 V.

Get...
  Auftrag : Attribut aus dem Objekt lesen
  vorher  : Spannung ist init.
  nachher: -

 


TaschenLampe 1.2

Für die Gesamtarchitektur des Projekt ergibt sich nun eine neue, endgültige Situation:

Die Taschenlampe 'hat' eine diskrete Batterie als neue Aggregation und eine Gluehlampe ebenfalls als Aggregation anstelle der alten TLampe.

Was ist mit dem Schalter, der ja auch ein separates Bauteil sein kann?
Es wäre durchaus in Ordnung dafür eine eigene Klasse anzulegen, die dann nur ein Attribut 'Ein : boolean' hätte mit den dazugehörigen zwei Set.. / Get.. Methoden, eine ziemlich aufwendige Sache.
Wenn man den Schalter als in die Taschenlampe integriert sieht, kann man es so belassen wie bisher, was wir dann hier auch tun.

Spezifikation TTaschenlampe

Die operativen Methoden müssen wegen der neu eingeführten Spannung angepaßt werden.

Methoden
--------

Einschalten
  Auftrag : Schalter auf ein und Lampe mit Batteriespannung versorgen
  vorher  :
  nachher: done

Ausschalten
  Auftrag : Schalter auf aus und Spannung an der Lampe auf 0
  vorher  :
  nachher: done

Leuchtet
  Anfrage : ob die Taschenlampe 'brennt'
  vorher  :
  nachher: leuchtet, wenn Lampe Licht gibt und Lampenspannnung > 0 und
              Schalter auf EIN

 

 

 

 

 

 

 

 

 

 

 

 

Beziehungen
zwischen
Objekten

 

©  05. Oktober 2008    Siegfried Spolwig

page_top