Start
 

Nach oben


 
Impressum

Stefan Schiffer
stefan@schiffer.at
+43 (699) 12547249
 
 

 

 

 

Restexemplare dieses Buches sind günstig direkt beim Autor erhältlich

Europa: EUR 30,-- inkl. Versand (statt EUR 46,-- CHF 78,--)

Das Buch wird mit Nachnahme versandt. Wenn Sie ein Exemplar wünschen, dann wenden Sie sich bitte per E-Mail an den Autor

Kapitel 4

Klassifikationen für visuelle Programmierung

 

In der Vergangenheit wurden mehrere Versuche zur systematischen Erfassung visueller Programmiersprachen und Programmierumgebungen unternommen. Das Studium dieser Arbeiten zeigt, daß die Autoren sehr unterschiedliche Aspekte als Grundlage für ihre Klassifikationen heranziehen. Das Spektrum reicht von Einteilungen anhand allgemeiner Merkmale, wie »die Art, in der Benutzer den Computer programmieren« (vgl. Glinert [90 S. 146]) bis hin zu Übersichten, die ganz spezielle Anwendungsbereiche umfassen, etwa Multimediawerkzeuge und intelligente Zeichenprogramme (vgl. Poswig [96 S. 6]).

In den folgenden Abschnitten werden drei geläufige und häufig zitierte Taxonomien von Shu, Chang und Myers vorgestellt, die auf Arbeiten Ende der 80er Jahre zurückgehen. Zudem wird ein Klassifikationsschema von Burnett und Baker aus dem Jahr 1994 präsentiert, das zwar noch keine weite Verbreitung gefunden hat, aber neuere Entwicklungen berücksichtigt und Schwachpunkte der anderen Taxonomien vermeidet.

Manche Klassifikationen enthalten Rubriken, die nicht zu visueller Programmierung im Sinne der definierten Terminologie passen. Ein Beispiel dafür ist die Rubrik »Visualisierung von Daten oder Informationen über Daten« der Klassifikation von Shu, die strenggenommen nichts mit visueller Programmierung zu hat. Darauf wird im Einzelfall hingewiesen. Auf eine detaillierte Bewertung der Nützlichkeit des jeweiligen Klassifikationsschemas wird verzichtet, da dazu der Kontext der Klassifikation berücksichtigt werden müßte, was aus Platzgründen nicht möglich ist. Nur vereinzelt werden Vor- und Nachteile angesprochen.

Der eilige Leser kann die ersten Abschnitte dieses Kapitel überspringen, und sich Abschnitt 4.4, zuwenden, der als Grundlage für die Einordnung von Programmierkonzepten in Kapitel 5 dient.

 

4.1 Klassifikation nach Shu

Shu [88 S. 12] unterscheidet zwei Hauptbereiche: visuelle Umgebungen und visuelle Sprachen. Der Bereich visuelle Umgebungen umfaßt Werkzeuge zur Datenvisualisierung, zur Softwarevisualisierung und für visuelles Instruieren. Der Bereich visuelle Sprachen umfaßt Sprachen zur Bearbeitung visueller Information, zur Unterstützung visuelle Interaktion und visuelle Programmiersprachen. Bild 4-1 zeigt den Klassifikationsrahmen von Shu.

Für die Charakterisierung visueller Programmiersprachen bedient sich Shu [88 S. 139 ff] eines selbstentwickelten Koordinatensystems, das die Aspekte Niveau, Anwendungsbereich und Visualisierungsgrad einer Programmiersprache auf drei Achsen darstellt (siehe Bild 4-2). Das Zustandekommen der Ausprägung der einzelnen Aspekte ist leider nicht immer klar, was umso schwerer wiegt, da sich bei Shu kein Hinweis darauf findet, wie die einzelnen Aspekte zu messen wären. Sprachprofile, die mit Shus Koordinatensystem erstellt werden, sind deshalb nicht als Basis für aussagekräftige Sprachvergleiche geeignet, sondern können bestenfalls ein grober Anhaltspunkt sein, um die wesentlichen Merkmale einer visuellen Programmiersprache einzuschätzen.

 

4.1.1 Kategorien

Im folgenden werden die einzelnen Kategorien der Klassifikation von Shu erläutert. Abschnitt 4.1.2, enthält Tabellen mit Systemen und Sprachen, die Shu als Beispiele für die jeweilige Kategorie nennt.

Visualisierung von Daten oder Informationen über Daten

Shu gliedert Systeme für die Visualisierung von Daten oder Informationen über Daten in zwei Teilbereiche; räumliche Datenverwaltungssysteme und Visualisierung von Datenstrukturen. Räumliche Datenverwaltungssysteme (spatial data management systems, SDMS) repräsentieren Daten und Beziehung zwischen Daten in mehrdimensionaler, visueller Form. Der Benutzer kann die benötigten Informationen durch Navigation im grafischen Datenraum abrufen, ohne genau spezifizieren zu müssen, was er sucht, und ohne den genauen Speicherplatz zu kennen. Die Visualisierung von Datenstrukturen umfaßt laut Shu sowohl die Darstellung softwaretechnischer Datenstrukturen, wie Felder, Verbunde und Listen, als auch die Visualisierung von Datenbankschemata. Diese Kategorie bildet somit hinsichtlich der Darstellung von Datenstrukturen einen Teilbereich der in Abschnitt 2.1.5, diskutierten Softwarevisualisierung.

