Software des Simulated-Universe

Auch wenn am Ende kein Browsergame entstanden ist, sind dabei doch viele tausend Zeilen Programm-Code und ein paar interessante Entwicklungs-Tools entstanden.

  • Simulationskern (Application-Core)
  • UML2 Code-Generator (Model2Text Translator)
  • Simulationstester

Simulationskern (Application-Core)

Ich bin dabei die Bezeichnung ein bisschen abzuändern, weil es eben nicht mehr nur ein Simulationskern ist. Das ist jedoch nicht ganz so einfach, weil sie das ursprüngliche Einsatzgebiet durch das gesamte Projekt zieht.

Es ist also nicht ganz einfach aus einem Simulationskern einen Applikationskern zu machen.

Im wesentlichen erfüllt dieser Kern folgende Aufgaben:

  • Kommunikation mit den Clients
  • Kommunikation mit den Datenbanken
  • Laden und Ausführen der Anwendung
Grobe Struktur

UML2 Code-Generator (Model2Text)

Eine der größten Herausforderungen für die Entwicklung einer Anwendung ist eine konsistente Abbildung des Ist-Zustands der Entwicklung.

Grundsätzlich bietet sich dazu die Verwendung eines UML-Modellers an. Die aktuelle Version 2.x definiert eine ausreichende Menge an Modellelementen um alle wesentlichen Bestandteile einer Software beschreiben zu können.

Was jedoch in all den Jahren der Nutzung von UML und UML2 kaum Beachtung fand war die Bereitstellung eines alltagstauglichen Tools, mit dem man die erstellten Modelle in passende Artefakte umwandeln konnte.

Parallel zu der Entwicklung der Kernsoftware ist daraus ein UML2 Code-Generator (aka M2T Translation) entstanden der sich bei mir im täglichen Einsatz für meine diversen Versuche auch kontinuierlich weiter entwickelt.

Aktuell wird er nur zusammen mit StarUML verwendet, da dieses auf allen wichtigen Plattformen zur Verfügung steht. Das Design ist jedoch darauf ausgelegt beliebige UML2-Modeller zu unterstützen. Es wird lediglich ein entsprechender Parser benötigt, der das Modell einliest.

Es werden folgende Programmiersprachen unterstützt:

  • C/C++ (inkl. Qt specials)
  • Simulation-Core description
  • PHP
  • JScript

Da ich im allgemeinen kein PHP und auch kein JScript in meinen Entwicklungen verwende ist der Support entsprechend unvollständig.

Simulationstester

Sowohl nach außen als auch im inneren des Simulationskerns wird mit Messages und Signalen kommuniziert. Wenn an dieser Kommunikation auch noch unterschiedliche Clients beteiligt sind, dann wächst der Testaufwand für die Simulation extrem an und ist schnell nicht mehr von einem einfachen Entwickler zu bewältigen.

Deshalb ist aktuell eine Test-Software in der Entwicklung die in der Lage ist die Simulation mit Messages zu stimulieren und die Reaktionen auf diese Messages auszuwerten.

Für die Auswertung können auch die Datenbanken abgefragt und die darin gespeicherten Werte geprüft werden.

Es werden ganze Test-Suiten in XML-Dateien gespeichert die dann aus einer ganzen reihe von einzelnen Tests bestehen können.