Ausarbeitung - Universität Paderborn

Transcription

Ausarbeitung - Universität Paderborn
Diplomarbeit
Eine visuelle Sprache zur
Konfiguration der Datenverwaltung
von Lehrveranstaltungen
vorgelegt bei
Herrn Prof. Dr. Uwe Kastens
Jana Schäfer
Fakultät für Elektrotechnik, Informatik und Mathematik
der Universität Paderborn
Paderborn, April 2006
Danksagung
An dieser Stelle möchte ich allen danken, die mich bei der Erstellung dieser Arbeit
unterstützt haben. Mein erster Dank geht an Prof. Dr. Uwe Kastens, der diese Diplomarbeit ermöglicht und durch wertvolle Hinweise zum Gelingen dieser Arbeit beigetragen
hat. Herrn Dr. Carsten Schmidt möchte ich meinen besonderen Dank aussprechen, weil
er mich in jeder Phase der Arbeit sehr sachkundig und richtungsweisend begleitete und
viel Geduld zeigte. Ich bedanke mich bei all denen, die meine Diplomarbeit durch Korrekturlesen verbessert haben.
Mein besonderer Dank gilt meiner Familie für Verständnis und Aufmunterung zu jeder Zeit.
Inhaltsverzeichnis
Inhaltsverzeichnis
1 Einleitung
2
2 Grundlagen
2.1 Aspektorientierte Programmierung . . . . . . . . . . . . . . . . . . . . .
2.2 Visuelle Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Klassifikation des Gebiets der visuellen Programmierung . . . . . . . . .
2.4 DEViL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Das StudInfo{flex}-System . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1 StudInfo{flex} aus Benutzersicht . . . . . . . . . . . . . . . . . .
2.5.2 Konfiguration und Benutzung von StudInfo{flex}-Veranstaltungen
4
4
6
7
9
17
17
18
3 Sprachentwurf
3.1 Anforderungen . . . . . . . . . . . . . . . . . . . . . . .
3.2 Überblick über die Sprache . . . . . . . . . . . . . . . . .
3.3 Grundsätzliche Entwurfsüberlegungen . . . . . . . . . . .
3.4 Aspekte . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Konfiguration der Weboberfläche im Studierendenmodul
3.6 Datenerfassung . . . . . . . . . . . . . . . . . . . . . . .
3.7 Permissions . . . . . . . . . . . . . . . . . . . . . . . . .
3.8 Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9 Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10 Tabellenmodellierung . . . . . . . . . . . . . . . . . . . .
3.11 Tutoren-Logins . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
28
28
29
30
31
34
37
39
42
44
45
47
.
.
.
.
49
49
51
51
52
.
.
.
.
.
.
.
.
.
.
.
4 Realisierung
4.1 Konfigurationsprozess einer StudInfo{flex}- Veranstaltung
4.2 Generierung von Datenbankschlüsseln . . . . . . . . . . . .
4.3 Aktualisierbarkeit einer laufenden Veranstaltung . . . . . .
4.4 Konsistenzprüfungen . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Evaluation
55
5.1 Grundlagen der Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Umsetzung der Standardveranstaltung . . . . . . . . . . . . . . . . . . . 56
5.3 Kontrolliertes Experiment . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6 Zusammenfassung
61
1
1 Einleitung
1 Einleitung
Universitätsveranstaltungen mit vielen Teilnehmern erfordern einen großen Verwaltungsaufwand. Studierende müssen gleichmäßig auf Übungsgruppen verteilt werden, Korrektoren von Hausaufgaben müssen Listen mit erreichten Punkten abliefern und Klausuren
müssen geplant und durchgeführt werden. Dadurch entstehen wachsende Anforderungen
an effiziente Datenhaltung und -verarbeitung. StudInfo{flex} [4] ist ein System, welches
den Beteiligten ermöglicht, die Teilnehmerdaten von Lehrveranstaltungen an der Universität Paderborn prozessbegleitend und unter Berücksichtigung des Datenschutzes zu
verwalten. Es stellt eine Web-Schnittstelle zur Verfügung, mit der Studierende, Veranstalter und Tutoren die jeweils für sie wichtigen Daten einer Veranstaltung einsehen und
ändern können. Das zugrundeliegende Datenbankschema sorgt für hinreichende Flexibilität in Bezug auf individuelle Anforderungen unterschiedlicher Lehrveranstaltungen.
Entsprechende Einstellungen werden dort in so genannten Konfigurationstabellen gespeichert.
Standardmäßig ist das StudInfo{flex}-System auf Veranstaltungen mit vielen Teilnehmern ausgelegt. Für solche Veranstaltungen werden Übungen und am Ende des Semesters schriftliche Klausuren angeboten. Einfache Änderungen, wie der Name der Veranstaltung oder des Professors, lassen sich ganz einfach durchführen. Andere Erweiterungen
oder Änderungen, wie zum Beispiel eine Veranstaltung mit einer mündlichen Prüfung
anstelle von Klausuren, können ohne SQL- und Datenbankkenntnisse nicht umgesetzt
werden. Die in der Datenbank in Tabellen gespeicherte Konfiguration ist in bestehender Form nicht intuitiv verständlich und die daraus resultierenden Konfigurationsfehler
werden erst zur Laufzeit erkannt.
Seit Ende der 70er Jahre wird intensiv nach Möglichkeiten gesucht, Programme verständlicher sowie die Programmierung leichter und damit für Anwender zugänglicher zu machen. Es ist bekannt, dass dem Menschen komplexe Zusammenhänge und Abläufe häufig
besser über anschauliche visuelle Elemente als über eine abstrakte Beschreibung vermittelt werden können. So kann die Erstellung eines Programms durch das Zusammensetzen
verschiedener visueller Elemente erfolgen.
In dieser Diplomarbeit soll eine visuelle Sprache zur Konfiguration des StudInfo{flex}Systems entwickelt werden, die die Konfiguration einer Veranstaltung einfacher und
intuitiver macht. Ein wichtiges Entwurfsziel der Sprache ist die Unterstützung aspektorientierter Spezifikation. Dabei wird die StudInfo{flex}-Konfiguration nach bestimmten
Kriterien in verschiedene Teilfunktionalitäten (Aspekte) zerlegt. Diese Aspekte können
bei jeder neuen Veranstaltung von den Administratoren beliebig zusammengesetzt, neu
angelegt und entsprechend angepasst werden. Es soll ebenfalls möglich sein, eine Teil-
2
1 Einleitung
konfiguration, zum Beispiel für die Übungsverwaltung, von einer Konfiguration in eine
andere zu übernehmen.
Die Implementierung der visuellen Sprache wird mit Hilfe des DEViL-Systems entwickelt. Mit dieser visuellen Sprache können Benutzer neue StudInfo{flex}-Veranstaltungen
konfigurieren, ohne direkt mit der Datenbank interagieren zu müssen.
Diese Diplomarbeit ist in sechs Kapitel unterteilt. Nach der Einführung in diesem Kapitel werden im zweiten Kapitel theoretische und technische Grundlagen für alle weiteren
Überlegungen vorgestellt. Im dritten Kapitel wird die zu implementierende visuelle Sprache entworfen und detailliert beschrieben. Im vierten Kapitel wird auf Realisierungsaspekte der implementierten visuellen Sprache eingegangen. Das fünfte Kapitel beschreibt die Evaluation anhand der Anwendbarkeit des vorher vorgenommenen Entwurfes und die Nutzbarkeit der konkreten Implementierung. Abschließend beinhaltet
das sechste Kapitel eine Zusammenfassung der Erkenntnisse.
3
2 Grundlagen
2 Grundlagen
In diesem Kapitel werden Grundlagen der aspektorientierten und visuellen Programmierung erläutert. Im Falle der aspektorientierten Programmierung wird insbesondere die
Bildung von Aspekten verdeutlicht. Bei der visuellen Programmierung werden die wichtigsten Begriffe erklärt um nachfolgende Überlegungen verständlicher zu machen. Die
darauf folgende Klassifikation zeigt die Einteilung visueller Programmierung in verschiedene Bereiche. Die abschließenden Abschnitte dieses Kapitels beschreiben Grundlegendes
zum Generator DEViL [1] und das StudInfo{flex}-System. Dabei werden die einzelnen
Ebenen des StudInfo{flex}-Systems genau untersucht.
2.1 Aspektorientierte Programmierung
Seit dem es Programmiersprachen gibt, werden immer wieder neue Ansätze zur Verbesserung entwickelt, angefangen bei der Programmierung in Assembler über prozedurales
und funktionales Programmieren, bis hin zu objektorientierten Sprachen. Zweck der
Weiterentwicklung jeder einzelner Sprache war es, den Entwicklern die Arbeit zu erleichtern und somit höhere Effizienz bei der Softwareentwicklung zu erzielen. Eines der
zugrunde liegenden Prinzipien, welches bei allen neuen Programmierkonzepten angewendet wird, ist die Kapselung von Funktionalität [7].
Bei der Umsetzung komplexer technischer Aufgaben geht man häufig nach dem Prinzip
devide et impera“ vor, was bedeutet: teile eine Aufgabe in kleine, überschaubare Kom”
ponenten auf und betrachte jede Komponente für sich. Damit wird die Komplexität in
einer Komponente reduziert und die Aufgabe leichter lösbar [6]. Das kann auf verschiedene Arten geschehen, beispielsweise prozedural oder objektorientiert [7]:
• Prozedurale Programmierung erlaubt die Strukturierung vom Code nur in einer
Dimension: Die Zerlegungen in Unterprogramme ermöglichen eine geringe Strukturierung.
• Objektorientierte Programmierung (OOP) erweitert die prozedurale Programmierung um Objekte. OOP erlaubt die Kapselung konzeptionell zusammengehöriger
Funktionen und Variablen in unabhängigen Modulen (Objekten) mit klar definierten Schnittstellen. Ziel ist eine stärkere Strukturierung und eine höhere Wiederverwendbarkeit einzelner Module.
Die Art der Zerlegung einer Aufgabe mit objektorientierter Programmierung ist für viele
Aufgabenstellungen gut geeignet, weil man viele Probleme gut und natürlich mit Hilfe
von Objekten ausdrücken kann. Manchmal gibt es jedoch Probleme: die Aufgabenteile
4
2 Grundlagen
schneiden gewissermaßen mitten durch das Objektmodell und lassen sich nicht ordentlich
herausfaktorisieren. In solchen Fällen kann das Problem mit Hilfe von aspektorientierter
Programmierung, die OOP um eine Dimension, nämlich die Aspekte, erweitert, gelöst
werden. Aspektorientierte Programmierung ist wie folgt definiert:
Aspektorientierte Programmierung ist ein Programmierparadigma, um räumlich getrennte Programmbestandteile (zum Beispiel Funktionen) von zentraler Stelle mit bestimmten Eigenschaften (zum Beispiel die Protokollierung
von Aufrufen) auszustatten. Dazu werden so genannte Aspekte definiert.
Aspektorientierte Programmierung basiert hinsichtlich Entwurf und Implementierung
auf Konzepten, die den oft hochgradig verschachtelten Code entzerren und die CodeTeile, die viele Klassen gemeinsam haben, in eigene Klassen auslagert. Dies ermöglicht
eine hohe Modularität des Codes und vermeidet insbesondere doppelten Code [9]. Die
Aspekte kapseln Eigenschaften und Anforderungen eines Softwaresystems, die das System an mehreren Stellen beeinflussen und somit durchdringen. Ein Aspekt sollte einen
möglichst kompakten, starken Zusammenhalt aufweisen und gleichzeitig möglichst wenig mit anderen Aspekten zu tun haben [6]. Aspektorientierte Programmierung ist keine
definierte Methode, die aus einer klar definierten Semantik einen minimalen Satz von
Softwareartefakten herleitet, welche dann die Programmiersprachen umsetzen. Aspektorientierte Programmierung besitzt keine vorgegebene Sprachstruktur. Stattdessen werden die Eigenschaften eines Softwaresystems in Anliegen oder Merkmalen modelliert [5].
Die Aspektbildung spielt bei der Entwicklung von Softwaresystemen eine zentrale Rolle. Man spricht auch von der Trennung der Verantwortlichkeiten ( Separation of Con”
cerns“). Mit der Bildung von Aspekten soll durch aspektorientierte Programmierung die
Komplexität von Software besser bewältigt und die Wiederverwendung von Komponenten verbessert werden [5].
Das Konzept der aspektorientierten Programmierung soll beim Entwurf der visuellen
Sprache für das StudInfo{flex}-System verwendet werden. Eine StudInfo{flex}-Konfiguration wird in einzelne unabhängig funktionierende Aspekte, zum Beispiel Studenten und Übungsverwaltung, aufgeteilt. Falls bei der Konfiguration einer neuen StudInfo{flex}-Veranstaltung Aspekte gebraucht werden, die schon in einer früheren StudInfo{flex}-Veranstaltung angelegt wurden, können diese einfach in die neue Konfiguration übernommen werden. Dies ermöglicht die Wiederverwendung von einzelnen Aspekten und erleichtert die Erstellung neuer StudInfo{flex}-Konfigurationen.
5
2 Grundlagen
2.2 Visuelle Programmierung
In diesem Abschnitt werden Definitionen aus der Literatur zu zentralen Begriffen der
visuellen Programmierung erklärt.
Der Begriff visuell“
”
Der Begriff visuell“ bedeutet im Allgemeinen das Sehen“ oder den Gesichtssinn be”
”
”
treffend“ und bezeichnet somit eine bestimmte Wahrnehmungsart. Diese Wahrnehmung
bezieht sich nicht nur auf graphische Elemente, sondern auch auf sichtbaren Text, wie
etwa ein Piktogramm. Ein Beispiel dafür ist das visuelle Gedicht Schweigen“ (Abbil”
dung 1) von Eugen Gomringer [2], welches die visuelle Dichtung darstellt:
schweigen
schweigen
schweigen
schweigen
schweigen
schweigen
schweigen
schweigen
schweigen
schweigen
schweigen
schweigen
schweigen
schweigen
Abbildung 1: Schweigen“
”
Der Begriff visuelle Sprache“
”
Chang [2] schreibt, dass der Begriff visuelle Sprache“ unterschiedlich verstanden wird:
”
Der Begriff visuelle Sprache hat für verschiedene Personen unterschiedliche
Bedeutung. Einige verstehen darunter, dass die Sprache visuelle Objekte erfasst. Andere verstehen darunter, dass die Sprache selbst visuell ist. Für die
erste Gruppe heißt visuelle Sprache“ eine Sprache für die Verarbeitung vi”
sueller Informationen. Für die zweite Gruppe heißt visuelle Sprache“ eine
”
Sprache für die Programmierung mit visuellen Ausdrücken bzw. eine visuelle
Programmiersprache.
Die Sprachen für die Verarbeitung visueller Informationen beruhen auf verbaler Syntax,
was bedeutet, dass diese Sprachen textuelle Sprachen sind. Der Name visuelle Sprache“
”
ist in diesem Zusammenhang irreführend, denn eine Sprache ist nur dann visuell“, wenn
”
sie visuelle Sprachelemente enthält.
6
2 Grundlagen
Der Begriff visuelle Programmierung“
”
Eine eindeutige Definition für visuelle Programmierung ist in der Literatur schwer zu
finden. Burnet und McIntyre [2] erklären die visuelle Programmierung folgendermaßen:
Bei visueller Programmierung verwendet man visuelle Ausdrücke, wie Diagramme, Freihandskizzen, Piktogramme oder sogar graphische Manipulationen. Wenn die Syntax einer Programmiersprache solche Ausdrücke enthält,
dann wird sie eine visuelle Programmiersprache genannt.
Visuelle Programmierung unterstützt also die Softwareentwicklung, um sie intuitiver
und einfacher zu machen. Das Ziel visueller Programmierung ist die Steigerung der
Verständlichkeit von Programmen und die Erleichterung der Programmierung selbst.
Mit Hilfe der visuellen Programmierung sollen Benutzer Anwendungen selbstständig erstellen können ohne professionelle Programmierkenntnisse zu haben. Visuelle Sprachen
sollen dabei helfen komplexe Zusammenhänge darzustellen und Teile eines Programms
schneller zu erfassen.
Bei visueller Programmierung werden visuell informative Elemente verwendet. Es sind
nach Schiffer [2] solche Komponenten, die nur visuell wahrgenommen werden können,
wie zum Beispiel:
• graphische Komponenten (Diagramme, Piktogramme, Farben etc.),
• geometrische Attribute (Form, Größe, Seitenverhältnisse etc.),
• topologische Eigenschaften (Verbindungen, Überlagerungen, Berührungen etc.),
• typographische Merkmale (Schriftart, Seitengestaltung, Einrückungen etc.).
2.3 Klassifikation des Gebiets der visuellen Programmierung
Es existieren in der Literatur viele unterschiedliche Klassifikationen für die visuelle Programmierung. Hier wird eine der bekanntesten Klassifikationen von Shu [2] vorgestellt.
Shu unterscheidet zwei grundlegende Bereiche für die visuelle Programmierung: visuelle Umgebungen und visuelle Sprachen. Visuelle Umgebungen umfassen
• die Visualisierung von Daten oder Informationen über Daten
• die Visualisierung von Programmen und der Programmausführung
7
2 Grundlagen
• die Visualisierung von Softwaredesign und
• visuelles Instruieren.
Der Bereich visuelle Sprachen umfasst
• Sprachen zur Bearbeitung visueller Informationen
• Sprachen zur Unterstützung visueller Interaktion
• visuelle Programmiersprachen basierend auf Diagrammen
• visuelle Programmiersprachen basierend auf Formularen.
Die ersten beiden Kategorien der visuellen Sprachen umfassen beliebige Programmiersprachen, die nur visuelle Informationen verarbeiten. Die visuelle Programmierung wird
von den letzten zwei Kategorien in diesem Bereich erlaubt.
Abbildung 2 zeigt die Klassifikation für visuelle Programmierung nach Shu. Hier wird
die Trennung von den oben genannten Bereichen deutlich dargestellt.
Abbildung 2: Klassifikation für visuelle Programmierung nach Shu
Die in dieser Diplomarbeit zu entwerfende visuelle Programmiersprache zur Konfiguration der Datenverwaltung von Lehrveranstaltungen des StudInfo{flex}-Systems soll leicht
erlernbar und intuitiv bedienbar sein. Die Konfiguration von Lehrveranstaltungen soll
nicht mehr über direkte Eingriffe in die Datenbank, sondern über eine graphische Benutzungsoberfläche durchgeführt werden. Die Eigenschaften der visuellen Sprache können
gut in das Klassifikationsschema von Shu eingeordnet werden. Sie umfasst die Visualisierung von Datenbankschemata und visuellen Programmiersprachen, die diagrammbasierend sind.
8
2 Grundlagen
2.4 DEViL
DEViL (Development Environment for Visual Languages, Nachfolger des VL-Eli-Systems) ist ein Generator, der in der Fachgruppe Programmiersprachen und Übersetzer“
”
der Universität Paderborn entwickelt wird. DEViL generiert graphische Struktureditoren aus textuellen Spezifikationen. Dazu wird zunächst das Sprachmodell, die abstrakte Struktur, das die Grundlage eines Struktureditors bildet, spezifiziert. Im Anschluss
werden bestimmte Muster der visuellen Darstellung identifiziert und an das Sprachmodell gebunden. DEViL generiert aus diesen Spezifikationen vollständige Struktureditoren
einschließlich Interaktionsmechanismen. Die vorgefertigten Lösungen können durch den
Sprachentwickler beliebig an eine gewünschte Zielsprache angepasst werden.
Aus der Sprachspezifikation (Abbildung 3) generiert DEViL einen vollständigen visuellen
Struktureditor. Dieser enthält Analyse- und Übersetzungsprozessoren. Der Struktureditor unterstützt mehrere verschiedene visuelle Sichten auf Teile der abstrakten Struktur,
die jeweils einen bestimmten Teil des visuellen Programms repräsentieren. Jede Sicht
wird in einem separaten Fenster dargestellt. Auf der linken Seite jeder Sicht befindet
sich eine Menge von Schaltflächen, mit denen neue Sprachkonstrukte eingefügt werden
können (Abbildung 4).
Die abstrakte Struktur stellt die Grundlage einer Spezifikation dar. Sie basiert auf einem
klassenbasierten Entwurf. Auf Sprachelemente der abstrakten Struktur, die intern in eine
kontextfreie Grammatik übersetzt wird, können Attributberechnungen angewendet werden, um eine konkrete Repräsentation zu erreichen. Des Weiteren verfügt DEViL über
eine Baumsicht. Die Baumsicht repräsentiert genau die zugrundeliegende Sprachstruktur und enthält alle Informationen des konstruierten Programms. Mit der Baumsicht
kann der Kontext eines Sprachkonstrukts überblickt oder alle Daten eingesehen werden.
Die Speicherung einer Instanz eines Struktureditors erfolgt in einer XML-Datei, die die
abstrakte Struktur widerspiegelt.
Die graphische Darstellung visueller Elemente wird mit den so genannten generischen
Zeichnungen beschrieben. Die konstruierten generischen Zeichnungen beschreiben die
konkrete graphische Repräsentation bestimmter Klassen der abstrakten Struktur. Die
generischen Zeichnungen lassen sich in einem visuellen Editor erstellen.
Eine DEViL-Spezifikation lässt sich in abstrakte Struktur, visuelle Darstellung, Analyse
und Transformation unterteilen. Im Folgenden werden diese Bereiche genauer beschrieben.
9
2 Grundlagen
Abbildung 3: Generierung der visuellen Entwicklungsumgebung
Abbildung 4: Visuelle Sicht einer Datentabelle
10
2 Grundlagen
Abstrakte Struktur
Die abstrakte Struktur einer Spezifikation in DEViL ist die Grundlage für graphische
Struktureditoren. Die abstrakte Struktur einer Sprache basiert auf Modellierungskonzepten, wie Klassen, Attributen und der Vererbung. Die Instanz einer Klasse beschreibt in
einem graphischen Struktureditor die Darstellung eines visuellen Objekts. Den Klassen
können Attribute zugeordnet werden, die Eigenschaften des Sprachelements modellieren.
Es gibt drei Attributarten:
• VAL-Attribute: speichern Werte von vordefinierten Datentypen, wie zum Beispiel
VLString oder VLInt. Es können auch Vorgabewerte definiert werden, die bei der
Initialisierung eines Sprachelements gesetzt werden.
• SUB-Attribute: speichern je nach Multiplizität einen Unterbaum, eine Liste von
Unterbäumen oder sind leer.
• REF-Attribute: speichern Referenzen zu anderen Sprachobjekten.
An SUB-Attribute können folgende Multiplizitäten vergeben werden:
• *“ bedeutet, dass das Attribut eine Liste von Knoten speichert (End-Multiplizität
”
0..*, Editier-Multiplizität 0..*).
• !“ bedeutet, dass das Attribut genau einen Knoten speichert, beim Editieren aber
”
zwischenzeitlich auch leer sein kann (End-Multiplizität 1..1, Editier-Multiplizität
0..1).
• ?“ bedeutet, dass das Attribut höchstens einen Knoten der angegebenen Klasse
”
speichert (End-Multiplizität 0..1, Editier-Multiplizität 0..1).
• %“ bedeutet, dass genau ein Unterobjekt fest mit dem Attribut verbunden ist
”
(End-Multiplizität 1..1, Editier-Multiplizität 1..1). Das Unterobjekt wird automatisch beim Erzeugen des übergeordneten Knotens angelegt. Damit das möglich ist,
muss der Typ eine nicht-abstrakte Klasse sein.
Abstrakten Klassen werden benutzt, um eine bessere Struktur zu erzeugen und gemeinsame Attribute verschiedener Klassen zu definieren. Von abstrakten Klassen darf es keine
Instanzen geben. Die Vererbung ist nur von abstrakten Klassen möglich, Mehrfachvererbung ist jedoch erlaubt.
Es folgt ein Beispiel, in dem die Zustandsdiagramme modelliert werden. Die Spezifikation der abstrakten Struktur enthält immer eine Klasse namens Root“. Diese Klasse
”
11
2 Grundlagen
enthält ein Attribut diagrams“, welches eine Menge von Unterklassen vom Typ Dia”
”
gram“ definiert. Die Beispiele für verschiedene Arten von Attributen werden mittels drei
Klassen beschrieben. Die abstrakte Klasse Diagram“ enthält ein Attribut name“ vom
”
”
Typ VAL, welches den Namen dieser Klasse speichert und an Klasse StatechartDia”
gram“ vererbt. Die Klasse StatechartDiagram“ definiert ein Attribut states“ vom Typ
”
”
SUB, welches eine Liste von Zuständen speichert. Die Klasse Transition“ enthält die
”
Attribute from“ und to“ vom Typ REF, welche die Referenzen auf diese Zustände
”
”
speichern.
12
2 Grundlagen
CLASS Root {
diagrams: SUB Diagram*;
}
ABSTRACT CLASS Diagram {
name: VAL VLString;
}
CLASS StatechartDiagram INHERITS Diagram {
setSize: VAL VLPoint? INIT "400 300" EDITWITH "None";
states: SUB State*;
transitions: SUB Transition*;
}
ABSTRACT CLASS State {
position: VAL VLPoint? EDITWITH "None";
}
CLASS InitialState INHERITS State {}
CLASS FinalState INHERITS State {}
CLASS SimpleState INHERITS State {
name: VAL VLString;
}
CLASS XORState INHERITS State {
name: VAL VLString;
subStates: SUB State*;
setSize: VAL VLPoint? INIT "140 80" EDITWITH "None";
}
CLASS Transition {
position: VAL VLPoint? EDITWITH "None";
from: REF State;
to: REF State;
anchorPoints: VAL VLPointArray? EDITWITH "None";
}
Abbildung 5: Spezifikation der abstrakten Struktur
13
2 Grundlagen
Visuelle Darstellung
Die visuelle Repräsentation der abstrakten Struktur wird mittels attributierter Grammatiken spezifiziert. Durch Attributberechnungen wird die graphische Repräsentation
berechnet und gezeichnet.
Zur weiteren Vereinfachung der Spezifikation wurden in DEViL häufig auftretende graphische Darstellungskonzepte in wieder verwendbaren Spezifikationsmodulen gekapselt.
Die darin enthaltenen Implementierungen so genannter visueller Muster können instanziiert, parametrisiert und miteinander kombiniert werden. Visuelle Muster beschreiben,
wie eine bestimmte Informationsstruktur graphisch repräsentiert werden kann.
Ein oft verwendetes visuelles Muster ist zum Beispiel das Mengen-Muster VPSet“. Es
”
beschreibt, dass ein graphisches Element Unterelemente enthält, die in einem bestimmten Bereich der graphischen Repräsentation beliebig positionierbar sind. Weitere visuelle
Muster sind Listen, Formulare, Tabellen, etc. Einige visuelle Muster sind in Abbildung
6 dargestellt.
Abbildung 6: Visuelle Muster
Visuelle Muster werden angewendet, indem bestimmte Grammatiksymbole von bestimmten Symbolrollen erben. Um zum Beispiel auszudrücken, dass ein Zustandsdiagramm
14
2 Grundlagen
graphisch als Menge“ und die Zustände graphisch als frei bewegliche Mengenelemen”
”
te“ repräsentiert werden sollen, werden die Rollen VPSet“ und VPSetElement“ des
”
”
Mengenmusters verwendet.
Zur Definition der graphischen Repräsentation von Formular-Darstellungen ist ein visueller Editor verfügbar, mit dem sich generische Zeichnungen erstellen lassen (Abbildung
7). Bei generischen Zeichnungen handelt es sich um graphische Spezifikationen, mit denen sich Ausprägungen bestimmter Formular-Darstellungen einfach und komfortabel
beschreiben lassen. Generische Zeichnungen können bei Anwendung des Formularmusters referenziert werden.
Abbildung 7: Generische Zeichnung
Eine Zeichnung (Abbildung 7) besteht aus drei Teilen:
• Einfache graphische Elemente, wie Linien, Rechtecke oder Kreise, legen das grundlegende Erscheinungsbild des Sprachelements fest
15
2 Grundlagen
• Container (gelb) bestimmen, wo Unterelemente des Sprachelements positioniert
und eingeschachtelt werden sollen. In Eigenschaftsdialogen kann die Ausrichtung
des Containerinhalts festgelegt werden.
• Dehnungsintervalle auf der X- und Y-Achse bestimmen, wie die Zeichnung transformiert werden soll, um Platz für den Inhalt der Container zu schaffen.
Analyse und Transformation
Analyse und Codegenerierung von visuellen Programmen werden ebenfalls durch attributierte Grammatiken spezifiziert. Zur Lösung bestimmter Teilaufgaben können alle
Spezifikationssprachen und Modulbibliotheken des bewährten Eli-Systems, dass DEViL
zugrunde liegt, verwendet werden.
Das wichtigste Werkzeug zur Spezifikation von Zielcode eines Struktureditors ist PTG
(Pattern-based Text Generator). PTG kann Textmuster für die Ausgabe des Zielcodes
definieren. Diese können Einfügestellen enthalten, an denen andere Textmuster eingefügt
werden. Auf diese Weise lässt sich der Ausgabetext Schritt für Schritt zusammensetzen.
In einer LIDO-Datei zur Codegenerierung wird eine attributierte Grammatik spezifiziert,
in der PTG-Funktionen aufgerufen werden können.
Im folgenden Beispiel ist ein Teil der Spezifikation zur Codegenerierung für das Sprachkonstrukt DataTableDefinition“ dargestellt. Bei der Definition einer Datentabelle wer”
den ein Name, ein Kommentar, Primärschlüssel vergeben und Spalten angelegt. Alle
diese Werte sind wichtig für den Code, welcher nach der Konfiguration einer Veranstaltung generiert wird. Für das Sprachelement DataTableDefinition“ müssen spezielle
”
Attributberechnungen zugeordnet werden.
SYMBOL codeGen_DataTableDefinition
COMPUTE
SYNT.code = PTGDataTableDefinition (THIS.pers_name,
CONSTITUENTS codeGen_ColumnData.code WITH
(PTGNode, PTGNewLine, IDENTICAL, PTGNull),
THIS.pers_primaryKey,
THIS.pers_comment;
END;
Es wird eine Funktion PTGDataTableDefinition“ generiert welche vier Parameter er”
wartet. Die Werte werden in das entsprechende PTG Textmuster eingefügt:
16
2 Grundlagen
DataTableDefinition:
"CREATE TABLE IF NOT EXISTS "$1 string" ("
$2
"PRIMARY KEY ("$3 string")"
") ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=’"$4 string"’;"
Einfügestellen (wie $1“) ermöglichen den Zugriff auf die Attribute in der Reihenfolge,
”
in der sie in der Funktion aufgerufen werden. So wird eine Datentabelle generiert.
Solche oder ähnliche Attributberechnungen müssen für alle Sprachelemente durchgeführt
werden, die für den Zielcode relevant sind.
2.5 Das StudInfo{flex}-System
Das StudInfo{flex}-System ist eine datenbankbasierte Anwendung, welche Daten einer
Veranstaltung verwaltet. Es bietet verschiedene Benutzungsrollen an. Die Vorlage ist
eine StudInfo{flex}-Standardkonfiguration, welche angepasst wird. Diese Standardkonfiguration speichert Studentendaten, bietet Übungen, drei schriftliche Klausuren und
eine Wunschvorlesung an.
In diesem Abschnitt wird StudInfo{flex} genauer beschrieben. Als erstes wird ein Überblick gegeben, was StudInfo{flex} leistet. Danach werden die drei Module des StudInfo{flex}-Systems vorgestellt. Der darauf folgende Abschnitt zeigt die aktuellen Konfigurationsmöglichkeiten und abschließend werden die vier Konfigurationsebenen des StudInfo{flex}-Systems erklärt.
2.5.1 StudInfo{flex} aus Benutzersicht
Das StudInfo{flex}-System bietet eine Web-Schnittstelle, die über drei Module mit unterschiedlichen Funktionalitäten verfügt:
• Administratormodul
• Tutorenmodul
• Studierendenmodul
Im Administratormodul kann der Administrator die StudInfo{flex}-Standardkonfiguration bearbeiten und verwalten. Jeder Veranstalter von Lehrveranstaltungen kann für
17
2 Grundlagen
seine Vorlesung individuell festlegen, welche Informationen über die Studenten gespeichert und verarbeitet werden sollen. Dabei können individuelle Regeln, zum Beispiel
zur Vergabe von Plätzen in Übungsgruppen oder die Bonuspunkte für Klausuren, frei
konfiguriert werden. Der Administrator einer Veranstaltung hat den Zugriff auf das Tutorenmodul sowie auf einzelne Konten von Studierenden.
Die StudInfo{flex}-Standardkonfiguration unterstützt Tutoren bei der Verwaltung ihrer Übungsgruppen und liefert vielfältig konfigurierbare Teilnehmer- und Ergebnislisten.
Das StudInfo{flex}-System stellt auf Studierendenseite eine Weboberfläche zur Verfügung. Studenten, die an einer Veranstaltung teilnehmen möchten, richten sich ein
neues Teilnehmerkonto ein, indem sie sich zu dieser Veranstaltung anmelden. Die StudInfo{flex}-Standardkonfiguration bietet den Studenten ein Teilnehmerkonto, in dem zum
Beispiel Plätze in Übungsgruppen belegt oder An- und Abmeldungen für Klausuren vorgenommen werden können. Des Weiteren erhalten Studierende eine Übersicht aller beim
Veranstalter gespeicherten Daten, zum Beispiel erreichte Punkte aus der Bearbeitung
von Übungszetteln sowie das Klausurergebnis.
2.5.2 Konfiguration und Benutzung von StudInfo{flex}-Veranstaltungen
Eine StudInfo{flex}-Standardveranstaltung besteht aus mehreren Tabellen, welche in einer Datenbank angelegt sind (Abbildung 8). Jede neue Veranstaltung wird über direkten
Eingriff in diese Tabellen konfiguriert.
Wenn eine Vorlesung konfiguriert werden muss, die sich von der Standardveranstaltung wenig unterscheidet, dann sind nur geringe Änderungen nötig. Bei einer solchen
Änderung müssen jedoch mehrere Tabellen bearbeitet werden. Als erstes muss der Benutzer die richtigen Tabellen mit dem entsprechenden Inhalt finden. Dabei braucht er
bei der Suche nach den richtigen Elementen oft viel Zeit. Die Datensätze in den Tabellen
sind recht kompliziert und unübersichtlich, falls die Inhalte zu lang sind. Bei der Eingabe
von vielen Elementen muss auf die Syntax geachtet werden. Auch problematisch ist die
Vergabe von Identifikationsnummern (IDs), welche die Elemente eindeutig machen. Der
Administrator muss immer den Überblick über alle schon vergebene Nummern behalten
(Abbildung 9).
18
2 Grundlagen
Abbildung 8: Datenbank einer Standardveranstaltung
Abbildung 9: Tabelle aus der Datenbank
19
2 Grundlagen
Das StudInfo{flex}-System lässt sich auf vier verschiedenen Ebenen benutzen (Abbildung 10).
Abbildung 10: Benutzungssebenen des StudInfo{flex}-Systems
Auf der ersten Benutzungsebene spezifiziert der Administrator eine Instanz mit der
StudInfo{flex}-eigenen Konfigurationssprache. Das geschieht in den Konfigurationstabellen (Config-Tabellen). Je nach Inhalt dieser Tabellen kann ein beliebiges Verwaltungssystem, d.h. nicht nur eine Veranstaltung, sondern zum Beispiel auch eine Schlüsselverwaltung, definiert werden. Dieser Ebene liegt die Implementierung der Konfigurationssprache in Perl [13] zugrunde, welche die Konfiguration liest und eine entsprechende
Web-Schnittstelle bereitstellt. Sie bildet die Basis auf dem ein System aufgebaut werden
kann. Die Konfigurationstabellen stellen den variablen Teil dieser Ebene dar und werden
je nach Verwendung mit dem entsprechenden Inhalt gefüllt.
Auf der zweiten Ebene passt der Administrator lediglich eine vorgefertigte Standardkonfiguration an. Hier sind die meisten Konfigurationstabellen mit Werten gefüllt, welche für die Datenverwaltung einer Veranstaltung nötig sind. Die Standardkonfiguration
bietet unter anderem eine Übungsanmeldung, Klausur- und Übungspunktevergabe und
die Auswahl einer Wunschvorlesung. Die Werte für die Durchführung dieser Aktionen
(zum Beispiel Themen für die Wunschvorlesung) werden in den Wertebereichstabellen
(Values-Tabellen) gesetzt und können auf dieser Ebene beliebig definiert werden.
20
2 Grundlagen
Auf der dritten Ebene wird die StudInfo{flex}-Veranstaltung über die Weboberfläche
konfiguriert. Hier sind einige Werte aus Wertebereichstabellen als Auswahllisten dargestellt. Die zu konfigurierenden Teile auf dieser Ebene, sind die Werte für Grundkonfigurationsvariablen und die Phasenschaltung. Die Grundkonfigurationsvariablen (Abbildung 11), wie zum Beispiel der Name der Veranstaltung und des Professors, sowie die
Freischaltung von einzelnen Vorlesungsphasen werden über die Weboberfläche des Administratormoduls geändert.
Abbildung 11: Aktuelle Grundkonfiguration
Auf der vierten Ebene erfolgt die Benutzung der fertigen StudInfo{flex}-Instanz über die
Weboberfläche. Auf dieser Ebene können die Studenten, Tutoren und der Administrator
die Vorlesungsdaten einsehen und bearbeiten. Das sind Informationen, wie allgemeine
Daten von Studierenden oder erreichte Punkte in den Übungen und Klausuren.
In den folgenden Abschnitten werden die einzelnen Ebenen genauer beschrieben.
21
2 Grundlagen
Erste Benutzungsebene
Dieser Abschnitt beschreibt die abstrakte Sprache, in der eine StudInfo{flex}-Konfiguration formuliert wird. Diese Beschreibung ist wichtig, weil auf Grundlage dieser abstrakten Sprache der Entwurf der visuellen Sprache zur Konfiguration von StudInfo{flex}Veranstaltungen erfolgt.
Auf der ersten Benutzungsebene spezifiziert der Administrator eine Instanz mit der
StudInfo{flex}-eigenen Konfigurationssprache. Dabei füllt er die Konfigurationstabellen
mit den Werten, welche ein System zur Datenverwaltung von Lehrveranstaltungen darstellen. Dieses System unterscheidet drei Benutzungsrollen und zwar den Studierenden,
den Administrator und den Tutor.
Jede Konfigurationstabelle stellt einen Spezifikationsteil einer Veranstaltung dar. Diese Spezifikationsteile enthalten Operationen bzw. Elemente zu einem der drei Module.
Eine Konfigurationstabelle, zum Beispiel für den Spezifikationsteil Abfrage“ des Studie”
rendenmoduls, enthält SQL-Abfragen zu Übungsameldung, Übungspunkteberechnung,
Klausurteilnahme, Klausurergebnis sowie Wahl des Wunschthemas. Es sind also in der
Konfigurationstabelle nur solche Abfragen enthalten, welche die Daten in einem Modul
anzeigen, bearbeiten und aufbereiten. Die Konfigurationstabellen für gleiche Spezifikationsteile haben gleichen Aufbau. Gleicher Aufbau bedeutet, dass die Tabellen gleiche
Spaltennamen besitzen und im Allgemeinen identisch funktionieren.
Folgende Konfigurationstabellen sind in Gruppen aufgeteilt, welche gleiche Spezifikationsteile für das Studierenden-, Tutoren- und Administratormodul enthalten:
• Konfigurationstabellen mit Grundkonfigurationsvariablen: setzt die Grundkonfigurationsvariablen, zum Beispiel den Vorlesungsnamen.
• Konfigurationstabellen mit Abfragen: enthalten die Abfragen (Queries) in SQL für
die Beschaffung der gewünschten Daten, die angezeigt werden sollen.
• Konfigurationstabellen mit Aktualisierungsabfragen: enthalten die Aktualisierungsabfragen (Updates) für die Datenerfassung in Modulen.
• Konfigurationstabellen mit Berichten: hier werden die Berichte (Reports) definiert.
Im Administrator- und Tutormodul werden Berichte mittels des Report-Generators
gewählt. Im Studierendenmodul werden die Berichte verwendet, um An- und Abmeldungsformulare für Klausuren zu erstellen.
Zusätzlich existieren noch weitere Konfigurationstabellen, welche Spezifikationsteile definieren, die nicht für alle drei Module gültig sind. Zum Beispiel die Konfigurationstabellen
22
2 Grundlagen
nur für Administrator- und Tutorenmodul:
• Konfigurationstabellen mit Typschlüsselspezifikation: hier werden die Typschlüsseln
für die automatische Datenerfassung per Barcode spezifiziert.
Und nur für das Studierendenmodul:
• Konfigurationstabelle mit Weboberflächendarstellung: enthält Elemente, welche
die Weboberfläche des Studierendenmoduls (Display) beschreiben.
Außer Konfigurationstabellen sind auf der ersten Ebene weitere Arten von Tabellen
vorzufinden. In der Datenbank einer Lehrveranstaltung sind weiterhin folgende Tabellen
angelegt (siehe Abbildung 8):
• Datentabellen (Data)
• Wertebereichstabellen (Values)
Die Datentabellen werden auf der vierten und die Wertebereichstabellen auf der zweiten Benutzungsebene benutzt. Dabei speichern die Datentabellen die Werte, die über
die Weboberfläche von Studenten, Tutoren und dem Administrator eingegeben werden.
Die Wertebereichstabellen werden verwendet, um die Konfiguration einer Veranstaltung
anzupassen. Neue Tabellen von diesen Typen können angelegt werden.
Zweite Benutzungsebene
Auf der zweiten Ebene passt der Administrator eine vorgefertigte Standardkonfiguration an. Dazu füllt er die Wertebereichstabellen (Values-Tabellen) mit dem gewünschten
Inhalt. Der Administrator definiert unter anderem Übungs-, Klausurtermine, mögliche
Punkte in Übungen und Klausuren sowie Themen zur Wunschvorlesung. Auf der Grundlage dieser Standardveranstaltung werden beim Entwurf der visuellen Sprache die Aspekte gebildet.
Die Wertebereichstabellen werden vor allem für die Darstellung von Auswahlmöglichkeiten in Dropdown-Listenfeldern auf der Weboberfläche, sowie in SQL-Anweisungen zur
Festlegung von gültigen Wertebereichen verwendet. Ein Beispiel dafür ist die Liste von
möglichen Studiengängen (Abbildung 12), welche für Studenten beim Anlegen des Kontos angezeigt wird.
23
2 Grundlagen
Abbildung 12: Auswahlliste von möglichen Studiengängen
Dritte Benutzungsebene
Auf der dritten Benutzungsebene konfiguriert der Administrator eine Vorlesung über
die Weboberfläche des Administratormoduls. Auf dieser Ebene werden keine weiteren
Änderungen direkt in den Datenbanktabellen durchgeführt. Die Weboberfläche bietet
eine Liste von Phasen sowie eine Übersicht über alle Grundkonfigurationsvariablen. Der
Benutzer nutzt diese Ebene zum Aktivieren von Phasen und gegebenenfalls zur Anpassung von Grundkonfigurationsvariablen.
Eine Phase beschreibt ein Abschnitt einer Veranstaltung. Dieser Abschnitt beginnt, sobald die Phase mittels des Phasenschalters aktiviert wird (Abbildung 13). So wird je nach
aktiver Phase zum Beispiel die Möglichkeit gegeben sich für eine Übungsgruppe anzumelden, den Klausurteilnahmestatus zu ändern oder die entsprechenden Formulare zur
An- bzw. Abmeldung von einer Prüfung herunter zu laden. Später kann dann ebenfalls
das Klausurergebnis angezeigt werden. Da die aktiven Phasen jederzeit änderbar sind,
können gezielt die Zeiträume für unterschiedliche Phasen einer Veranstaltung bestimmt
werden. Beispiele für typische Phasen sind:
• An- und Abmeldung von der Prüfung möglich
• nur noch Abmeldung von der Prüfung zulässig
• weder An- noch Abmeldung ist erlaubt
• Veröffentlichung des Klausurergebnisses.
24
2 Grundlagen
Abbildung 13: Aktivierung von Phasen
Die Auswahl der aktiven Phasen beeinflusst unter anderem
• welche Informationen in den Modulen angezeigt werden,
• welche Datenerfassung möglich ist,
• welche Abfragen zur Beschaffung und Aktualisierung der Daten verwendet werden
und
• welche Reports ausgewählt werden können.
Auf dieser Benutzungsebene kann der Administrator auch die Anpassungen bezüglich
Grundkonfigurationsvariablen durchführen. Die Grundkonfigurationsvariablen sind unter anderem der Name der Vorlesung, der Name des Professors und die Sekretariatsdaten
(Abbildung 14). Die Variablen werden an vielen Stellen verwendet, zum Beispiel in automatisch versandten E-Mails, generierten Berichten, Formularen für Klausuran- und
-abmeldungen, Klausurinformationen, etc.
25
2 Grundlagen
Abbildung 14: Grundkonfigurationsvariablen einer Standardveranstaltung
Vierte Benutzungsebene
Auf der vierten Benutzungsebene erfolgt die Benutzung der angepassten StudInfo{flex}Veranstaltung über die Weboberfläche des Studierenden-, Tutoren- und Administratormoduls.
Während des Vorlesungsbetriebs füllen die Studenten bestimmte Formulare mit Daten
über die Weboberfläche des Studierendenmoduls aus. Das sind Daten, welche Studenten
eingeben, wenn sie sich ein Konto zur Veranstaltung anlegen (Abbildung 15), sich für
eine Übungsgruppe anmelden und an der Klausur teilnehmen. Des Weiteren können die
Studenten ein Wunschthema aus einer Liste der angebotenen Themen aussuchen.
Die Tutoren verwalten auf dieser Ebene deren Übungsgruppen, in dem sie unter anderem den Studenten Übungspunkte für abgegebene Hausaufgaben gutschreiben.
26
2 Grundlagen
Der Administrator trägt auf dieser Ebene die erreichten Klausurpunkte ein und kann
sich verschiedene Statistiken und andere Berichte zur Vorlesung anzeigen lassen.
Abbildung 15: Formular zum Anlegen eines Kontos
27
3 Sprachentwurf
3 Sprachentwurf
In diesem Kapitel wird der Entwurf der visuellen Sprache für das StudInfo{flex}-System
vorgestellt. Die folgenden Abschnitte beschreiben die konkreten Anforderungen an die
zu entwickelnde Umgebung, die entwickelten Konzepte sowie die Spezifikationssprache
für das StudInfo{flex}-System.
3.1 Anforderungen
Ein wichtiges Ziel des Entwurfs einer visuellen Sprache für das StudInfo{flex}-System
ist die Entwicklung der intuitiv bedienbaren Benutzungsoberfläche, im Folgenden auch
StudInfo{flex}-Designer genannt. Die Benutzungsoberfläche soll die wichtigen und zentralen Elemente des StudInfo{flex}-Systems abbilden. Die Konfiguration von StudInfo{flex}-Veranstaltungen soll einfach und schnell erfolgen können. Da einige Schritte
nur in Abhängigkeit von anderen durchgeführt werden können, muss der Arbeitsfluss
gekennzeichnet werden.
Der Lernaufwand für die Benutzung der visuellen Umgebung soll möglichst gering gehalten werden. Die Einarbeitungszeit des Benutzers soll durch eine intuitiv bedienbare
Benutzungsoberfläche und eine gut strukturierte visuelle Sprache minimiert werden. Die
visuelle Sprache für das StudInfo{flex}-System soll einen Geschwindigkeitsvorteil gegenüber der herkömmlichen Konfiguration bieten und den Benutzer dabei unterstützen,
den Umgang mit dem StudInfo{flex}-System zu erlernen, um auch komplexere Konfigurationen erstellen zu können. Dabei soll der Benutzer eine neue Konfiguration erstellen
können ohne die generierten Konfigurationstabellen noch manuell nachbearbeiten zu
müssen.
Eine weitere wichtige Anforderung an den Entwurf der Sprache ist die Unterstützung
aspektorientierter Spezifikation. Mit ihrer Hilfe erfolgt die Bildung von Aspekten. Ein
Aspekt ist eine Teilfunktionalität einer Konfiguration, zum Beispiel die Klausurverwaltung. Die Aspekte sollen bei jeder neuen Konfiguration der StudInfo{flex}-Veranstaltungen von den Administratoren beliebig zusammengesetzt, neu angelegt und entsprechend
angepasst werden können. Die bereits vorhandenen Aspekte oder Daten aus den Aspekten von früheren Veranstaltungen sollen wieder verwendet werden können. Auch die
Erstellung von neuen Aspekten, wie zum Beispiel Mündliche Prüfung“ soll einen gerin”
gen Schwierigkeitsgrad besitzen.
Als Ergebnis der fertigen StudInfo{flex}-Konfiguration soll SQL-Code generiert werden,
der die entsprechenden Konfigurationstabellen in der StudInfo{flex}-Datenbank anlegt.
28
3 Sprachentwurf
3.2 Überblick über die Sprache
Bei dem Entwurf einer visuellen Sprache für das StudInfo{flex}-System wurden die
Konfigurations-, Daten- und Wertebereichstabellen sehr genau untersucht. Die Tabellen
einer StudInfo{flex}-Konfiguration wurden in verschiedene Spezifikationsteile zerlegt.
Aus den Spezifikationsteilen wurden die Sichten zur übersichtlichen Modellierung von
StudInfo{flex}-Veranstaltungen definiert (Abbildung 16). Diese sind:
• Properties-Sicht: In dieser Sicht werden alle Grundkonfigurationsvariablen, außer read only“-Variablen, einer Veranstaltung definiert. Diese Variablen sind
”
die zentralen Werte und Einstellungen einer StudInfo{flex}-Veranstaltung. Einige
Grundkonfigurationsvariablen, wie zum Beispiel der Name der Vorlesung, werden
auf der Weboberfläche angezeigt. Andere sind wichtig für die Modellierung von
Aspekten. Dort werden sie in automatisch versandten E-Mails, generierte Berichte,
Formularen für Klausuranmeldungen und -abmeldungen, Klausurinformationen,
etc. verwendet.
• Tutorusers-Sicht: In dieser Sicht werden die Daten aller Tutoren hinterlegt, die
eine Übung zu einer Veranstaltung leiten. Hier werden Daten, wie Name, Vorname,
E-Mail, Login und Passwort von jedem Tutor verwaltet. Dadurch haben sie den
Zugriff auf das Tutorenmodul. Über das Tutorenmodul werden die Punkte für
Übungsaufgaben vergeben und verschiedene E-Mails an Übungsgruppenteilnehmer
verschickt. Des Weiteren werden die Daten von Tutoren bei der Modellierung des
Aspekts für Übungen verwendet.
• Aspect-Sicht: In dieser Sicht erfolgt die Gestaltung einzelner Aspekte. Ein Aspekt
ist eine Teilfunktionalität einer Veranstaltung und enthält Elemente wie Zugriffsrechte, Datentabellen, Wertebereichstabellen, Abfragen, Datenerfassung, Berichte
und Darstellung des Studierendenmoduls (Display). Dabei werden in einem Aspekt
nur solche Elemente definiert, welche logisch zum aktuellen Aspekt passen. Zum
Beispiel gehören zum Aspekt Klausuren“ die Tabelle mit Klausuraufgaben, eine
”
Abfrage zur Berechnung des Klausurergebnisses und ein Formular zur Klausuranmeldung.
• Phases-Sicht: In dieser Sicht werden die Zugriffsrechte (Permissions) zu Phasen
zusammengefasst und deren gewünschte Reihenfolge definiert. Die Phasen werden im Vorlesungsbetrieb vom Administrator nacheinander freigeschaltet. Dies
ermöglicht die Aktivierung von Aspekten.
In der Hauptsicht sind alle vier Spezifikationsteile einer StudInfo{flex}-Veranstaltung
abgebildet (Abbildung 16). Diese stellen die wichtigsten Grundbausteine dar.
29
3 Sprachentwurf
Abbildung 16: Hauptsicht der StudInfo{flex}-Standardvorlesung
Der Zugriff auf einzelne Spezifikationsteile ist nur aus der Hauptsicht möglich. So behält
der Benutzer den Überblick und kann schneller ein Element finden, welches er anpassen möchte. Jedes Spezifikationsteil hat seine eigene Sicht. Für die Modellierung von
Aspekten gibt es ein Sprachelement Aspect“. Es können also mehrere Aspekte angelegt
”
werden.
3.3 Grundsätzliche Entwurfsüberlegungen
Die Repräsentation von Daten wurde durch Zuhilfenahme von Farben dargestellt. Es
wurden die Farben verwendet, die über die Weboberfläche des StudInfo{flex}-Systems
erkennbar sind. Einige Darstellungen von Sprachelementen, zum Beispiel für die Übersicht
der Grundkonfigurationsvariablen, wurden direkt aus der StudInfo{flex}-Standardkonfiguration übernommen. Jedoch haben nicht alle Sprachelemente eine Entsprechung in
30
3 Sprachentwurf
der Weboberfläche. Zum Beispiel gibt es für die Tutorendaten keine Webseite wie für die
Grundkonfigurationsvariablen. Darum wurde die graphische Darstellung der TutorusersSicht an die Properties-Sicht angepasst. In der Aspect-Sicht können die entsprechenden
Aspektelemente in hell-blauen Containern in eine vertikale Liste eingefügt werden. Sie
werden mit einer weißen Linie voneinander getrennt. Eine solche Darstellung ist bei der
Trennung von einzelnen Grundkonfigurationsvariablen wieder zu finden. In der AspectSicht wird über einer Gruppe von Elementen immer die Bezeichnung des Aspektselements angezeigt. Auch in Detailsichten von Aspektselementen sind solche Überschriften
über größeren Sprachelemente platziert. Dies ermöglicht eine bessere Trennung von einzelnen Elementen und dadurch einen besseren Überblick in den Sichten. Solche graphische Darstellung wurde aus Webseiten des Studierendenmoduls übernommen. So werden
dort die Abschnittüberschriften aufgeführt.
Die immer wieder verwendeten Elemente aus einzelnen Sichten, wie zum Beispiel Kommentare, werden in verschiedenen Sichten der Aspektelemente immer gleich angeordnet
und haben die gleiche visuelle Darstellung. Zur besseren Übersicht wurden an solchen
Elementen verschiedene Symbole angebracht.
Diese graphischen Entwurfsentscheidungen sind wichtig, damit die komplette graphische Darstellung der Benutzungsoberfläche einheitlich wirkt und der Übergang von der
Konfiguration einer Lehrveranstaltung mit StudInfo{flex}-Designer zur Darstellung dieser Veranstaltung in StudInfo{flex}-System fließend ist.
Um den Arbeitsfluss des Benutzers zu lenken, wurden die Spezifikationsteile und Aspektelemente mit römischen Zahlen versehen. Diese geben dem Benutzer eine Reihenfolge
vor, in der die Sichten abgearbeitet werden sollen. Das bedeutet, dass die Konfiguration
von StudInfo{flex}-Veranstaltung von oben nach unten bearbeitet werden soll. Denn es
ist nicht möglich eine Phase zu definieren, wenn noch keine Zugriffsrechte (Permissions)
in den einzelnen Aspekten angelegt worden sind.
3.4 Aspekte
Die Aspekte beschreiben wichtige Teilfunktionalitäten einer Vorlesung. Zu solchen Teilfunktionalitäten gehören unter anderem Übungen und Klausuren. Die Elemente, welche ein Aspekt darstellen, werden in der Aspect-Sicht aufgelistet. Ein Aspekt enthält
Elemente wie Zugriffsrechte, Datentabellen, Wertebereichstabellen, Abfragen, Datenerfassung, Berichte und die Darstellung des Studierendenmoduls. Dabei werden in einem
Aspekt nur solche Elemente definiert, welche logisch zum aktuellen Aspekt gehören. Zum
Beispiel eignen sich die Tabelle mit Klausuraufgaben, eine Abfrage zur Berechnung des
31
3 Sprachentwurf
Klausurergebnisses und ein Formular zur Klausuranmeldung zum Aspekt Klausuren“.
”
In der Aspect-Sicht werden die Aspektelemente nur angelegt (Abbildung 17). Sie werden
in den einzelnen Detailsichten bearbeitet.
Abbildung 17: Aspect-Sicht
32
3 Sprachentwurf
Eine Standardveranstaltung besteht aus vier Aspekten:
• Student
• Übungen
• Klausuren
• Wunschvorlesung
Der Aspekt Student“ bietet eine Wertebereichstabelle, in der mögliche Studiengänge
”
zu einer Vorlesung eingetragen sind. Dieser Aspekt verfügt über ein Display, welches die
Webseite Persönliche Daten“ des Studierendenmoduls definiert. Weiterhin stellt der
”
Aspekt Student“ mehrere Berichte (Reports) zur Verfügung, mit denen Nachrichten an
”
Veranstaltungsteilnehmer bei Kontoproblemen verschickt werden können.
Der Aspekt Übungen“ verfügt über mehrere Wertebereichstabellen, in denen Übungs”
gruppen und Punkte pro Übungsblatt definiert sind. Dieser Aspekt bietet ein Display,
welches die Webseite Übungen“ des Studierendenmoduls definiert. Auch mehrere Re”
ports mit denen Nachrichten an Übungsteilnehmer verschickt und Übungsstatistiken
angezeigt werden können, sind in diesem Aspekt enthalten. Der Aspekt bietet eine Datenerfassung, welche die Webseite im Tutorenmodul zu Vergabe von Übungspunkten an
einzelne Studenten darstellt.
Der Aspekt Klausuren“ bietet Wertebereichstabellen, in denen mögliche Klausurter”
mine, Klausurpunkte und Klausurnoten eingetragen wurden. Dieser Aspekt liefert ein
Display, welches die Webseiten Erste Klausur“, Zweite Klausur“ und Dritte Klausur“
”
”
”
im Studierendenmodul definiert. Der Aspekt bietet mehrere Reports mit denen Nachrichten an Veranstaltungsteilnehmer bei Klausuran- bzw. abmeldungsproblemen verschickt
und Klausurergebnislisten generiert werden. Der Aspekt Klausuren“ stellt eine Daten”
erfassung zur Verfügung, welche die Webseite im Administratormodul zur Vergabe von
Klausurpunkten an einzelne Studenten anzeigt.
Der Aspekt Wunschvorlesung“ liefert eine Wertebereichstabelle mit möglichen Themen
”
einer Vorlesung. Dieser Aspekt bietet ein Display, welches die Webseite Wunschvorle”
sung“ des Studierendenmoduls definiert. Ein Report, welcher eine Liste der drei meist
gewünschten Themen anzeigt, wird nur mit diesem Aspekt angeboten.
Alle Aspekte funktionieren unabhängig voneinander. Sie können beliebig kombiniert
und gelöscht werden. Wenn ein Aspekt definiert wird, kann er immer wieder verwendet
werden. Bei der Konfiguration einer neuen Veranstaltung kann der Benutzer die Aspekte
aus anderen Veranstaltungen importieren. Das gilt auch für alle Aspektelemente.
33
3 Sprachentwurf
3.5 Konfiguration der Weboberfläche im Studierendenmodul
Die Weboberfläche des Studierendenmoduls musste herkömmlich durch Bearbeitung
mehrerer Tabellen angepasst werden. Zum einen war es die Tabelle, in der die Darstellung von Webseiten (Display) spezifiziert und zum anderen eine Tabelle, in der Webseiten zu Aktualisierungsabfragen (Updates) konfiguriert wurden. Abbildung 18 zeigt die
Tabelle für Display. Man sieht, dass das Durchführen von Änderungen sehr unbequem
Abbildung 18: Herkömmliche Konfiguration von Display
und unübersichtlich ist.
Beim Entwurf der visuellen Sprache wurden das Display und die Updates zusammengefasst. Jetzt kann der Administrator bei der Gestaltung einer Webseite wichtige Elemente
auf einem Blick betrachten.
Alles was für Studenten im Studierendenmodul sichtbar ist, wird in einer Display-Sicht
zusammengesetzt. In jeder Display-Sicht wird mindestens eine Webseite definiert. Dazu gehören die Strukturelemente für die Webseite und Updates (Abbildung 19). Die
Strukturelemente Navigationspunkt“ (CHAPTER), Abschnittsüberschrift“ (SECTI”
”
ON) und Datenfeld“ (FIELD) werden mit den gleichnamigen Sprachelementen ein”
gefügt. In Abbildung 20 ist Persönliche Daten“ ein Navigationspunkt und Hauptab”
schnitt einer Seite, Ihre Daten“ ein Abschnittsüberschrift und Name“ ein Datenfeld.
”
”
34
3 Sprachentwurf
Abbildung 19: Display mit Updates
Der Wert des Datenfeldes, der über eine Abfrage festgelegt wird, kann an eine Variable gebunden werden, indem ein so genannter Identifier eingegeben wird. Wenn ein
Identifier gesetzt wird, dann wird er visuell angezeigt. Zum Beispiel ist das Datenfeld
Nachname“ an den Identifier name“ gebunden (Abbildung 19). Die Bindung wird mit
”
”
einem Pfeil angedeutet. So kann der Benutzer sofort erkennen, welche Identifier die Datenfelder haben.
Bei den Datenfeldern, welche von Studenten verändert werden können, zum Beispiel
Vorname“, wird ein Link, wie ändern“, angezeigt (Abbildung 20). Betätigt der Stu”
”
dent diesen Link, wird er auf eine Seite geleitet, auf der die Änderungen durchgeführt
werden können (Abbildung 21). Abbildung 19 zeigt die Spezifikation dieser Funktionalität.
35
3 Sprachentwurf
Abbildung 20: Display mit persönlichen Daten
Abbildung 21: Auswirkungen von Update Nachname“
”
Für Datenfelder, welche von Studenten geändert werden dürfen, werden die Aktualisierungsabfragen mit dem Sprachelement Update“ angelegt. Sie werden auf der rechten
”
Seite der Display-Sicht platziert (Abbildung 19). Ein Update enthält einen Button und
eine Variable. In Abbildung 19 enthält das Update Nachname“ ein Button ÄNDERN“
”
”
und eine einfache Variable Nachname“ vom Typ string“. Um zu zeigen, zu welchem
”
”
Datenfeld ein Update gehört, muss von Update aus eine Referenz auf das gewünschten
Datenfeld gesetzt werden. Durch die Referenz wird ein Pfeil vom Datenfeld zum Update gezeichnet (Abbildung 19). Dies sagt aus, dass nach dem Anklicken auf den Link
[ändern]“ der Student auf eine andere Seite geleitet wird, auf der er die Änderungen
”
durchführen kann.
36
3 Sprachentwurf
3.6 Datenerfassung
Nicht nur Studenten haben Webseiten, auf denen sie ihre Angaben machen können.
Die Tutoren und der Administrator müssen ebenfalls über die Weboberfläche einige
Daten für Studenten eingeben oder ändern, zum Beispiel Punkte für Übungsaufgaben.
Für jede Art der Eingabe muss eine Datenerfassung (DataEntry) definiert werden, in
der die Weboberfläche des Tutoren- und Administratormoduls gestaltet wird. Bei der
Bearbeitung muss der Benutzer beachten, dass nach dem Anlegen eines DataEntry ein
Typschlüssel definiert wird, was leicht vergessen werden kann. Aus diesem Grund enthält
die Datenerfassungssicht die Definition des Typschlüssels.
Die Datenerfassung von Studentendaten für Tutoren und den Administrator wird mit
dem Sprachelement DataEntry“ definiert. Dabei werden unter dem Abschnitt Signa”
tur eine Schaltfläche und Variablen angelegt, die letztendlich auf der Webseite angezeigt werden (Abbildung 22). Wenn ein DataEntry angelegt wurde, dann muss ein
Typschlüssel (EnterType) definiert werden. Der Typschlüssel wird in der Datenerfassungssicht immer ganz unten in einem grauen Rechteck dargestellt (Abbildung 22).
Per Doppelklick können die Eigenschaften eines Typschlüssels im Dialogfenster definiert
werden. Der Pfeil signalisiert, dass es nach der Bearbeitung vom Datenerfassungsformular unmittelbar weiter zu Definition des Typschlüssels geht. Die graue Farbe soll
das Element hervorheben. Der Typschlüssel sorgt dafür, dass in der Datenerfassung des
Administrator- oder Tutormoduls (je nach Gültigkeitsbereich) der Typschlüssel-Name
in der Navigationsleiste erscheint (Abbildung 23) und der Code des Typschlüssels bei
der automatischen Datenerfassung per Barcode erkannt wird.
37
3 Sprachentwurf
Abbildung 22: Datenerfassungssicht
38
3 Sprachentwurf
Abbildung 23: Manuelle Eingabe von Übungspunkten
3.7 Permissions
Eine Veranstaltung soll mit einer Übung beginnen und mit dem Klausurergebnis der letzten Klausur enden. Um diese Reihenfolge darstellen zu können, werden Phasen benötigt
(Abbildung 24). Jede Phase besteht aus einer Menge so genannter Permissions. Zum Beispiel hat die Phase Start der Vorlesung“ in Abbildung 24 die Permission {UE}“. Die
”
”
Permissions sind Zugriffsrechte, welche bei vielen Aspektelementen definiert werden. Sie
erlauben in bestimmten Abschnitten einer Vorlesung, dass im Studierendenmodul diese
Elemente funktionieren bzw. sichtbar werden. So ist zum Beispiel die Klausurabmeldung
nur bis zu zwei Wochen vor der Klausur möglich. Die Klausurabmeldung hat eine bestimmte Permission. Und nur dann, wenn die Phase mit dieser Permission aktiviert ist,
kann die Klausurabmeldung durch Studenten vorgenommen werden.
39
3 Sprachentwurf
Abbildung 24: Phasenschalter
Bei dem Entwurf der visuellen Sprache wurden die Permissions zu den Aspekten zugeordnet. In jedem Aspekt werden Permissions definiert, welche nur für diesen Aspekt
gültig sind (Abbildung 25). Dabei wird im Hintergrund immer der Aspektname mitgespeichert.
Abbildung 25: Permissions
40
3 Sprachentwurf
Jedes Aspektelement verfügt über ein Attribut, welches die zugehörige Permission definiert (Abbildung 26).
Abbildung 26: Referenz auf eine Permission bei Abfrage
Bei der Definition einer Phase kann der Administrator die Permissions aus einzelnen
Aspekten verwenden. Wenn eine Phase über die Weboberfläche vom Administrator frei
geschaltet wird, dann werden alle Aspektelemente, bei denen die Permissions dieser Phase gesetzt sind, gezielt aktiviert.
41
3 Sprachentwurf
3.8 Abfragen
Ein wichtiges Sprachelement für einen Aspekt ist eine Abfrage (Query). Die Abfragen beschaffen die Daten, welche über die Weboberfläche in verschiedenen Modulen angezeigt
und für Reports bearbeitet und aufbereitet werden. Die meisten Abfragen enthalten viel
SQL-Text und waren in Konfigurationstabellen nur schlecht überschaubar (Abbildung
27).
Abbildung 27: Konfigurationstabelle mit Abfragen
42
3 Sprachentwurf
Um eine Abfrage besser bearbeiten zu können, wurde beim Entwurf der visuellen Sprache großer Wert auf gute Darstellung von SQL-Text gelegt. Daher wird der SQL-Text
einer Abfrage in Query-Sicht direkt angezeigt (Abbildung 28).
Alle wichtigen Abfrageelemente werden in der Query-Sicht visuell dargestellt (Abbildung 28). Dadurch hat der Administrator einen Überblick über alle Elemente, die eine
Abfrage ausmachen. Eine Query-Sicht enthält einen Kommentar, welcher die Abfrage
textuell beschreibt, SQL-Text, eine Referenz auf eine Permission, in der die Query aktiviert wird und einen Gültigkeitsbereich.
Abbildung 28: Query-Sicht
Ein Kommentar wird hier in grauer Schrift angezeigt, was bedeutet, dass dieser auf der
Weboberfläche nicht sichtbar ist. Vor dem Kommentar ist ein Symbol angebracht, welches dem Benutzer sofort erkennen lässt, dass es sich um einen Kommentar handelt. Der
SQL-Text einer Abfrage wird vom Administrator im Dialogfenster von Abfrageeigenschaften eingegeben. Um einen besseren Überblick über den SQL-Text zu haben, wird
dieser ebenfalls in der Query-Sicht direkt angezeigt. Der SQL-Text ist zusätzlich in ein
Rechteck mit gestichelter Linie gesetzt, damit er besser von anderen Elementen getrennt
wird (Abbildung 28). An der oberen linken Ecke ist ein Symbol angebracht, welches den
SQL-Text kenntlich machen soll.
In dieser Sicht wird ebenfalls der Name der referenzierter Permission sowie der Gültigkeitsbereich angezeigt. Vor dem Namen der Permission ist ein Symbol angebracht, welches beschreiben soll, dass eine Query erst dann aktiviert wird, wenn die Permission
durch den Phasenschalter aktiviert wird. Das andere Symbol, welches vor dem Namen
des Gültigkeitsbereichs steht, zeigt die verschiedene Module, die zusammen ein Ganzes
43
3 Sprachentwurf
darstellen.
3.9 Mapping
Um einen Bericht (Report) zu generieren, werden Daten benötigt, die aufbereitet werden
sollen. Das geschieht durch Mappings. Ein Mapping beschafft die Daten nur für den Report, in welchem es angelegt wird. Die Mappings bereiten Tabellen auf, welche direkt in
dem Report verwendet werden. Die Erstellung von Mappings im StudInfo{flex}-System
ist kompliziert und aus diesem Grund wurde versucht dieses durch eine gute visuelle
Repräsentation einfacher zu gestalten.
Beim Mapping wird eine Ergebnistabelle definiert. Der Name der Tabelle ist über Spaltennamen platziert, welche in dieser Ergebnistabelle angelegt werden müssen. In Abbildung 29 sind BonusGrenzen“, Uebungsergebnis“ und Ergebnis“ die Namen von
”
”
”
Ergebnistabellen. Die Spalten werden mittels Sprachelementen hinzugefügt, bei denen
die Spaltennamen aus einer Referenzliste ausgewählt oder vom Benutzer selbst definiert
werden können. Gleichzeitig werden sie intern auch als Variablen definiert und können
somit als Platzhalter verwendet werden. Die Spaltennamen müssen mit den Spalten
der angegebenen Abfrage assoziiert werden. Die Spalten BonusID“, BonusTxt“ und
”
”
PunkteVon“ der Tabelle BonusGrenzen“ (Abbildung 29) assoziieren mit den Spalten
”
”
ID“, Bonus“ und PunkteVon“ der folgenden Abfrage UebungsBonusGrenzen“.
”
”
”
”
SELECT ‘ID‘, ‘Bonus‘, ‘PunkteVon‘
FROM ‘Values_Bonus‘
ORDER BY ‘ID‘;
Es können auch mehrere Mappings hintereinander angelegt und miteinander verknüpft
werden. Dafür kann ein Sprachelement verwendet werden, das visuell als ein Plus dargestellt wird (Abbildung 29). Die Verknüpfung verursacht, dass zuerst die erste Abfrage
ausgeführt und die entsprechende Ergebnistabelle temporär generiert wird. Daraufhin
wird auf jeden Datensatz der Ergebnistabelle die zweite Abfrage, welche nach dem Plus
kommt, ausgeführt.
Da eine Tabelle dargestellt werden muss, wurden die Spalten in einer horizontalen Liste
platziert. Die Assoziation von Spaltennamen mit Spalten der angegebenen Abfrage wurde durch eine große geschweifte Klammer, welche alle Spalten umfasst, dargestellt. Ein
Plus zeigt, dass zwei Mappings miteinander verknüpft sind.
44
3 Sprachentwurf
Abbildung 29: Mappings
3.10 Tabellenmodellierung
Bei der Konfiguration einer StudInfo{flex}-Veranstaltung werden außer Konfigurationstabellen noch zwei weitere Arten von Tabellen benötigt, Daten- und Wertebereichstabellen. Auch diese sollen in Aspekten definiert werden. Zur Verbesserung der Übersicht
wurden die Daten- und Wertebereichstabellen visuell dargestellt.
Die Wertebereichstabellen werden vor allem für die Darstellung von Auswahlmöglichkeiten in Dropdown-Listenfeldern, sowie in SQL-Anweisungen zur Festlegung von gültigen Wertebereichen verwendet. Die Datentabellen werden während des Vorlesungsbetriebs mit Inhalt gefüllt, welcher durch Studenten, Tutoren und den Administrator über
die Weboberfläche der StudInfo{flex}-Veranstaltung eingegeben wird. Dazu zählen unter
anderem die persönlichen Daten von Studierenden, die Klausurteilnahme sowie erreichte
Punkte in den Übungen und Klausuren. Auf die Daten- und Wertebereichstabellen wird
über vielfältige SQL-Statements in den Konfigurationstabellen zugegriffen. Sie werden
vor allem für Abfragen und Berichte verwendet.
45
3 Sprachentwurf
Die wichtigsten Tabellenelemente, wie Name, Kommentar, Primärschlüssel und die Tabelle selbst, werden in den Sichten von Daten- und Wertebereichstabellen visuell dargestellt (Abbildung 30). Ein Kommentar, welcher den Inhalt der Tabelle beschreibt, wird
hier in grauer Schrift angezeigt, was bedeutet, dass dieser Kommentar auf der Weboberfläche nicht sichtbar ist. Vor dem Kommentar ist ein Symbol angebracht, welches
den Benutzer sofort erkennen lässt, dass es sich um einen Kommentar handelt. Weiter
unten wird der Primärschlüssel einer Tabelle angezeigt. Auch hier wurde ein Symbol,
in Form eines Schlüssels, platziert. So kann der Benutzer einer Tabelle besser erkennen,
um welche Tabellenelemente es sich handelt.
Abbildung 30: Konfiguration einer Datentabelle
Eine Datentabelle wird bei der Konfiguration einer neuen Veranstaltung nicht mit Werten gefüllt. Die Tabellenform wird durch das Einfügen von Spalten in eine horizontale
Liste erreicht. Dazu wurde das visuelle Muster einer Liste verwendet.
Die Wertebereichstabellen werden, im Gegensatz zur Datentabellen, mit Inhalt gefüllt
(Abbildung 31). Die Darstellung der Tabelle wurde hier durch das visuelle Muster einer
Matrix erreicht. Jeder Spalte ist ein SQL-Datentyp zugeordnet. Diese Eigenschaft gilt
dann ebenfalls für jede Zelle einer Spalte. So etwas konnte nicht durch andere visuelle
Muster erreicht werden.
46
3 Sprachentwurf
Abbildung 31: Konfiguration einer Wertebereichstabelle
3.11 Tutoren-Logins
Die Tutoren haben die Möglichkeit über das Tutorenmodul die Punkte für Übungsaufgaben zu vergeben und verschiedene E-Mails an Übungsgruppenteilnehmer zu verschicken. Um diese Aktivitäten durchführen zu können, werden die Daten von Tutoren, die
eine Übung einer StudInfo{flex}-Veranstaltung leiten, in einer Konfigurationstabelle angelegt. Hier werden Daten, wie Name, Vorname, E-Mail, Login und Passwort für jeden
Tutor gespeichert. Mit diesen Daten haben die Tutoren Zugriff auf das Tutorenmodul.
Wenn während des Vorlesungsbetriebs neue Übungsgruppen mit neuen Tutoren angeboten oder gestrichen werden, müssen in der Datenbank Tutoren angelegt bzw. gelöscht
werden. Um diese direkten Zugriffe auf die Datenbank zu vermeiden, wurden die Tutorendaten beim Entwurf der visuellen Sprache in ein eigenes Spezifikationsteil umgewandelt.
Über eine eigene Tutorusers-Sicht (Abbildung 32) kann der Administrator die Tutoren
mit dem Sprachelement Tutoruser“ anlegen oder direkt aus der Liste herauslöschen. So
”
wird vollständig vermieden, dass zur Konfiguration einer Veranstaltung direkt auf die
Datenbank zugegriffen werden muss.
47
3 Sprachentwurf
Abbildung 32: Tutorusers-Sicht
Zusammenfassung Dieses Kapitel hat die visuelle Sprache für das StudInfo{flex}System beschrieben. Mit dem Entwurf dieser Sprache wurde die zugehörige Benutzungsoberfläche StudInfo{flex}-Designer“ entwickelt. Diese bietet dem Benutzer die
”
Möglichkeit eine Veranstaltung zu konfigurieren, ohne direkt in die Datenbank eingreifen zu müssen. Dabei helfen viele Sprachelemente eine Konfiguration einfach und schnell
zu bearbeiten. Vor allem kann durch die Bildung von Aspekten einer Veranstaltung ein
besserer Überblick gewährt werden. Auch die Integration von Permissions in Aspekte
erlaubt eine gezielte Aktivierung von einzelnen Aspekten bzw. Aspektelementen. Das
Zusammenfügen von Datenerfassung und Typschlüssel in eine Sicht verhindert, dass
die Definition von wichtigen Elementen übersehen wird. In die Display-Sicht wurde das
Sprachelement Update integriert. Das erlaubt dem Benutzer den Aktualisierungsprozess
einfacher zu gestalten. Um die Zugriffe auf die Datenbank zu vermeiden, wurden auch
die Tutorendaten zu einem Spezifikationsteil zusammengefasst.
48
4 Realisierung
4 Realisierung
In diesem Kapitel wird auf einige interessante Teile der Implementierung der in Kapitel 3 vorgestellten visuellen Sprache eingegangen. Dabei wird als erstes ein Überblick
über den kompletten Ablauf einer Konfiguration gegeben. Danach wird die Generierung
von Datenbank-Schlüsseln erläutert und im darauf folgenden Abschnitt erklärt, wie eine
laufende Veranstaltung aktualisiert wird. Als letztes wird auf Konsistenzprüfungen eingegangen.
4.1 Konfigurationsprozess einer StudInfo{flex}- Veranstaltung
Abbildung 33 zeigt den Ablauf einer visuellen Konfiguration einer StudInfo{flex}-Veranstaltung. Zuerst muss der Benutzer über die Benutzeroberfläche des StudInfo{flex}Designers eine vordefinierte StudInfo{flex}-Standardvorlesung anpassen oder eine neue
StudInfo{flex}-Veranstaltung anlegen. Dazu nutzt er verschiedene Sprachelemente der
in dieser Diplomarbeit entworfenen visuellen Sprache für das StudInfo{flex}-System.
Als nächstes generiert der Benutzer den SQL-Code. Dieser enthält Konfigurations-,
Wertebereichs- und Datentabellen, die bisher vom Administrator direkt angepasst werden mussten. Der letzte Schritt ist das Importieren des SQL-Codes in das StudInfo{flex}System.
49
4 Realisierung
Abbildung 33: Ablauf der Konfiguration einer Veranstaltung
50
4 Realisierung
4.2 Generierung von Datenbankschlüsseln
Bei der bisherigen StudInfo{flex}-Konfiguration musste der Benutzer für Reports, Displayelemente und Phasen selbst die Identifikationsnummern (IDs) vergeben. Dabei muss
er immer darauf achten, dass die IDs für verschiedene Elemente eindeutig sind und sich
nicht wiederholen. Die IDs sind auch maßgeblich für die Reihenfolge, in der Informationen in Modulen präsentiert werden. Reports, Displayelemente und Phasen werden
aufsteigend nach IDs sortiert angezeigt. Damit der Benutzer die IDs nicht mehr pflegen
muss, wurde die Generierung automatisiert.
Für die Generierung von IDs wurde das LIDO Konstrukt CHAIN“ verwendet (Ab”
bildung 34). Mit Hilfe dieses Konstrukts werden die IDs automatisch vergeben. Dabei
wird an einer Klasse begonnen, dessen Elemente verschiedene IDs enthalten müssen
(in diesem Fall Report). Hier wird zunächst eine Startzahl definiert. Jetzt werden die
Klassenelemente von links nach rechts gezählt. Sie erhalten der Reihenfolge nach verschiedene Zahlen. Dies geschieht, indem für jedes neue Element eine fest definierte Zahl
aufaddiert wird. Wenn alle Elemente einer Klasse erfasst sind, kann garantiert werden,
dass die IDs eindeutig sind.
Abbildung 34: CHAIN-Konstrukt
4.3 Aktualisierbarkeit einer laufenden Veranstaltung
Der Benutzer hat auch im Vorlesungsbetrieb die Möglichkeit mit Hilfe von StudInfo{flex}Designer die Konfiguration zu ändern. Dabei werden nach dem Import des SQL-Codes
nicht alle Tabellen überschrieben. Die Konsistenz von Daten wird beibehalten.
51
4 Realisierung
Falls während der laufenden Vorlesung Änderungen an der Konfiguration getätigt werden müssen, die über die Weboberfläche des Administratormoduls nicht möglich sind,
werden diese mit Hilfe des StudInfo{flex}-Designers gemacht. Danach muss der SQLCode neu generiert und importiert werden. Beim Import in das StudInfo{flex}-System
werden alle bestehende Konfigurations- und Wertebereichstabellen der StudInfo{flex}Veranstaltung automatisch überschrieben. Die vorhandenen Datentabellen bleiben bestehen bzw. neue werden hinzugefügt.
Im Abschnitt 4.2 wurde die Generierung von IDs beschrieben. Die automatische Vergabe von IDs ist nur für Elemente aus Konfigurationstabellen sinnvoll. IDs werden neu
vergeben, wenn die Reihenfolge von Elementen in einer Konfigurationstabelle geändert
wird oder neue Elemente hinzukommen. Die IDs für Wertebereichstabellen müssen weiterhin per Hand eingegeben werden. Dies ist notwendig, weil Daten in Data-Tabellen
sich darauf beziehen. Würden die IDs für Wertebereichtabellen automatisch vergeben,
so würden sie sich ändern, wenn die Reihenfolge von Zeilen geändert wird oder neue
hinzugefügt werden. Die neu vergebenen IDs stimmen nicht mit denen, die in Datentabellen von Studenten gespeichert sind, überein. Zum Beispiel muss beim Anlegen des
Kontos am Anfang einer Veranstaltung ein Student einen Studiengang wählen. Dabei
wird die ID des gewählten Studienganges in der Datentabelle Data Student“ in der
”
Spalte Studiengang“ gespeichert. Wenn jedoch die Reihenfolge von Studiengängen in
”
der Tabelle Values Studiengang“ geändert wird, werden ebenfalls die IDs neu vergeben.
”
Das heißt, dass nach dem Import in den Studentendaten ein falscher Studiengang steht.
Die beschriebe Eigenschaft des Imports ermöglicht das Erhalten von bereits eingegebenen Daten von Studenten, Tutoren und dem Administrator. So kann der Administrator jederzeit problemlos Änderungen bei der laufenden Veranstaltung mittels des
StudInfo{flex}-Designers vornehmen.
4.4 Konsistenzprüfungen
Bei der herkömmlichen Konfiguration wurden die Werte einfach in Konfigurationstabellen geschrieben. Dabei treten häufig Eingabefehlern auf. Erst im Vorlesungsbetrieb
kann festgestellt werden, dass ein Element nicht richtig funktioniert und die Fehlersuche
beginnt. Beim Entwurf des StudInfo{flex}-Designers wurde versucht, auf die Eingabe
von Text durch den Benutzer zu verzichten. Da dies jedoch nicht möglich war, wurden
reichlich Tests definiert, welche eingegebene Daten auf Konsistenz prüfen. Einige davon
werden im Folgenden beschrieben.
Bei der Konfiguration einer Lehrveranstaltung kann der Benutzer neue Daten- und Wer-
52
4 Realisierung
tebereichstabellen mit eigenen Namen definieren. Dieser Name darf keine Leerzeichen
enthalten. Falls der Benutzer im Dialogfenster einen Namen mit Leerzeichen eingibt
und dies bestätigt, wird eine Fehlermeldung angezeigt, welche ihn auf unerlaubte Zeichen im Namen aufmerksam macht. Der Benutzer muss daraufhin den Tabellennamen
ändern. Analog wird die Eingabe von Spaltennamen geprüft.
Andere Konsistenzprüfungen sorgen dafür, dass in Eingabefelder bei der Definition von
Spalteneigenschaften nur zugelassene Zeichen eingefügt werden.
Bei der Konfiguration von Lehrveranstaltung muss der Benutzer oft bei vielen Elementen die Namen von Permissions, Tabellen, Spalten, Abfragen und Reports eingeben. Da
man sich diese Namen schlecht merken kann und eine manuelle Eingabe fehleranfällig
ist, können diese per Auswahlliste definiert werden (Abbildung 35). Die Auswahllisten
sind nur für Elemente dargestellt, die semantisch sinnvoll sind.
Bei der Definition von Elementeigenschaften dürfen einige Felder nicht leer gelassen
werden. Wenn der Benutzer die Pflichtfelder nicht ausfüllt oder nicht referenziert, dann
führt dies zu Fehlermeldungen, die auf unvollständige Angaben hinweisen.
53
4 Realisierung
Abbildung 35: Referenzen
54
5 Evaluation
5 Evaluation
In diesem Kapitel wird der in dieser Diplomarbeit entwickelte StudInfo{flex}-Designer
hinsichtlich Usability getestet. Dabei wird zunächst auf die Grundlagen der Evaluation
und Usability eingegangen. Danach wird beschrieben, wie der StudInfo{flex}-Designer
durch mehrere Probanden getestet und welche Ergebnisse erzielt wurden.
5.1 Grundlagen der Evaluation
Wottawa [10] definiert Evaluation als
das Sammeln und Kombinieren von Daten mit einem gewichteten Satz von
”
Skalen mit denen entweder vergleichende oder numerische Beurteilungen erlangt werden sollen“.
Evaluation von Software dient dazu, die Usability einer Benutzungsschnittstelle zu testen und zu verbessern.
Usability oder Benutzerfreundlichkeit ist definiert als die Effektivität, Effizienz und Zufriedenheit bei der Benutzung einer Anwendung. Die Effektivität beschreibt dabei, ob
der Benutzer mit dem StudInfo{flex}-Designer seine Ziele erreichen kann. Das Kriterium Effizienz betrifft den Aufwand, der zum Erreichen des Ziels nötig ist. Ziel ist es, den
Aufwand für die Problemlösung möglichst gering zu halten. So sollen möglichst wenig
Schritte zu einer konfigurierten StudInfo{flex}-Veranstaltung führen. Bei dem Kriterium
Zufriedenheit wird einbezogen, ob der Benutzer den visuellen StudInfo{flex}-Designer
für die Konfiguration von Lehrveranstaltungen gut, angemessen und zufriedenstellend
findet [11].
Wenn alle drei Kriterien Effektivität, Effizienz und Zufriedenheit für einen bestimmten Nutzungskontext des StudInfo{flex}-Designers erfüllt sind, kann der StudInfo{flex}Designer als eine benutzerfreundliche Anwendung betrachtet werden.
Baumgartner [12] hat bei der Durchführung einer Evaluation vier Phasen vorgeschlagen:
1. Formulierung von Wertekriterien: Kriterien werden ausgewählt und definiert,
die das Produkt erfüllen muss, um als gut, wertvoll usw. gelten zu können.
2. Formulierung von Leistungsstandards: Für die oben eingeführten Kriterien
wird eine Norm definiert, die das Produkt erreichen muss, damit das Kriterium als
erfüllt angesehen werden kann.
55
5 Evaluation
3. Messung und Vergleich (Analyse): Das Produkt wird unter Anwendung der
Kriterien untersucht, gemessen und mit den vorgegebenen Leistungsstandards verglichen.
4. Werturteil (Synthese): In dieser letzten Phase werden die verschiedenen Ergebnisse zu einem einheitlichen Werturteil verknüpft.
5.2 Umsetzung der Standardveranstaltung
Beim Entwurf der visuellen Sprache wurde jedes Sprachelement anhand eines Beispieles
auf seine Funktionalität getestet. Abschließend wurde eine komplette Standardveranstaltung umgesetzt, welche als Ausgangspunkt für den Usability-Test diente. Die Konfiguration wurde auch durch einen Mitarbeiter der Arbeitsgruppe Programmiersprachen
”
und Übersetzer“ getestet und hat sich als stabil, zuverlässig und flexibel erwiesen.
Die umgesetzte Standardveranstaltung bietet Übungen, drei schriftliche Klausuren und
eine Wunschvorlesung an. In Übungsgruppen werden die Aufgaben zur Vorlesung bearbeitet. Die Standardveranstaltung bietet ein Bonusmodell an. Dabei haben die Studenten die Möglichkeit die Übungszettel allein oder in Gruppen zu lösen und bei Tutoren
abzugeben. Pro Übungszettel wird eine bestimmte Anzahl von Punkten vergeben. Die
Lösungen werden korrigiert und die erreichten Punkte den Studenten gutgeschrieben.
Der Student hat die Möglichkeit sich zu Klausuren an- bzw. abzumelden. Am Ende
der Vorlesung werden die Übungspunkte zusammengezählt und ein Klausurnotenschritt
ausgerechtet. Die Klausurnote wird dann um diesen Notenschritt verbessert. Eine Standardveranstaltung bietet ebenfalls eine Wunschvorlesung. Dabei können die Studenten
im Vorlesungsbetrieb drei Wunschthemen wählen, welche sie gern hören wollen. Das am
meisten gewünschte Thema wird in der Vorlesung vorgestellt.
5.3 Kontrolliertes Experiment
Mit der Evaluation wird untersucht, wie bequem der Benutzer eine Veranstaltung mit
dem StudInfo{flex}-Designer konfigurieren und ob er alle Aufgabe bewältigen kann. Die
Zielfragestellungen lauten deshalb:
• Wie einfach lässt sich eine neue StudInfo{flex}-Veranstaltung aus einer StudInfo{flex}-Standardveranstaltung konfigurieren?
• Wie einfach lässt sich eine bestehende StudInfo{flex}-Standardveranstaltung ändern?
56
5 Evaluation
• Macht der Benutzer bei der Konfiguration viele Fehler?
• Können auch Anfänger die StudInfo{flex}-Veranstaltung konfigurieren?
• Wo liegen Schwächen des StudInfo{flex}-Designers?
Es werden in der Literatur viele verschiedene Methoden zur Usability-Evaluation beschrieben. Zum Testen des StudInfo{flex}-Designers wurde ein kontrolliertes Experiment
und ein nachfolgendes Interview durchgeführt. Bei einem kontrollierten Experiment löst
eine Testperson, allein und nur mit wenig Hilfestellung, unter genau kontrollierten Bedingungen bestimmte Aufgaben mit dem StudInfo{flex}-Designer. Diese Methode soll
zeigen, dass Veranstaltungen mit dem StudInfo{flex}-Designer einfach konfiguriert und
geändert werden können. Dabei wurde beobachtet, wie das Ziel erreicht und wo die Testpersonen Fehler machten bzw. Hilfe benötigten. Die Testpersonen wurden abschließend
mittels eines Fragenkatalogs befragt.
Der StudInfo{flex}-Designer wurde durch drei Probanden getestet. Dabei hatten alle
drei Tester keine Erfahrungen im Bereich der Konfiguration von Lehrveranstaltungen.
Sie kannten nur die Weboberfläche des Studierendenmoduls.
Vor dem Test wurde eine Einführung zu visuellen Sprachen, DEViL und zum StudInfo{flex}-System von ca. 30 Minuten gegeben.
Die Testpersonen mussten drei Aufgaben absolvieren. Die erste Aufgabe bestand aus
mehreren Teilen. Die Testpersonen mussten eine neue Grundkonfigurationsvariable anlegen und benennen. Dabei sollten sie den richtigen Spezifikationsteil finden, in dem die
Grundkonfigurationsvariablen definiert werden. Als nächstes mussten die Testpersonen
einen neuen Tutor mit seinen Daten anlegen. Des Weiteren gab es einige Änderungen
bei einem Aspekt, die sie durchführen mussten. Der letzte Teil der ersten Aufgabe war
das Anlegen einer neuen Phase.
Die zweite Aufgabe bestand darin, einen Aspekt zu löschen und zu importieren. Die
Schwierigkeit war dabei, dass die Testpersonen nach dem Löschen bzw. Importieren alle
Aspekte und gegebenenfalls die Phases-Sicht anpassen mussten. Das war notwendig, weil
die übrigen Aspekte Tabellen aus dem gelöschten Aspekt für die Abfragen verwenden.
Bei der dritten Aufgabe mussten die Testpersonen aus einer StudInfo{flex}-Standardveranstaltung eine neue StudInfo{flex}-Veranstaltung konfigurieren. Dabei sollen sie folgende Änderungen durchführen:
• neuen Namen der Vorlesung, Namen des Professors und Semester vergeben
57
5 Evaluation
• neue Zeiten für Übungsgruppen eintragen
• neue Klausurtermine anlegen.
Nach Bearbeitung der Aufgaben wurden den Testpersonen einige Fragen gestellt. Sie
konnten auf einer 5-stufigen Likert-Skala beantwortet werden, bei der sich zwei gegensätzliche Extremaussagen gegenüberstehen. Die linke Seite wird mit der Note 1 (sehr
gut), die rechte Seite mit der Note 5 (schlecht) bewertet.
Die Tabelle in Abbildung 36 zeigt die Mittelwerte, welche bei der Bearbeitung von drei
Aufgaben entstanden sind. Erkennbar ist, dass die Anpassungen bei der ersten Aufgabe
sehr schnell durchgeführt worden sind. Zu beachten ist, dass alle Testpersonen vorher nie
eine StudInfo{flex}-Veranstaltung konfiguriert hatten. Bei der zweiten Aufgabe hatten
die Testpersonen Schwierigkeiten bei der Suche nach Tabellennamen in SQL-Abfragen,
weil sich keiner von ihnen mit der Standardkonfiguration auskannte. Die dritte Aufgabe
wurde ohne Hilfe mit Leichtigkeit erledigt.
Abbildung 36: Zeitverbrauch bei der Bearbeitung der Aufgaben
Nach dem alle Aufgaben gelöst waren, wurden die Testpersonen befragt. Dabei wurden
die Fragen im Durchschnitt wie folgt beantwortet:
58
5 Evaluation
Abbildung 37: Fragen und Antworten beim Interview
Die Ergebnisse des kontrollierten Experiments sowie die Befragung ergaben, dass
viele Änderungen mit dem StudInfo{flex}-Designer einfach durchzuführen sind. Der
StudInfo{flex}-Designer enthält eine konfigurierte Standardveranstaltung. Darum
braucht der Benutzer nur wenige Anpassungen zu tätigen, um daraus eine neue ähnliche
Vorlesung zu erstellen. Schwierigkeiten gab es beim Löschen bzw. Importieren von
Aspekten. Das lag daran, dass diese Aspekte auf Tabellen aus anderen Aspekten
zugegriffen haben. Beim Löschen muss dem Benutzer bekannt sein, ob andere Aspekte
die Tabellen aus dem gelöschten Aspekt nutzen. Beim Importieren eines Aspekts aus
anderen Konfigurationen muss geprüft werden, ob alle Tabellen, auf welche dieser
zugreift, wirklich vorhanden sind oder ob sie umbenannt bzw. neue angelegt werden
müssen. Die zweitschlechteste Note von 3,8 kam zustande beim Anlegen neuer Aspekte.
Dies erfordert Kenntnisse über die Konfiguration von Veranstaltungen. Da keine
Testperson vorher Lehrveranstaltungen konfigurierte, wurde diese Aufgabe nur schwer
bewältigt.
Die Evaluation hat gezeigt, dass die Konfiguration von Lehrveranstaltungen mit
dem StudInfo{flex}-Designer auch von Anfängern durchgeführt werden kann. Mit
einigen Erklärungen zur visuellen Oberfläche und zum StudInfo{flex}-System können
Änderungen schnell und einfach getätigt werden. Die Testpersonen fanden die Bedienung der Benutzungsoberfläche leicht verständlich und intuitiv. Die Sprachelemente des
StudInfo{flex}-Designer waren selbsterklärend. Bei der Bearbeitung von Aufgaben haben sie die Darstellung von Elementen als gut, überschaubar und einheitlich befunden.
Die Wiederverwendung von Aspekten und deren Elemente wurde eingesetzt und als
benutzerfreundlich eingestuft. Die einheitliche Darstellung der Benutzungsoberfläche
59
5 Evaluation
des StudInfo{flex}-Designers und des StudInfo{flex}-Systems erlaubt einen fließenden
Übergang zwischen beiden Anwendungen.
60
6 Zusammenfassung
6 Zusammenfassung
In dieser Diplomarbeit wurde eine visuelle Sprache und eine zugehörige Benutzungsoberfläche, der StudInfo{flex}-Designer, zur Konfiguration von StudInfo{flex}-Veranstaltungen entwickelt. Der Benutzer kann hiermit die gesamte Konfiguration visuell erstellen
und muss nicht mehr direkt auf die Datenbanktabellen zugreifen. Die Benutzungsoberfläche ist übersichtlich, einfach und intuitiv benutzbar. Das Einfügen von inkonsistenten
Eingaben durch den Benutzer wurde durch viele Konsistenzprüfungen verhindert.
Die Konfiguration lässt sich in einzelne Aspekte zerlegen. Sie bilden die Hauptteile einer Vorlesung. Dank der Aspekte erhält der Benutzer einen guten Überblick
über die Konfiguration und die zur Verfügung stehenden Elemente. Beim Anlegen
von Aspekten wird dem Benutzer eine Liste mit Elementen angezeigt, welche definiert
werden müssen. Diese können bequem und intuitiv in einzelnen Sichten bearbeitet
werden. Die Wiederverwendung von Aspekten und Aspektelementen ist besonders
vorteilhaft bei der Konfiguration neuer Veranstaltungen. Bei der Bildung von Aspekten
wurden die Permissions in diese integriert, was dem Benutzer einen zusätzlichen Vorteil
bietet. Bei der Definition einer Phase werden die Permissions aus einzelnen Aspekten
verwendet. Das führt dazu, dass die einzelnen Aspekte gezielt aktiviert werden können.
Bei dem Entwurf der graphischen Benutzungsoberfläche für StudInfo{flex}Designer wurden einige Darstellungen aus den Webseiten des StudInfo{flex}-Systems
übernommen. Es gab jedoch nicht für alle Sprachelemente im StudInfo{flex}-Designer
einen Pendant auf der Webseite. Deshalb wurden neue Sprachelemente im Designer an
die Weboberfläche angepasst.
Die entworfene visuelle Sprache wurde auf ihre Konsistenz und Korrektheit hin
untersucht. Es wurde eine komplette StudInfo{flex}-Standardveranstaltung über die
graphische Benutzungsoberfläche konfiguriert. Auch eine benutzerdefinierte Vorlesung
mit mündlichen Prüfungen, anstelle von drei schriftlichen Klausuren, konnte mit
der entworfenen visuellen Sprache erstellt werden. Weiterhin wurde eine Evaluation
durchgeführt, welche den StudInfo{flex}-Designer auf Usability untersuchte. Durch
die Evaluation wurden die Schwachpunkte der visuellen Sprache erkannt und verbessert. Vor allem gab es Verbesserungen im Bereich der Konsistenzprüfungen. In
einem kontrollierten Experiment konnte gezeigt werden, dass Lehrveranstaltungen mit
dem StudInfo{flex}-Designer auch durch Benutzer mit nur wenigen Vorkenntnissen
konfiguriert werden können.
61
Abbildungsverzeichnis
Abbildungsverzeichnis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Schweigen“ . . . . . . . . . . . . . . . . . . . . . . . . . .
”
Klassifikation für visuelle Programmierung nach Shu . . . .
Generierung der visuellen Entwicklungsumgebung . . . . .
Visuelle Sicht einer Datentabelle . . . . . . . . . . . . . . .
Spezifikation der abstrakten Struktur . . . . . . . . . . . .
Visuelle Muster . . . . . . . . . . . . . . . . . . . . . . . .
Generische Zeichnung . . . . . . . . . . . . . . . . . . . . .
Datenbank einer Standardveranstaltung . . . . . . . . . .
Tabelle aus der Datenbank . . . . . . . . . . . . . . . . . .
Benutzungssebenen des StudInfo{flex}-Systems . . . . . .
Aktuelle Grundkonfiguration . . . . . . . . . . . . . . . . .
Auswahlliste von möglichen Studiengängen . . . . . . . . .
Aktivierung von Phasen . . . . . . . . . . . . . . . . . . .
Grundkonfigurationsvariablen einer Standardveranstaltung
Formular zum Anlegen eines Kontos . . . . . . . . . . . . .
Hauptsicht der StudInfo{flex}-Standardvorlesung . . . . .
Aspect-Sicht . . . . . . . . . . . . . . . . . . . . . . . . . .
Herkömmliche Konfiguration von Display . . . . . . . . . .
Display mit Updates . . . . . . . . . . . . . . . . . . . . .
Display mit persönlichen Daten . . . . . . . . . . . . . . .
Auswirkungen von Update Nachname“ . . . . . . . . . .
”
Datenerfassungssicht . . . . . . . . . . . . . . . . . . . . .
Manuelle Eingabe von Übungspunkten . . . . . . . . . . .
Phasenschalter . . . . . . . . . . . . . . . . . . . . . . . .
Permissions . . . . . . . . . . . . . . . . . . . . . . . . . .
Referenz auf eine Permission bei Abfrage . . . . . . . . . .
Konfigurationstabelle mit Abfragen . . . . . . . . . . . . .
Query-Sicht . . . . . . . . . . . . . . . . . . . . . . . . . .
Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . .
Konfiguration einer Datentabelle . . . . . . . . . . . . . .
Konfiguration einer Wertebereichstabelle . . . . . . . . . .
Tutorusers-Sicht . . . . . . . . . . . . . . . . . . . . . . . .
Ablauf der Konfiguration einer Veranstaltung . . . . . . .
CHAIN-Konstrukt . . . . . . . . . . . . . . . . . . . . . .
Referenzen . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zeitverbrauch bei der Bearbeitung der Aufgaben . . . . . .
Fragen und Antworten beim Interview . . . . . . . . . . .
62
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
8
10
10
13
14
15
19
19
20
21
24
25
26
27
30
32
34
35
36
36
38
39
40
40
41
42
43
45
46
47
48
50
51
54
58
59
Literatur
Literatur
[1] DEViL (Development Environment for Visual Languages) Online: http://agkastens.uni-paderborn.de/forschung/devil/index.php
[2] S. Schiffer: Visuelle Programmierung, Addison-Wesley-Longman Verlag, 1998
[3] Carsten Schmidt, Uwe Kastens: Implementation of visual languages using patternbased spezifications, Software - Practice and Experience, 33:1471-1505, 2003
[4] Daniel Warner: StudInfo{flex}-Dokumentation, 2005
[5] Andreas Knauer, Christopher Kristes: Aspektorientierte Programmierung: AspectJ und HyperJ, Köln, 2004; http://www.gm.fh-koeln.de/ẽhses/
seminar/ergebnisse03/Aspektorientierte-Programmierung/ausarbeitung.pdf
[6] Newsletter vom 21.06.2004: Aspektorientierte Programmierung - Zur Architektur
Objektorientierter Anwendungen: http://www.it-fws.de/publics/aop062004.pdf
[7] Aspektorientierte Programmierung: http://www.computerbase.de/lexikon/Aspektorientierte Programmierung
[8] Thomas Baustert: AOP in Kürze; http://www.software-coach.de/swdev/aop/aopkurz/, April 2004
[9] Crosscutting Concerns - Warum Objektorientierung manchmal nicht ausreicht
http://wwwse.fhs-hagenberg.ac.at/se/berufspraktika/2002/se99047/contents/german/aop.html
[10] Wottawa, H.: Evaluation, Weinheim : Beltz PVU, 2001
[11] Frank Tissen: Screen-Design Handbuch, Springer Verlag, 2003
[12] Baumgartner, P.: 10 Testmethoden in der Evaluation interaktiver Lehr- und Lernmedien, Waxmann Verlag, 1999
[13] Krienke, R.: Programmieren in Perl, Hanser, 2002
[14] Bastian Cramer: Generierung von graphischen Struktureditoren aus visuellen Spezifikationen, Diplomarbeit, 2005
63
Eidesstattliche Erklärung
Ich versichere, dass ich diese Diplomarbeit ohne Hilfe Dritter und ohne Benutzung anderer als der angegebenen Quellen und Hilfsmittel angefertigt habe. Alle
Ausführungen, die wörtlich oder sinngemäß übernommen wurden, sind als solche
gekennzeichnet.
————————————————————————————————————
Ort, Datum
Unterschrift