Visualisierung von Programmen und Programmausführung

Shu [88 S. 13] vertritt die Meinung, daß in diese Kategorie nur solche Systeme fallen, die Programme visualisieren, die in herkömmlichen Programmiersprachen geschrieben sind, und schließt damit die Visualisierung von Programmen auf Basis visueller Programmiersprachen aus. Eine solche Einschränkung ist nach Meinung des Verfassers nicht notwendig. Shu verfeinert diese Kategorie hinsichtlich der Aspekte Pretty Printing, Visualisierung mit Diagrammen, Mehrfachsichten eines Programmes und Algorithmenanimation. Diese Kategorie bildet ebenfalls einen Teilbereich der Softwarevisualisierung.

Visualisierung von Softwaredesign

Shu ordnet in diese Kategorie grafische Softwareentwicklungsumgebungen ein, die den gesamten Softwarelebenszyklus von der Planung bis zur Wartung unterstützen. Diese Kategorie umfaßt also nicht nur Werkzeuge für die Entwurfsphase, sondern auch Systeme für die grafische Darstellung von Anforderungen, Spezifikationen, Systemarchitekturen usw.

Bild 4-1 Klassifikation der visuellen Programmierung nach Shu.
Shu [88 S. 12]

Abbildung

Bild 4-2 Drei Aspekte von Programmiersprachen nach Shu.
Shu [88 S. 140]

Das Niveau einer Programmiersprache (language level) ist ein Maß für die Ausdruckskraft einer Programmiersprache. Das Sprachniveau verhält sich invers zum Formulierungsaufwand, d.h. eine Programmiersprache ist umso mächtiger und liegt damit auf einem umso höheren Niveau, je weniger Einzelheiten angegeben werden müssen, um eine Problemlösung zu implementieren.

Der Anwendungsbereich (scope) ist ein Maß für die Generalität einer Programmiersprache. Der Anwendungsbereich ist umso allgemeiner, je mehr Problembereiche durch eine Programmiersprache erfaßt werden. Anwendungsbereich und Niveau einer Programmiersprache sind gegenläufig. Das Niveau einer Programmiersprache ist meist umso höher, je spezifischer der Anwendungsbereich ist, und umso niedriger, je allgemeiner die Sprache einsetzbar ist.

Der Visualisierungsgrad (visual extent) ist ein Maß für die Anzahl visueller (grafischer) Konstrukte einer Programmiersprache. Je mehr Sprachelemente eine visuelle Ausprägung besitzen, desto höher ist der Visualisierungsgrad der Sprache. Für rein verbale Programmiersprachen ist dieser Aspekt nicht anwendbar.

Abbildung

 

Visuelles Instruieren (Visual Coaching)

Mit Systemen für visuelles Instruieren meint Shu interaktive Umgebungen für die beispielorientierte Programmierung (siehe Abschnitt 5.7). Sie verwendet dafür den Ausdruck Visual Coaching. Bei dieser Art des Programmierens werden durch den Benutzer entweder Aktionen einmal vorgezeigt, die der Computer später mehrfach genauso ausführt, wie sie gezeigt wurden, oder Aktionen mehrfach in unterschiedlichen Kombinationen vorgezeigt, aus denen der Computer ein allgemeines, parameterisierbares Programm ableitet. Shu spricht insbesondere die zweite Variante der beispielorientierten Programmierung an. Alle von Shu erwähnten Systeme sind Prototypen, mit denen keine professionelle Programmierung möglich ist.

Sprachen für die Bearbeitung visueller Information

In diese Kategorie fallen laut Shu verbale Sprachen, die entweder Bildbearbeitung erlauben oder für die Manipulation von Bilddatenbanken geeignet sind [S. 109]. Um den breiten Bereich solcher Sprachen einzuschränken, läßt Shu jene traditionelle Sprachen außer acht, die prinzipiell für allgemeine Anwendungen geeignet sind, jedoch um spezielle Konstrukte oder Bibliotheken für die Bildverarbeitung erweitert wurden, z.B. Fortran, PL/I und Pascal. Sie betrachtet vor allem Sprachen für die Speicherung und Abfrage von Bildern in Datenbank-Managementsystemen. Etliche der von Shu erwähnten Arbeiten beschäftigen sich mit geographischen Informationssystemen. Nach der Terminologie dieses Buches sind verbale Sprachen für die Bearbeitung visueller Information keine visuelle Sprachen.

Sprachen zur Unterstützung visueller Interaktion

Shu ordnet in diese Kategorie verbale Sprachen ein, die zum Definieren, Erzeugen und Manipulieren von Piktogrammen gedacht sind und somit visuelle Repräsentation und Interaktion unterstützen [S. 14 f]. Nach der Terminologie dieses Buches sind die Sprachen dieser Kategorie keine visuelle Sprachen.

