Ziele:
Aggregationen:
Die Teile der Taschenlampe als eigenständige Objekte erkennen und
beschreiben |
|
Informationen
zur Vertiefung |
Öffnet man die Taschenlampe kann man Batterien
wechseln, die Birne heraus schrauben und der Schalter ist auch ein
Bauteil.
Wie alle Objekte werden sie in Klassen beschrieben,
die wir in mehreren Schritten bearbeiten werden. |

 |
|
|
Anforderungsdefinition und vereinfachende Modellannahmen zur Version 1.1
Die Taschenlampe erhält eine Lampe, die Licht abgibt, wenn sie
eingeschaltet ist, wobei die Frage nach Strom und Spannung zunächst
zurückgestellt wird. Die Lampe hat eine zufällig begrenzte Lebensdauer, die hier zu
Testzwecken auf maximal 5 Leuchtzyklen festgelegt wird.
|
|
OOA zu TLampe

Grafik Aggregation: Lampe ist ein Teil der Taschenlampe.
Eine Taschenlampe hat genau 1 Lampe. |
Dem Text kann man entnehmen, daß als Attribute der Lampe Licht,
Lebensdauer und Leuchtzyklen gebraucht werden.
Sie soll leuchten können; man muß prüfen können, ob sie tatsächlich
Licht gibt und ob sie vielleicht schon durchgebrannt ist (z. B. wenn
die Lebensdauer überschritten ist).
|
Spezifikation
Methoden
--------
Create
Auftrag : erzeugen und initialisieren
vorher : -
nachher: done
Init
Auftrag : zufällige Lebensdauer bestimmen, Startwerte setzen
vorher : -
nachher: kein Licht; Lebensdauer zwischen 0 und 5, Leuchtzyklen ist 0
Leuchten;
Auftrag : Lampe gibt Licht, Leuchtzyklen hochzaehlen
vorher : ist nicht defekt
nachher: L. leuchtet (true)
IsDefekt
Anfrage : ob Lampe defekt ist
vorher : L. ist init.
nachher: true, wenn Leuchtzyklen > Lebensdauer
GetLicht
Anfrage : ob Licht da ist (true)
vorher : Lampe ist init.
nachher: -
|
Aggregation
Beziehungen
zwischen
Objekten |
OOA zu TTaschenlampe
1.
Das Attribut 'Lampe' ist nun vom Typ TLampe.
2.
Die Methode 'Leuchtet' kann präzisiert werden:
Leuchtet
Anfrage: ob die Taschenlampe 'brennt'
vorher : -
nachher: leuchtet, wenn Lampe Licht gibt, Batterie OK und Schalter auf EIN
|
|
TLampenGUI
bleibt unverändert.
|
|

Sequenzdiagramm: Taschenlampe einschalten
Zur Implementation
Den Code können Sie zur Kontrolle im Anhang finden
|
|
|