Technische Universität München
Fakultät für Informatik
Prof. Dr. Helmut Seidl
Riitta Höllerer
Praktikum des Übersetzerbaus WS 2004:
Generierung von Benutzungsoberflächen
Aufgabenblatt 8
16. Juni 2004
15. Aufgabe (DB-Emugen)
Das Werkzeug DB-Emugen ist eine Emugen-Version, die aus der Spezifikation des Datenmodels
und eines damit verbundenen Datenbankmodels eine Benutzungsoberfläche mit Datenbankanbindung erzeugt,
d.h. dass die Formulardaten nicht nur wie bisher in XML-Format abgespeichert und gelesen werden
können, sondern auch in eine Datenbank in Tabellen abgespeichert und aus den Tabellen
wieder eingelesen werden können.
Das Werkzeug ist von Herrn Matthias Assel als Systementwicklungsprojekt unter der Betreuung
von Herrn Brandl und von Frau Höllerer im ersten Halbjahr 2004 erstellt worden.
Holen Sie sich DB-Emugen und die Dokumentation von
EMUDBMapper.zip und
Ausarbeitung.pdf
und machen Sie sich mit dem Werkzeug vertraut. Die Spezifikation des EMU-Datenmodels
und des Datenbankmodels wird nicht textuell als eine *.emu Datei angegeben
sondern in einer bequemen Oberfläche, die natürlich wiederum mit Emugen generiert wurde,
spezifiziert. So wie wir es in den Aufgaben 5 und 14 (Oberfläche für Emugen) auch gemacht haben.
Erstellen Sie für das in der Dokumentation angegebene Beispiel
von Personen mit verschiedenen Wohnorten eine Benutzungsoberfläche mit DB-Emugen und füllen Sie
die Listen mit Daten. Es werden dabei zwei Oberflächen benutzt: DB-Emugen Oberfläche
mit der Sie Ihre Applikation (Personen mit Verschiedenen Wohnorten und die entsprechenden
Datenbanktabellen) spezifizieren und die von DB-Emugen erzeugte Oberfläche mit Datenbankanbindung,
in der Sie Ihre Freunde mit Adressen eintragen und in die Datenbank speichern können.
Hinweise:
-
Wenn Sie EMUDBMapper.zip mit unzip ausgepackt haben wird der DB-Emugen einfach mit ant run
gestartet. Sie müssen, bevor Sie Ihre eigene Oberfläche für ihr Beispiel generieren,
unter DBProperties die Datenbank, Host, Username und Passwort angeben. Diese Daten werden für die Generierung benötigt. Wir haben eine MySQL-Datenbank zur verfügung gestellt. Die Angaben dazu werden in der Praktikumsbesprechung angegeben.
- Die erste Produktion im Datenmodell muss eine Liste sein, d.h. im Beispiel Personen würde die Textuelle Eingabe folgendermaßen beginnen:
Personen::= Person*
Person::= ...
- Die Angaben über die Datenbank müssen Sie auch bei der generierten
Oberfläche, unter Button Settings machen und sich dann mit Connect die Datenbankverbindung herstellen
lassen. Danach Close und Sie können die Daten eintragen (evtl. wenn New und Edit immer noch grau unterlegt sind
Load drücken; danach sind New und Edit freigeschaltet).
Geben Sie als Lösung der Aufgabe
- eine mit Code2Html erzeugte Datei,
die die XML-Ausgabe Ihrer Spezifikation aus der DB-Emugen Oberfläche enthält und
fügen Sie hinzu: ein Screenshot der DB-Emugen Oberfläche mit Ihrer Spezifikation
und ein Screenshot der
erzeugten Oberfläche für die Personendaten (mit Daten gefüllt).
-
Zusätzlich geben Sie noch die XML-Ausgabe der Spezifikation aus der DB-Emugen Oberfläche
Personen.xml und die lauffähige Applikation PersonenExecutable.jar
ab.
16. Aufgabe (Finale: DB-Emugen Erweiterungen)
In dieser Aufgabe werden
verschiedene Erweiterung von DB-Emugen und ein komplexes Beispiel realisiert.
Jede Gruppe realisiert eine der folgenden Abschlussaufgaben. Die Erweiterungen werden zusammengeführt und
in der Abschlusspräsentation am 21. Juli 2004 erläutert und durch das Beispiel demonstriert.
Abschlussaufgaben:
- Komplexes Beispiel für das erweiterte DB-Emugen, z.B. eine Applikation Prüfungsanmeldung,
die als ein Applet zur Verfügung gestellt wird. Die Studenten können dann von verschiedenen Rechnern aus
sich anmelden und ihre Daten in die Anmeldungsdatenbank speichern lassen.
- Hizufügen der Aktion "Delete" zu den generierten Oberflächen.
Dafür sollte man die Sourcen
- EMUDBMapper/src/emudbbinding/codegen/EMUStartEmitter.java
und
- EMUDBMapper/src/emudbbinding/util/SQLConnector.java
anschauen und im ersteren JButton Delete und zu den Aktionen Delete
hinzufügen und im zweiten die entsprechende delete-Methode hinzufügen.
- Zu der generierten Oberfläche ein Textfeld hinzufügen, in der der Benutzer direkt
SQL-Queries angeben und ausführen lassen kann (nur select, insert und delete, aber mit where-Teilen).
- Export/Import von *.emu Dateien (d.h. nur EMUDatenmodell) in DB-Emugen Oberfläche. Export existiert schon, die Datei wird nur nach der Generierung gelöscht. Für den Import muss man die Eingabe
parsen (s. Aufgaben 7,10,12,13,14), die Werte in die Listen der Oberfläche eintragen und die Oberfläche aktualisieren (fireChangeEvent im TreeFrame).
Termine:
- Abgabetermin für Aufgabe 15: Mittwoch, 23. Juni 2004, 9:00
- Die Lösungen zur obigen Abschlussaufgaben müssen bis 14. Juli fertig sein.
- Die Präsentation findet am 21 Juli 2004 statt.
- Praktikumsbesprechungen finden weiterhin jeden Mittwoch statt.