<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modellgetriebene_Softwareentwicklung</id>
	<title>Modellgetriebene Softwareentwicklung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modellgetriebene_Softwareentwicklung"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modellgetriebene_Softwareentwicklung&amp;action=history"/>
	<updated>2026-05-24T08:25:57Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Modellgetriebene_Softwareentwicklung&amp;diff=626874&amp;oldid=prev</id>
		<title>imported&gt;Rmcharb: wikilink korr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modellgetriebene_Softwareentwicklung&amp;diff=626874&amp;oldid=prev"/>
		<updated>2024-11-29T11:05:56Z</updated>

		<summary type="html">&lt;p&gt;wikilink korr&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Modellgetriebene Softwareentwicklung&amp;#039;&amp;#039;&amp;#039; ({{enS|model-driven software development}}, &amp;#039;&amp;#039;MDSD&amp;#039;&amp;#039; oder MDD) ist ein Oberbegriff für Techniken, die automatisiert aus formalen [[Modell (Wissenschaft)#Informatik|Modellen]] lauffähige [[Software]] erzeugen.&amp;lt;ref name=&amp;quot;StVoMS&amp;quot;&amp;gt;{{Literatur |Autor=Thomas Stahl, Markus Völter, Sven Efftinge |Titel=Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management |Auflage=2. aktualisierte und erweiterte |Verlag=Dpunkt-Verlag |Ort=Heidelberg |Datum=2007 |ISBN=978-3-89864-448-8}}&amp;lt;/ref&amp;gt; Dabei werden [[Modellierungssprache]]n, insbesondere [[domänenspezifische Sprache]]n (DSLs) zusammen mit [[Codegenerator]]en und [[Interpreter]]n eingesetzt.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