Visuelle Programmiersprachen basierend auf Diagrammen

In dieser Kategorie befinden sich Sprachen, die auf der klassischen imperativen Programmierung beruhen und mit Steuerfluß- bzw. Nassi-Shneiderman-Diagrammen notiert werden. Darüber hinaus werden Sprachen für die Implementierung interaktiver Systeme beruhend auf Zustandsüberführungsdiagrammen erwähnt. Zudem ordnet Shu hier das Datenflußmodell und Datenflußdiagramme ein [S. 173 ff]. Dabei verwundert, daß sie visuelle Datenflußsprachen jedoch nicht im Rahmen dieser Kategorie beschreibt, sondern in der Kategorie »Piktogrammsprachen«. Dort scheinen sie fehl am Platz zu sein, denn visuelle Datenflußsprachen werden immer in Form von Graphen notiert, also als Knoten-Kanten-Diagramme. Dabei sind zwar die Knoten als Piktogramme darstellbar, aber dieser Aspekt spielt im Vergleich zur dominierenden Diagrammform eine untergeordnete Rolle.

Die unterschiedlichen Diagrammtechniken dieser Kategorie, die kaum logische Gemeinsamkeiten aufweisen, lassen ein grundsätzliches Problem von Shus Klassifikation erkennen, das bereits in der Einleitung angeschnitten wurde: die Gliederung visueller Programmiersprachen nach dem Erscheinungsbild der Sprachkonstrukte (in diesem Fall der Diagrammelemente) verdeckt einen weitaus interessanteren Gesichtspunkt, nämlich das konzeptionelle Modell der Programmiersprache. Die zwiespältige Einordnung der Datenflußsprachen unterstreicht dieses Dilemma und legt eine Klassifikation nach Programmierparadigmen nahe, wie sie Burnett und Baker vornehmen (siehe Abschnitt 4.4).

Visuelle Programmiersprachen basierend auf Piktogrammen

Shu räumt Programmiersprachen basierend auf Piktogrammen viel Platz in ihrem Klassifikationsschema ein. Sie motiviert solche Sprachen mit den Vorzügen der chinesischen Schrift, deren ideographische Symbole ihrer Meinung nach oft interessanter und »spannender« sind als Worte in Buchstabenschriften und deshalb einen hohen Lernanreiz bieten. Diese didaktischen Vorteile kommen laut Shu auch beim Programmieren mit Piktogrammen zum Tragen [S. 194].

Shu präsentiert eine Vielzahl von Sprachvarianten, die - wie die Sprachen der Kategorie »Diagramme« - zwar Ähnlichkeiten im Erscheinungsbild aufweisen, aber weiter keine Gemeinsamkeiten besitzen. Unter den vorgestellten Sprachen befinden sich u.a. Notationen für Lisp-Programme, eine visuelle Sprache für Horn-Klauseln sowie diverse Datenflußsprachen. Einige dieser Sprachen, etwa Lisp auf Basis von Venn-Diagrammen und eine frühe Version der Datenflußsprache Prograph, könnten ebensogut in der Kategorie »Diagramme« eingeordnet werden, da Piktogramme in diesen Sprachen keine erkennbare Rolle spielen. Zudem beschreibt Shu auf mehreren Seiten die Benutzungsschnittstelle des Xerox-Star-Systems, das als Vorläufer heutiger Desktop-Oberflächen wie Microsoft-Windows gilt. Es bleibt unklar, warum sie das Xerox-Star-System in ihre Klassifikation aufnimmt, denn dieses System verfügt zwar über Piktogramme, um Dokumente und Funktionen darzustellen, bietet aber in der ursprünglichen, von Shu beschriebenen Form keine Möglichkeit, mit diesen Piktogrammen zu programmieren. Eine Erweiterung des Xerox-Star-Systems um Programmiermöglichkeiten ist das System Smallstar von Halbert, das bereits in der Rubrik »Visuelles Instruieren« vorgestellt wurde.

Visuelle Programmiersprachen basierend auf Formularen

Die von Shu genannten visuellen Programmiersprachen auf Grundlage von Formularen sind zum Großteil einfache Benutzungsschnittstellen zu Datenbankanwendungen [S. 239 ff]. Es können damit Abfrageanweisungen durch Ausfüllen von Tabellen oder Formularen verfaßt werden, ohne daß Kenntnisse in einer bestimmten Datenbanksprache notwendig wären. Bilder kommen bei den von Shu vorgestellten Systemen nicht zum Einsatz. Die Formulierung der Suchbegriffe und Verknüpfungen geschieht rein verbal, und somit beschränkt sich der visuelle Aspekt dieser Systeme auf Formularstrukturen bzw. die zweidimensionale Tabellenform. Aktuelle Programmierwerkzeuge der vierten Generation (4GL-Werkzeuge), wie 4th-Dimension und Microsoft-Access, gehen über den Funktionsumfang der von Shu präsentierten Systeme weit hinaus und verfügen auch über bessere grafische Möglichkeiten.

 

