You are here: Foswiki>DeutschesEUDWiki Web>EudPattern>ProgrammingByExample (21 Feb 2007, BjoernBorggraefe)Edit Attach

Programming by Example

Auch bekannt unter dem Begriff Programming by Demonstration.
Zu dieser EUD-Methode sind Demonstratoren vorhanden.

Definition

Programming by Example-Systeme zeichnen das Interaktionsverhalten des Nutzers mit dem System auf und generieren daraus eine Routine. Das Konzept kann mit Programming by Demonstration gleichgesetzt werden (Lieberman, H.; Faaborg, A 2006).

Bei Lieberman wird Programming by Example als Oberbegriff für folgende Techniken definiert:
  • Automatic Programming (auch mit Programming by Input/Output Examples bezeichnet): Dies bezeichnet die Fähigkeit eines Systems von einem Beispiel zu generalisieren. Dabei gibt der Programmierer Beispiele vor und das Programm muss dann selbst die richtige Methode finden, um den Input in den Output umzuwandeln.
  • Programming by Demonstration: Der Programmierer (oder Endnutzer) vollzieht Aktionen mit Beispieldaten die das Programm aufzeichnet. Dadurch lassen sich Aktionen generalisieren.
  • Programming by Teaching (auch mit Instructible Systems oder Agents bezeichnet): Erweiterung des Programming by Demonstration Ansatz um verbale und gesturale Hinweise oder Eingaben durch Nutzer.

Problembereich

Zur Erledigung von Aufgaben führen Nutzer Aktionsfolgen mit Software-Systemen durch: A1 --> A2 --> A3 --> ... --> An. Für ähnliche Ziele sind die Aktionsfolgen oft gleich, jedoch müssen Nutzer ohne Unterstützung immer wieder die gleichen Aktionsfolgen durchführen. Ein Beispiel dafür ist die Aktionsfolge bei einem Kauf in einem Online Shop: Artikel suchen --> Artikel auswählen --> Details anzeigen --> Artikel in Warenkorb legen --> Warenkorb auswählen --> persönliche Daten eingeben --> etc.

Lösung

Die Aktionsfolgen zur Erreichung bestimmter "High-Level Ziele" werden aufgezeichnet. Die aufgezeichnete Aktionsfolge kann dann zu einer generalisiserten Aktion zusammengefasst werden. Nutzer können so ihre Ziele deutlich schneller erreichen. Programming by Example unterscheidet sich dabei dahingehen von Makro-Aufzeichnung, dass die Eingaben keine Konstanten sondern Variablen darstellen: Eine Makro-Aufzeichnung würde beispielsweise immer nur Buch X bestellen. Um, wie in unserem Beispiel gewünscht, auch andere Artikel kaufen kaufen zu können, werden Variablen benötigt (beispielsweise den Suchbegriff nach Artikel in einem Bestellprozess).

Konsequenz

Programming by Example hilft den Nutzer ihre Ziele schneller zu erreichen. Zudem bietet das Konzept Parametrisierung und, im Vergleich zu Makros, eine höhere Dynamik. Es lassen sich allerdings nicht alle Aufgaben mit Programming by Example generalisieren – zum Beispiel ständig wechselnder Input in allen Aktionsschritten ist nicht umsetzbar.

-- BjoernBorggraefe - 21 Feb 2007
Topic revision: r3 - 21 Feb 2007, BjoernBorggraefe
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback