Hasso-Plattner-Institut
Prof. Dr. Holger Giese
  
 

Bachelorprojekt

Wintersemester 2009/2010 - Sommersemester 2010

Skalierbare modellgetriebene Softwareentwicklung

Hintergrund

Die modellgetriebene Softwareentwicklung ermöglicht es, Anwendungen in angemesseneren Abstraktionen zu spezifizieren, so die Effizienz in der Entwicklung zu steigern und die Portabilität sowie die Langlebigkeit der Anwendungen zu erhöhen. Dabei werden Modelle als wesentliches Element der Entwicklung verwendet. Der Übergang von der fachlich getriebenen Spezifikation zur ausführbaren Anwendung wird dabei durch Anwendung geeigneter Transformationen teilweise automatisiert. Dadurch können die Kosten der Entwicklung sowohl kurz- als auch langfristig gesenkt werden.

Abbildung 1: Prozesskomponentenmodell eines großen SAP-Projekts

Die modellgetriebene Softwareentwicklung wird bereits erfolgreich für die Entwicklung von Systemen moderater Größe angewendet. Allerdings hat sich gezeigt, dass die vorhandenen Technologien bei sehr großen Modellen wie dem aus Abbildung 1 nicht hinreichend skalieren. Dies gilt sowohl für die Meta-Modelle, Techniken zur Transformation von Modellen als auch die Überprüfung von Restriktionen, die in der Object Constraint Language (OCL) ausgedrückt sind. 

Konkreter Hintergrund dieses Bachelorprojektes ist es, dass die SAP AG skalierbare Technologien für eine modellgetriebene Softwareentwicklung benötigt, damit die modellgetriebene Softwareentwicklung auch für ihre sehr komplexen Softwaresysteme anwendbar wird. Strategisch setzt die SAP in verschiedenen Bereichen vermehrt auf Open Source-Komponenten, unter anderem bei der Bereitstellung von Infrastrukturen für den Werkzeugbau. Für die modellbasierte Entwicklung deckt das Eclipse Modeling Framework (EMF) funktional viele grundlegende Anforderungen ab. 

Jedoch skaliert EMF nicht so gut, wie es für die aus komplexen Softwaresystemen  resultierenden sehr großen Modelle und die große Zahl der daran arbeitenden Entwickler notwendig wäre. EMF wird bei der SAP bereits in einigen Projekten eingesetzt (z.B. in den Produkten „NetWeaver Composite Applications Framework“ und dem „NetWeaver Composition Designer“). Um auch größere modellbasierte Projekte mit EMF zu betreiben, muss jedoch zunächst sichergestellt sein, dass EMF-basierte Werkzeuge im oben beschriebenen Sinne ausreichend skalieren können. 

Gegenstand

In diesem Bachelorprojekt soll deswegen im Kontext der modellbasierten Entwicklung mit EMF betrachtet werden, wie die Skalierbarkeitsprobleme von EMF überwunden werden könnten. Neben entsprechenden Lösungskonzepten soll dabei auch konkret ein Prototyp für eine skalierbare EMF-Variante entwickelt und erprobt werden. 

Dazu sollen im Rahmen des Projektes am Anfang eine Reihe von Beispielproblemen erfasst werden, die dazu dienen sollen, besser zu verstehen, wo im einzelnen die Probleme bei der Skalierbarkeit liegen. Mögliche Probleme sind: 

• Effizientes Speichermanagement für große Modelle 

• Entkopplung der Modelle auch bei bidirektional navigierbare Beziehungen  

• Effiziente Auswertung von OCL-Ausdrücken bei großen Instanzmengen  

• Inkrementelle Auswertung von OCL-Ausdrücken 

• Inkrementelle Transformation und -synchronisation von Modellen 

Auf Basis des so entwickelten Verständnisses sollen dann entsprechende Lösungskonzepte entwickelt werden und bzgl. ihrer Eignung anhand der Beispielprobleme evaluiert werden. Auf Basis der Lösungskonzepte soll dann eine skalierbarere EMF-Variante entwickelt werden. Daran schließt sich eine Evaluierung dieser Variante bzgl. Skalierbarkeit Anhand der Beispielprobleme an.

Es ist dabei das Ziel des Bachelorprojektes zu explorieren, für welche Fälle die Skalierbarkeit des EMF verbessert werden muss und wie eine skalierbar EMF-Variante aussehen könnte. 

Umsetzung

Das Bachelorprojekt kann bei der Umsetzung der Konzepte auf vorhandene Technologien zurückgreifen. Bei EMF handelt es sich um frei verfügbare Software. Darüber hinaus verfügt das Fachgebiet über entsprechende Technologien für die effiziente, inkrementelle Transformation und Synchronisation von Modellen. 

Die prototypische Software soll entsprechend in Eclipse integriert arbeiten und soll dementsprechend mit Java entwickelt werden. Einführungen in die zu nutzenden Werkzeuge und zu verwendenden weiteren Technologien werden im Rahmen des Projektes durchgeführt. 

Umfeld

Das Projekt wird in Zusammenarbeit mit der SAP AG durchgeführt. Die Studierenden werden im Rahmen der Kooperation mit der SAP AG als Auftragnehmer agieren und die SAP AG als Auftraggeber und Domänenexperten auftreten. Dies gilt insbesondere für die Erfassung der Anforderungen aber auch für die Evaluierung der Ergebnisse des Projekts. 

Es ist zu erwarten, dass bei erfolgreicher Bearbeitung nach Abschluss des Projekts auch eine studentische Beschäftigung am HPI und/oder eine Masterarbeit in Kooperation mit der SAP AG möglich sind. 

Organisation

Die Vorgehensweise im Projekt wird methodisch auf die Erfassung der Anforderungen, die Entwicklung der Lösungskonzepte, die Umsetzung einer skalierbaren EMF-Variante und deren Evaluierung ausgerichtet. Durch zeitlich kurze Iterationen und entsprechende Feedbackschleifen mit dem Auftraggeber in Form von Treffen in Potsdam sowie Walldorf soll während der gesamten Projektphase ein zielorientiertes Vorgehen erreicht werden. 

In der Vorbereitungsphase werden fachliche Grundlagen zu den Themen Meta-Modellierung, Modelltransformationen, Modellsynchronisation und effiziente Datenstrukturen vermittelt. Dazu werden beispielhaft ausgewählte Aufgabenstellungen exemplarisch einzeln oder in kleineren Teams bearbeitet und dem Gesamtteam vorgestellt. 

Studierende, die in diesem Projekt teilnehmen wollen, sollten Interesse an der Modellierung und der modellgetriebenen Entwicklung haben. Es wird weiter erwartet, dass man sich in die zum Einsatz kommenden Methoden des Software-Engineering während des Projekts einarbeitet. 

Projektbeginn

Projektbeginn ist der 1.10.2009. 

Informationen

Für ausführliche Information zu dem Projekt steht Prof. Dr. Holger Giese (Haus A, A-2.5, holger.giese(at)hpi.uni-potsdam.de) zur Verfügung. Ansprechpartner Seitens der SAP AG wird während des Projekts Dr. Axel Uhl (Chief Development Architect bei der SAP AG, axel.uhl(at)sap.com) sein.