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
BearbeitenModellbasierte 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
BearbeitenListe vorhandene und fehlende Links
BearbeitenBegriff | 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
BearbeitenBegriff | Wikipedia | Google (alle) | Google (*.pdf) | Google (1J) | Google (Titel) | Google Books / (Titel) | Google Scholar |
---|---|---|---|---|---|---|---|
7 | 56.700 | 2.110 | 15.100 | 771 | 83 / ( ) | 379 | |
Modellbasierte Softwareentwicklung | 4 | 41.900 | 1.020 | 13.800 | 892 | 22 / ( ) | 95 |
Modellgetriebene Entwicklung | 4.410 | 790 | 654 | 394 | 34 / ( ) | 163 | |
16 | 1.100 | 2.040 | 59 / ( ) | 237 | |||
1 | 253 | 8 | 38 | 1 | 2 | 2 | |
[0] | [0] | [0] | [0] | [0] | [ ] | [ ] | |
0 | 4 | [ ] | [ ] | ||||
[0] | 3 | [ ] | [ ] |
Legende:
aktuelles Lemma
neues Lemma
inkonsistente Daten
nicht Relevant
Begriff in der Wiki ändern
"Relevanz" englischer Begriffe
BearbeitenBegriff | 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
BearbeitenBei 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
BearbeitenDie 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
BearbeitenIm 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
BearbeitenUnbearbeitet
BearbeitenDie 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
BearbeitenBei 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
BearbeitenDurch 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- Model Driven Architecture, eine Umsetzung der modellgetriebenen Entwicklung der OMG
- Modellbasiertes Testen als Gegenstück zu MDSD
Einzelnachweise
Bearbeiten- ↑ United States Patent and Trademark Office: OMG Trademarks. Abgerufen am 3. Januar 2010. .
- ↑ United States Patent and Trademark Office: US Trademark Electronic Search System. Abgerufen am 3. Januar 2010.
- ↑ a b Eclipse Foundation: Eclipse Model Project der Eclipse Foundation. Abgerufen am 4. Januar 2010.
- ↑ 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.
- ↑ 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.
Weblinks
Bearbeiten- Sven Efftinge, Peter Friese, Jan Köhnlein: Best Practices of Model-Driven Software Development
[[Kategorie:Vorgehensmodell (Software)]] [[en:MDSD]]