Artikel ganz neu verlinken - häufigste dt. Treffer sind Modellbasierte Entwicklung (51.900) Modellbasierte Softwareentwicklung(39.400). Vorher unbedingt mit Admin klären (vor löschen) das kein Vandalismus sondern neue Verlinkung. Berliner Schildkröte Eingangskontrolle/Vandalismus Howwi Informatik Mrilabs Informatik Lady Whistler

Einleitung

Bearbeiten

Modellbasierte Softwareentwicklung (englisch Model Based Software Engineering) bzw. modellbasierte Entwicklung (englisch Model Based Engineering) steht für eine Reihe von Techniken, mit deren Hilfe aus formalen Modellen Software generiert wird.

Zur Modellierung werden neben Standard Modellierungssprachen, wie beispielsweise der Unified Modeling Language (UML) oder der Systems Modeling Language (SysML), zunehmend auch sogenante domänenspezifische Sprachen (englisch Domain Specific Languages, kurz DSL) eingesetzt.

Aus den Modellen wird anschließend, mit entsprechenden Codegeneratoren oder seltener, beim sogenannten Interpreteransatz, mit speziellen Interpretern, automatisch Programmcode generiert.

Der generierte Programmcode ist entweder direkt lauffähig oder wird über einen Wrapper, in die Ablaufumgebung integriert. Er kann sowohl mit herkömmlich entwickelten Modulen als auch mit weiteren, ebenfalls generierten Modulen kombiniert werden.

Begriffe

Bearbeiten
Bearbeiten
Begriff Typ Bemerkung
Modellbasierte Softwareentwicklung neues Lemma Hauptartikel hier neu anlegen (häufiger dt. Begriff)
Modellgetriebene Softwareentwicklung Link "altes" Lemma (Inhalt verschieben und als Synonym verlinken; inzwischen eher unüblicher Begriff)
Modellbasierte Entwicklung Link Synonymer Begr. (Fehlt: häufiger dt. Begriff)
Modellgesteuerte Entwicklung Link Synonymer Begr. (existiert könnte aber gelöscht werden, da absolut unüblicher Begriff)
Model Driven Development Link Synonymer Begr. (Fehlt: häufiger engl. Begriff)
Model Driven Engineering Link Synonymer Begr. (Fehlt: häufiger engl. Begriff)
Model Driven Software Development Link Synonymer Begr. (Fehlt: ebenfalls häufiger engl. Begriff - Gegenstück zu modellgetriebener SW-Entwicklung)
MDE Begriffserklärung Synonymer Begr. (Fehlt: Abkürzung zu Model Driven Engineering)
MDD Begriffserklärung Synonymer Begr. (Text anpassen)
MDSD Begriffserklärung Synonymer Begr. (Text anpassen)

"Relevanz" deutscher Begriffe

Bearbeiten
Begriff Wikipedia Google (alle) Google (*.pdf) Google (1J) Google (Titel) Google Books / (Titel) Google Scholar

Modellbasierte Entwicklung

7 56.700 2.110 15.100 771 83 / ( ) 379
Modellbasierte Softwareentwicklung 4 41.900 1.020 13.800 892 22 / ( ) 95
Modellgetriebene Entwicklung

2

4.410 790 654 394 34 / ( ) 163

Modellgetriebene Softwareentwicklung

16

11.100

1.100

14.100

2.040 59 / ( ) 237

Modellgesteuerte Entwicklung

1 253 8 38 1 2 2

Modellgesteuerte Softwarentwicklung

[0] [0] [0] [0] [0] [ ] [ ]

Modellgesteuerte Programmierung

0 4 [ ] [ ]

Modellgetriebene Programmierung

[0] 3 [ ] [ ]

Legende:

aktuelles Lemma

neues Lemma

inkonsistente Daten

nicht Relevant

Begriff in der Wiki ändern

"Relevanz" englischer Begriffe

