|
Textprobe:
Kapitel 3.2, Modellgetriebene Entwicklung:
Gemäß FR07 leisten Informationssysteme essentielle Dienste für eine Gesellschaft. Zusätzlich werden die vier wichtigsten Anforderungen an IT-Systeme herausgestellt: Heutige IT-Systeme interagieren in verteilten und eingebetteten Umgebungen auf unterschiedlichen Plattformen und kommunizieren über mannigfaltige Interaktionsparadigmen (z.B. SOAP-Nachrichten, Streaming von Medieninhalten). Weiterhin sollen sie sich dynamisch an ihre Ausführungsumgebungen anpassen und zuverlässig funktionieren. All diese Forderungen sowie die Fülle an Funktionalität, die heutige IT-Systeme bereitstellen müssen, bewirken eine enorme Steigerung der Komplexität der Software. Um diesen Anforderungen zu begegnen, werden Methoden, Technologien und Werkzeuge benutzt. Eine Form, die alle drei Konzepte benutzt, um den heutigen Anforderungen an Software gerecht zu werden, ist die modellgetriebene Entwicklung (engl. Model Driven (Software) Development, MDD).
Die MDD versucht, durch den Einsatz von Werkzeugen und Methoden, unterschiedliche Probleme der Softwareentwicklung im großen Maßstab abzufedern bzw. zu lösen. Ein erklärtes Ziel der MDD ist die Bereitstellung von Technologien, die die Komplexität der speziellen Plattform, auf der die Software ausgeführt werden soll, für Softwareentwickler verringern. Hierbei wird der Begriff der Plattform auf verschiedene Softwarebibliotheken (z.B. für Persistenz, grafische Benutzeroberfläche, mathematische Funktionen), Computernetzwerke sowie Middleware bezogen.
Ein weiteres Ziel ist das Verkleinern der Diskrepanz zwischen einem Problem und der Implementierung zur Lösung dieses Problems. Hierbei ist es insbesondere interessant, wie Modellierungstechniken dazu beitragen können, die Kluft zwischen der Domäne des Problems und der Domäne der Softwareimplementierung (engl. Problem-Implementation Gap) zu schließen. Diese Diskrepanz entsteht vor allem dadurch, dass in der konventionellen Softwareentwicklung Softwarelösungen auf einem geringeren Abstraktionsniveau formuliert (implementiert) werden als die Formulierung des Problems. Dadurch entsteht die in FR07 als Problem-Implementierung-Diskrepanz bezeichnete Problemstellung. Mit der Hebung des Abstraktionsniveaus wird eine signifikante Steigerung der Qualität und Produktivität erwartet.
Ergänzend zur Verbesserung der Entwicklung von Software, verfolgt die MDD das Ziel, die Wartung und Pflege von Software zu verbessern. Ein relevanter Baustein für dieses Ziel ist die Beherrschung von Aspekten, die nicht einfach modularisiert werden können. Diese werden zumeist als Querschnittsbelange (engl. Cross-Cutting-Concerns) bezeichnet. Unter Querschnittsbelange fallen Aspekte wie Sicherheit, Fehlerbehandlung, Protokollierung und Synchronisation. Die MDD bietet Vorschläge an, um diese Querschnittsbelange, die sowohl für Redundanzen verantwortlich sind als auch insgesamt die Verwaltung von Änderungen behindern, weil sie in unterschiedlichen Stellen der Software lokalisiert sind, zu adressieren. Speziell die Fragestellung, wie die MDD dabei helfen kann, verschiedene Aspekte zu handhaben, ist noch nicht vollständig beantwortet und ist somit noch aktueller Stand der Forschung.
Eine Sachlage, auf die die MDD schon Antworten liefert, ist die Wiederverwendung. Dies bezieht sich vor allem auf die Wiederverwendung von Modellen in einer Domäne. Expertenwissen, das dazu benutzt wurde, eine Lösung als Modell zu formulieren, kann aufgrund des hohen Abstraktionsgrades, den die MDD zur Modellierung einsetzt, zur Lösung ähnlich gelagerter Probleme verwendet werden. Gerade die Modellierung spielt bei der MDD eine große Rolle. Zwar ist laut die konventionelle Softwareentwicklung durch Formulierung der Lösungen in einer Programmiersprache auch eine Modellierungsaktivität, jedoch eine auf einem oft nicht problemadäquaten Niveau. Was genau nun Modellierung auf einer höheren Ebene als der gewöhnlicher Programmiersprachen bedeutet und welche Aspekte dabei eine Rolle spielen, wird im Folgekapitel aufgezeigt.
Modellierung in der MDD:
Die Entwicklung eines Modells als Abstraktion eines Systems wird als Modellierung bezeichnet. Modelle werden in diesem Zusammenhang als ein reduziertes Abbild eines repräsentierten Systems charakterisiert, das elementare Merkmale eines Systems aufweist. Eine genauere Beschreibung wird im Folgekapitel gegeben. Der Zweck der Modelle ist die Bereitstellung einer menschenverständlichen Beschreibung einiger Aspekte eines Systems oder Darstellung der Information in einem Format, das technisch analysiert werden kann. Hierbei muss das System, worauf sich das Modell bezieht, nicht notwendigerweise existieren.
France und Rumpe teilen Modelle in zwei Kategorien ein. Sie räumen in FR07 ein, dass die Klassifikation aus Information 27 im Verlauf des Reifens der MDD sich verändern kann, indem beispielsweise die Entwicklungsmodelle als Laufzeitmodelle eingesetzt werden könnten, oder die Laufzeitmodelle dazu verwendet werden können, Softwaresysteme zu entwickeln, was ihnen den Status von Entwicklungsmodellen verleiht. Für aktuelle Kategorisierung der Modelle sei die Einteilung ausreichend. Diese Arbeit beschränkt sich auf die Entwicklungsmodelle, weil nicht Aspekte eines existierenden Systems untersucht werden, sondern untersucht wird, wie Modelle zur Informationsvisualisierung eingesetzt werden können.
Auch wenn die Erstellung von Modellen systematisiert werden kann, ist Modellierung eine Kunst. Nichtsdestoweniger beschreibt Hruby in Hr06 einige grundlegende Prinzipien, die speziell für die Modellierung von Modellen in Geschäftsanwendungen sinnvoll sind. Einige interessante Prinzipien werden im Folgenden aufgezeigt.
Beim Top-Down-Ansatz wird die funktionale Dekomposition eines Systems verfolgt. Dieser Ansatz eignet sich eher für die Beschreibung eines Systems, weil dessen konsequente Anwendung zu einem monolithischen System führen kann. Der Bottom-Up-Ansatz dient dazu, atomare Elemente einer Geschäftsanwendung oder eines Geschäftsprozesses zu identifizieren. Diese werden daraufhin als generalisierte Komponenten abgebildet. Beide Ansätze sind sinnvoll, um ein System kognitiv zu durchdringen und es auf ein Informationssystem abzubilden. Auch hält dieses Vorgehen für ratsam. Beide Ansätze hängen mit dem Prinzip der Granularität der modellierten Elemente eines Systems zusammen. Die Granularität von Modellelementen bezeichnet deren Größe (z.B. Anzahl enthaltener Elemente). Elemente auf einem hohen Abstraktionsniveau können für gewöhnlich durch funktionale Dekomposition in kleinere Elemente zerlegt werden, während die kleineren durch Synthese zu größeren Elementen zusammengefasst werden können.
Als letztes Prinzip soll hier noch das Prinzip der Sichten oder auch Perspektiven erläutert werden. Bei der Erstellung eines Modells muss immer die Sicht, aus der das System modelliert wird, dokumentiert werden. Besonders deutlich wird dieses Prinzip, wenn man eine Geschäftsanwendung betrachtet. Diese kann eine Kunden- und Lieferantensicht enthalten. Der Geschäftsvorfall „Bezahlen“ ist je nach Sicht mit der Semantik Geldeingang oder Geldabfluss verbunden. Um Ambiguitäten zu vermeiden, ist es notwendig die Perspektive, in der modelliert wird, zu dokumentieren.
Modelle und Transformationen:
Aus dem Vorgang der Modellierung entstehen Modelle. Welche Rolle Modelle in der MDD einnehmen, welcher nutzen aus ihnen gezogen wird und welcher Zusammenhang zu Transformationen besteht, ist in diesem Kapitel abgefasst.
Eine Software basiert auf Quellcode, der das konkrete Modell von Geschäftsprozessen und verwendeten Daten in der Realität darstellt. Dieses Modell ist aus den Köpfen der Softwareentwickler entstanden, wie sie das Problem und die entsprechende Lösung verstanden haben. Diese mentalen Modelle stellen ein inhärentes Problem dar, da sie nicht ohne weitere Hilfsmittel analysiert, verifiziert und dokumentiert werden können. Aus diesem Grund ist eine Externalisierung der mentalen Modelle auf einem problemadäquaten Abstraktionsniveau wichtig. Soll ein weiterer Nutzen aus den Modellen, wie z.B. Transformationen der Modelle, gezogen werden, ist es notwendig, die Modelle zu formalisieren. Für die automatische Transformation der Modelle ist es eine zwingende Voraussetzung, diese zu formalisieren. Ein formalisiertes Modell im Kontext von MDD entspricht einer Instanz eines anderen Modells, eines sogenannten Metamodells. Das Prinzip des Metamodells wird in Kapitel 3.2.2 detailliert beschrieben.
Transformationen basieren, bis auf die Ausnahme, die weiter unten erläutert wird, auf Modellen der Modelle (Metamodelle). Dabei bezeichnet die Transformation eine Umwandlung einer Instanz eines Quellmodells in eine Instanz eines Zielmodells. Da es sich dabei um beliebige Instanzen handelt, können die Transformationsregeln sich nur auf die Konstrukte des Metamodells beziehen. Unterschieden werden bei den Transformationen speziell zwei Transformationsarten. Die Modell-zu-Text-Transformation ist eine Abbildung der Modelle auf eine konkrete Plattform (Programmiersprache, Middleware). Dabei werden die Modelle an eine Plattform gebunden, um sie ausführbar zu machen. Bei dieser Transformationsart ist kein Metamodell unbedingt notwendig, da es sich hierbei auch um einfache Zeichenersetzungen handeln kann. Für die Modell-zu-Modell-Transformation ist ein Metamodell hingegen essenziell. Beide Transformationsarten sind für diese Arbeit relevant und werden im Kontext der modellgetriebenen Architektur vertieft behandelt.
|