Column #col2

TrainingOO-SchwerpunktthemenModellgetriebene Software-Entwicklung

Modellgetriebene Softwareentwicklung [MDD]

MDD (model-driven development), also die modellgetriebene Softwareentwicklung wird nach Meinung vieler in der Zukunft zu einer der wichtigsten Techniken der Softwareentwicklung werden. Die OMG hat dazu einen Standard definiert - „model-driven architecture“ (MDA), bei vielen Konferenzen war in den letzten Jahren modellgetriebene Entwicklung ein Schwerpunkt. Derzeit vollzieht sich der Übergang zum praktischen Einsatz: Es werden mehrere MDA-kompatible Entwicklungsstudios angeboten und im Bereich der domänenspezifischen Modellierung treten neben Pionieren wie die Firma MetaCase auch Anbieter wie Microsoft (Visual Studio® SDK) und Eclipse auf. Dem Potential der Technik steht im Moment jedoch auch eine gewisse Unübersichtlichkeit gegenüber, die daraus resultiert, dass unterschiedliche Modellkonzepte koexistieren.

Modellgetriebene Entwicklung definiert Modelle als Instanzen exakt definierter Metamodelle, wobei neben der Struktur der einzelnen Metamodelle auch die Beziehungen zwischen ihnen exakt beschrieben sind. Damit wird die integrierte Entwicklung von Modellen möglich, die sich in Abstraktionsebene und Gegenstandsbereich unterscheiden. Der Code einer Programmiersprache wird als Instanz eines Code-Metamodells aufgefasst und ganz oder teilweise aus abstrakteren Modellen generiert.

Eine Linie in der modellgetriebenen Entwicklung konzentriert sich auf Modelle, welche die in Entwicklung befindliche Lösung in unterschiedlichen Abstraktionen darstellen. Der Prozess der Entwicklung wird damit als schrittweise Verfeinerung des Designs, Zusammenführung und Anreicherung der Information aus Modellen verstanden.

Eine zweite Strategie beruht darauf, nicht die Anwendung zu modellieren, sondern die Umgebung, in der die Anwendung eingesetzt werden soll. Die Aufgabe, aus den Modellen Anwendungscode zu generieren, wird einem Codegenerator übertragen. Da in der Funktionalität des Codegenerators Domänenwissen und Annahmen über die Aufgabe der Anwendung vorausgesetzt sind, wird diese Technik meist in Zusammenhang mit domänenspezifischer Modellierung verwendet. Dies ermöglicht es, zwischen fixen und variablen Aspekten der Anwendung zu unterscheiden und die domänenweit fixen Aspekte durch ein Anwendungstemplate abzubilden, das von den Metamodellen vorgegeben wird.

Die unterschiedlichen Strategien eignen sich für unterschiedliche Aufgabengebiete und ihr erfolgreicher Einsatz setzt auch unterschiedliche Entwicklungsprozesse voraus.

Die Schulung gibt einen Einblick in die Konzepte und Techniken der modellgetriebenen Entwicklung. Neben den theoretischen Grundlagen soll die Schulung Verständnis dafür vermitteln, welche Konzepte je nach Aufgabengebiet erfolgversprechend sind. Ein besonderer Schwerpunkt liegt auf der Unterscheidung zwischen domänenspezifischer Modellierung und MDA-Ansätzen sowie auf den Kriterien für die Wahl zwischen diesen Alternativen.

Weitere Infos: detaillierte Schulungsbeschreibung

Dauer: 2 Tage

Rahmen: firmenintern (Angebot)

Zielgruppe: Softwareentwickler, Architekt, Softwaredesigner

Voraussetzung: OO-Grundlagen, UML-Grundlagen

Aufbauschulung: SA+P