Modellgetriebene Softwareentwicklung hat zum Ziel, den [[Quelltext]] für ein Softwaresystem ganz oder teilweise aus einem Modell zu generieren, wobei das Modell von deutlich einfacherer Komplexität ist, als der zu generierende Quelltext. Insbesondere kommt dabei das [[Don’t repeat yourself|DRY]]-Prinzip&amp;lt;ref name=&amp;quot;StVoMS&amp;quot; /&amp;gt; zum Tragen. Neben dem Quelltext lassen sich aber auch weitere Artefakte wie nicht ausführbare Dateien sowie Tests und Dokumentationen automatisiert generieren.&amp;lt;ref name=&amp;quot;PiTrMS&amp;quot;&amp;gt;{{Literatur |Autor=Juan Carlos Flores Beltran, Boris Holzer, Thorsten Kamann, Michael Kloss, Steffen A. Mork, Benedikt Niehues, Karsten Thoms |Hrsg=Georg Pietrek, Jens Trompeter |Titel=Modellgetriebene Softwareentwicklung. MDA und MDSD in der Praxis |Verlag=Entwickler-Press |Ort=Frankfurt am Main |Datum=2007 |ISBN=978-3-939084-11-2}}&amp;lt;/ref&amp;gt; Weil allein mit den Mitteln der jeweiligen Programmiersprache nicht immer passende Abstraktionen zur Beschreibung verschiedener Gegenstandsbereiche (Domänen) eines Softwaresystems gefunden werden können, werden zielsprachunabhängige Abstraktionen in Form von Modellierungssprachen erschaffen.&lt;br /&gt;
&lt;br /&gt;
Modellierungssprachen können auf den jeweiligen Gegenstandsbereich speziell zugeschnitten sein. Man spricht dann von einer [[domänenspezifische Sprache|domänenspezifischen Sprache]] (DSL). Üblich ist auch die Verwendung von universellen Modellierungssprachen wie der [[Unified Modeling Language]] (UML).&amp;lt;ref&amp;gt;{{Literatur |Autor=Amelie Flatt, Arne Langner, Olof Leps |Titel=Model-Driven Development of Akoma Ntoso Application Profiles |Hrsg=Springer Nature |Auflage=1. |Verlag=Springer Nature |Ort=Heidelberg |Datum=2022 |ISBN=978-3-031-14131-7 |Online=https://link.springer.com/book/9783031141331 |Abruf=2022-08-19}}&amp;lt;/ref&amp;gt; Die Modellierungssprache wird entweder generativ oder interpretativ auf die Zielplattform abgebildet.&lt;br /&gt;
&lt;br /&gt;
Der Einsatz modellgetriebener Softwareentwicklung hat Auswirkungen auf allen Ebenen eines Projektes – sowohl technisch, fachlich als auch im Managementbereich. Deshalb beschreibt die Fachliteratur zu modellgetriebener Softwareentwicklung nicht nur, wie man DSLs und [[Codegenerator]]en entwickelt, sondern auch, wie man diese sinnvoll in Entwicklungsprozesse integriert.&lt;br /&gt;
&lt;br /&gt;
== Vorteile ==&lt;br /&gt;
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 verständliche Domänenkonzepte. Das Konzept der [[Ubiquitous Language]] aus dem [[Domain-driven Design]] wird hier auf die Konzeptebene der Softwarearchitektur angewandt.&lt;br /&gt;
&lt;br /&gt;
Weiterhin wird die Evolution der Software durch die Trennung der technischen Abbildung und der fachlichen Modelle wesentlich vereinfacht. Testfälle können rascher oder gründlicher erstellt werden, da man nicht mehr jede einzelne Zeile Code testet, sondern auf funktionaler Ebene das Systemverhalten statisch und dynamisch prüft.&lt;br /&gt;
&lt;br /&gt;
Domänenspezifische Validierung in den Entwicklungswerkzeugen sorgt für sehr kurze [[Turnaround]]s.&lt;br /&gt;
&lt;br /&gt;
== Nachteile ==&lt;br /&gt;
Der Initialaufwand zur Entwicklung einer DSL bzw. zur maßgeschneiderten Abbildung von UML auf die Zielsprache kann, insbesondere bei nicht trivialen Projekten, erheblich sein.&lt;br /&gt;
&lt;br /&gt;
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. Weiterhin auszunehmen sind Fälle, in denen ausgereifte domänenspezifische Sprachen (DSL) zum Einsatz kommen, die dynamische Aspekte des Systemverhaltens so weit abdecken, dass eine vollständige oder fast vollständige Generierung des Quelltexts ermöglicht wird (z.&amp;amp;nbsp;B. [[Simulink]]).&lt;br /&gt;
&lt;br /&gt;
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 oft nicht oder nur unvollständig vorhanden.&lt;br /&gt;
&lt;br /&gt;
== Werkzeuge ==&lt;br /&gt;
* Rein grafische Modellierungswerkzeuge: Diese dienen lediglich zur grafischen Darstellung und unterstützen keine automatischen Transformationen. Das [[Modell]] wird hier in ein textuelles [[Austauschformat]] wie zum Beispiel ([[XML Metadata Interchange|XMI]]) exportiert und mit gesonderten Transformatoren weiterbearbeitet.&lt;br /&gt;
* Rein textuelle Modellierungswerkzeuge: Diese basieren auf einer oder mehreren textuellen [[domänenspezifische Sprache]]n und unterstützen immer auch die Transformation (z.&amp;amp;nbsp;B. in Sourcecode oder Dokumente)&lt;br /&gt;
* Reine Transformatoren: Diese dienen ausschließlich der Transformation von Modellen und beinhalten keine grafischen Modellierungsfunktionalitäten. Modelle werden in einem textuellen Austauschformat wie XMI in ein internes [[Modellformat]] importiert, transformiert und danach wieder exportiert.&lt;br /&gt;
* Integrierte MDD-Werkzeuge: Diese bieten Modellierung, [[Modelltransformation]]en 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.&amp;lt;ref&amp;gt;{{Literatur |Autor=Amelie Flatt, Arne Langner, Olof Leps |Titel=Model-Driven Development of Akoma Ntoso Application Profiles |Hrsg=Springer Nature |Auflage=1. |Verlag=Springer Nature |Ort=Heidelberg |Datum=2022 |ISBN=978-3-031-14131-7 |Online=https://link.springer.com/book/9783031141331 |Abruf=2022-08-19}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispiele für integrierte MDD-Werkzeuge ===&lt;br /&gt;
* [[Actifsource]] von Actifsource AG&lt;br /&gt;
* [[ArcStyler]] von Interactive Objects Software GmbH&lt;br /&gt;
* [[Artisan Studio]] von Artisan Software Tools&lt;br /&gt;
* [[ASCET]] von [[ETAS]]&lt;br /&gt;
* [[Dezyne]] von Verum Software Tools BV&lt;br /&gt;
* [[E2E Bridge]] von E2E Technologies Ltd.&lt;br /&gt;
* EB GUIDE Studio von [[Elektrobit|Elektrobit Automotive GmbH]]&lt;br /&gt;
* [[Eclipse (IDE)|Eclipse]]-basierte&lt;br /&gt;
** [[Actifsource]] von Actifsource AG&lt;br /&gt;
** [[Apollo for Eclipse]] von Gentleware&lt;br /&gt;
** [[eTrice]] von der [[Eclipse Foundation]]&lt;br /&gt;
** [[Eclipse Modeling Framework]] (EMF) von der [[Eclipse Foundation]]&lt;br /&gt;
** Eclipse + [[openArchitectureWare]] + [[Enterprise Architect]] ([[Unified Modeling Language|UML]]-Tool)&lt;br /&gt;
** [[ModuleStudio]] von Guite (Eclipse-basiertes MDSD-Tool für das in [[PHP]] geschriebene [[Zikula]] – [[Web Application Framework]])&lt;br /&gt;
** [[OOMEGA]] von OOMEGA GbR (unterstützt M2M/M2T-Transformationen mit [[Atlas Transformation Language|ATL]] und [[openArchitectureWare]])&lt;br /&gt;
** [[Sympedia GenFw]] (EMF Basiertes Generator [[Framework]])&lt;br /&gt;
** [[Yakindu Statechart Tools]] Open Source Tool von [[itemis AG]]&lt;br /&gt;
** [[Xtext]] Open Source Framework von [[itemis AG]]&lt;br /&gt;
* [[Enterprise Architect]] von Sparx Systems&lt;br /&gt;
* [[Feature Oriented Programming]] von [[Launix]]&lt;br /&gt;
* [[HyperSenses]] und [[ANGIE]] von DELTA Software Technology&lt;br /&gt;
* [[ICon-L]] von ProSign GmbH&lt;br /&gt;
* [[Innovator (Software)|Innovator]] von MID GmbH&lt;br /&gt;
* [[LMS Embedded Software Designer]] von [[Siemens PLM Software]]&lt;br /&gt;
* [[MagicDraw]] von No Magic Inc&amp;lt;ref&amp;gt;{{Literatur |Autor=Amelie Flatt, Arne Langner, Olof Leps |Titel=Model-Driven Development of Akoma Ntoso Application Profiles |Hrsg=Springer Nature |Auflage=1. |Verlag=Springer Nature |Ort=Heidelberg |Datum=2022 |ISBN=978-3-031-14131-7 |Online=https://link.springer.com/book/9783031141331 |Abruf=2022-08-19}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* MetaEdit+ von MetaCase&lt;br /&gt;
* [[objectiF]] von microTOOL&lt;br /&gt;
* [[OptimalJ]] von [[Compuware]]&lt;br /&gt;
* [[radCASE]] von IMACS GmbH&lt;br /&gt;
* [[Rational Rhapsody]] von [[IBM]]&lt;br /&gt;
* Rational SDL Suite ([[Specification and Description Language|SDL]])&lt;br /&gt;
* Real Time Developer Studio ([[Specification and Description Language|SDL]])&lt;br /&gt;
* [[SCADE]] Suite von Esterel Technologies (MDSD-Tool für sicherheitskritische Anwendungen)&lt;br /&gt;
* [[Select Architect]] von Select Business Solutions (MDSD-Tool mit [[Modellgetriebene Architektur|MDA]]-Unterstützung und [[Modelltransformation]])&lt;br /&gt;
* [[Simulink]] von [[The MathWorks]], siehe auch [[Stateflow]] und [[Embedded Coder]], [[TargetLink]]&lt;br /&gt;
* [[Together (Software)|Together Architect]] von [[Borland]]&lt;br /&gt;
* [[TOPCASED]] ([[Open Source|Open-Source]]-Tool)&lt;br /&gt;
* Visual Studio Ultimate (bietet UML MDD Fähigkeiten)&lt;br /&gt;
* [[Visual Paradigm]]&lt;br /&gt;
* [[X2X]] von Triple-S GmbH&lt;br /&gt;
* Yakindu&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Modellbasiertes Testen]] als Gegenstück zu MDSD&lt;br /&gt;
* [[Generative Programmierung]], ein eng verwandtes Programmierparadigma&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* Sven Efftinge, Peter Friese, Jan Köhnlein: [https://www.infoq.com/articles/model-driven-dev-best-practices/ &amp;#039;&amp;#039;Best Practices of Model-Driven Software Development&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Vorgehensmodell (Software)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Rmcharb</name></author>
	</entry>
</feed>