Bearbeiten
Begriff Wikipedia Google (alle) Google (*.pdf) Google (1J) Google (Titel) Google Books Google Scholar
Model Driven Development [ ] [ ] [ ] [ ] [ ] [ ] [ ]
MDD [ ] [ ] [ ] [ ] [ ] [ ] [ ]
Model Driven Software Development [ ] [ ] [ ] [ ] [ ] [ ] [ ]
MDSD [ ] [ ] [ ] [ ] [ ] [ ] [ ]
Model Driven Engineering [ ] [ ] [ ] [ ] [ ] [ ] [ ]
MDE [ ] [ ] [ ] [ ] [ ] [ ] [ ]
Model Driven Software Engineering [ ] [ ] [ ] [ ] [ ] [ ] [ ]
MDSE [ ] [ ] [ ] [ ] [ ] [ ] [ ]


Im Umfeld der modellbasierten Softwareentwicklung, existiert inzwischen eine Vielzahl deutscher und englischer synonymer Begriffe. Dies kann am Anfang für Verwirrung sorgen, da man fälschlicher weise vermuten könnte, dass es sich hierbei um unterschiedliche Ansätze oder Konzepte handelt.

Ursprünglich wurde das Konzept in Deutschland unter dem Namen modellgetriebene Softwareentwicklung (englisch Model Driven Software Development, kurz MDSD) bekannt.

Der Begriff Modellgetrieben verweist hierbei auf den grundlegenden Entwicklungsansatze (Paradigma)hin. Nämlich, dass die komplette Entwicklung, ausgehend von den Modellen vorangetrieben wird.

Man findet diese Begriffe zwar immer noch, allerdings sind inzwischen die Begriffe modellbasierte Entwicklung bzw. modellbasierte Softwareentwicklung geläufiger.


Internationl werden weitgehend die Begriffe Model Driven Development (MDD) und Model Driven Engineering (MDE) verwendet.

Weitere verbreitete synonyme Begriffe sind
  • Model Based Programming™
  • Model Based Development™
  • Model Driven Programming™
Weniger verbreitete, aber ebenfalls synonyme Begriffe sind
  • Modellbasierte Programmierung
  • Modellgesteuerte Entwicklung
  • Modellgesteuerte Softwareentwicklung

Die mit ™ markierten Begriffe, sind Trademarks der Object Management Group (OMG). Die häufig zu findende Aussage, dass die Begriffe Model Driven Development und MDD ebenfalls von der OMG geschützt sind, ist inzwischen veraltet. Beiden Begriffe waren zwar ursprünglich OMG Trademarks, wurden aber von dieser 2004 wieder frei gegeben.


  • model-based systems engineering™ ??? (92.400) (unklar ob synonym oder eigenes Konzept)



Achtung: siehe Trademark

OMG hat

  • OMG's Registered Trademarks Include (MDA® und Model Driven Architecture®)
  • OMG's Trademarks Include

Model Based Application Development™
Model Based Development™
Model Based Management™
Model Based Programming™

Model Driven Application Development™
Model Driven Architecture Logos™
Model Driven Programming™
Model Driven Systems™
Model Driven Message Interoperability™

  • Model Driven Sowtware Development (37.500) (MDSD) (86.200)
  • Modellgetriebenen Softwareentwicklung (9.880)
  • Model Driven Development (802.000) (MDD) (3.070.000)
  • Model Driven Engineering (83.700) (MDE) (2.750.000)
  • Model Based Programming™ (188.000)
  • Model Based Development™ (36.800)
  • Model Driven Programming™ (27.200)
  • Modellbasierte Programmierung (275)
  • Modellgesteuerte Entwicklung (221)
  • Modellgesteuerte Softwareentwicklung (66)
  • Modellgesteuerte Programmierung (2)


Daneben existieren noch die ebenfalls englischen Begriffe Model Driven Development (MDD) und Model Driven Software Engineering (MDSE).

Bei der Suche nach weiterführenden Informationen, findet man unter allen oben genannten Begriffen und Abkürzungen, jeweils relevante Treffer.


weitere OMG Trademarks
  • Model Based Application Development™
  • Model Based Management™
  • Model Driven Application Development™
  • Model Driven Architecture Logos™
  • Model Driven Systems™
  • Model Driven Message Interoperability™

Abgrenzung zur MDA

Bearbeiten

