cnt

Modellieren statt Codieren

Mit der quelloffenen MDA-Entwicklungsumgebung openMDX lässt sich nicht nur die Produktivität massiv steigern. Auch die Geschäftsmodelle sind immer auf dem aktuellen Stand.

Artikel erschienen in Swiss IT Magazine 2004/20

     

Die Softwareentwicklung befindet sich seit einigen Jahren in einem tiefgreifenden Wandel. Die Zeiten der manuellen, vielfach als Kunst betriebenen Herstellung sind endgültig vorbei. Software kann heute formal spezifiziert und mit industriellen Methoden weitgehend automatisiert gefertigt werden. Damit können in Entwicklungsprojekten Kosten- und Zeiteinsparungen von über 50 Prozent erzielt werden. Ist dies nur Utopie oder bereits Realität?
Das Flaggschiff der Object Management Group (OMG) heisst Model Driven Architecture (MDA). Mit MDA werden alle Ingredienzien zur industrialisierten Software-Produktion bereitgestellt. Zu den wichtigsten gehören hierbei UML (Unified Modeling Language), XMI (XML Metadata Interchange) und MOF (Meta Object Facility).





Software wird gemäss dem MDA-Ansatz ab Plan weitgehend automatisiert erzeugt. MDA hat damit auf die IT-Industrie denselben bahnbrechenden Einfluss wie die Dampfmaschine auf die Textilindustrie oder das Fliessband auf die Autoindustrie. Anstelle von Vorlagen, Fliessbändern und Robotern spricht man bei MDA von Modellen, Generatoren und Frameworks. Das Prinzip ist aber dasselbe: Automatisierbare Abläufe werden nicht mehr durch Menschen, sondern durch Maschinen ausgeführt. Das reduziert Entwicklungszeit und
-kosten, verbessert die Quelltextqualität und fördert die Wiederverwertung von Code. Mit MDA kann sich eine Entwicklungsabteilung somit weitgehend den Fachanforderungen widmen und die technische Umsetzung vorerst unberücksichtigt lassen. Die oben abgebildete Grafik zeigt den Entwicklungsprozess mit einem MDA-Framework: In der Modellierungsphase werden nur Fach- und Modellierungs-Know-how verlangt. Eine lauffähige Lösung kann dann aus diesen Modellen weitgehend automatisiert erzeugt werden.






Die Idee von MDA ist nicht neu. Ansätze wie CASE und 4GL haben vor Jahren ähnliches versprochen. Man kann diese Ansätze in gewissem Sinne auch als Vorläufer von MDA bezeichnen. Es bestehen aber einige entscheidende Unterschiede. MDA standardisiert die Modellierung und die automatisierte Umsetzung von Modellen in lauffähige Softwarebausteine und Laufzeitplattformen. Bei 4GL fehlt demgegenüber der Modellierungsaspekt praktisch gänzlich, während bei CASE die Abbildung von Modellen auf Programmelemente nur rudimentär erfolgt. Die Modelle bleiben damit oft nur «Zeichnungen», welche nach Abschluss der Entwicklung oft nicht mehr à jour gehalten werden und damit bald nutzlos sind. Bei MDA bildet das Modell aber einen essentiellen Bestandteil der Software: ohne Modell keine lauffähige Software. Aktualität und Korrektheit ist damit garantiert.




MDA-Entwicklungsprozess mit openMDX

Die Entstehung

Die Geschichte von openMDX beginnt im Jahre 1998. Zu dieser Zeit standen Themen wie verteilte, service- und komponentenorientierte Systeme im Mittelpunkt. Die Applikationsentwicklung mit den damals zur Verfügung stehenden Methoden und Techniken war allerdings komplex und aufwendig und die Businesslogik verschwand hinter den technischen Herausforderungen im Hintergrund. Damals fachsimpelten einige von uns mit Shridar Iyengar – einem der massgeblichen Begründer von MDA – über eine frühe Version des MOF- Standards (heute ein Grundpfeiler von MDA). Die Idee einer Plattform, welche eine abstrakte, modellbasierte Software-Produktion erlaubt, wurde geboren und in die Tat umgesetzt. Ein erster Prototyp wurde erfolgreich realisiert und der Fachwelt anlässlich eines internationalen OMG-Meetings präsentiert. Die positive Resonanz ermutigte uns, das Projekt auch mit minimalem Budget weiter voranzutreiben. Seit 1998 wurde openMDX – bis 2003 noch unter anderem Namen – im Projekteinsatz laufend weiterentwickelt, optimiert und verbessert.





