Maschinenbau : "Man kann mit MDD die unglaublichsten Dinge bauen"

Herr Wüstner, warum brauchen Unternehmen MDD?

Reinhold Wüstner MDD bietet vor allem interdisziplinären Teams eine sehr gute Basis für Analyse, Design und Implementierung von Applikationen. Auch reine Softwareentwickler tun sich wesentlich leichter, die grafischen Modelle zu diskutieren als irgendwelche Sourcecodes. Zudem hat MDD einige große Vorteile: Die Modelle sind in der Regel leicht verständlich und vereinfachen so die Einarbeitung und sorgen auch für Übersichtlichkeit. Daraus entstehen deutlich kürzere Entwicklungs- und Wartungszeiten und die Fehleranfälligkeit ist geringer.

Welche Vorteile gibt es noch?

Wüstner MDD zeichnet sich nicht nur durch die Zeitersparnis aus, sondern bringt auch deutlich mehr Stabilität der damit entwickelten Software mit sich, da in Neuprojekten meist sehr viele Teile nur noch aus bereits bestehenden, bereits getesteten Komponenten zusammengefügt werden müssen. Ein weiterer großer Vorteil von MDD ist die Plattformunabhängigkeit, das bedeutet mit wenig Aufwand kann die Zielplattform für eine Applikation ausgetauscht werden. Die Kosten für die Tools sind nicht unerheblich, rechnen sich aber aufgrund der höheren Effizienz in der Entwicklung und Wartung sowie in der gesteigerten Qualität. Nicht zu vernachlässigen ist, dass die Modelle an sich auch schon ein großer Teil der Dokumentation sind.

Wie entstand bei Soplar MDD?

Wüstner Bei Soplar wurden bis etwa 2003 ausschließlich SPS-Programmiersprachen (IEC 61131) verwendet. Doch auch in diesen Sprachen wurde schon sehr viel Wert auf Wiederverwendbarkeit und Modularität gelegt. Es fehlte diesen Applikationen aber oft ein wenig die Übersichtlichkeit. Die logische Konsequenz war der Schritt zu MDD, welcher vom ganzen Team getragen wurde.

Was muss der Industrieanwender können, um MDD zu tun?

Wüstner Ich denke die wichtigste Eigenschaft ist das Abstrahieren und der Blick auf das Ganze. Für mich ist MDD ähnlich wie Lego spielen. Wenn man ein breites Repertoire an Bauklötzen sein Eigen nennt und auch noch die Übersicht darüber hat, kann man die unglaublichsten Dinge bauen. Natürlich sollte man bei MDD in der Entwicklung trotz aller Vereinfachung noch sein Werkzeug - die Programmiersprache - beherrschen.

Wie arbeitet der Anwender mit MDD?

Wüstner Ich würde zu einer Top-Down-Vorgangsweise raten. Um es wieder mit Lego zu vergleichen ein Beispiel: Ein Haus hat ein Dach, ein Stockwerk, einen Keller und ein Fundament. Jeder dieser Bestandteile eines Hauses kann wieder in seine Einzelteile zerlegt werden. Dieses Vorgehen wird so oft wiederholt, bis man schlussendlich einen sinnvollen Basisbaustein erhält, welcher für alle möglichen Bauten wiederverwendet werden kann. Der Blick sollte immer auf die Wiederverwendbarkeit und auch auf die Erweiterbarkeit gerichtet sein!

Was muss der User wissen?

Wüstner Im Bereich Software ist sicherlich die Beherrschung einer objektorientierten Sprache ein wichtiger Grundstein. Dies allein genügt jedoch nicht; das Verständnis, warum und wozu es OO-Sprachen gibt, ist mindestens genauso wichtig.

Wer kann MDD lernen, wer sollte es lernen?

Wüstner Ich denke, dass im Grunde jeder Entwickler schon unbewusst sehr viel MDD in sich hat und es sich nur zum Werkzeug machen muss.

Wie schwierig ist es, MDD zu erlernen?

Wüstner Es ist wahrscheinlich deutlich einfacher, als man es sich vorstellt.

Welche Tools am Markt helfen?

Wüstner MDD-Tools gibt es einige am Markt. Es gibt auch einige Open-Source-Tools zu finden. Wer wirklich aus dem Modell heraus auch gleich den Code generieren und auch den Build-Prozess automatisieren möchte, dem rate ich persönlich zu einem der namhaften Produkte am Markt.

Wo liegen die Probleme bei der Methode?

Wüstner In meinen Augen gibt es keine MDD-spezifischen Probleme. Es treten aufgrund der Abhängigkeit vom verwendeten Tool ähnliche Probleme auf wie zum Beispiel bei einem CAD-Programm, also etwa Betriebssystemabhängigkeiten, Bugs und deren Fixes, 3rd Party Software, Integration und so weiter. Mit einem externen Partner oder Berater kann man sich einiges vom Hals halten, bzw. delegieren, was dann nicht die eigenen Ressourcen bindet.

Zum Thema: Das ist MDD

MDD (Model Driven Development) ist eine Entwicklungsmethode, welche grafische Modelle und vorgefertigte Applikationskomponenten verwendet, um daraus visuelle Modelle von komplexen Applikationen zu erstellen. Als Basis dafür setzt MDD auf Abstraktion, Modellierung und Automatisierung. Als Beschreibungssprache kann beispielsweise UML (Unified Modelling Language) eingesetzt werden. Durch dieses Vorgehen eignet sich MDD auch sehr gut für interdisziplinäre Entwicklungsteams. MDD ist aus MDA (Model Driven Architecture), welche von der Object Management Group definiert wurde, heraus entstanden.