Das Vorbild ist der Maschinenbau

16.02.2006
Von Martina Maier

Verfolgt man die einschlägigen Konferenzen und Fachzeitschriften, so dominieren aspektorientierte Programmierung, Service-orientierte Architekturen, verschiedene Frameworks, Model Driven Architecture und Model Driven (Software) Development die Diskussion. Jeder Ansatz hat seine einzigartigen Stärken. Doch für sich allein genommen ist keiner umfassend genug, die Probleme der klassischen Softwareentwicklung zu lösen.

Der fundamentalste Fortschritt wird in einer modellgetriebenen Softwareentwicklung liegen. Sie beinhaltet wesentliche Prinzipien ingenieursmäßigen Vorgehens. In ihr lassen sich zudem aspektorientierte Ansätze, Architekturkonzepte und Frameworks effizienzsteigernd einbinden. Die Zukunft der Softwareentwicklung lebt letztlich von der gelungenen Integration und der richtigen Mischung der Ansätze.

Die Zukunft gehört der modellgetriebenen Entwicklung

In der modellgetriebenen Entwicklung entsprechen den oben genannten CAD-Plänen grafische Modelle. Diese können auf verschiedener Detaillierungsebene und unter designtechnischen, funktionalen oder fertigungstechnischen Blickrichtungen betrachtet werden. Anhand dieser Pläne können Fachexperten überprüfen, ob die formulierten Anforderungen adäquat umgesetzt sind. Designer können die Modelle unter Zugriffs- und Mengengerüstaspekten betrachten und die Umsetzung in Designmodelle steuern.

Statt der CNC-Maschinen lassen sich Generatoren verwenden. Sie werden mit den grafischen Modellen gefüttert und schaffen automatisch den ausführbaren Code. Der Vorteil: Der Generator hat weder Vorlieben noch Eigenheiten, die sich im Code niederschlagen, macht keine Flüchtigkeitsfehler und ist rasend schnell.

Trennung von Fachlichkeit und Technologie

Diese Vorgehensweise trennt Fachlichkeit und Technologie. Sie löst damit eines der strukturellen Probleme klassischer Softwareentwicklung: die Verschmelzung beider Aspekte im Programmcode. Ändern sich die fachlichen Anforderungen, wird lediglich das Fachmodell angepasst. Der Generator bleibt unangetastet und erzeugt den neuen Code.