Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Zustandsdiagramme
Beispiel: Stoppuhr
Funktionsbeschreibung als Text:
Nach dem Einschalten zeigt die Stoppuhr die Zeit 0 min 0 s, kurz: 00:00. Nach Drücken der Taste „s“ beginnt die Zeitmessung und die Uhr zeigt die abgelaufene Zeit an. Drückt man erneut die Taste „s“, so hält die Zeitmessung an, kann jedoch durch weiteren Druck auf „s“ fortgesetzt werden. Ein Druck auf die Taste „r“ bewirkt jederzeit, dass die Zeitmessung angehalten und die Uhr auf 00:00 zurückgesetzt wird.
Zustandsdiagramm
Umsetzung als Computerprogramm:
Wir modellieren die Uhr als Java-Klasse.
Im Attribut zustand speichern wir, in welchem Zustand sich das Programm gerade befindet (siehe grüne Zahlen im Zustandsdiagramm).
Für jede auslösende Aktion bekommt die Klasse eine Methode, deren Aufruf die Aktion auslöst.
Uhr u = new Uhr(); // Die Timer-Klasse führt die Methode run des Objekts u // alle 1000 ms immer wieder aus: Timer.repeat(u, 1000); public class Uhr implements Runnable { int zustand = 1; int sekunden = 0; int minuten = 0; public void drückeS() { if(zustand == 1) { zustand = 2; // Uhr starten return; } if(zustand == 2) { zustand = 3; // Zwischenstopp return; } if(zustand == 3) { zustand = 2; // wieder starten return; } ausgabe(); } public void drückeR() { zustand = 1; // reset sekunden = 0; minuten = 0; ausgabe(); return; } // Diese Methode wird alle 1000 ms immer wieder // von der Klasse Timer ausgeführt (siehe ganz oben!). public void run() { if(zustand == 2) { sekunden++; if(sekunden == 60) { minuten++; sekunden = 0; } } ausgabe(); } public void ausgabe() { System.clearScreen(); println(minuten + " : " + sekunden); } }