Model Driven Software Development

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 Domain-Specific Languages, DSL) zusammen mit entsprechenden Codegeneratoren und Interpretern eingesetzt.

Der häufig auch im Deutschen benutzte englische Begriff Model Driven Development (MDD) wurde von der OMG markenrechtlich geschützt, weshalb auch der nicht markenrechtlich geschützte Begriff, das Model Driven (Software) Engineering (MD(S)E) als MDD-Äquivalent genutzt wird.

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 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

  • 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. Überflüssige 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 optimal unterstützt.

Beispiele für integrierte MDD-Werkzeuge

  • OOMEGA Modellgetriebene Softwareentwicklung auf der Grundlage von Objektpersistenz mit Unterstützung von openArchitectureWare
  • Apollo for Eclipse Modeling Tool für Eclipse (Gentleware)
  • Select Architect Werkzeug für modellgetriebene Softwareentwicklung mit MDA Unterstützung und Modelltransformationen
  • Sympedia GenFw EMF Basiertes Generator Framework
  • ArcStyler (Interactive Objects Software GmbH)
  • Eclipse + openArchitectureWare + EMF (Eclipse Foundation)
  • Eclipse + openArchitectureWare + Enterprise Architect (Eclipse UML2)
  • MagicDraw (NoMagic) MagicDraw UML
  • objectiF (microTOOL)
  • TargetLink (dSPACE)
  • Together Architect (Borland)
  • Rational Application Developer (IBM)
  • Simulink (Erweiterung zu Matlab)
  • ASCET (ETAS)
  • TOPCASED - (Open Source)
  • OptimalJ (Compuware)
  • HyperSenses und ANGIE (DELTA Software Technology)
  • Rhapsody (Telelogic)
  • ARTiSAN Studio
  • GUIDE Studio (Elektrobit Corporation)
  • Modulestudio (Guite) Eclipse-basiertes MDSD-Tool für das Zikula PHP Application Framework

Literatur

  • Thomas Stahl, Markus Völter, Sven Efftinge: Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management. 2. Auflage. d.punkt Verlag, Mai 2007, ISBN 978-3898644488. 
  • Georg Pietrek, Jens Trompeter (Hrsg.): Modellgetriebene Softwareentwicklung. MDA und MDSD in der Praxis. 1. Auflage. Entwickler-Press, Juni 2007, ISBN 978-3939084112. 
  • Christian Welzel: Modellgetriebene Softwareentwicklung im E-Government. 1. Auflage. Vdm Verlag Dr. Müller, Mai 2008, ISBN 978-3639010268. 
  • Sven Efftinge, Peter Friese, Jan Köhnlein: Best Practices of Model-Driven Software Development

Siehe auch

Quellen

  1. a b Thomas Stahl, Markus Völter, Sven Efftinge: Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management. 2. Auflage. d.punkt Verlag, Mai 2007, ISBN 978-3898644488. 

Wikimedia Foundation.

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

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

  • Model-driven software development — (MDSD) is an alternative to Round trip engineering. Round trip engineering is the concept of being able to make any kind of change to a model as well as to the code generated from that model. The changes always propagate bidirectional and both… …   Wikipedia

  • Model-driven engineering — (MDE) is a software development methodology which focuses on creating and exploiting domain models (that is, abstract representations of the knowledge and activities that govern a particular application domain), rather than on the computing (or… …   Wikipedia

  • Model-driven architecture — (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model driven architecture is a kind of domain engineering, and… …   Wikipedia

  • Model-driven security — (MDS) means applying model driven approaches (and especially the concepts behind model driven software development) [1] to security. Contents 1 Development of the concept 2 Opinions of industry analysts …   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

  • Model Driven Architecture — Saltar a navegación, búsqueda La arquitectura dirigida por modelos (Model Driven Architecture o MDA) es un acercamiento al diseño de software, propuesto y patrocinado por el Object Management Group. MDA se ha concebido para dar soporte a la… …   Wikipedia Español

  • Model-driven Architecture — La arquitectura dirigida por modelos (Model Driven Architecture o MDA) es un acercamiento al diseño de software, propuesto y patrocinado por el Object Management Group. MDA se ha concebido para dar soporte a la ingeniería dirigida a modelos de… …   Wikipedia Español

  • Model driven architecture — L’architecture dirigée par les modèles ou MDA (pour l Anglais Model Driven Architecture) est une démarche de réalisation de logiciels, proposée et soutenue par l OMG. C est une variante particulière de l ingénierie dirigée par les modèles (IDM,… …   Wikipédia en Français

  • Software development process — Activities and steps Requirements Specification …   Wikipedia

  • Aspect-oriented software development — (AOSD) is an emerging software development technology that seeks new modularizations of software systems. AOSD allows multiple concerns to be expressed separately and automatically unified into working systems.Traditional software development has …   Wikipedia

Share the article and excerpts

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