4.1.2 Systeme und Sprachen

Dieser Abschnitt enthält Tabellen mit Systemen und Sprachen, die Shu als Beispiele für die Kategorien ihres Klassifikationsschemas nennt und in ihrem Buch näher beschreibt. Zu jedem Eintrag wird eine Erklärung in Stichworten sowie ein Literaturverweis angegeben. Die angeführten Systeme sind zum Großteil durch moderne Weiterentwicklungen überholt und somit eher von historischem als aktuellem Interesse. Insbesondere die Möglichkeiten der Computergrafik haben seit Shus Untersuchungen starken Aufschwung genommen und entsprechende Verbesserungen bei den Benutzungsoberflächen bewirkt. Dennoch ist eine überblicksweise Aufstellung der von Shu genannten Systeme gerechtfertigt, weil damit einerseits die Wurzeln heutiger Systeme dargestellt werden und andererseits Shus Klassifikationsschema sonst nur schwer verständlich wäre. Eine Anwendung des Schemas von Shu für neuere Systeme und Sprachen findet sich bei Poswig [93 S. 7 ff] und Poswig [96 S. 5 ff].

Tabelle 4-1 Visualisierungssysteme.

System

Kurzbeschreibung

Literatur

Visualisierung von Daten oder Informationen über Daten

Shu [88 S. 17 - 39]


INCENSE

Visualisierung von Datenstrukturen.

Myers [83]

ISIS

Schnittstelle für semantische Informationssysteme.

Goldman et al. [85]

KAESTLE

Grafikeditor für LISP Datenstrukturen.

Boecker et al. [86]

Video Graphic Query Facility

Multimediaabfrage von Inventardatenbanken.

McDonald [84]

View System

Räumliches Datenverwaltungssystem.

Friedell et al. [82]


Visualisierung von Programmen und/oder
Programmausführung

Shu [88 S. 40 - 66]


BALSA

Brown Algorithm Simulator and Animator.

Brown und Sedgewick [85]

Interlisp

Entwicklungsumgebung für LISP.

Teitelman und Masinter [81]

PECAN

Visualisierung von Pascal-Programmen (Steuerung und Daten).

Reiss [85]

SEE

Pretty Printing von C-Programmen.

Baecker und Marcus [86]

Visible Pascal

Pascal mit Turtle-Grafik.

Hughes und Moshell [86]


Visualisierung von Software Design

Shu [88 S. 67 - 78]


PegaSys

Programming Environment for the Graphical Analysis of Systems; Spezifikation und Analyse von Beziehung zwischen Komponenten großer Programme.

Moriconi und Hare [85]

PV Prototype

Programmvisualisierung auf Implementierungs- und Architekturebene.

Brown et al. [85]

 

Tabelle 4-2 Visuelles Instruieren.

System

Kurzbeschreibung

Literatur

Visuelles Instruieren (Visual Coaching)

Shu [88 S. 79 - 108]


Autoprogrammer

Allgemeine beispielorientierte Programmierung.

Biermann und Krishnaswamy [76]

Peridot

Programming by Example for Real-time Interface Design Obviating Typing; Konstruktion von Benutzungsschnittstellen.

Myers [87]

PiP

Programming in Pictures; funktionale, beispielorientierte Programmierung.

Raeder [84]

Programming by Rehearsal

Smalltalk-Programmierung für Anfänger.

Finzer und Gould [84]

Pygmalion

Die Pionierarbeit für beispielorientierte Systeme.

Smith [75]

Smallstar

Makroprogrammierung für das Xerox-Star-System.

Halbert [84]

ThinkPad

Beispielorientierte Programmierung mit Regelwerken (Constraints).

Rubin et al. [85]

 

Tabelle 4-3 Allgemeine visuelle Sprachen.

System

Kurzbeschreibung

Literatur

Sprachen für die Bearbeitung visueller Information

Shu [88 S. 109 - 123]


GRAIN

Graphics-oriented Relational Algebraic Interpreter; Speicherung und Abfrage großer Bilddatenbestände.

Lin und Chang [80]

PSQL

Pictorial SQL; strukturierte Abfragen für geographische Datenbanken.

Roussopoulos und Leifker [84]


Sprachen zur Unterstützung visueller Interaktion

Shu [88 S. 124 - 135]


ICDL

Icon Class Description Language; Beschreibung von Piktogrammen für ein räumliches Datenverwaltungssystem.

Herot [80]

HI-VISUAL

Definition, Erzeugung und Manipulation von Piktogrammen.

Hirakawa et al. [86]

Squeak

Programmierung von Zeigerinstrumenten (Maus, Joystick).

Cardelli und Pike [85]

 

Tabelle 4-4 Visuelle Programmiersprachen (Fortsetzung).

System

Kurzbeschreibung

Literatur

Programmiersprachen basierend auf Diagrammen

Shu [88 S. 148 - 189]


FPL

First Programming Language; Darstellung von Pascal-Programmen mit Flußdiagrammen.

Cunniff et al. [86]

Pascal/HSD

Hierarchical structured diagrams; Ähnlich FPL.

