DOWNLOADS
Diplomarbeit (PDF-Version)
Profil Michael Schifferdecker (PDF-Version)
1 Einleitung
Während der letzten Jahrzehnte haben Forscher und Software-Entwickler ständig Abstraktionen entwickelt, die es ermöglichen, Software mit einer stärkeren Orientierung am Software-Design als an den technischen Details der jeweiligen Laufzeitumgebung zu erstellen. Jedoch hat die Evolution von Programmiersprachen, Entwicklungsumgebungen und Plattformen wie Betriebssystemen und Middleware-Technologien größtenteils zu Abstraktionen innerhalb der Domäne der Rechnertechnologien und weniger zu vereinfachenden Abstraktionen im eigentlichen Problemraum, der das Software-Design mit den Konzepten der Anwendungsdomäne ausdrückt, geführt. Das grundlegende Problem der Software-Entwicklung in der heutigen Zeit bleibt weiter bestehen: die Komplexität der jeweils verwendeten und sich selbst schnell weiterentwickelnden Plattform(en) wächst schneller als die Fähigkeit von Programmiersprachen, Entwicklungswerkzeugen und Software-Entwicklungsmethoden, diese Komplexität durch Abstraktion zu verbergen. Dieses Problem verschärft sich dadurch, dass die heutzutage verfügbaren Konzepte, Methoden und Werkzeuge der Software-Entwicklung immer noch nicht in der Lage sind, die semantische Lücke zwischen den Konzepten der Anwendungsdomäne (Software-Architektur bzw. Software-Design) und den Konzepten der Problemlösungsdomäne (Implementierung bzw. Code) durch eine mglichst weitgehende und automatisierte Abbildung zu schließen. In der Software-Entwicklung kann als aktuelle Zwischenbilanz eine regelrechte Stagnation der Innovation festgestellt werden, welche zuletzt hauptsächlich auf Neuerungen in der Ob jektorientierung sowie der komponentenbasierenden Software-Entwicklung fußte. Einige Autorengehen sogar so weit, dass sie diesen Sachverhalt als eine zweite Software-Krise begreifen.
Mit dem sich in Forschung und praktischer Anwendung immer mehr etablierenden Konzept der modellgetriebenen Software-Entwicklung (engl. Model-Driven Software Development - daher im folgenden stets abgkürzt mit MDSD) entwickelt sich nun allerdings ein vielversprechender Ansatz, um dieses Problem zu lösen. Aufbauend auf dem Grundprinzip, Modelle an der Stelle von Code als primäres Artefakt der Software-Entwicklung anzusehen, verbindet dieser Ansatz domänenspezifische Modellierungssprachen, welche die Anwendungsstruktur, deren Verhalten und deren Anforderungen innerhalb eng abgegrenzter Domänen formalisieren, mit Transformations-Maschinen und Code-Generatoren, die bestimmte Aspekte von Modellen analysieren und dann verschiedene Artefakte zum Code der Anwendung zusammenfügen. Die Nutzung von domänenspezifischen Modellierungssprachen und die anschließende Transformation von Modellen sowie die Generierung von Code aus ebendiesen erlaubt eine weitgehend deklarative Beschreibung der Anwendung und macht die immer noch vorherrschende imperative Ausformulierung des Designs und die manuelle Übersetzung von (in Modellen ausgedrückten) Software-Designs in Code durch den Programmierer selbst in weiten Teilen obsolet. Die Fähigkeit, Artefakte aus Modellen zu erzeugen und zu einer lauffähigen Anwendung zusammenzuführen, führt zu einer Integration von Modellen und Code und somit zu einer durchgehenden Kopplung von Architektur, Design und Implementierung. Der Ansatz verspricht einen signifikanten Produktivitätszuwachs in der Software-Entwicklung und eine merkliche Verbesserung der Softwarequalität durch konsequente und fehlerfreie Durchsetzung der Software-Architektur mit Hilfe automatischer Code-Generierung.
1.1 Problemstellung
Der immer noch sehr junge Bereich der MDSD befindet sich momentan in einem Prozess der Vereinheitlichung der Konzepte und der Etablierung von Standards, von denen die Model-Driven Architecture (MDA) der Object Management Group (OMG) sicherlich der bekannteste ist. Im Zuge dessen hat sich gerade in den letzten Jahren auch die Anzahl sowie der Reifegrad von entsprechenden Werkzeugen deutlich erhöht. Die Cellent Finance Solutions AG (im Folgenden stets abgekürzt mit Cellent) entwickelt am Standort Stuttgart das Produkt SMARAGD/Monitor, das zur Betrugsbekämpfung bei Finanztransaktionen bei national und international tätigen Banken und Finanzdienstleistern zum Einsatz kommt, bereits seit dem Jahr 2000 auf Basis eines modellgetriebenen Entwicklungsansatzes. Dabei kommt ein selbst implementierter Code-Generator zum Einsatz, der in ein UML-Modellierungswerkzeug als plug-in integriert ist und welcher aus einem in UML spezifizierten formalen Anwendungsmodell große Teile der Anwendung automatisch erzeugt. Vor dem Hintergrund der zwischenzeitlich weiter fortgeschrittenen Entwicklung von Werkzeugen und Standards im MDSD-Bereich ergibt sich für Cellent ein Informationsbedarf, wie der Stand der im eigenen Hause eingesetzten Werkzeugkette relativ dazu zu bewerten ist und wie diese ggf. durch den Einsatz neuer, zwischenzeitlich am Markt verfügbarer Werkzeuge so umgestaltet werden kann, dass einerseits zum Teil bereits erkannte Verbesserungspotentiale realisiert und andererseits die bisherigen best practices beibehalten werden können. Die Grundstruktur des von Cellent verfolgten Ansatzes der modellgetriebenen Softwareentwicklung wird dabei nicht in Frage gestellt. Vielmehr geht es darum, ebendiesen mittelfristig mit am Markt bewährten Werkzeugen und Technologien zu realisieren. Die so erreichte Standardisierung verfolgt zwei Ziele. Einerseits soll der mittelfristig absehbar erhebliche Aufwand für die notwendige funktionale Erweiterung der im eigenen Haus implementierten Werkzeugkette umgangen werden. Andererseits wird erst damit überhaupt ein breiterer Einsatz von MDSD im Unternehmen müglich, der nicht durch die zur Weiterentwicklung der aktuellen Lösung zur Verfügung stehende Kapazität einiger weniger Experten beschränkt ist. Die vorliegende Diplomarbeit stellt diesbezüglich die entsprechende Informationsversorgung dar. Sie soll den bei Cellent verfolgten MDSD-Ansatz vergleichend bewerten und eine Antwort auf die Frage geben, welche neuen Werkzeuge sich in diesem Sinne zur Weiterentwicklung der für die Umsetzung von MDSD notwendigen generativen Infrastruktur am besten eignen.
Die besondere Herausforderung bei dieser Aufgabenstellung ist dabei darin zu sehen, dass nicht nur nach sondern auch während einer Umstellung der aktuell eingesetzten Werkzeugkette die möglichst reibungslose Weiterentwicklung der damit erstellten Software-Produkte möglich sein muss. Außerdem ist festzustellen, dass der aktuell einzige im MDSD-Bereich
verabschiedete Standard - die Model-Driven Architecture (MDA) (Object Management Group 2001) - immer noch im Aufbau begriffen ist. Des Weiteren bilden sich parallel zu kommerziellen Werkzeugen im open source - Bereich auf dem MDA-Standard aufbauende und teilweise bereits technisch deutlich weiter entwickelte Werkzeuge heraus. Dieser Umstand erschwert die Vergleichbarkeit von auf in ihrer Gestalt als überaus unterschiedlich einzustufenden MDSD-Werkzeugen aufbauenden Werkzeugketten ganz erheblich. Zudem spricht der aktuelle Ansatz bei Cellent aufgrund des - im Rückblick betrachtet - relativ früh erfolgten Einstiegs in die modellgetriebene Software-Entwicklung auch in Bezug auf die Konzepte teilweise noch eine andere Sprache. Damit ist das übergeordnete Ziel dieser Arbeit, das letztlich in der methodisch fundierten, anforderungsorientierten und vor allem aber mittel-/langfristig richtigen Ableitung einer Empfehlung für eine neue MDSD-
Werkzeugkette bei Cellent besteht, keinesfalls als trivial einzustufen.
1.2 Aufbau der Arbeit
Die vorliegende Arbeit gliedert sich inhaltlich in zwei Teile: einen Grundlagen-Teil und einen Anwendungs-Teil (siehe Abbildung 1.1). Im ersten Teil sollen die wesentlichen Grundlagen für den praktischen Teil der Arbeit entwickelt werden. Dies umfasst die Darstellung der Grundidee und der wesentlichen MDSD-Konzepte einerseits sowie die Darstellung der Auswirkungen von MDSD auf den Software-Entwicklungsprozess andererseits. Darauf aufbauend kann die aktuell verfügbare technische Unterstützung der MDSD-Konzepte auf Basis von MDA-Standard-konformen bzw. darauf aufbauenden open source-Werkzeugen und den daraus durch eine Kombination dieser Werkzeuge grundsätzlich denkbaren Alternativen in Form von MDSD-Werkzeugketten herausgearbeitet werden. Dies ermöglicht eine zusammenfassende Darstellung des state of the art in Bezug auf den aktuell erreichten Grad der technischen Umsetzbarkeit der MDSD-Konzepte. Eine Darstellung der dabei noch offenen Punkte und den sich grundsätzlich stellenden Herausforderungen bildet zusammen mit einer kritischen Betrachtung der Kosten und Nutzen von MDSD im Software-Entwicklungsprozess den Schlusspunkt des ersten Teils.
Im Anwendungs-Teil werden die zuvor entwickelten Grundlagen auf die bereits dargestellte Problemstellung angewendet. Dazu wird zunächst die bei Cellent vorhandene MDSD-Ausprägung beschrieben, indem die Ergebnisse der Analyse der Werkzeugkette und der MDSD-Entwicklungsprozesse dokumentiert werden. Darauf aufbauend wird eine vergleichende Bewertung von Ist-Zustand der Umsetzung der MDSD-Konzepte bei Cellent und den entsprechend m ̈oglichen Alternativen für die technische Umsetzung der MDSD-Konzepte, die im Grundlagenteil dargestellt wurden, vorgenommen. Die dabei erkannten Verbesserungspotenziale sowie die beizubehaltenden best practices werden anschließend als Anforderungen an eine idealisierte MDSD-Werkzeugkette zusammengeführt. Um herauszufinden, ob bzw. inwieweit sich die auf diese Weise an eine idealisierte MDSD-Werkzeugkette gestellten Anforderungen durch die Verwendung zwischenzeitlich neu am Markt verfügbarer
Werkzeuge realisieren lassen, wird anschließend eine Evaluation von entsprechenden grundsätzlich geeigneten MDSD-Werkzeugketten auf Basis der Methode der Merkmalanalyse nach (Kitchenham 1996a) durchgeführt. In Zuge dessen wird die im Sinne der Anforderungen für Cellent am besten geeignete Alternative ermittelt. Den Abschluss des zweiten Teils
bildet die Ausarbeitung eines Migrationskonzepts für die letztlich von Cellent präferierten Werkzeugkette mit besonderer Berücksichtigung des Ziels, den Migrationsprozess in einer Art und Weise zu gestalten, dass eine weitgehend unterbrechungsfreie Weiterführung der modellgetriebenen Software-Entwicklung bei Cellent möglich wird.
DOWNLOADS
Diplomarbeit (PDF-Version)
Profil Michael Schifferdecker (PDF-Version)