Bei der modellgetriebene Architektur bzw. Model Driven Architecture (MDA) handelt es sich allerdings nicht um synonyme Begriffe zur modellgetriebenen Softwareentwicklung, auch wenn sie manchmal fälschlicherweise in diesem Kontext verwendet werden. Die Model Driver Architecture ist eine herstellerunabhängige Spezifikation der Object Management Group (OMG) und beschreibt eine Spezialisierung bzw. konkrete Ausprägung der modellgetriebenen Softwareentwicklung.

Trademarks der OMG

Bearbeiten

Die Begriffe Model Based Architectur und MDA sind Trademarks der OMG.[1] Die Begriffe Model Driven Development und MDD waren ursprünglich, ebenfalls von der Object Management Group (OMG) markenrechtlich geschützt. Beide Begriffe wurden aber 2004 wieder frei gegeben.[2] Daneben verfügt die OMG noch über eine Reihe weiterer Trademarks aus dem Umfeld der Modellgetriebenen Softwareentwicklung, wie Model Based Application Development, Model Based Development, Model Based Management, Model Based Programming sowie einige andere. Diese Begriffe sind teilweise noch reine Platzhalter, für zukünftige herstellerunabhängige Standards, im Umfeld der Modellgetriebenen Softwareentwicklung.

Vergleich mit koventioneller Softwareentwicklung

Bearbeiten

Im Kontext der konventionellen Softwareentwicklung, entsprechen die formalen Modelle den konventionellen Programmiersprachen und die Generatoren sind das Pondon zu den üblichen Compilern.

Ich habe ein begriffliches Problem, einerseits innerhalb des Artikels, aber vermutlich auch mit der Terminologie des MDSD selbst:

Die Begriffe Modellierung und Programmierung werden im Rahmen von MDSD in einer bestimmten Weise verstanden, und zwar in einer Weise, die m. E. mit gängigen Interpretationen dieser Begriffe kollidiert:

Wenn aus dem bei MDSD als Modell bezeichneten Artefakt automatisiert Code erzeugt wird, dann ist dieses Artefakt nach gängiger Definition Quelltext, also Programm. Die automatisierte Erzeugung nennt man dann Compilierung, wobei die Quellsprache die Sprache des Modells und die Zielsprache die Sprache des erzeugten Codes ist. Der Begriff Modell wird daher bei MDSD in der Bedeutung "in einer höheren oder graphischen oder problemspezifischen oder domänenspezifischen Programmiersprache programmiert" verwendet: MDSD Modelle sind keine Modelle von Software, sondern sie sind die Software selbst. Durch den Austausch der Begriffe Programm, Programmieren, Compilieren durch die Begriffe Modell, Modellieren, Codeerzeugung wird der Eindruck erweckt, als ob die Tätigkeit der Programmierung nun automatisch erfolgen würde (als Botschaft kommt an: "der Code wird automatisch erzeugt, nicht mehr programmiert").

Es wäre m. E. für den Artikel zwecks Vermeidung von Verwirrung hilfreich, wenn die Begriffe Modell, Programm und Codeerzeugung, wie sie im Kontext von MDSD verwendet werden, definiert und den ansonsten gängigen Begriffen und Interpretationen gegenübergestellt würden.

MDSD-Tools

Bearbeiten
Tool Hersteller/Anbieter Lizenz Modelle Bemerkung
Apollo for Eclipse Gentleware AG proprietär / Open Source UML Die Open Source-Basis ist eine Eclipse Toolchain, deren Elemente (EMF, GMF und openArchitectureWare) man im Eclipse Model Project[3] der Eclipse Foundation findet.
ArcStyler Interactive Objects Software proprietär UML Unterstützt u. a. Java/J2EE, .NET, CORBA.
Artisan Studio Artisan Software Tools proprietär UML, SysML Unterstützt Teamarbeit über ein zentrales Daten-Respository. Ermöglicht die Integration von Simulink und MathWorks.
ASCET ETAS proprietär Blockdiagramme, erweiterte Zustandsautomaten, ESDL, erweiterte Wahrheitstabellen und andere Modelltransformation von und nach MATLAB/Simulink und UML. Der Schwerpunkt ist Steuergeräte-Software für die Automobilindustrie.
Eclipse + EMF +

openArchitectureWare