Diaz-Herrera und Flude [80]

PIGS

Programming with Interactive Graphical Support; direkt ausführbare Nassi-Shneiderman-Diagramme für eine Teilmenge von Pascal.

Pong und Ng [83]

Programming Support System

Nassi-Shneiderman-Diagramme mit Präprozessor für eine Teilmenge von PL/I.

Frei et al. [78]

State Transition Language for Visual Programming

Zustandsdiagramme für kommandoorientierte Dialoge, ähnlich USE.

Jacob [85]

USE

User Software Engineering; formale Spezifikation von kommandoorientierten Benutzungsschnittstellen mit direkt ausführbaren Zustandsdiagrammen.

Wasserman et al. [86]


Programmiersprachen basierend auf Piktogrammen

Shu [88 S. 190 - 238]


Dialog.I

Logische Programmierung mit Horn-Klauseln.

Kurita und Tamura [84]

Extended HI-VISUAL

Datenflußsprache primär für Bildverarbeitung.

Hirakawa et al. [87]

IDEOSY

Ideographic and Interactive Program Description System; formale Semantik auf Basis von Milners »Calculus of Communicating Systems«.

Giacalone et al. [84]

Pict

Imperative, visuelle Programmierung ohne Tastatur.

Glinert und Tanimoto [84]

Prograph

Frühe Version des heute kommerziell verfügbaren, objekt- und datenflußorientierten VP-Systems Prograph CPX.

Matwin und Pietrzykowski [85]

Show and Tell

Datenflußprogrammierung für Schulkinder.

Kimura et al. [86]

Tinkertoy

Darstellung von Lisp-Programmen in Form von verketteten Piktogrammen.

Edel [86]

VennLisp

Notation von Lisp Ausdrücken mit ausführbaren Venn-Diagrammen.

Lakin [86]

Xerox-Star- System

Grafische Benutzungsschnittstelle für Xerox-Star-Arbeitsstationen.

Smith et al. [82]


Programmiersprachen basierend auf Formularen

Shu [88 S. 239 - 284]


FORMANAGER

Einfaches 4GL-Werkzeug zum Entwurf von Formularen und zur Datenbankabfrage.

Yao et al. [84]

FORMAL

Weiterentwicklung von QBE für breitere Anwendungsbereiche.

Shu [85]

QBE/OBE

Query by Example / Office Procedures by Example; tabellenorientierte, zweidimensionale Abfragesprache für relationale Daten-banken erweitert um Konstrukte für Büroautomatisierung.

Zloof [81]

 

 

4.2 Klassifikation nach Chang

Chang [87] in Glinert [90-P&S S. 7 f] spricht in seiner Taxonomie nicht von visueller Programmierung, sondern nur von visuellen Sprachen. Eine visuelle Sprache ist in seiner Diktion jede Sprache, die entweder die Bearbeitung visueller Information erlaubt oder über visuelle Sprachkonstrukte verfügt. Durch Kombination dieser Merkmale erhält Chang vier Kategorien visueller Sprachen:

  1. Sprachen zur Unterstützung visueller Interaktion
  2. Visuelle Programmiersprachen
  3. Sprachen zur Verarbeitung visueller Information
  4. Piktogrammsprachen zur Verarbeitung visueller Information

Seine Klassifikation entspricht somit grundsätzlich dem Schema von Shu, mit Ausnahme der vierten Kategorie, die bei Shu nicht explizit vorkommt. Diese Kategorie umfaßt jedoch keine besondere Klasse von Sprachen, sondern ganz einfach jene visuellen Programmiersprachen, mit denen auch Bilder verarbeitet werden können. Ein Beispiel dafür ist die Sprache Extended HI-VISUAL, die Shu in die Rubrik »visuelle Programmiersprachen basierend auf Piktogrammen« einordnet. Wegen der großen Ähnlichkeit der Taxonomien von Chang und Shu wird auf die einzelnen Kategorien nicht näher eingegangen.

Chang stellt fest, daß in allen vier Sprachkategorien sogenannte »generalisierte Piktogramme« (generalized icons) zum Tragen kommen [S. 8]. Er unterscheidet zwischen Objekt- und Prozeßpiktogrammen. Objektpiktogramme sind bildliche Repräsentationen der Objekte, auf die eine visuelle Sprache angewandt wird, während Prozeßpiktogramme die Konstrukte der visuellen Programmiersprache selbst darstellen. Beide Arten von Piktogrammen bestehen aus einem logischen Teil (der Bedeutung) und einem physischen Teil (dem Bild), der je nach Kontext unterschiedlich ausgeprägt ist.

Chang erwähnt, daß visuelle Sprachen und das Konzept der generalisierten Piktogramme unter verschiedenen Aspekten erfolgreich studiert werden können, etwa aus dem Blickwinkel der Computergrafik, der Theorie formaler Sprachen, der Kognitionspsychologie und des visuellen Designs [S. 17]. Solche interdisziplinären Studien sollten zum Ziel haben, eine effektive Methodik für den Entwurf einer neuen Generation visueller Sprachen zu schaffen. Die bislang eher bescheidenen Ergebnisse sind wohl nicht zuletzt darauf zurückzuführen, daß das Konzept der generalisierten Piktogramme bei weitem nicht alle Aspekte visueller Sprachen abdeckt.

 

