Teilaufgabe 1 - Praktische Informatik

Werbung
Timo Kehrer • Maik Schmidt • Fachgruppe Praktische Informatik • Fachbereich 12 • Hölderlinstr. 3 • 57068 Siegen
Softwaretechnik II, SS 2009
Modellgetriebene Softwareentwicklung mit EMF
(Teil 1)
Einführung
Gegenstand dieser Übungsaufgabe ist die Übersetzung von Analyse-Datenmodellen in geeignete Schemadefinitionen eines relationalen Datenbankmanagementsystems (RDBMS). Eine solche Transformation ist eine der häufigsten Aktivitäten im Rahmen eines Software-Entwicklungsprozesses. Wird das
Analyse-Datenmodell in einer geeigneten Modellierungssprache erfasst, so lässt sich diese Transformation automatisieren. Die der Transformation zu Grunde liegenden Transformationsregelen ergeben sich
aus den Abbildungsregelen objektorientierter Analyse-Datenmodelle auf die Tabellendefinitionen eines
relationalen Datenbankschemas. Die Transformationsregeln beinhalten dabei bereits Entwurfsentscheidungen. Den Transformator bezeichnet man aufgrund der Generierung der Tabellendefinitionen auch
als Generator. Das Paradigma der Generierung verschiedenster Artefakte eines Software-Systems auf
Basis von Modellen wird auch als modellgetriebene Softwareentwicklung (MDSE) bezeichnet. Die Entwicklung eigener Transformatoren/Generatoren stellt eine der zentralen Herausforderungen der MDSE
dar.
Grundlagen
Für eine automatisierte Transformation ist es notwendig, dass der Generator sowohl die Struktur der
einzulesenden Analyse-Datenmodelle, als auch den syntaktischen Aufbau der zu generierenden Tabellendefinitionen kennt.
Die Struktur eines Modells wird im Rahmen der Modellierung in der Software-Technik meist durch
ein Meta-Modell festgelegt, welches die Regeln zur Bildung syntaktisch korrekter Modelle festlegt. Ein
Meta-Modell ist somit nichts anderes als ein Modell, das wiederum ein Modell beschreibt. Prinzipiell können wir Meta-Modelle also auch wiederum als Datenmodelle auffassen. Die zu modellierenden
Nutzdaten stellen in unserem Fall ER-Modelle dar, weshalb wir das zu erstellende Meta-Modell im
Folgenden als ER-Modell-Datenmodell bezeichnen. Zur Spezifikation der Tabellendefinitionen verwenden wir die Structured Query Language (SQL). SQL ist eine Datenbanksprache zur Definition, Abfrage
und Manipulation von Daten in relationalen Datenbanken. Im Rahmen dieser Übung ist lediglich der
Sprachanteil zur Definition eines Datenbankschemas (Data Definition Langauge, kurz DDL) relevant,
wobei wir auch hier nur eine Teilmenge aller existierenden DDL-Befehle benötigen werden. Abbildung
1 skizziert die an unserer Transformation beteiligten Komponenten und deren Beziehungen.
Abbildung 1: Beteiligte Komponenten und deren Beziehungen
Vorgehen
Das Vorgehen zur Bearbeitung der Übungsaufgabe lässt sich in folgende Schritte untergliedern, welche
in mehreren Iterationen durchlaufen werden können und in separaten Aufgabenblättern konkretisiert
werden:
• Schritt 1: Definition eines geeigneten ER-Modell-Datenmodells (Meta-Modell)
• Schritt 2: Erstellung eines exemplarischen Analyse-Datenmodells
• Schritt 3: Implementierung des Generators in Java
Schritt 1: Definition eines Datenmodells für ER-Modelle
In diesem Schritt soll ein geeignetes Meta-Modell zur Festlegung der wichtigsten Konzepte von ERModellen definiert werden. Ein solches Meta-Modell können wir wiederum als Datenmodell auffassen,
weshalb wir dieses als ER-Modell-Datenmodell bezeichnen. Dieses soll die Struktur syntaktisch korrekter ER-Modelle beschreiben. Die zu modellierenden Nutzdaten stellen in diesem Fall ER-Modelle
dar.
Die Modellierungssprache Ecore
Mit Hilfe von EMF können beliebige Datenmodelle in der von EMF bereit gestellten Modellierungssprache Ecore erstellt werden. Die Syntax des grafischen Diagramm-Editors ist dabei an die aus der
UML bekannten Klassendiagramme angelehnt. Die wichtigsten Modellierungs-Konstrukte sind Klassen
(EClass), Attribute (EAttribute) und Assoziationen/Kompositionen (EReference). Weiterhin spezifiziert
Ecore eine Menge elementarer Datentypen. Im Rahmen dieser Übungsaufgabe werden die beiden Datentypen EString und EInt verwendet. Ein weiteres nützliches Element der Modellierungssprache Ecore
ist die Enumeration (EEnum), für welche eine Menge an Enumerations-Literalen (EEnumLiteral) spezifiziert werden kann.
Das ER-Modell-Datenmodell
Unser ER-Modell-Datenmodell soll die folgenden Eigenschaften besitzen: Ein ER-Modell hat einen Namen und besteht aus Entitätstypen und Beziehungstypen. Entitätstypen haben einen Namen und besitzen
Attribute. Wir vereinfachen unsere ER-Modelle dahingehend, dass genau ein Attribut den Primärschlüssel einer Entität darstellt. Attribute haben einen Namen und einen Datentyp, wobei wir uns auf die
elementaren Datentypen String, Number und Date beschränken wollen. Ein Beziehungstyp, welcher
ebenfalls einen Namen hat, setzt sich aus einer beliebigen Anzahl (mindestens jedoch 2) an Rollen zusammen. Über eine Rolle wird genau eine Entität referenziert. Darüber hinaus kann einer Rolle ein Name
und eine Kardinalität zugeordnet werden. Als mögliche Kardinalitäten für Beziehungstypen beschränken
wir uns auf die Werte 1 („zu-1-Beziehung“) und -1 („zu-n-Beziehung“).
Erstellen Sie ein ERDataModel mit Hilfe des durch EMF bereit gestellten Diagramm-Editors zur Spezifikation von Ecore-Modellen.
Schritt 2: Erstellung eines exemplarischen ER-Modells
Konkrete Nutzdaten, in unserem Fall also ER-Modelle, können ebenfalls in einem von EMF bereit gestellten Editor spezifiziert werden. EMF stellt dabei sicher, dass nur syntaktisch korrekt aufgebaute ERModelle (korrekt im Sinne unseres bereits definierten ER-Modell-Datenmodells) erstellt werden können.
Die zu modellierende fachliche Domäne wird ein Fußballspiel sein, weshalb wir das zu erstellende ERModell im Folgenden als Fussball-ER-Modell bezeichnen. Es soll folgenden Anforderungen genügen:
Als durch einen Eintitätstyp zu modellierende Entitäten betrachten wir Spieler, Mannschaften und Spiele. Spieler und Mannschaften können anhand ihres Namens eindeutig identifiziert werden. Ein Spiel
kann anhand einer Kennziffer eindeutig identifiziert werden und soll durch weitere Eigenschaften wie
bspw. den Endstand näher beschrieben werden können. Darüber hinaus sollen folgende Beziehungen
erfasst werden. Spieler können als Mitglieder einer Mannschaft zugeordnet werden, wobei jeder Spieler
nur bei höchstens einer Mannschaft spielen darf. Einer Mannschaft gehört somit eine unbestimmte Anzahl an Spielern an. Eine 3-stellige Beziehung ordnet einem Spiel genau eine Mannschaft als Heim- und
eine als Auswärts-Mannschaft zu. Weiterhin sollen alle durch eine Beziehung zwischen Spielern und
Spielen alle Torschützen eines Spiels erfaßt werden.
Erstellen Sie ein Fussball-ER-Modell mit Hilfe des EMF-eigenen, generischen Modell-Editors zur Bearbeitung von Instanzen eines Ecore-Modells. Dieser erlaubt es, Instanzen eines Datenmodells auf Grundlage eines Ecore-Modells zu erzeugen.
Anmerkungen
Eine Einführung zur Arbeit mit EMF, weiterführende Literaturhinweise sowie ein Eclipse Projekt-Gerüst
zur Bearbeitung der Übungsaufgabe finden Sie unter der folgenden URL:
http://pi.informatik.uni-siegen.de/Mitarbeiter/mschmidt/lehre/SS09/ST2/
Herunterladen