Ziele:
Algorithmen und Klassen modifizieren, um eine weitere Annäherung an die
Realität zu erreichen |
|
Informationen
zur Vertiefung |
OOA und vereinfachende Modellannahmen zur Version 1.3
Die Batteriespannung fällt bei jeder Stromentnahme um einen festen Betrag
bis auf Null ab. Der natürliche langsame Spannungsverlust bei langer
Lagerung ohne Belastung wird nicht berücksichtigt.
Die Helligkeit der Taschenlampe nimmt von 100% auf 0% proportional linear
mit der sinkenden Spannung ab.
|
|

Es fällt eine Reihe von Änderungen
innerhalb der Klassen an, die Struktur bleibt unverändert.
In der GUI wird der Timer eingebaut und die Darstellung des Lichtes muß
unterschiedliche Helligkeitswerte, die von TTaschenlampe kommen,
wiedergeben.
TBatterie kann intern die Spannung vermindern.
TGluehlampe braucht ein zusätzliches Attribut Nennspannung (für die sie
konstruiert ist) zur Unterscheidung von der effektiven Spannung, die
jeweils anliegt.
TLampe ist unverändert. |
Timer
|
Spezifikation TLampenGUI
TLampenGUI = class(TForm)
GehaeusePnl : TPanel;
...
LaufzeitTm : TTimer;
procedure LaufzeitTmTimer(Sender: TObject);
private
procedure Darstellen(TLa : TTaschenlampe);
end;
Methoden
--------
Darstellen (TLa : TTaschenlampe);
Auftrag: anbnehmende Helligkeit mit RGB-Farben steuern; Timer starten,
wenn nicht leuchtet, dann Timer abstellen
vorher : TLa leuchtet
nachher: Helligkeit angezeigt
LaufzeitTmTimer(..)
Auftrag: Darstellen starten und beenden
vorher : -
nachher: done
|
|
Spezifikation TTaschenlampe
Methoden
--------
GetHelligkeit
Anfrage: nach der aktuellen Helligkeit der Lampe, Spannung sinken lassen,
neue Spannung an Lampe
vorher : -
nachher: done
Leuchtet
Anfrage: ob die Taschenlampe 'brennt'
vorher :
nachher: leuchtet, wenn Lampe Licht gibt und Batteriespannnung > 0 und
Schalter auf EIN.
Lampe bekommt aktuelle Batteriespannung
|
|
Spezifikation TBatterie
Methoden
--------
GetSpannung
Anfrage: nach der Spannung
vorher : Spannung ist init.
nachher: Spannung ist um x.x V gesunken
|
|
Spezifikation TGluehlampe
TGluehlampe = class(TLampe)
private
Nennspannung,
Spannung : double; // eff. anliegende Sp.
public
constructor Create;
procedure SetSpannung (u : double);
function GetSpannung : double;
function GetHelligkeit : integer;
end;
Methoden
----------
Create
Auftrag: Erzeugen und initialisieren
vorher : -
nachher: Nennspannung ist 4.5 ; Spannung = 0
GetHelligkeit
Anfrage: nach prozentualem Stand der Spannung = Helligkeitsfaktor
vorher :
nachher: hell, wenn 100%;
|
|