4.3 Klassifikation nach Myers

Myers [94] präsentiert in der Encyclopedia of Software Engineering drei aktualisierte Klassifikationen für visuelle Programmierung und Softwarevisualisierung, die auf seine Arbeiten aus den Jahren 1986 und 1988 zurückgehen. VP-Systeme betrachtet Myers unter zwei verschiedenen Gesichtspunkten: in der Haupttaxonomie [S. 879 ff] werden VP-Systeme in erster Linie hinsichtlich des Kriteriums »Beispielorientierte Programmierung« eingeordnet, in der nachgeordneten Klassifikation [S. 884 f] steht die Notation der Programme im Vordergrund. Für Systeme zur Softwarevisualisierung (die hier nicht weiter behandelt werden) wählt Myers eine Einteilung nach statischer bzw. dynamischer Visualisierung von Code, Daten und Algorithmen [S. 885 ff].

Myers beschreitet mit seiner Haupttaxonomie einen grundlegend anderen Weg als Shu und Chang. Er hebt weder die Art der verarbeiteten Daten hervor, noch berücksichtigt er Anwendungsgebiete oder die Art der Programmdarstellung. Statt dessen bildet er aus den drei Merkmalen

  1. Beispielorientierte oder nicht-beispielorientierte Programmierung
  2. Visuelle oder nicht visuelle-Programmierung
  3. Kompilierte oder interpretierte Programme

einen Raster mit acht Kategorien in den er ca. 40 Systeme einordnet (siehe Tabelle 4-5). Myers erklärt nicht, warum er gerade diese drei Merkmale gewählt hat und stellt seine Klassifikation auch keinen anderen Ansätzen gegenüber. Die auf den ersten Blick unverständliche Differenzierung nach visueller und nicht- visueller Programmierung ist deshalb notwendig, weil Myers beispielorientierte Programmierung und visuelle Programmierung als orthogonale Ansätze betrachtet und drei beispielorientierte Systeme anführt, die er nicht zu visueller Programmierung zählt.

Problematisch erscheint die Einordnung von Tabellenkalkulationen (Spreadsheets), die Myers pauschal als visuelle Programmiersprachen auf hohem Niveau einstuft [S. 881]. Er stellt fest, daß Tabellenkalkulationen grundsätzlich auf grafischen Repräsentationen beruhen. Diese Aussage steht im Widerspruch zur Tatsache, daß in allen gängigen Tabellenkalkulationsprogrammen textuelle Formeln für Werteberechnungen herangezogen werden. Solche Formeln können für komplizierte Berechnungen einen beachtlichen Umfang annehmen, weshalb die uneingeschränkte Zuordnung von Tabellenkalkulationen zu visueller Programmierung unangebracht ist. Andererseits darf aber die Eigenschaft »Beispielorientierte Programmierung« für Tabellenkalkulationsprogramme nicht ausgeschlossen werden (wie dies Myers tut), weil die zum Teil beachtlichen Makrorekorder-Funktionen solcher Applikationen die beispielorientierte Programmierung auf klassische Weise unterstützen.

Ein weiterer Schwachpunkt von Myers Taxonomie ist die Unterscheidung nach Systemen, die Programme interpretieren bzw. kompilieren, weil diese Differenzierung keine aufschlußreichen Informationen liefert. Moderne VP-Systeme unterstützen meist sowohl Interpretation als auch Kompilation. In diesen Fällen ist eine eindeutige Zuordnung gar nicht möglich. Zudem verschwimmen die Unterschiede in der Handhabung interpretierender und kompilierender Systemen durch schnelle Übersetzer und flexible Laufzeitsysteme. Die Frage, ob ein VP-System interpretiert oder kompiliert, verliert demzufolge immer mehr an Bedeutung.

Tabelle 4-5 Myers Klassifikation von Programmiersprachen und -systemen in acht Kategorien.

Myers [94 S. 880]

Die Rubriken 1 und 3 umfassen konventionelle Programmiersprachen und sind deshalb im Zusammenhang mit visueller Programmierung irrelevant. Die Rubriken 5, 6 und 7 enthalten insgesamt nur vier Systeme und sind somit ebenfalls von geringer Bedeutung. Typische VP-Systeme befinden sich in den Rubriken 2, 4 und 8, die insgesamt 35 Systeme umfassen. Die (exemplarische) Aufzählung der Systeme erfolgt in chronologischer Reihenfolge. Eine kurze Beschreibung aller Systeme samt Literaturreferenzen findet sich im Originalartikel.

Kompiliert

Nicht-VP



VP

Interpretiert

Nicht-VP



VP

Nicht-beispielorientierte Programmierung

1
Pascal, Fortan etc.

2
Grail, AMBIT/G/L, QBE, FORMAL, GAL, FPL, IBGE, MOPS-2, OPAL, Proc-BLOX, HiGraphs, Miro, StateMaster, MPL

