Projekt "Game of Life" - Anforderungsdefinition
Istanalyse
Im Biologieunterricht steht innerhalb des Curriculums auch die Zellbiologie
auf dem Plan. Der Unterricht ist hier oft ein Trockenkurs oder erfordert
Experimente an lebenden Zellkulturen. Die entsprechenden Experimente benötigen
Zeit, um das Zellwachstum zu beobachten, Arbeitsmittel und Kosten und einen
erheblichen Betreuungsaufwand der Lehrkraft.
Zukünftig soll in Ergänzung zu den weiter verwendeten Experimenten
im Biologieunterricht ein Programm eingesetzt werden, das in vereinfachter
Form zentrale Elemente der Zellbiologie, speziell Wachstumsprozesse von
Zellkulturen, simuliert.
Gesucht ist ein Programm, das zentrale Phänomene der Zellbiologie,
die beim Wachstum von Zellkulturen auftreten, simuliert. Typisch für
Zellkulturen ist ein zunächst stetig zunehmendes Wachstum bis zu einem
bestimmten Wert, an dem sich ein Gleichgewicht einstellt, das durch Geburt
und Absterben bestimmt wird. Eine Zelle kann tot sein oder leben. Sind
zuviele Zellen an einem Ort kommt es zu Nahrungsmangel, so daß einige
oder alle Zellen sterben. Befindet sie sich in einem Zellverband bestimmter
Größe, kann sie überleben. Wird sie vom Zellverband gelöst,
stirbt sie.
Gibt die Simulation das Verhalten von Zellkulturen in bestimmten Bereichen
wieder, kann sie zur Vorhersage von Wachstumsprozessen verwendet werden.
Zudem können vermutete Wachstumsregeln erhärtet werden.
Die Schüler sollen über eine leicht bedienbare Oberfläche
Zellkulturen definieren, Wachstumsprozesse analysieren und mit unterschiedlichen
Fortpflanzungsregeln experimentieren können. Das System soll auch
in Präsentationsform allein von der Lehrkraft eingesetzt werden können.
Zum Einsatz des Systems steht das Schullabor mit 15 PCs zur Verfügung,
in dem die Schüler jeweils zu zweit an einem Gerät arbeiten sollen.
Sollkonzept
1. Systemziele
Das System realisiert eines der ältesten Simulationen des Wachstums
von Zellkulturen, das unter dem Namen "Game of Life" bekannt ist und von
dem Mathematiker John H. Conway [Con71] vorgeschlagen
wurde.
Zellkulturen werden durch schachbrettförmig angeordnete Plätze
modelliert, die jeweils durch eine lebende oder tote Zelle besetzt sind.
Der Wachstumsprozeß einer Zellkultur erfolgt nach festen Regeln in
Generationen. Ob ein Platz in der nächsten Generation eine lebende
oder tote Zelle enthält, hängt von aktuellen Zustand der Zelle
und der Zahl ihrer lebenden unmittelbaren Nachbarn (max. acht Stück,
sofern sich die Zelle nicht am Rande der Zellkultur befindet) in der aktuellen
Generation ab. Dabei gelten folgende Regeln:
-
Hat eine tote Zelle in der aktuellen Generation exakt drei lebende Nachbarn,
so wird sie in der nächsten Generation am Leben sein. Anderenfalls
bleibt sie tot.
-
Hat eine lebende Zelle in der aktuellen Generation weniger als zwei lebende
Nachbarn, so wird sie in der nächsten Generation tot sein. Sie stirbt
an Vereinsamung.
-
Hat eine lebende Zelle in der aktuellen Generation mehr als drei lebende
Nachbarn, so wird sie in der nächsten Generation tot sein. Sie stirbt
an Überbevölkerung.
Der Anfangszustand des Spielfelds, d.h. die Anfangsbelegung der Plätze
mit lebenden oder toten Zellen, wird zufällig durch das Programm vorgegeben
oder vom Benutzer bestimmt. Ferner kann der Benutzer zu beliebigen Zeiten
den Berechnungslauf anhalten, um z.B. eine Generation genauer zu betrachten,
oder ganz abbrechen. Die Nummer der aktuellen Generation wird durch das
Programm angezeigt.
Anmerkung:
In der Informatik spricht man bei vielen gleichartigen, durch
einfache nachbarschaftliche Kommunikation miteinander verbundenen und funktional
einfachen Schaltelementen von zellulären Automaten. In diesem
Sinne ist das Game of Life ein zellulärer Automat. Eine wesentliche
Leistung der theoretischen Arbeiten von John Conway war es zu zeigen, daß
das Game of Life berechnungsvollständig ist, das es also gleichmächtig
zu Computern ist, sofern das Spielfeld unbeschränkt ist. Der zelluläre
Automat "Game of Life" kann also Turingmaschinen simulieren und beliebige
Programme ausführen, sofern sie und ihre Ein- und Ausgaben in Zellkulturen
codiert werden. Trotz der einfachen Regeln ist das Verhalten der Zellkultur
folglich hochkomplex und unüberschaubar.
Das System benötigt zum Ablauf nur das Java-Laufzeitsystem und kann
daher auf nahezu jedem Rechner ausgeführt werden.
2. Kurzbeschreibung
Das System realisiert die unter der Bezeichnung "Game of Life" von John
H. Conway [Con71] bekannte Simulation des Wachstums
von Zellkulturen.
Zellkulturen werden durch schachbrettförmig angeordnete Plätze
modelliert, die jeweils durch eine lebende oder tote Zelle besetzt sind.
Der Wachstumsprozeß erfolgt nach festen Regeln in Generationen, wobei
sich die Eigenschaft "tot" oder "lebendig" einer Zelle von Generation zu
Generation in Abhängigkeit von der Zahl der lebenden unmittelbaren
Nachbarn ändern kann. Der Benutzer kann Zellkulturen vorgeben, Zellkulturen
zufällig erzeugen lassen und den Simulationsvorgang zu beliebigen
Zeiten unterbrechen.
Aus Sicht der Informatik handelt es sich beim Game of Life um einen
zellulären Automaten, dessen Arbeitsweise durch das System simuliert
wird.
Das System benötigt zum Ablauf nur das Java-Laufzeitsystem und
kann daher auf nahezu jedem Rechner ausgeführt werden.
3. Benutzermodell
Der Benutzer ist in der Lage, auf dem vorliegenden Rechner das Java-Laufzeitsystem
zu starten und die Datei mit den Namen "starteGame.class" zu öffnen,
ferner kann er Eingaben gemäß den Angaben der Benutzungsschnittstelle
vornehmen. Weiter wird vorausgesetzt, daß der Benutzer die üblichen
Funktionen der Bedienung eines Rechners beherrscht, darunter das Ein- und
Ausschalten des Rechners, das Anlegen von Dateien und Verzeichnissen, das
Starten von Java-Programmen, das Verschieben oder Kopieren von Dateien.
Weitergehende Kenntnisse des Betriebssystems oder der verwendeten Programmiersprache
sind nicht erforderlich.
4. Basismaschine
Das System arbeitet im Dialog und benötigt zum Ablauf neben Zentraleinheit
(PC oder Mac) eine Tastatur, eine Maus und einen Bildschirm sowie das Java-Laufzeitsystem.
Die Anforderungen an Intern- und Externspeicher und Prozessorleistung werden
nur durch die Hardwareanforderungen des Java-Laufzeitsystems bestimmt.
Weitere spezielle Hard- oder Softwareanforderungen bestehen nicht.
5. Benutzungsschnittstelle
Das Programm berechnet nacheinander alle Generationen von Zellkulturen
auf der Grundlage von drei Regeln, die Leben und Sterben von Zellen beschreiben,
und zeigt sie auf dem Bildschirm an.
Zellkulturen werden durch schachbrettförmig angeordnete Plätze
modelliert, die jeweils durch eine lebende oder tote Zelle besetzt sind.
Lebende Zellen werden durch einen roten, tote Zellen durch einen schwarzen
Punkt angezeigt.
Der Wachstumsprozeß einer Zellkultur erfolgt nach festen Regeln
in Generationen. Ob ein Platz in der nächsten Generation eine lebende
oder tote Zelle enthält, hängt von aktuellen Zustand der Zelle
und der Zahl ihrer lebenden unmittelbaren Nachbarn (max. acht Stück,
sofern sich die Zelle nicht am Rande der Zellkultur befindet) in der aktuellen
Generation ab. Dabei gelten folgende Regeln:
-
Hat eine tote Zelle in der aktuellen Generation exakt drei lebende Nachbarn,
so wird sie in der nächsten Generation am Leben sein. Anderenfalls
bleibt sie tot.
-
Hat eine lebende Zelle in der aktuellen Generation weniger als zwei lebende
Nachbarn, so wird sie in der nächsten Generation tot sein. Sie stirbt
an Vereinsamung.
-
Hat eine lebende Zelle in der aktuellen Generation mehr als drei lebende
Nachbarn, so wird sie in der nächsten Generation tot sein. Sie stirbt
an Überbevölkerung.
Das Programm erlaubt die Analyse von Zellkulturen der maximalen Größe
200x200 Zellen.
5.1 Vorbereitungen
Das Programm besteht aus drei Dateien mit den Namen "starteGame.class",
"GameFenster.class" und "Game.class". Vor dem Start des Programms ist sicherzustellen,
daß sich die drei Dateien im gleichen Verzeichnis auf der Festplatte
des Rechners befinden.
5.2 Start des Programms
Zum Start des Programms wird mit dem Java-Laufzeitsystem die Klasse mit
dem Namen "starteGame.class" geöffnet. Der Startvorgang ist damit
abgeschlossen, das Programm ist betriebsbereit, zeigt ein schwarzes Feld
("alle Zellen sind tot") und wartet auf Eingaben des Benutzers.
5.3 Eingaben
Nach Start des Programms hat der Benutzer zwei Möglichkeiten, den
Ablauf des Programms zu beeinflussen:
-
Er kann die Größe des Spielfelds festlegen.
-
Er kann das Programm veranlassen, eine zufällige Verteilung von lebenden
und toten Zellen als Anfangsgeneration zu erzeugen.
-
Er kann eine frei gewählte Anfangsgeneration vorgeben.
-
Er kann das gesamte Spielfeld löschen.
-
Er kann einen Vergrößerungsfaktor für das Spielfeld wählen.
-
Er kann die Geschwindigkeit der Generationswechsel festlegen.
-
Er kann das Programm beenden.
Alle genannten Eingabemöglichkeiten sind auch kombinierbar und können
zu beliebiger Zeit während des Programmlaufs wiederholt werden.
Eingaben in die Eingabefelder werden erst wirksam, nachdem die return-Taste
gedrückt wurde.
5.3.1 Größe des Spielfelds
Durch Eingabe zweier Werte in die entsprechend gekennzeichneten Felder
kann der Benutzer die Größe des Spielfelds festlegen. Das erste
Feld legt die Zahl der Zellen in der Senkrechten, das zweite in der Waagerechten
fest. Als Eingabewerte sind für beide Eingebafelder jeweils Werte
zwischen 5 und 200 zugelassen.
Die Voreinstellung bei Start des Programms beträgt 50x50 Zellen.
5.3.2 Zufällige Anfangskonfiguration
Durch Anklicken der Schaltfläche "Zufall" erzeugt das Programm eine
zufällige Verteilung von lebenden und toten Zellen. Mit dem gekennzeichneten
Eingabefeld kann zuvor festgelegt werden, wieviele lebende Zellen zufällig
erzeugt werden sollen. Geeignete Werte liegen im Bereich von 10-50% der
Spielfeldgröße. Bei Änderung der Spielfeldgröße
wird die Zahl der zufällig erzeugten zellen in sinnvoller Weise angepaßt.
Die Voreinstellung bei Start des Programms beträgt 400 Zellen,
d.h. bei Wahl der zufälligen Anfangskonfiguration werden 400 lebende
Zellen erzeugt.
5.3.3 Frei gewählte Anfangskonfiguration
Alternativ hat der Benutzer die Möglichkeit, das Programm auf beliebige
Anfangsgenerationen anzusetzen. Dazu klickt er mit der Maus auf ausgewählte
Plätze des schachbrettartigen - anfangs schwarzen - Feldes und definiert
die entsprechenden Zellen als "lebend" (roter Punkt). Ein Klick auf einen
lebende Zelle (roter Punkt) löscht die Zelle.
5.3.4 Leere Anfangskonfiguration - Löschen des Spielfelds
Durch Druck auf die Schaltfläche "Löschen" können alle Belegungen
des Feldes gelöscht werden. Danach sind also alle Zellen tot und das
Spielfeld schwarz.
5.3.5 Vergrößerungsfaktor
Durch Markieren eines der drei Schalter mit der Bezeichnung "klein", "mittel"
oder "groß" kann eine vergrößerte Anzeige des Spielfelds
gewählt werden. Der Vergrößerungsfaktor bei der Wahl von
"mittel" bzw. "groß" gegenüber "klein" beträgt 2 bzw. 4.
Die Größe des Spielfelds (=Zellenzahl in der Waagerechten und
Senkrechten) ändert sich durch Vergrößerung nicht.
Beim Start des Programms ist eine mittlere Vergrößerung
voreingestellt.
Bei zu großer Vergrößerung können möglicherweise
je nach Größe des Bildschirms Teile des Spielfelds sowie die
Schalt- und Eingabefelder nicht mehr angezeigt werden.
5.3.6 Geschwindigkeit der Generationswechsel
Mit der in das vorgesehene Feld eingegebenen natürlichen Zahl kann
der Benutzer festlegen, in welcher Zeitspanne das Programm eine neue Generation
berechnet. Eine eingegebene Zahl n bestimmt, daß jede Generation
ca. n/1000-Sekunden angezeigt wird, bevor zur Folgegeneration übergegangen
wird. Die Voreinstellung bei Start des Programms beträgt 1000, d.h.
jede Generation wird ungefähr eine Sekunde lang angezeigt.
5.3.7 Eingabehilfen
Die Eingabemöglichkeiten werden im Programm zum einen durch Beschriftungen
von Schaltflächen verdeutlicht. Zum anderen wird ein kurzer Hilfetext
zur Funktion einer Schaltfläche oder eines Eingabefeldes oberhalb
des Spielfelds angezeigt, sobald der Benutzer den Mauszeiger in die Umgebung
einer Schaltfläche oder eines Eingabefeldes bewegt.
5.4 Programmablauf
Nach Fertigstellung der Anfangskonfiguration kann der Berechnungsvorgang
mittels Druck auf den Start- bzw. Stop-Knopf gestartet bzw. angehalten
werden. Durch abwechselnden Druck auf den Stop- bzw. Start-Knopf kann eine
Berechnung auch zu beliebigen Zeitpunkten angehalten und anschließend
erneut gestartet werden.
Während der Berechnung einer Generationenfolge wird die Nummer
der jeweiligen Generation im unteren Bereich des Fensters angezeigt.
5.5 Beendigung des Programms
Das Programm wird durch Schließen des Fensters des Java-Laufzeitsystems
endgültig beendet.
5.6 Fehlersituationen
In jedes der vier Eingabefelder dürfen nur Ziffern eingegeben werden.
Bei fehlerhafter Eingabe erfolgt die Fehlermeldung "Nur Ziffern bitte"
oberhalb des Spielfelds.
Weitere Fehlersituationen oder -meldungen sind vorgesehen. Andere icht
zulässige Eingaben werden ohne Ausgabe einer Meldung ignoriert oder
durch sinnvolle zulässige Werte ersetzt.
Weitere evtl. auftretende Fehlermeldungen stammen entweder vom Betriebssystem
des vorliegenden Rechners oder anderen auf dem Rechner ablaufenden Programmen.
Erforderliche Gegenmaßnahmen des Benutzers auf solche Fehlermeldungen
können den zugehörigen Handbüchern oder Hilfefunktionen
entnommen werden.
6. Erweiterungsmöglichkeiten
Folgende Ausbaumöglichkeiten des Produkts sind denkbar:
-
Einlesen von Anfangskonfigurationen von Zellkulturen aus einer Datei
-
Abspeichern von Zellkulturen
-
Einrichtung einer Datensammlung mit interessanten Anfangszellkulturen
-
Möglichkeit zur Modifikation der Regeln über Leben und Tod von
Zellen
-
automatische Erkennung und Meldung von stabilen oder zyklischen Zellkulturen
7. Grobstruktur
Das Programm setzt sich näherungsweise aus folgenden Komponenten zusammen:
-
Initialisierung
-
Eingaberoutine für Benutzereingaben
-
Erzeugung einer Folgegeneration
-
Bestimmung der Zahl lebender Nachbarn einer Zelle
-
Ausgabe einer Generation
Die Komponenten 3 und 4 werden zyklisch wiederholt.
8. Literatur
[Con71] M. Gardner: The fantastic combinations of
John Conway's new solitaire game "life". Scientific American 223 (1971)
120-123
Durchführbarkeitsstudie
-
Vorhandene zeitliche Ressourcen: Das Projekt wird im Rahmen einer
Lehrerfortbildungsmaßnahme über drei Tage realisiert. Dazu stehen
insgesamt 10 Stunden sowie in gewissem Umfang Freistunden nach Schluß
der Fortbildungsmaßnahme zur Verfügung. Es ist im Regelfall
nicht zu erwarten, daß das zu implementierende Produkt innerhalb
dieses Zeitraums vollständig erarbeitet werden kann. Dazu steht nach
Schluß der Veranstaltung freie Zeit zur Verfügung.
-
Benötigte personelle Ressourcen: Für die Bearbeitung der
Aufgabe werden drei Personen veranschlagt. Vorkenntnisse der Teilnehmer
werden im Bereich Java und in der Bedienung von Rechnern erwartet.
-
Benötigte technische Ressourcen: 3 Rechnersysteme, Editor,
Java-Runtime-System (nur auf den privaten Rechnern der Teilnehmer für
die Hausarbeit).
-
Entscheidung: Geplanter Zeitbedarf und übrige benötigte
Ressourcen liegen im Rahmen der erwarteten Anforderungen. Auf der Grundlage
dieser Überlegungen wird entschieden, das Projekt durchzuführen.
-
Nebenbedingungen: Da das Programm auch auf vorhandenen Macintosh-Rechnern
eingesetzt werden soll, die als Internet-Browser iCab verwenden, ist zuvor
das Java-Runtime-System MRJ auf diesen Rechnern auf die neueste Version
2.2.4 zu aktualisieren. Die Software ist kostenlos erhältlich.
Projektplanung
Für die Bearbeitung der Aufgabe werden drei Personen veranschlagt.
Bei mehr als vier interessierten Teilnehmern werden mehrere Arbeitsgruppen
zu je 3-4 Teilnehmern gebildet.
Folgende Planungsdetails sind vorgesehen.
1. Zeitplanung
-
1. Tag: 15-18 Uhr
-
Einführung in die Grundlagen des Projektunterrichts (Vortrag)
-
Vorstellung der Projektaufgabe
-
Gruppeneinteilung
-
Erste Besprechung über die Aufgabe innerhalb der Gruppe
-
Festlegung eines Arbeitsplans und Aufgabenverteilung
-
2. Tag: 15-18 Uhr
-
Erstellung einer Anforderungsdefinition
-
Grobentwurf des Systems - Modulstruktur und -abhängigkeiten
-
3. Tag: 10-14 Uhr
-
Entwurfsphase
-
Erstellung der Spezifikation
-
Definition der Module - Parameter
-
Zeitraum nach Schluß der Veranstaltung bis Anfang Dezember 2001
-
Implementierung des Systems auf Basis der erstellten Systementwicklungsbeschreibung
-
Funktionsüberprüfung - Testen
-
Dokumentation der Implementierung - Kommentierung der Programme
-
Anfang Dezember 2001: Abnahme der erstellten Produkte
2. Personelle Planung
-
Anforderungsdefinition: gemeinsam
-
Entwurfsphase - Grobstruktur: gemeinsam
-
Entwurf einzelner Module: je 1 Person unter Beobachtung des Dokumenteurs
-
Dokumentation: 1 Person (Dokumenteur)
3. Technische Planung
Es stehen drei Rechnersysteme zur Verfügung. Die Zahl ist auch bei
vier Teilnehmern noch ausreichend. Eine zeitliche Planung der Rechnernutzung
durch die Teilnehmer erübrigt sich daher.