Model-Driven-Development auf ganzer Linie

by | 19.07.2021 | Allgemein

Produktlinienentwicklung

Unsere beiden Produkte objectiF RM und objectiF RPM entstammen einer gemeinsamen Produktlinie und werden modellgetrieben entwickelt. Die Setups für beide Tools werden am Ende automatisch per Klick erzeugt. Doch wie sieht der Entwicklungsprozess für die neueste Produktgeneration bei microTOOL eigentlich aus? Dafür geben wir Ihnen heute einen Einblick ins Backend unserer Entwicklung.

Neben objectiF RM und objectiF RPM, die Sie bei uns kaufen können, beinhaltet die Produktlinie das unbekannte, weil nur intern genutzte Produkt mTOOL. Vielleicht kommt Ihnen die Oberfläche bekannt vor. Sie sieht so aus:

mTOOL für MDD

Abb. 1: mTOOL für Model Driven Development

Unsere Produktlinie besteht aus weitestgehend voneinander unabhängigen Komponenten, die sich leicht zu neuen Produkten zusammensetzen lassen. Die einzelnen Komponenten werden modellgetrieben entwickelt und basieren auf einem, von microTOOL entwickelten Framework, das unter anderem die Basislogik für die Sichten und Befehle bereitstellt und sich um die Verbindung der Clients mit dem Server und die Datenübertragung kümmert. Das Framework umfasst verschiedene Bestandteile für den Windows-Client, den Web-Client und den Server. Die generierten Komponenten werden somit Bestandteile einer getesteten Softwarearchitektur.

MDD

Warum MDD?

Die modellgetriebene Entwicklung ermöglicht es, neue Features schnell, effizient und mit hoher Qualität zu implementieren.

Stellen Sie sich vor, Sie beauftragen ein neues Feature. Nach der Analyse und dem groben Entwurf wird zunächst das fachliche, plattformunabhängige Modell erstellt. Hierfür kommen Klassendiagramme der UML zum Einsatz, wie sie auch in den beiden Tools objectiF RM und objectiF RPM zur Verfügung stehen. Durch eine erweiternde Modellierungskomponente können Views (Sichten) über entsprechende Dialoge erstellt werden. Das sieht z.B. so aus:

View Model Entity

Durch die fachlichen Modelle kann die bestehende Implementierung leicht nachvollzogen werden. Zeitraubende Analysen des Quellcodes werden deutlich reduziert. Auch die Abstimmung im Team für die Architektur bei der Umsetzung neuer Features wird durch die UML-Diagramme enorm erleichtert. Die Modelle sind bei uns auch für andere Abteilungen verständlich. Wir nutzen sie beispielsweise frühzeitig in der Kommunikation mit unseren Beratern zur Umsetzung von Kundenwünschen. Über verschiedene Befehle navigieren wir leicht durch das Modell oder nehmen wir referenzierte Klassen in ein Diagramm auf, um Zusammenhänge leichter verständlich zu machen.

Die Modelltransformation

Von diesem fachlichen Modell wird dann durch Transformation das technische Modell (d.h. technische Komponenten) erstellt und Quellcode generiert. Die Transformationen können wiederholt ausgeführt werden. Wir realisieren also Features durch iteratives Modellieren.

Modelltransformation

Hierbei wird beispielweise Code zum serverseitigen Laden der Daten für die Sichten aus der Datenbank sowie zum Persistieren der geänderten Daten generiert. Die Klassen für die Datenübertragung zwischen Client und Server werden vollständig erzeugt und benötigen keine weiteren Anpassungen.

Transformationen als Forschungsergebnis

Die Transformationen für Views, Commands und Entities wurden im Zuge eines Forschungsprojektes 2008 mit dem Titel “Entwicklung einer Software-Produktlinie für modellgetriebene Softwarefabriken”, kurz SPSF, von microTOOL entwickelt. Dieses zweijährige Forschungs- und Entwicklungsprojekt war eine Fördermaßnahme des Bundesministeriums für Bildung und Forschung (BMBF) mit dem Deutschen Zentrum für Luft- und Raumfahrt e.V. als Projektträger. Ziel des heute noch aktiven Forschungsprogramms KMU-innovativ: Informations- und Kommunikationstechnologie (IKT) ist es, das Innovationspotential kleiner und mittlerer Unternehmen (KMU) im Bereich Spitzenforschung zu stärken sowie die Forschungsförderung im Rahmen des IKT-Fachprogramms insbesondere für solche KMU attraktiver zu gestalten. microTOOLs mTOOL ist das Ergebnis dieses Forschungsprojektes und dient seither als Framework unserer Entwicklung.

Wie setzen wir mTOOL ein?

Mit mTOOL generieren unsere Entwickler die technischen Komponenten in ein lokales Repository, implementieren die Business-Logik und gestalten die Oberflächen. Ein Großteil des Quellcodes wird dabei durch die Transformation erzeugt. So können sich die Entwickler auf die Implementierung der eigentlichen Logik konzentrieren. Neben der Zeitersparnis sorgt diese Entwicklungsstrategie dafür, dass die einzelnen Komponenten gleich strukturiert sind. Das vereinfacht wiederum die Orientierung der Entwickler in den Komponenten, an denen sie bisher nicht mitgewirkt haben. Einzelne Mitarbeiter können so sehr effektiv und flexibel an neuen Features mithelfen.

Nach Fertigstellung der Implementierung wird die geänderte Code-Basis in mTOOL zurückgeführt.

Für die Code-Verwaltung beinhaltet mTOOL neben der Modellierungssprache, die auch in objectiF RM und objectiF RPM zum Einsatz kommt, eine .NET Sprachkomponente (z.B. für Klassen und Methoden). Über sogenannte Produkt-Templates werden die Komponenten zu Produkten zusammengeführt. Zusätzlich werden die Vorlagen für Datenbanken, Organisationen und Projekte in den Produkt-Templates hinterlegt.

Softwareprodukte

Durch einen einfachen Befehl werden direkt oder zeitgesteuert Setups erstellt und auf einem internen Server bereitgestellt. Setups werden täglich, über Nacht erstellt und stehen dem Team am Folgetag für Tests und zur Abnahme der Stories zur Verfügung. Die Konfiguration und das Erstellen der Produkte wird in mTOOL durch eine Produktionskomponente zur Verfügung gestellt.

MDD gibt den Drive

Auf diesen Entwicklungsprozess setzt microTOOL inzwischen seit über 10 Jahren. Mit großem Erfolg. Model‑Driven‑Development ist noch immer hoch aktuell und hilft uns dabei, moderne Lösungen effizient, mit hoher Qualität und einer standardisierten Architektur über alle Komponenten hinweg zu entwickeln.