Für eine korrekte Darstellung dieser Seite benötigen Sie einen XHTML-standardkonformen Browser, der die Darstellung von CSS-Dateien zulässt.

. .
Suche

Meta-Modellierung-Aufgaben Vorlesungsseite Fachgruppe Praktische Informatik

Meta-Modellierung


Zusammenfassung

Mit speziellen Modellierungssprachen kann die Produktivität der Software-Entwicklung erhöht werden, da sie die Konzepte und Notationen aus dem Anwendungsbereich direkt unterstützen. Somit können Lösungen besser verstanden und leichter in ausführbaren Code umgesetzt werden. Um solche Sprachen verwenden zu können, ist eine passende Werkzeug-Unterstützung nötig. Da der Anwenderkreis für spezielle Modellierungssprachen und die zugehörigen Werkzeuge meist klein ist, werden solche speziellen Werkzeuge nicht von den Herstellern angeboten. Sie müssen statt dessen für den konkreten Zweck gebaut werden.

Lernziele dieses Veranstaltungsteils

  • Grundlagen und Einsatzbereiche von CASE-Systemen zur Meta-Modellierung kennen
  • Ein konkretes Produkt kennenlernen (Fujaba); Stärken, Schwächen und Aufwand einschätzen
  • Objekt-orientierte Modelle
  • Modellierungssprache in Syntax und Semantik definieren

Übersicht und Motivation

Modelle beschreiben 'relevante' Aspekte eines zu entwickelnden Systems [3]. Welche Aspekte dies sind, hängt vom System ab und von der Betrachtungsweise: Bei Informationssystemen sind die verwalteten Daten wichtig, bei eingebetteten Systemen die Zustände, bei betrieblichen Anwendungen die zugrundeliegenden Geschäftsprozesse. Modelle haben drei wichtige Aufgaben:
  1. Das Verständnis des Problems und der entworfenen Lösung zu verbessern.
  2. Die Kommunikation zwischen Entwicklern und zwischen Entwicklern und Kunden oder Experten des Problembereichs zu unterstützen.
  3. Einen Ausgangspunkt für die Implementierung zu bilden und die Erzeugung lauffähigen Codes zu erleichtern.

Beim Aufstellen der Modelle werden Modellierungssprachen verwendet. Eine Modellierungssprache definiert.

  • eine Menge von Modellierungskonzepten , aus denen Modelle zusammengesetzt werden. Bei der Datenmodellierung mit ER-Modellen [2] sind dies zum Beispiel Entitätstypen, Attribute, Beziehungstypen und Subtyp-Beziehungen.
  • Darstellungen für diese Konzepte. Modelle werden meist graphisch dargestellt (ER-Diagramme). In vielen Fällen sind aber auch baumartige oder tabellarische Darstellungen sinnvoll.

Neben den verbreiteten Modellierungsansätzen sind oft auch spezielle sinnvoll, die an bestimmte Problembereiche angepasst sind. Der Vorteil spezieller Modelle ist, dass sie die Konzepte des Problembereichs direkt verwenden, und so die Lösung eines gegebenen Problems im Problembereich selbst beschrieben werden kann. Somit muss die Lösung nicht in eine separate Modellierungsdomäne und auf die dort vorhandenen Konzepte (etwa UML-Konzepte) übertragen werden. Sie kann von den Experten besser verstanden werden und zu höherer Produktivität und Qualität beitragen [6].

Domänenspezifische Modellierung

Die Verwendung problem- oder domänenspezifischer Modelle wird auch domain-specific modeling [5] genannt. Das erstellte Modell kann auch direkt zur Code-Generierung genutzt werden, da alle Elemente des Modells eine klar definierte Semantik besitzen und so auf Komponenten oder Funktionen des zu entwickelnden Systems abgebildet werden können.
Die Erstellung und Bearbeitung der Modelle ebenso wie die Code-Generierung setzen natürlich passende CASE-Werkzeuge voraus. Da sich die Entwicklung solcher Werkzeuge nur lohnt, wenn hinreichend viele Anwender und Käufer zu erwarten sind, werden nur wenige Problembereiche direkt durch Werkzeuge unterstützt. Beispiele sind die Anwendungsentwicklung auf Basis von Geschäftsprozess-Modellen oder die Entwicklung zustandsbasierter Systeme. Besonderheiten von speziellen Anwendungsbereichen, von den zu entwickelnden Produkten oder den Firmen, die die Entwicklung durchführen, können dabei natürlich nicht berücksichtigt werden.
Glücklicherweise sind die Unterschiede zwischen den Werkzeugen für verschiedene Modellierungssprachen eher gering. Die Werkzeuge unterscheiden sich in
  • den angebotenen Konzepten. Das interne Datenmodell des Werkzeugs muss die entworfenen Modelle verwalten können.
  • den Darstellungen der Modelle. Möglich sind Diagramme, Tabellen, Baumdarstellungen oder Listen. Die Diagramme sind meist netzartig aufgebaut, enthalten also Elemente, die mit Linien verbunden werden.
  • den Konsistenztests, mit denen die Korrektheit des erstellten Modells geprüft werden kann.
  • den Funktionen zum Erzeugen abgeleiteter Dokumente, etwa Quelltexte oder Dokumentationen im HTML-Format.