3
Lisp, APL etc.

4
Graphical Program Editor, Spreadsheets, PIGS, Pict, Prograph, State Transition UIMS, PLAY, Action graphics, Forms, VERDI, LabVIEW, SIL-ICON

Beispielorientierte Programmierung

5
I/O Pairs

6
Traces

7
Tinker, Editing by Example

8
Pygmalion, Smallstar, Rehersal World, Graphical Thinglab, Music System, HI-VISUAL, ALEX, Peridot, InterCONS, Fabrik

Bei genauer Betrachtung bleibt schließlich nur der Aspekt »Beispielorientierte Programmierung« als wesentliches Merkmal von Myers Klassifikation erhalten. Selbst hinsichtlich dieses Kriteriums ist die Zuordnung einzelner Systeme nicht immer klar. So führt Myers die Datenflußsysteme InterCONS von Smith [88] und Fabrik von Ludolph et al. [88] als Vertreter für beispielorientierter Programmierung an, obwohl beide Systeme beispielorientierte Programmierung nur rudimentär unterstützen. Wie immer kommt es auch bei Myers Klassifikation auf die Definition und Interpretation der zugrundeliegenden Begriffe an, die gerade hinsichtlich der beispielorientierten Programmierung nicht immer eindeutig sind.

Bezüglich der Darstellungsart von Programmen in VP-Systemen unterscheidet Myers [94 S. 884 f] vierzehn Kategorien (siehe Tabelle 4-6). Er nennt seine Einteilung eine »Klassifikation nach Spezifikationstechnik«, ohne jedoch zu erläutern, was er in diesem Zusammenhang unter »Spezifikation« versteht. Aus den Beispielen läßt sich ableiten, daß damit primär verschiedene Notationen für Programmcode gemeint sind.

Tabelle 4-6 Myers Klassifikation von Programmiersprachen und -systemen aufgrund der Spezifikationstechnik.

Myers [94 S. 880]

Die meisten Kategorien sind selbsterklärend, einige Rubriken bedürfen jedoch der Erläuterung. Die Notation mit Puzzleteilen beruht auf der BLOX-Methode von Glinert (vgl. Abschnitt »C2: Visuelle Programmierung mit Anweisungssequenzen«). Piktogrammsätze sind laut Myers visuelle Ausdrücke mit Piktogrammen, bei denen die Positionen der Piktogramme eine wesentliche Rolle spielen. Mit Beispielhaften Notationen werden Programme durch dynamische Sprachmittel definiert, für die keine direkt darstellbare statische Form existiert. Zu solchen dynamischen Sprachmitteln gehört etwa der Drag-und-Drop-Mechanismus, mit dem ein grafisches Element über ein anderes Element gezogen werden kann, um auf diese Weise eine bestimmte Operation auszulösen. Was unter der Kategorie »Keine Sprache« zu verstehen ist, erläutert Myers nicht.

Spezifikationstechnik

Systeme

Textuelle Sprache Pascal, Ada, Fortran, Lisp, etc. Tinker, Smallstar
Steuerflußdiagramme Grail, Pict, FPL, IBGE, OPAL
Varianten von Steuerflußdiagrammen GAL, PIGS, SchemaCode, PLAY
Petrinetze MOPS-2, VERDI
Datenflußdiagramme Graphical Program Editor, Prograph, Graphical Thinglab, Music System, HI-VISUAL, LabVIEW, Fabrik, InterCONS
Gerichtete Graphen AMBIT/G/L, State Transition UIMS, Traces
Varianten von Graphen HiGraphs, Miro, StateMaster
Matrizen ALEX, MPL
Puzzleteile Proc-BLOX
Formulare Query by Example, FORMAL
Piktogrammsätze SIL-ICON
Tabellenkalkulation VisiCalc, Lotus 1-2-3, Action graphics, Forms
Beispielhaft Pygmalion, Rehersal World, Peridot
Keine Sprache I/O Pairs, Editing by Example

 

 

4.4 Klassifikation nach Burnett und Baker

Die Klassifikation von Burnett und Baker [94] ist der aktuellste Beitrag zu den Bemühungen, die Arbeiten über visuelle Programmierung systematisch zu erfassen. Der Zweck ihres Klassifikationsrahmens ist eine übersichtliche Darstellung der Literatur zu visuellen Programmiersprachen. Damit verfolgen sie zwar scheinbar ein anderes Ziel als Shu, Chang und Myers, die konkrete Systeme und Sprachen einordnen, letztlich sind die Ergebnisse jedoch ähnlich, denn ob ein Aufsatz klassifiziert wird, der die Beschreibung einer Programmiersprache enthält, oder die Programmiersprache selbst erfaßt wird, ist dann unerheblich, wenn die Einordnung des Aufsatzes anhand der Eigenschaften der beschriebenen Sprache erfolgt.

