Erzeugung von Agentenanwendungen aus UML-Diagrammen

Themenfeld: Die Codegenerierung ist eine besonders interessante Anwendung des MDD (model-driven development), da man der so genannten generativen Programmierung eine Steigerung der Produktivität bei gleichzeitiger Erhöhung der Codequalität nachsagt: Die Entwicklung von Anwendungen kann mithilfe von grafischen Editoren erfolgen, welche die Details der Infrastruktur-bezogenen Programmierung ausblenden und damit die Zusammenarbeit mit den Problemdomänen-Experten erleichtert. Anschließend werden anhand der Diagramme Codeschablonen gewonnen, welche noch mit Code zu füllen sind, welcher nicht aus den Diagrammen abgeleitet werden kann. Die Erzeugung von Codeschablonen wird in der Regel durch schematische Übersetzung der UML-Diagramme, die in Form von XMI-Dateien standardgemäß gespeichert werden, vorgenommen.

Die Zahl der MDD-Editoren nimmt zwar zu, jedoch sind die meisten Editoren lediglich in der Lage, aus Strukturdiagrammen Codeschablonen zu generieren. Die UML 2.0 definiert jedoch eine Vielzahl von Diagrammen, welche bislang häufig noch nicht zur Codegenerierung herangezogen werden.
Autonome Agenten sind ein leistungsfähiges Paradigma zur Modellierung von Anwendungen, welche dezentral organisiert sind. So können beispielsweise komplexe Probleme mithilfe von kooperierenden Agenten gelöst werden. Eine andere Anwendungsgruppe sieht wandernde Agenten (mobile Agenten) als Möglichkeit der Verteilung von Funktionalität vor.

Agenten lassen sich im Rahmen der agentenorientierten Programmierung (AOP) auf recht nahe liegende Weise auf spezifische Programmkonstrukte abbilden (Softwareagenten).

Problem: Die Erstellung agentenorientierter Software droht den Anschluss an die aktuellen und zukünftige Entwicklungsmethoden (wie MDD) zu verlieren. Dabei könnten sich Agenten als wertvolles Designprinzip für die Erstellung von Anwendungen erweisen, in denen ein hoher Grad an Selbstorganisation oder -management erforderlich ist. Es existieren keine Codegeneratoren, welche explizit die Abbildung von UML-Diagrammen auf Softwareagenten vornehmen.

Aufgabenstellung: Erstellung einer Entwicklungsumgebung, die es erlaubt, XMI-kodierte UML-Diagramme in Implementationsschablonen für autonome mobile Agenten zu übersetzen, wobei die Zielplattform ein vorher festzulegendes Agentensystem (Java-basiert) ist. Die Erstellung der Diagramme soll mit vorhandenen UML-Editoren stattfinden und ist nicht Gegenstand dieser Arbeit. Neben Strukturdiagrammen sollen insbesondere Zustandsdiagramme und Sequenzdiagramme genutzt werden können, um das Verhalten des Agenten bzw. einer Gruppe von Agenten abstrakt zu spezifizieren und mithilfe dieser Umgebung in geeignete Codeschablonen zu übersetzen.
Erforderliche Kenntnisse: Sehr gute Programmierkenntnisse, insbesondere in Java; gute Kenntnisse in den Gebieten autonomer Softwareagenten, UML, modellgetriebene Entwicklung, XML.

Betreuer: Dr. Michael Zapf