Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung

Modellgetriebene Softwareentwicklung (englisch Model-Driven Software Development, kurz MDSD) ist ein Oberbegriff für Techniken, die automatisiert aus formalen Modellen lauffähige Software erzeugen.[1] Dabei werden domänenspezifische Sprachen (englisch Domain-Specific Languages, kurz DSL) zusammen mit entsprechenden Codegeneratoren und Interpretern eingesetzt.

Der ebenfalls häufig benutzte Begriff Model Driven Development (MDD), der ursprünglich von der OMG markenrechtlich geschützt war, wurde 2004 von dieser wieder freigegeben.[2] Ebenfalls verbreitet sind die synonymen Begriffe Model Driven Engineering (MDE) bzw. Model Driven Software Engineering (MDSE).

Inhaltsverzeichnis

Definition

Bei MDSD nach Stahl et al.[1] geht es darum, sich bei der Entwicklung von Softwaresystemen möglichst nicht zu wiederholen (DRY-Prinzip). Weil allein mit den Mitteln der jeweiligen Programmiersprache nicht immer passende Abstraktionen zur Beschreibung verschiedener Sachverhalte (Domain) eines Softwaresystems gefunden werden können, werden zielsprachunabhängig entsprechende Abstraktionen in Form von domänenspezifischen Sprachen erschaffen. Diese werden dann entweder generativ oder interpretativ auf die Zielplattform abgebildet.

Natürlich hat der Einsatz dieser Variante eine Auswirkung auf allen Ebenen eines Projektes (sowohl technisch, fachlich als auch im Managementbereich). Deshalb beschreibt die MDSD nicht nur, wie man DSLs, Generatoren usw. entwickelt, sondern auch, wie man diese in (hauptsächlich agilen) Entwicklungsprozessen sinnvoll integriert.

Vorteile von MDSD

Durch den erhöhten Abstraktionsgrad der DSLs sind Problembeschreibungen wesentlich klarer, einfacher und weniger redundant festgehalten. Das erhöht nicht nur die Entwicklungsgeschwindigkeit, sondern sorgt innerhalb des Projektes für klar verstandende Domänenkonzepte. Das Konzept der Ubiquitous Language aus dem Domain-Driven Design wird hier auf die Konzeptebene der Softwarearchitektur angewandt.

Weiterhin wird die Evolution der Software durch die Trennung der technischen Abbildung und der fachlichen Modelle wesentlich vereinfacht. Auch das Testen fällt leichter, da man nicht mehr jede einzelne Zeile Code testet, sondern nur exemplarisch.

Domänenspezifische Validierung in den Entwicklungswerkzeugen sorgt für sehr kurze Turnarounds.

Nachteile von MDSD

Der Initialaufwand zur Entwicklung einer DSL ist, insbesondere bei nicht trivialen Projekten, erheblich.

Um die Validierung einer Applikation auf Modellebene durchführen zu können, sind entsprechend hohe Anforderungen an das zugrunde liegende Metamodell sowie den zugehörigen Codegenerator notwendig. Insbesondere ist nicht gegen die aktuellen Anforderungen aus dem jeweiligen Projekt zu validieren, sondern es müssen entsprechende Anforderungen für die DSL erstellt werden. Die Richtigkeit und Vollständigkeit der Anforderungen an die DSL ist nochmals schwerer festzustellen.

Da sich die Metamodelle, und damit die Modelle, in der Regel auf Teilaspekte der abzubildenden Wirklichkeit beschränken, wird oft nur ein Rahmen (Datenstrukturen, Schnittstellen, Funktionsrümpfe, etc.) erzeugt, welcher noch von Hand um die tatsächliche Funktion ergänzt werden muss. Dies führt dazu, dass der tatsächliche Projektaufwand deutlich unterschätzt werden kann. Auszunehmen sind hiervon in der Regel Client-Anteile von Client-Server-Anwendungen und reine Datenverwaltungsanwendungen.

Bei nicht trivialen Fehlern, solche die nicht auf Spezifikationsfehler zurückzuführen sind, ist in der Regel eine Fehlersuche zur Laufzeit notwendig. Dies ist insbesondere der Fall, wenn der generierte Code durch handgeschriebene Anteile ergänzt wurde. Eine Unterstützung zur Fehlersuche auf Modellebene ist in der Regel nicht oder nur unvollständig vorhanden.