Modelle

Mit CASE-Werkzeugen werden Modelle des zu entwickelnden Systems erstellt. Das Modell, das das CASE-Werkzeug zur Verwaltung der Modelle verwendet, heißt daher Meta-Modell . Diese Meta-Modelle können mit CASE-Werkzeugen selbst erstellt. Das Modell eines Meta-Modells wird daher Meta-Meta-Modell oder M2-Modell genannt [1]. M2-Modelle basieren meist auf dem ER-Modell. Ein universelles M2-Modell wird als Graph aufgefasst und besteht laut [4] aus den Elementen:
  • node , einer Repräsentation eines eigenständigen Diagramm-Elements.
  • link , einer Beziehung zwischen genau zwei nodes .
  • grouper , einer Menge von nodes und der zugehörigen links .

Unten sind die Modellierungsstufen mit Beispielen und den eingesetzten Werkzeugen dargestellt. Die Werkzeuge überspannen jeweils zwei Stufen, angedeutet durch die Klammern in der Abbildung: Die höhere Stufe beschreibt das Modell, mit dem die Werkzeuge arbeiten, die niedrigere die Instanzen des Modells. Wichtig ist, dass Meta-Modelle meist in der Syntax der Modelle beschrieben werden. So wird das Meta-Modell der Unified Modelling Language (UML) im Wesentlichen durch UML-Klassendiagramme beschrieben.

Meta-Meta-Modell
Meta-Modell
Modell
Instanz, Applikation

 

 

Fujaba

Fujaba ist ein UML Entwicklungswerkzeug, das es erlaubt aus einem Modell lauffähigen Java Quelltext zu generieren und zu visualisieren. Insbesondere können Modellierungssprachen mit Fujaba spezifiziert werden. Zusätzlich zu Klassendiagrammen erlaubt Fujaba die Spezifikation von Methoden durch so genannte Story-Diagramme. Der Kontrollfluss einer Methode wird in Story-Diagrammen durch Aktivitätsdiagramme spezifiziert. Innerhalb einer Aktivität kann ein Story-Pattern stehen, was eine Objektstrukturmodifikationsoperation ist.

Fujaba ist ein Open Source Produkt, dass unter http://www.fujaba.de verfügbar ist. Generell existieren zwei Versionen von Fujaba. Die aktuelle Version ist über die o.a. WWW-Seite verfügbar. Das dort befindliche Material wie Dokumentation etc. bezieht sich zur Zeit auf die Version 4.x. Aus einem Projekt, in dem Fujaba in der Lehre eingesetzt worden ist und das insbesondere in der graphischen Benutzeroberfläche und Handhabung verbessert worden ist, ist die Fujaba-Life Version entstanden. Diese Version wird nicht mehr weiter entwickelt, ist aber für den ersten Kontakt besser geeignet als die aktuelle Version. Zusätzlich zur Life-Version gibt es unter http://life.upb.de weiterführende Materialen und einfache Beispiele, die für das Selbststudium sehr gut geeignet sind.

Die Aufgaben, die zu Lösen sind stehen hier.

Literaturverzeichnis

1
M. Jeusfeld, M. Jarke, H. Nissen, and M. Staudt.
ConceptBase - Managing Conceptual Models about Information Systems.
In P. Bernus, K. Mertins, and G. Schmidt, editors, Handbook on Architectures of Information Systems. Springer-Verlag, 1998.
2
U. Kelter.
Datenmodellierung mit ER-Modellen.
Universität Siegen, Fachgruppe Praktische Informatik, 2002.
http://pi.informatik.uni-siegen.de/kelter//lehre/02w/lm/lm_dmer_20021105_info.html.
3
U. Kelter.
Systemanalyse und Systemmodellierung.
Universität Siegen, Fachgruppe Praktische Informatik, 2002.
http://pi.informatik.uni-siegen.de/kelter//lehre/02w/lm/lm_sasm_20020108_info.html.
4
G. Manson, S. North, and A. Alghamdi.
Core Objects Required for a Generic CASE Repository.
In Method Engineering pages 186-190.
5
MetaCASE Consulting.
Domain-specific Modelling: 10 Times faster than UML.
Technical report, MetaCASE Consulting, Finland, http://www.metacase.com/papers/index.html, Jan. 2001.
6
MetaCASE Consulting.
MetaEdit+ Revolutionized the Way Nokia Develops Mobile Phone Software.
Technical report, MetaCASE Consulting, Finland, http://www.metacase.com/papers/index.html, 2002.

last edited 22. April 2004 by Jörg Niere