Eclipse Foundation Open Source UML, Baumeditor und andere Freie Eclipse Tool Chain. Alle Komponenten sind inzwischen unter dem Dach der Eclipse Foundation im Eclipse Modeling Project[3] zusammengefaßt.
Enterprise Architect + Eclipse +

openArchitectureWare

SparxSystems

Eclipse Foundation

proprietär / Open Source UML, SysML CASE Tool mit Round-Trip-Engineering, welches die MDA unterstützt.
EB GUIDE Studio Elektrobit Corporation proprietär Modellbasierte Spezifikation und automatische Codegenerierung von HMI-Umgebungen. Einsatzschwerpunkt ist die Automobilindustrie.
HyperSenses + ANGIE DELTA Software Technology Group proprietär
MagicDraw No Magic Inc proprietär UML CASE Tool
Modulestudio Guite proprietär Eclipse-basiertes MDSD-Tool für das in PHP geschriebene Zikula - Web Application Framework.
objectiF microTOOL proprietär Tool für modellgetriebene Softwareentwicklung auf Basis UML und BPMN (Business Process Modeling Notation).
OOMEGA OOMEGA GbR Open Source MDSD-Tool auf Basis ATL, Eclipse und openArchitectureWare.
OptimalJ Compuware proprietär
Rhapsody Telelogic proprietär
SCADE Suit Esterel Technologies proprietär MDSD-Tool für sicherheitskritische Anwendungen.
Select Architect Select Business Solutions proprietär MDSD-Tool mit MDA-Unterstützung und Modelltransformation.
Simulink The MathWorks proprietär Erweiterung zu Matlab
Sympedia GenFw berliOS Developer Open Source EMF-Basiertes Generator Framework.
TargetLink dSPACE proprietär
Together Architect Borland proprietär
TOPCASED TOPCASED Open Source

Unbearbeitet

Bearbeiten

Die MDA setzt in der Regel auf der UML als Modellierungssprache auf, die ebenfalls von der OMG standardisiert wurde. Die Modellgetriebene Softwareentwicklung hat diese Einschränkung


Modellgetriebene Softwareentwicklung (englisch Model-Driven Software Development, kurz MDSD) ist ein Oberbegriff für Techniken, die automatisiert, aus formalen Modellen lauffähige Software erzeugen.[4] 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 frei gegeben.[5] Ebenfalls verbreitet sind die synonymen Begriffe Model Driven Engineering (MDE) bzw. Model Driven Software Engineering (MDSE).

Definition

Bearbeiten

Bei MDSD nach Stahl et al.[4] 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

Bearbeiten

Durch den erhöhten Abstraktionsgrad der DSLs, sind Problembeschreibung 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.

Werkzeuge für MDSD

Bearbeiten
  • 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.

Siehe auch

Bearbeiten

Einzelnachweise

Bearbeiten
  1. United States Patent and Trademark Office: OMG Trademarks. Abgerufen am 3. Januar 2010..
  2. United States Patent and Trademark Office: US Trademark Electronic Search System. Abgerufen am 3. Januar 2010.
  3. a b Eclipse Foundation: Eclipse Model Project der Eclipse Foundation. Abgerufen am 4. Januar 2010.
  4. a b Thomas Stahl, Markus Völter, Sven Efftinge, Arno Haase: Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management. 2. Auflage. d.punkt Verlag, Heidelberg 2007, ISBN 978-3-89864-448-8.
  5. United States Patent and Trademark Office: US Trademark Electronic Search System. Abgerufen am 28. Dezember 2009.

Literatur

Bearbeiten
  • Thomas Stahl, Markus Völter, Sven Efftinge, Arno Haase: Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management. 2. Auflage. d.punkt Verlag, 2007, ISBN 978-3-89864-448-8.
  • Georg Pietrek, Jens Trompeter (Hrsg.): Modellgetriebene Softwareentwicklung. MDA und MDSD in der Praxis. 1. Auflage. Entwickler-Press, 2007, ISBN 978-3-939084-11-2.
  • Christian Welzel: Modellgetriebene Softwareentwicklung im E-Government. 1. Auflage. Vdm Verlag Dr. Müller, 2008, ISBN 978-3-639-01026-8.
Bearbeiten

[[Kategorie:Vorgehensmodell (Software)]] [[en:MDSD]]