Werkzeuge für MDSD

  • Reine Modellierungswerkzeuge: Diese dienen lediglich zur grafischen Darstellung und unterstützen keine automatischen Transformationen. Das Modell wird hier in ein Austauschformat (XMI) exportiert und mit gesonderten Transformatoren weiterbearbeitet.
  • Reine Transformatoren: Diese dienen ausschließlich der Transformation von Modellen und beinhalten keine grafischen Modellierungsfunktionalitäten. Modelle werden in einem Austauschformat wie XMI in ein internes Modellformat importiert, transformiert und danach wieder exportiert.
  • Integrierte MDD-Werkzeuge: Diese bieten Modellierung, Modelltransformationen und Codegenerierung in einem Werkzeug. Export- und Importvorgänge, Kompatibilitätsprobleme beim Datenaustausch und Rüstaufwand bezüglich Integration werden vermieden. Die Navigierbarkeit und Synchronisation zwischen fachlichem und technischem Modell und Implementierungscode wird unterstützt.

Beispiele für integrierte MDD-Werkzeuge

Siehe auch

Einzelnachweise

  1. a b Thomas Stahl, Markus Völter, Sven Efftinge: Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management. 2. aktualisierte und erweiterte Auflage. Dpunkt-Verlag, Heidelberg 2007, ISBN 978-3-89864-448-8.
  2. United States Patent and Trademark Office: US Trademark Electronic Search System. Abgerufen am 28. Dezember 2009.

Literatur

  • Thomas Stahl, Markus Völter, Sven Efftinge: Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management. 2. aktualisierte und erweiterte Auflage. Dpunkt-Verlag, Heidelberg 2007, ISBN 978-3-89864-448-8.
  • Georg Pietrek, Jens Trompeter (Hrsg.) (Hrsg.): Modellgetriebene Softwareentwicklung. MDA und MDSD in der Praxis. Entwickler-Press, Frankfurt am Main 2007, ISBN 978-3-939084-11-2.
  • Christian Welzel: Modellgetriebene Softwareentwicklung im E-Government. Entwicklung einer domänenspezifischen Modellierungssprache für das Meldewesen. Vdm Verlag Dr. Müller, Saarbrücken 2008, ISBN 978-3-639-01026-8.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Modellgetriebene Architektur — (MDA; engl. Model Driven Architecture, MDA) bezeichnet einen Modellgetriebenen Softwareentwicklungsansatz, der auf einer klaren Trennung von Funktionalität und Technik beruht. Inhaltsverzeichnis 1 Ursprung und Abgrenzung zum CASE Ansatz 2 Ziele 2 …   Deutsch Wikipedia

  • Modellbasierte Softwareentwicklung — Modellgetriebene Softwareentwicklung (englisch Model Driven Software Development, MDSD) ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen.[1] Dabei werden domänenspezifische Sprachen (englisch …   Deutsch Wikipedia

  • Model Driven Software Development — Modellgetriebene Softwareentwicklung (englisch Model Driven Software Development, MDSD) ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen.[1] Dabei werden domänenspezifische Sprachen (englisch …   Deutsch Wikipedia

  • Modellgesteuerte Entwicklung — Modellgetriebene Softwareentwicklung (englisch Model Driven Software Development, MDSD) ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen.[1] Dabei werden domänenspezifische Sprachen (englisch …   Deutsch Wikipedia

  • Model Driven Architecture — Modellgetriebene Architektur (MDA; engl. Model Driven Architecture, MDA) bezeichnet einen modellgetriebenen Softwareentwicklungsansatz, der auf einer klaren Trennung von Funktionalität und Technik beruht. Inhaltsverzeichnis 1 Abgrenzung zu CASE… …   Deutsch Wikipedia

  • Itemis AG — Unternehmensform Aktiengesellschaft Gründung 2003 Unternehmenssitz …   Deutsch Wikipedia

  • itemis — AG Rechtsform Aktiengesellschaft Gründung 2003 Sitz Lünen …   Deutsch Wikipedia

  • Code-Generator — Ein Codegenerator ist ein Computerprogramm für die Softwareentwicklung. Er übersetzt Modelle, die in UML, XML, Struktogrammen oder einer anderen formalen Sprache erstellt wurden, in die Programmiersprache (C, C++, Assembler, …) der gewählten… …   Deutsch Wikipedia

  • Domain Specific Language — Eine domänenspezifische Sprache (engl. domain specific language, DSL) ist eine formale Sprache, die speziell für ein bestimmtes Problemfeld (die Domäne) entworfen und implementiert wird. Beim Entwurf einer DSL wird man bemüht sein, einen hohen… …   Deutsch Wikipedia

  • Domain Specific Languages — Eine domänenspezifische Sprache (engl. domain specific language, DSL) ist eine formale Sprache, die speziell für ein bestimmtes Problemfeld (die Domäne) entworfen und implementiert wird. Beim Entwurf einer DSL wird man bemüht sein, einen hohen… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”