Burnett und Baker gehen vom ACM Computing Review Classifications System (ACM-CRC-System) aus, das zur vollständigen Erfassung der Informatikliteratur dient. Sie zeigen, daß die Struktur des ACM-CRC-Systems aus mehreren Gründen ungeeignet ist, Arbeiten über visuelle Programmiersprachen aufzunehmen und schlagen deshalb ein maßgeschneidertes Schema vor, das in Tabelle 4-7 dargestellt wird. Manche Kategorien des ACM-CRC-Systems wurden übernommen, andere weggelassen, und neue wurden hinzugefügt. Die genaue Bedeutung der Bezeichnungen der einzelnen Kategorien ist nicht definiert. Damit soll den Autoren die Freiheit gegeben werden, ihre Arbeiten so einzuordnen, wie es ihrem Begriffsverständnis entspricht. Eine Kategorie »Sonstiges« existiert nicht. Statt dessen ist die Einordnung von Literatur auf jeder Ebene gestattet. So könnte man etwa eine Arbeit, die den weiten Bereich des Themas »Sprachimplementierung« behandelt, direkt bei VPL-IV plazieren und müßte sie nicht in einen der Unterpunkte A bis D zwängen. Zudem ist es möglich, eine Arbeit in mehreren Rubriken einzuordnen.

Burnett und Baker haben selbst keine Einordnung von Publikationen in die einzelnen Rubriken ihres Klassifikationsrahmens vorgenommen. Sie überlassen diese Tätigkeit den Autoren, weil sie der Meinung sind, daß nur die jeweiligen Verfasser in der Lage sind, die zur Einordnung ihres Werkes notwendige Interpretation der Begriffe des Klassifikationsrahmens vorzunehmen. Durch die Beschränkung auf visuelle Programmiersprachen wird nicht das gesamte Gebiet der visuellen Programmierung erfaßt. Burnett und Baker sehen ihre Klassifikation im Kontext des »Visual Computing« und führen andere bedeutende Teilbereiche dieses Fachgebiets an, für die vergleichbare Taxonomien möglich sind, etwa visuelle Datenbanksysteme, Sprachen zur Bildverarbeitung, visuelle Umgebungen für textuelle Sprachen, virtuelle Realität und Visualisierung [S. 288].

Die Klassifikation von Burnett und Baker ist bei weitem besser zur systematischen Erfassung von visueller Programmierung geeignet als die zuvor genannten Ansätze. Das Schema ist einerseits flexibel genug, um dem wissenschaftlichen und technischen Fortschritt gerecht zu werden und orientiert sich andererseits an grundsätzlichen Fragestellungen, die weitgehend unabhängig von kurzfristigen Entwicklungen sind. Die Klassifikation von Burnett und Baker dient daher als Grundlage für die Darstellung der Konzepte visueller Programmiersysteme im nächsten Kapitel.

Tabelle 4-7 Das Klassifikationsschema für visuelle Programmiersprachen nach Burnett und Baker

Burnett und Baker [94 S. 289]

VPL: VISUELLE PROGRAMMIERSPRACHEN
VPL-I. Umgebungen und Werkzeuge für visuelle Programmiersprachen
VPL-II. Sprachklassifikationen

A. Paradigmen

1. Sprachen für Parallelprogrammierung

2. Constraintbasierte Sprachen

3. Datenflußsprachen

4. Formularbasierte und tabellenbasierte [Spreadsheet-basierte] Sprachen.

5. Funktionale Sprachen

6. Imperative Sprachen

7. Logische Sprachen

8. Multiparadigmen-Sprachen

9. Objektorientierte Sprachen

10. Beispielorientierte Sprachen [Programming-by-demonstration languages]

11. Regelbasierte Sprachen

B. Visuelle Repräsentationen

1. Diagrammsprachen

2. Piktogrammsprachen

3. Sprachen basierend auf statischen Bildsequenzen

VPL-III. Spracheigenschaften

A. Abstraktion

1. Datenabstraktion

2. Prozedurale Abstraktion

B. Steuerfluß

C. Datentypen und Datenstrukturen

D. Dokumentation

E. Ereignisbehandlung

F. Ausnahmebehandlung
VPL-IV. Fragestellungen zur Sprachimplementierung

A. Ansätze für Berechnungsmodelle (z.B. bedarfsgesteuert, datengesteuert)

B. Effizienz

C. Parsen

D. Interpreter und Compiler

VPL-V. Sprachzweck

A. Universalsprachen

B. Datenbanksprachen

C. Bildverarbeitungssprachen

D. Visualisierungssprachen [Scientific visualization languages]

E. Sprachen zur Generierung von Benutzungsschnittstellen

VPL-VI. Theorie visueller Programmiersprachen

A. Formale Definition visueller Programmiersprachen

B. Piktogrammtheorie

C. Fragestellungen zum Sprachentwurf

1. Fragestellungen zur Kognition und zum Entwurf von Benutzungsschnittstellen (z.B. Benutzbarkeitsstudien, grafische Wahrnehmung)

2. Effiziente Nutzung von Bildschirmplatz

3. Lebendigkeit

4. Anwendungsbereich

5. Typprüfung und Typtheorie

6. Fragestellungen zur visuellen Darstellung (z.B. statische Repräsentation, Animation)

Previous PageTop Of PageNext Page