Visuelle Programmiersprachen
Prof. Dr. Andy Schürr
email: schuerr@informatik.unibw-muenchen.de
Institut für Softwaretechnologie
Fakultät für Informatik
Universität der Bundeswehr München
D-85577 Neubiberg
- Vorlesung im Wintertrimester 2001 an der Universität der Bundeswehr München
Visuelle Sprachen (VLs) nehmen einen immer breiteren Raum bei Entwurf und Realisierung von Software ein. Ihre Anwendungsbereiche reichen von der Formulierung von "ad hoc" Anfragen an Datenbanken über die Programmierung von Simulationen bis hin zur Steuerung verfahrenstechnischer Prozesse. In der Vorlesung werden typische Vertreter verschiedener Klassen von VLs sowohl theoretisch als auch praktisch (durch Systemvorführungen und Videos) vorgestellt. Zudem werden verschiedene Ansätze zur Definition von Syntax und Semantik von VLs und zum Bau der entsprechenden Programmierumgebungen diskutiert. In den begleitenden Übungen wird der Vorlesungsstoff durch den Umgang mit verschiedenen VL-Programmierumgebungen und den schrittweisen Bau eigener VL-Werkzeuge vertieft.
Vorlesungstermine (einschließlich Ersatztermine):
- 14.02. ab 10:15 (Mi)
- 15.02. ab 13:15 (Do)
- 21.02. ab 10:15 (Mi)
- 22.02. ab 13:15 (Do)
- 28.02. ab 10:15 (Mi)
- 07.03. ab 10:15 (Mi)
- 08.03. ab 13:15 (Do)
- 09.03. ab 14:00 (Fr) statt 22.03.
- 14.03. ab 10:15 (Mi)
- 14.03. ab 16:00 (Mi) statt 28.03.
- 15.03. ab 13:15 (Do)
- [16.03. ab 14:00 (Fr) statt 29.03.]
- 21.03. ab 10:15 (Mi)
Inhaltsverzeichnis der Vorlesung, Folien und Literatur
Alle Folien der Vorlesung sind in der folgenden Datei
im pdf-Format abgespeichert. Sie benötigen zur Darstellung den Acrobat-Reader als Zusatzprogramm zum Web-Browser. Den neusten Acrobat-Reader für die verschiedenen Rechner gibt es kostenlos bei Adobe .
Zudem können die Folien auch zu den einzelnen Kapiteln als Postscript-Folien (4 Folien auf einer Seite) heruntergeladen werden. Die Postscriptdateien sind (zur Zeit) nur mit dem Programm gzip komprimiert hier verfügbar:
Inhaltsverzeichnis der Vorlesung und Folien
[ VL-0.ps.gz ]
- Visuelle Programmierung - Was ist das?
- [ VL-1.ps.gz ] (ohne Lücken)
- Visuelle Sprachen und Umgebungen
- [ VL-2.ps.gz ] (ohne Lücken)
- Programmieren mit Graphersetzungssystemen
- [ VL-3.ps.gz ] (ohne Lücken)
- Syntaxdefinition und Parsen visueller Sprachen
- [ VL-4.ps.gz ] (ohne Lücken)
- Attributauswertungsalgorithmen für Graphen
- [ VL-5.ps.gz ] (ohne Lücken)
- Constraints und visuelle Sprachen
- [ VL-6.ps.gz ] (ohne Lücken)
Achtung:
Die Folien wurden mit dem Textverarbeitungssystem Framemaker (von Adobe) erstellt. und enthalten ausblendbare Textpassagen (Lückentexte). Während der Vorlesungszeit sind hier nur die Folien mit fehlenden Textpassagen abgelegt, die interaktiv in der Vorlesung erarbeitet werden. Mit Ablauf der Vorlesung werden mit und mit alle Folien mit vollständigen Texten zur Vefügung gestellt.
Literatur (nur als Ergänzung):
- Stefan Schiffer: Visuelle Programmierung: Grundlagen und Einsatzmöglichkeiten,
- Addison-Wesley (1998), 3-8273-1271-X
- Jörg Poswig: Visuelle Programmierung: Computerprogramme auf graphischem Weg erstellen,
- Hanser Verlag (1996), 3-446-17990-9
- The Virtual Library Page on Visual Languages: http://cuiwww.unige.ch/eao/www/Visual/Visual.Programming.biblio.htm
- The Visual Language Bibliography Page: http://www.cs.orst.edu/~burnett/vpl.html
Übungen und Scheinerwerb
Der Erwerb eines Scheines erfolgt nicht durch die Teilnahme an einer Klausur oder mündlichen Prüfung. Vielmehr ist die aktive Teilnahme an den Übungen für den Erwerb eines Scheines notwendig. Im einzelnen wird die Scheinvergabe und Benotung wie folgt durchgeführt:
- Regelmäßiges Lösen theoretischer und praktischer Übungsaufgaben ist Voraussetzung für die Vergabe eines Scheines, die Ergebnisse von Übungsaufgaben gehen aber nicht in die Benotung ein.
- Selbständige Installation, Präsentation und Beschreibung einer ausgewählten (visuellen) Programmierumgebung, eines Softwarevisualisierungssystems oder eines Metawerkzeuges zum Bau von visuellen Werkzeugen bilden die Grundlage für die Vergabe einer Note.
Das gewählte Werkzeug ist im seminarähnlichen Stil in den Übungen vorzustellen (ca. 10 Minuten Präsentation der zugrundenliegenden Konzepte mit Hilfe von Folien, ca. 15 min. Präsentation der Umgebung am Rechner; Vorführung und Präsentation der Konzepte können ggf. miteinander verschränkt werden). Zusätzlich wird die Anfertigung einer schriftlichen Ausarbeitung und die Erstellung einer eigenen kleinen Beispielanwendung erwartet.
Die schriftliche Ausarbeitung soll in etwa wie folgt in Abschnitte unterteilt werden:
- Vorgeschichte des Werkzeuges (wann und von wem entwickelt)
- Hauptanwendungsgebiete
- wichtige Konzepte, Einordnung in Vorlesung
- Auswahl einer eigenen Beispielanwendung
- Realisierung (Beschreibung) der Beispielanwendung
- Arbeitsweise des Werkzeuges (anhand der Entwicklung des Beispiels)
- Bewertung des Ansatzes/Werkzeuges
- Literaturverzeichnis mit wichtigen Papieren, WWW-Adressen, etc.
Die schriftliche Ausarbeitung muß zusammen mit dem erstellten Anwendungsbeispiel bis zum 30. März 2001 abgegeben werden. Die Vorträge mit Systemvorführungen finden ab Anfang Februar fortlaufend in den Übungen statt (in etwa in der Reihenfolge, in der die Umgebungen unten aufgeführt sind).
Sowohl für die allgemeinen Übungsaufgaben als auch für die seminarartige Vorstellung visueller Programmierumgebungen können feste Gruppen von zwei Personen gebildet werden. Voraussetzung ist dabei allerdings, daß sowohl in der Ausarbeitung als auch im Vortrag alle Teilnehmer einer Gruppe mit klar gekennzeichneten eigenen Beiträgen in Erscheinung treten (jeder Abschnitt der Ausarbeitung muss genau einem Studenten zugeordnet werden).
Systempräsentationen WT2000
Die Vorlesung wurde bereits im letzten Jahr gehalten. Die Folien zu den damals mit großem Erfolg durchgeführten Systempräsentationen und die zugehörigen (zum großen Teil hervorragenden) Ausarbeitungen finden Sie hier
In den Übungen eingesetzte Programmierumgebungen
In den Übungen wird neben dem Lösen kleiner theoretischer Aufgaben der praktische Umgang mit zwei visuellen Programmierumgebungen erwartet. Der Schwerpunkt wird hierbei auf der Einarbeitung in diese Umgebungen und das Lösen kleiner Übungsaufgaben liegen. Beide Umgebungen können entweder'auf dem eigenen Rechner installiert oder auf den Rechnern des "Electronic Class Rooms" zu noch festzulegenden Zeiten benutzt werden. Es handelt sich dabei um:
- Prograph: eine kommerzielle visuelle Programmierumgebung, die das Prinzip der Datenflußprogrammierung mit objektorientierten Konzepten kombiniert. Weitere Informationen zu Prograph findet man unter http://www.pictorius.com/prograph.html.
- Eine selbstinstallierende Version von Prograph für Windows ist auch direkt hier verfügbar für Angehörige der Uni Bw als: CPX12ABC.exe(15 MB).
- PROGRES: "unsere" eigene visuelle Programmierumgebung, die die regelbasierte, objektorientierte und imperative Programmierung von Graphtransformationen unterstützt sowie das Rapid Prototyping visueller Programmierumgebungen. Weitere Informationen zu PROGRES sowie die Binaries für verschiedene Linux-Versionen findet man unter http://ist.unibw-muenchen.de/Tools/PROGRES/.
Übungsaufgaben für alle Teilnehmer
- Aufgabenblatt 1 (bis 24.01.01): [ VL-U-1.pdf ]
- Aufgabenblatt 2 (bis 31.01.01): [ VL-U-2.pdf ]
- Aufgabenblatt 3 (bis 07.02.01): [ VL-U-3.pdf ]
- Aufgabenblatt 4 (bis 14.02.01): [ VL-U-4.pdf ]
- und [ Faerbe.spec: Rahmen für Lösung ]
- Aufgabenblatt 5 (bis 21.02.01): [ VL-U-5.pdf ]
- und [ ParserSkeleton.spec: Rahmen für Lösung ] und [Eingabedatei1] und [Eingabedatei2]
Für Vorführungen zur Auswahl stehende Umgebungen
Aus den folgenden Vorschlägen sind die vorzuführenden Umgebungen auszuwählen. Dabei sollte aus jeder Kategorie mindestens eine Umgebung vorgestellt werden. Innerhalb der einzelnen Kategorien sind die Umgebungen mit absteigender Priorität aufgeführt.
Programmiersprachen für Kinder:
- Stagecast: eine kommerzielle regelbasierte Programmierumgebung für Kinder, die die einfache Programmierung interaktiver Computerspiele und Simulationen unterstützt. Einfache Regeln können durch "Programming-by-Example" erstellt werden. Das System steht für Windows (und Mac) zur Verfügung.
- Bearbeiter: Mosch, Hezel; Termin: 09.03. ;
Vortragsfolien: Stagecast.ppt; Ausarbeitung: Stagecast.pdf;
- ToonTalk: eine kommerzielle Programmierumgebung für Kinder, die auf dem Metaphor der Legowelten aufbaut. Programme werden mit Hilfe von Marty (einem Marsianer), Dusty (einem Staubsauger) und einigen weiteren Figuren durch "Programming-by-Example" erstellt. Die Umgebung steht für Macs und Windows zur Verfügung.
- Bearbeiter: Lauenroth, Prenzel; Termin: 09.03. ;
Vortragsfolien: ToonTalk.ppt; Ausarbeitung: ToonTalk.pdf;
Datenfluß-Programmierung:
iCon-L: eine visuelle Programmierumgebung für eine Funktionsbaustein- bzw. Datenflußprogrammiersprache. Der Hauptanwendungsbereich ist die Automatisierungstechnik (Prozeßleittechnik). Die Umgebung bzw. der generierte Code läuft auf verschiedensten Plattformen, u.a. auch auf Windows.
Bearbeiter: Hohl, Will; Termin: 09.03. ;
Vortragsfolien: iCon-L.ppt; Ausarbeitung: iCon-L.pdf;
Regelbasierte Programmierung:
- FUJABA: eine Programmierumgebung, die den grafischen Entwurf von Klassenhierarchien mit UML, die Programmierung mit Kontrollflußgraphen (Aktivitätsdiagramme von UML) mit der Erstellung von Graphersetzungsregeln kombiniert (Uni-Produkt). Die Umgebung besteht aus einem grafischen Editor, einem "Reverse Engineering Tool" und einem Übersetzer nach Java und ist selbst in Java geschrieben.
- Bearbeiter: Bodi, Wellhöfer; Termin: 14.03. ;
Vortragsfolien: Fujaba.ppt; Ausarbeitung: Fujaba.pdf;
- Visual AgenTalk (Agentsheets): eine kommerzielle Programmierumgebung für "End User", die das regelbasierte Programmieren verteilter Agentensysteme unterstützt. Visual AgenTalk erleichtert die Erstellung von Programmen durch das ein neues Programmierprinzip: "Tactile Programming". Die zugrundeliegende Umgebung Agentsheets wird in der Vorlesung vorgestellt. Die Umgebung steht als Beta-Version für Windows zur Verfügung.
- Bearbeiter: Schäl, Geißler ; Termin: 14.03. ;
Vortragsfolien: AgentSheets.ppt; Ausarbeitung: AgentSheets.pdf;
CASE- and Meta-CASE-Tools:
- ARTiSAN: UML-basiertes CASE-Tool, das die Modellierung und Simulation von Realzeitanwendungen unterstützt. Das Werkzeug besitzt Brücken zum "Requirements Engineering"-Werkzeug DOORS und zu dem GUI-Generator Altia FacePlate für Simulationsanwendungen. Das Werkzeug steht für Windows zur Verfügung.
- Bearbeiter: Poppe, Kiesling ; Termin: 14.03. ;
Vortragsfolien: ARTiSAN.ppt; Ausarbeitung: ARTiSAN.pdf;
- DiaGen: auf Graphgrammatiken basierendes Werkzeug zur Generierung grafischer Editoren, die sowohl "freies" grafisches Edieren (wie bei Standardgrafikeditoren) als auch syntaxgesteuertes Edieren (wie bei Diagrammeditoren von CASE-Tools) unterstützen. Das Werkzeug ist in Java für Java 2 SDK geschrieben und sollte deshalb sowohl auf Unix- als auch auf Windows-Plattformen laufen.
- Bearbeiter: Junge, Römer ; Termin: 15.03. ;
Vortragsfolien: Diagen.ppt; Ausarbeitung: Diagen.pdf;
- DOME: ein Meta-CASE-Tool zur Entwicklung zur Entwicklung von Diagrammeditoren für objektorientierte Modellierungssprachen wie beispielsweise UML. DOME ist selbst in Visual Work Smalltalk realisiert (irrelevant für den normalen Anwender) und läuft unter anderem unter Linux.
Visualisierungs- und GUI-Entwicklungswerkzeuge:
- AMULET: ein Toolkit zur Entwicklung von Benutzeroberflächen (Linux, C++), das constraintbasierte Layoutgestaltung unterstützt. Es erlaubt die (einfache) Realisierung von "direct manipulation" Benutzeroberflächen und von Animationen. AMULET ist der Nachfolger von Garnet, dem constraintbasierten GUI-Toolkit.
- Bearbeiter: Bähr, Großmann ; Termin: 21.03. ;
Vortragsfolien: Amulet.ppt; Ausarbeitung: Amulet.pdf;
- TILCON: ein Graphikeditor zur Entwicklung grafischer Benutzeroberflächen für Simulationen und echte Messwarten. Neben den üblichen grafischen Elementen werden Balkendiagramme Spektographen, Uhren, ... unterstützt. Das Werkzeug bietet auch spezielle Unterstützung für Animationen (mit kontinuierlichen Bewegungen) an, Anwendungen werden über Events angebunden. Das Werkzeug läuft auf verschiedenen Plattformen.
Bearbeiter: Slotosch, Rück ; Termin: 21.03. ;
Ausarbeitung: Tilcon.pdf;
- TREEBAG: ein weiteres Bildgenerierungswerkzeug, das baumerzeugende kontextfreie Grammatiken und Baumtransformationen als Formalismus einsetzt. Das Werkzeug ist in Java für JDK 1.1 geschrieben und sollte deshalb sowohl auf Unix- als auch auf Windows-Plattformen laufen.
- Bearbeiter: Anders, Saul ; Termin: 21.03. ;
Vortragsfolien: Treebag.ppt; Ausarbeitung: Treebag.pdf;