Column #col2

Schulungsbeschreibung: Modellgetriebene Softwareentwicklung

1. Motivation
Objektorientierte Paradigmen haben die Softwareentwicklung verändert und integrierte Entwicklungsumgebungen stellen eine Reihe von Funktionen für die Bewältigung komplexer Aufgaben zur Verfügung. Im motivierenden Einleitungskapitel wird dargestellt, welche darüber hinausgehenden Möglichkeiten modellgetriebene Entwicklung bereitstellt und warum das wichtig ist.

2. Beispielprojekt
Sie sehen am konkreten Beispiel, wie das Zusammenspiel von Metamodell, Sprache, Generator und Framework für eine spezifische Domäne funktioniert. Dieses Beispiel wird uns in den weiteren Kapiteln der Schulung als Referenz für die theoretischen Konzepte dienen.

3. Szenarien der Softwareentwicklung
Modellgetriebene Entwicklung zielt auf die Unterstützung von Entwicklungsprozessen durch Werkzeuge. Wie sind die Entwicklungsprozesse organisiert und welche Art von Modellen treibt die Entwicklung? Fachliche Analysen, Architekturen, Anforderungen; einzeln oder in Kombination? Davon hängt es ab, welche Art von Werkzeugen eingesetzt werden kann. Deswegen werden wir der Frage nachgehen, welche Szenarien möglich sind und wo Werkzeuge, d. h. insbesondere Generatoren eingesetzt werden können.

4. Modelltypen
Je nach Szenario werden unterschiedliche Typen von Modellen verwendet, oder ein Typ von Modellen tritt in unterschiedlichen Rollen auf. Dieses Kapitel stellt Modelltypen vor und zeigt, welche Elemente damit dargestellt werden und wie die Informationen aus Modellen werkzeugunterstützt erweitert, integriert und transformiert werden können.

5. Formalisierung
Analog zur formalen Analyse von Algorithmen und anderen Grundlagen der Programmierung gibt es auch formale Analysen grundlegender Konzepte der modellgetriebenen Entwicklung. Mit dem Ziel, die Orientierung für den Fall zu erleichtern, dass Sie sich mit einigen dieser Themen weiter beschäftigen müssen oder wollen, werden wir einige Themen ansprechen.

6. Semantik
Eines der Erfolgskriterien für modellgetriebene Entwicklung ist, dass Modelle eine konzise Semantik haben. Dabei muss bedacht werden, dass Generatoren oder Werkzeuge sehr viel weniger Intelligenz und Fähigkeit zum Wechsel zwischen verschiedenen Interpretationsmodi haben als menschliche Experten. Deswegen ist es erforderlich, dass Semantiken einfacher aufgebaut werden, als es für nicht-modellgetriebene Entwicklung notwendig wäre. In diesem Kapitel stellen wir dar, wie diese Semantik eingeführt und als Grundlage modellgetriebener Entwicklung genutzt werden kann.

7. Metamodellierung
In diesem Kapitel nehmen wir die theoretischen Grundlagen der Metamodellierung durch. Grundlegende logische Beziehungen, wie die zwischen Metamodell und Instanz oder Abstraktion und Verfeinerung, werden eingeführt. Sie werden sehen, wie in der objektorientierten Modellierung Metamodelle als Klassen und Modelle als Instanzen dieser Klassen beschrieben werden und wie sich diese Sicht in die modellgetriebene Entwicklung einfügt. Ein Schwerpunkt ist die Beschreibung des Metamodells der UML 2, welche von der OMG insbesondere als Grundlage der MDA entwickelt wurde.

8. Modelle der Anwendungsdomäne
Dieses Kapitel stellt einen Modelltyp vor, der dann die führende Rolle übernehmen kann, wenn die Anwendung aus der Beschreibung der Umgebung generiert wird, in der sie eingesetzt werden soll. Wir beschreiben den Modelltyp und untersuchen, welche Bedingungen für seinen Einsatz gegeben sein müssen.

9. Designmodelle
Hier behandeln wir allgemeine Aspekte des zweiten wichtigen Modelltyp, der neben domänenspezifischen Modellen für die führende Rolle in der modellgetriebenen Entwicklung in Frage kommt: Designmodelle, die eine Anwendung unter Abstraktion von Details darstellen und die Verfeinerung, Anreicherung und Integration durch entsprechende Werkzeuge unterstützen.

10. MDA
MDA ist ein spezieller, von der OMG definierter Standard für modellgetriebene Entwicklung. Dieser Standard hat erhebliche Bedeutung, vor allem im Web-Umfeld. MDA kann als Referenzstandard für designorientierte modellgetriebene Entwicklung mit universellen
Metamodellen betrachtet werden. MDA ist auch die Grundlage vieler kommerzieller Tools für modellgetriebene Entwicklung. Wir untersuchen, wie MDA funktioniert.

11. Integrationsmodelle
Ein erheblicher Teil des Aufwands in der Softwareentwicklung resultiert nicht selten aus der Anforderung der Integration in bestehende Systemlandschaften oder der Anbindung an andere Komponenten. Modellgetriebene Entwicklungstechniken können für die Automatisierung solcher Aufgaben angewandt werden.

12. Anwendungsbereiche
Modellgetriebene Entwicklungsumgebungen unterscheiden sich hinsichtlich dessen, wo sie eingesetzt werden sollen. Einige Lösungen sollen universell einsetzbar sein, andere zielen auf technische Domänen, andere auf bestimmte Einsatzgebiete. Je nach Einsatzbereich sind unterschiedliche Aufgaben in der Softwareentwicklung automatisierbar und können als Funktionalitäten im Metamodell abgebildet werden. In diesem Kapitel erfahren Sie, welche Beziehung zwischen Einschränkungen des Anwendungsbereiches und der Möglichkeit zur Implementierung intelligenter Funktionalitäten zur Unterstützung des Entwicklungsprozesses besteht.

13. Typsysteme
Die Typen von Modellelementen können in objektorientierten Metamodellen oder als Elemente einer formalen Sprache definiert sein. Zudem gibt es je nach Modellkonzept unterschiedliche Methoden der Anpassung von Typen an die konkrete Aufgabenstellung.

14. Tutorials
Die Hersteller modellgetriebener Entwicklungsumgebungen bieten Testversionen und Tutorials an. Wir sehen uns einige Beispiele solcher Tutorials an.

15. Zusammenfassung und Bewertung
Für welche Zwecke scheint uns MDD geeignet? Welche Chancen, Probleme oder Risiken sehen Sie für einen möglichen Einsatz in Ihrem konkreten Arbeitsgebiet? Was müssten Werkzeuge leisten, damit Sie sich für den Einsatz modellgetriebener Techniken entscheiden? Welches der konkurrierenden Konzepte interessiert Sie besonders? Gerade bei einer neuen Technologie, die vielversprechend, aber noch kein etablierter Standard ist, ist es sinnvoll, gemeinsam Fragen zu besprechen und Meinung auszutauschen. Den Abschluss der Schulung bildet deshalb ein Gespräch am runden Tisch, in dem wir die wichtigsten Ergebnisse noch einmal zusammenfassen.