Heute ist openMDX die erfolgreichste Open-Source-MDA-Plattform. Auf sourceforge.net (einer der grössten Open-Source-Software-Börsen) rangiert openMDX unter den Top 100 aller Open-Source-Projekte. Die Liste der MDA-Plattformen wird von openMDX angeführt. Der Erfolg basiert wie bei allen Open-Source-Projekten weitgehend auf der Akzeptanz bei den Entwicklern. Das Vertrauen wird dabei durch den konsequenten Einsatz von Standards und der Publikation des Quellcodes gewonnen. Ein weiterer Grund für die schnelle Ausbreitung sind die schier unerschöpflichen Entwicklungsressourcen der Open-Source-Community: Der Zuspruch und das Interesse von IT-Dienstleistern aller Ausprägungen reichen von China über Russland bis in die USA.





Die Sieger des Swiss IT Award

Schnell und günstig

Im Unterschied zu den meisten anderen MDA-Produkten stellt openMDX eine modellgetriebene, generische MDA-Plattform zur Verfügung. Die Codegenerierung, wie in anderen MDA-Produkten üblich, lässt sich damit massiv reduzieren und der sogenannte Roundtrip (Zeit die aufgewendet werden muss von einer Modelländerung bis zum lauffähigen, testbaren Programm) kann massiv beschleunigt werden. openMDX eignet sich damit nicht nur zur Neuentwicklung, sondern auch hervorragend für das Prototyping. Fachliche Anforderungen können zusammen mit dem Fachspezialisten modelliert und wenige Minuten später ausprobiert werden.


Proof of concept

Damit all diese Aussagen nicht nur graue Theorie bleiben, hat sich Omex entschlossen, zusammen mit der Zürcher Partnerfirma Cripx auf Basis von openMDX eine CRM-Lösung unter dem Projektnamen openCRX zu realisieren. Funktionsumfang und Einsatzbereiche sollten dabei mit den grossen, marktführenden Lösungen mithalten können. Eine erste Version wurde am 1. August dieses Jahres in der Open-Source-Community publiziert und das Interesse und die Nachfragen übertreffen selbst die optimistischsten Erwartungen.





Mit openCRX ist es uns gelungen, zu zeigen, dass sich mit openMDX komplexe Lösungen mit minimalen Ressourcen in kurzer Zeit realisieren lassen. Die nebenstehende Tabelle zeigt, wie gross die Einsparungen gegenüber einer herkömmlichen Entwicklung für die einzelnen Projektphasen sind. Auf das Gesamtprojekt bezogen lassen sich bis zu 75 Prozent der Kosten und der Entwicklungszeit einsparen.
Die drastische Reduktion der Codiertätigkeit wird in den nächsten Jahren auf die IT-Branche Auswirkungen haben. Die Programmiertätigkeit, welche heute durch Outsourcing-Dienste und Offshoring schrittweise in Länder mit tiefem Lohnniveau wie Indien oder China ausgelagert wird, wird morgen durch (MDA-)Maschinen einem Bruchteil der Kosten und Zeit erledigt. Die Konsequenzen sind vielfältig. Sicher werden die Vorteile von Outsourcing und Offshoring in Niedriglohnländer schwinden, andererseits werden für die hiesigen Software-Ingenieure neue Zeiten anbrechen.





Der Produktivitätsgewinn durch MDA

Hauptnutzen von openMDX:


• strikte Trennung von Businessmodellierung, Programmierung und Deployment


• businessmodelle sind integrierter Bestandteil der Software. Modelle sind daher nicht nur Bilder, sondern werden Teil der Software. Businessmodelle sind immer auf dem aktuellsten Stand.


• schnelles Prototyping möglich


• tiefe Entwicklungs- und Wartungskosten


• schnelle Entwicklungszeiten


Der Autor

Werner Froidevaux, OMEX AG
Infos: www.openmdx.org,
www.opencrx.org




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Wieviele Zwerge traf Schneewittchen im Wald?
GOLD SPONSOREN
SPONSOREN & PARTNER