Definition

Modellgetriebene Entwicklung

Was ist modellgetriebene Entwicklung?

Modellgetriebene Entwicklung (Model-Driven Development, MDD) ist eine Form der Entwicklung, mit der Software schnell, effektiv und zu minimalen Kosten geschrieben und implementiert werden kann. Diese Methodik ist auch als modellbasierte Softwareentwicklung und modellbasierte Architektur bekannt.

Der Ansatz konzentriert sich auf die Erstellung eines Softwaremodells. Das Modell ist ein Diagramm, das angibt, wie das Softwaresystem funktionieren soll, bevor der Code generiert wird. Sobald die Software erstellt wurde, kann sie mithilfe von modellbasierten Tests getestet und dann bereitgestellt werden.

Vorteile der modellgetriebenen Entwicklung

Der modellgetriebene Entwicklungsansatz bietet Produktivitätsvorteile gegenüber anderen Entwicklungsmethoden, da das Modell den Entwicklungsprozess vereinfacht. Es stellt das beabsichtigte Verhalten oder die beabsichtigten Aktionen eines Softwareprodukts dar, bevor die Codierung beginnt.

Abbildung 1: Die modellgetriebene Entwicklung ermöglicht es Teams, Software mithilfe von Low-Code-/No-Code-Tools zu planen.
Abbildung 1: Die modellgetriebene Entwicklung ermöglicht es Teams, Software mithilfe von Low-Code-/No-Code-Tools zu planen.

Die Personen und Teams, die an der Software arbeiten, erstellen gemeinsam Modelle. Durch die Kommunikation zwischen Entwicklern und einem Produktmanager werden beispielsweise klare Definitionen dafür bereitgestellt, was die Software ist und wie sie funktioniert. Tests, Neuerstellungen und Neuimplementierungen können bei der Entwicklung mehrerer Anwendungen mit dem modellbasierten Ansatz schneller erfolgen als bei der herkömmlichen Entwicklung.

Kernkonzepte der modellgetriebenen Entwicklung

Die modellgetriebene Entwicklung geht über die Erstellung eines Modells der zu entwickelnden Software hinaus, wodurch sie sich von der modellbasierten Entwicklung unterscheidet. Abstraktion und Automatisierung sind Schlüsselkonzepte der modellgetriebenen Entwicklung. Abstraktion bedeutet, komplexe Softwaresysteme zu organisieren. Bei der modellgetriebenen Entwicklung wird komplexe Software abstrahiert, wodurch Entwickler einfach zu definierenden Code extrahieren können.

Sobald die Entwickler die Abstraktion umgewandelt haben, wird eine funktionierende Version des Softwaremodells automatisiert. In dieser Automatisierungsphase werden eine domänenspezifische Sprache (DSL) wie HTML und Skriptsprachen wie ColdFusion verwendet, die andere Programmiersprachen und Dienste – .NET, C++, File Transfer Protocol (FTP) – für die Verwendung in Websites integrieren können. Eine domänenspezifische Sprache ist eine Sprache, die auf eine Anwendungsdomäne spezialisiert ist. Entwickler schreiben das Modell in einer domänenspezifischen Sprache und wandeln die Programmiersprache vom Modell in funktionierende Software um.

Oft werden agile Softwareentwicklungsmethoden mit modellgetriebener Entwicklung kombiniert. Der agile Entwicklungsansatz ermöglicht kurze Sprints, bei denen sich der Projektumfang ändern kann. Die agile modellgetriebene Entwicklung legt kurze Entwicklungsiterationen fest, bei denen Änderungen entworfen und im Modell dargestellt werden können.

Modellgetriebene Entwicklungswerkzeuge

Für die Erstellung von Modellen für einen modellgetriebenen Ansatz beim Softwaredesign können verschiedene Softwarewerkzeuge verwendet werden. Einige Beispiele sind:

  • Rational Software Architect Designer. Rational Software Architect Designer von IBM ist ein Modellierungs- und Entwicklungswerkzeug, das die Unified Modeling Language verwendet, um Modelle für C++- und Java- -, Enterprise-Edition-, Anwendungs- und Webservice-Plattformen zu entwerfen.
  • Simulink. Simulink, entwickelt von MathWorks, ist eine Programmierumgebung für die Modellierung. Mit Simulink kann der Benutzer Software modellieren und simulieren, Code testen und automatisch Code generieren. Der Code wird automatisch auf der Grundlage des Modells in Simulink und mit Simulink Coder, einem zusätzlichen MathWorks-Programm, erstellt.
  • Sirius. Sirius ist ein Open-Source-Grafikmodellierungswerkzeug der Eclipse Foundation. Sirius erstellt Modelle mithilfe von Diagrammen, Datenbäumen und Datentabellen. Der Benutzer benötigt keine umfassenden technischen Kenntnisse, um diese Modelle zu erstellen, und es ist keine Codegenerierung erforderlich. Sirius wird hauptsächlich zum Entwurf komplexer Systeme verwendet.
Diese Definition wurde zuletzt im Oktober 2024 aktualisiert

Erfahren Sie mehr über Softwareentwicklung