3. Konzept

In diesem Kapitel wird das Konzept zur Realisierung der Java-Implementierung von World3-03 vorgestellt. Zu Beginn liegt das World3-03-Modell, wie bereits erwähnt, in der Simulationssoftware Vensim vor. Dieser deutschen Übersetzung des Weltmodells von H. Bossel ist ein elektronisches Begleitheft beigefügt. Für alle im Modell vorkommenden Größen sind die Gleichungen und Parameter dort zusammengetragen.

3.1 Anwendungsfälle

Zunächst soll ein Überblick darüber geschaffen werden, von welchen Überlegungen zu Beginn der Konzeptarbeit ausgegangen wird. Es ist in dem folgenden UML-Anwendungsfalldiagramm aufgeführt, welche Möglichkeiten sich für den Benutzer ergeben mit dem Programm zu interagieren.


Abbildung 14: Anwendungsfalldiagramm des Realisierungskonzepts40

Der Benutzer soll sich entweder eines der in den Büchern der World3-Autoren vorkommenden 11 Szenarien ausgeben lassen können, oder selbst ein eigenes Szenario erstellen. Hierfür muss es die Möglichkeit geben, dass der Benutzter die Parameter, der im World3-Modell vorkommenden Größen, verändern kann. Anschließend erfolgt die Ausgabe der entsprechenden Graphen in graphischer oder tabellarischer Form. Welche Graphen ausgegeben werden können, soll der Benutzer selbst entscheiden können. Hierzu soll die Möglichkeit gegeben sein, entweder alle Graphen einzeln auszuwählen, oder eines von den World3-Autoren zusammengestellten „Graphenpaketen“ wählen zu können.

3.2 Strukturierung des Programmkonzepts auf unterster Programmebene

Da eine objektorientierte Programmiersprache zum Einsatz kommt (siehe hierfür Kapitel 4.1), wird das Modell in Form verschiedener Klassen geschrieben, von denen zur Laufzeit  Instanzen (Objekte) erzeugt werden. In dem World3-Modell existieren, wie bereits dargestellt, eine ganze Menge unterschiedlicher Größen, welche zu den Typen Konstante, Zwischengröße und Zustandsgröße zusammengefasst werden können. Des Weiteren werden Lookup-Tables eingesetzt. Außerdem muss es eine Klasse geben, in der  alle zeitliche Information zusammengetragen wird, damit das Programm weiß, bis wann es rechnen soll oder welcher Zeitschritt verwendet werden soll. Das nächste UML-Klassendiagramm veranschaulicht die unterste zu entwerfende Programmebene.


Abbildung 15: Klassendiagramm der unteren Programmebene41

In der Klasse Größe sind grundlegende Attribute, wie Name, Beschreibung und Einheit zu finden. Diese Attribute weisen alle Größen auf (auch Konstanten). Eine Zwischengröße und eine Zustandsgröße42 können mit einer oder keiner Lookup-Tabelle assoziiert werden. Die zwei zuletzt genannten Größen müssen weitere Methoden definierten, auf die im nächsten Kapitel eingegangen wird, wenn es um die konkrete Implementierung geht. Die Klasse Zeit steht mit den anderen Klassen nur indirekt in Beziehung.
Jede konkrete Klasse, welche eine Größe im World3-03-Modell symbolisiert, erweitert eine der aufgeführten Klassen, um auf die Methoden zugreifen und die Attribute initialisieren zu können.

3.3 Erweiterung des Programmkonzepts auf mehrere Ebenen

Im vorherigen Unterpunkt wurde veranschaulicht, wie die Systemelemente auf unterster Programmebene zu realisieren sind. Nun wird dargestellt, welche Aufgaben die höheren Programmebenen tragen, damit das Gesamtkonzept der Implementierung umrissen werden kann. Die folgende Paketübersicht zeigt die unterschiedlichen Systemebenen und veranschaulicht das Implementierungskonzept im Ganzen.


Abbildung 16: Gesamtkonzept der Implementierung43

Das Paketdiagramm aus Abbildung 16 zeigt, dass eine 3-Ebenen-Architektur angewendet wird. Die unterste Systemebene implementiert die bereits bekannten Klassen aus Abbildung 15. Jede obere Systemebene hat Zugriff auf die darunterliegenden. Die mittlere Ebene implementiert alle Größen des World3-03-Modells. Um bessere Übersichtlichkeit zu gewähren, wurden die Klassen in Pakete eingeteilt. Diese Einteilung ist mit der Teilsystemstruktur der Vensim-Implementierung identisch. Die Klasse World3_03 instanziiert all diese Klassen und wird über eine rechneModell()-Methode verfügen. Die Methode wird schließlich die Berechnungen durchführen. Die oberste Ebene ist für die Konstruktion der graphischen Benutzeroberfläche zuständig. Dazu wird ein Paket mit Hilfskomponenten für die GUI („Graphical User Interface“) angeboten. Die Klasse WeltModellApplet instanziiert die World3_03-Klasse und kann schließlich in die Webseite eingebaut werden.