vorstellungsvortrag

Werbung
Episode Recognizer Framework
Rahmenwerk zur Episodenerkennung
Christian A. Kopf
Institut für Informatik
FU Berlin
18.05.2006
Übersicht
• Motivation
• Wozu werden unterschiedliche Episodenerkenner benötigt
• Warum ist ein Rahmenwerk dafür von Vorteil
• Ideen und Ansätze
• Reguläre Ausdrücke und ihre Grenzen
• (Keller-)Automaten und Typ2-Sprachen
• Aufbau und Struktur
• Kleines Klassenmodell
• Abbildung des Automatenmodells
• Anwendungsablauf
• Offene Probleme
• Die Map- und MatchMap-Strukturen
• Komplexere Episoden?!
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Motivation - Episodenerkenner
• Episodenerkennung ist ein zentraler Aspekt der
Untersuchung des Mikroprozesses der
Softwareentwicklung
• Grundidee:
• Aus einem Strom von Basisereignissen typische
Aktivitätsmuster (Episoden) ausfindig machen.
• Wird eine solche Episode erkannt kann sie ebenfalls in den
Ereignisstrom einfließen.
• Mehrere Episodenerkenner werden sequentiell abgearbeitet.
• Episodenerkenner können sehr unterschiedliche
Komplexitäten annehmen:
• simpel: Zeitintervall (z.B.: Wie lange war Datei x geöffnet?)
• komplex:
• Verfolgen von Codekopien (letzte Woche)
• Trial-and-Error-Episoden (heute)
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Motivation – Rahmenwerk
• Situation bisher:
• Episodenerkenner als ECG-Modul
• Einbindung in ECG (also an den Datenstrom des ECG) recht
komfortabel:
• Implementierung
• Komplett eigenständig
• Gesamte Java-Komplexität gegeben
• Viele, teilweise komplexe If-Kaskaden
•
•
•
•
Unübersichtlich
Schwer zu Implementieren
Fehleranfällig
Schwer zu Optimieren
• Zielsetzung: Verbesserung der Abstraktion
• Schnelle, fehlerfreie und effektive Implementierung durch
einfache Handhabung und Erweiterung von Objekten und
Klassen bei gleicher möglicher Komplexität
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Ideen und Ansätze – reg. Ausdrücke
• Reguläre Ausdrücke bieten eine einfache und relativ
•
mächtige Möglichkeit um Sequenzen miteinander zu
vergleichen, bzw. um eine (Teil-)Sequenz auf ein
bestimmtes Schema (Episode) hin zu untersuchen.
Abstrakter:
• Alle möglichen Auftretenden Basisereignisse stellen
zusammen ein Alphabet E dar.
• Regulärer Ausdruck für eine bestimmte Episode definiert
eine Sprache L über dem Alphabet E.
• Regelmäßige Überprüfung unseres Ereignisstroms X
• Falls X Element aus L dann liegt die gesuchte Episode vor.
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Ideen und Ansätze – reg. Ausdrücke
• Nachteile:
• Problem der sequentiellen Abarbeitung mehrerer
Episodenerkenner:
• Ereignisse die ein Erkenner in den Strom einfügt müssen dem
Alphabet hinzugefügt werden.
• Problem während der Analyse:
• Im Endeffekt muss nach jedem neuen Ereigniss der gesamte
bisherige Ereignisstrom erneut überprüft werden.
• Reg. Ausdrücke eher zum nachträglichen Untersuchen bereits
beendeter Datenströme geeignet.
• Problem der Mächtigkeit:
• Reg. Ausdrücke können lediglich Typ 3-Sprachen erkennen,
d.h.: Typ2-Sprachen, wie zum Beispiel: L = A^n B^n, können
nicht erkannt werden, da eine Variable n innerhalb eines
regulären Ausdruckes nicht gespeichert werden kann.
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Ideen und Ansätze - Automaten
• Automaten sind ein einfaches Werkzeug um Sprachen zu
•
•
beschreiben und abstrakt darzustellen.
Automaten bestehen aus Zuständen und Übergängen (mit
Ereignissen, Bedingungen und Aktionen).
Mit endlichen Automaten lassen sich alle regulären
Sprachen (Typ-3) darstellen. Dies ist nicht ausreichend,
da genauso mächtig wie reguläre Ausdrücke.
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Ideen und Ansätze - Automaten
• Lösung: Keller-Automaten
• Kellerautomaten besitzen zusätzlich einen Kellerspeicher
(Stack), der nun sowohl für die Bedingungen als auch für die
Aktionen mit genutzt werden kann.
• Mit Kellerautomaten lassen sich alle kontextfreien Sprachen
(Typ-2) darstellen. Ferner auch A^n B^n.
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Aufbau und Struktur - Klassenmodell
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Aufbau und Struktur - Abbildung
• Übergänge und Zustände -> Klassen
• Übergang verweist auf Start- und Zielzustand.
• Die Ereigniss-Bedingung des Übergangs ist Attribut (Typ
•
“MatchMap”) -> Vergleich mit Ereignissen (Typ „Map“)
Sonstige Bedingungen:
• MatchMap-Struktur
• Controller (Java-Mächtigkeit)
• Aktionen -> Controller-intern
• Keller:
• Variablen innerhalb des Controllers
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Aufbau und Struktur - Anwendung
• Der Controller ist mit dem Datenstrom des ECG
verbunden und wird vom Nutzer erweitert.
Klassen Übergang und Zustand stehen zur Verfügung
•
• Der Controller reicht jedes Ereignis als „Map“ an die zum
•
aktuellen Zustand assoziierten Übergänge
Bei Übereinstimmung mit internem „MatchMap“-Schema
wird im Controller die zugehörige Aktion ausgeführt
(aktuellen Zustand setzt, Episode als erkannt melden,
neues Ereignis, ...)
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Offene Probleme – Map & MatchMap
• welche Datenstrukturen existieren, die diese Aufgaben
•
übernehmen können:
Anforderungen an Map:
• benötigt lediglich die Möglichkeiten eines assoziatives Feldes
• Anforderungen an MatchMap:
• möglichst vielfältige Möglichkeiten zum Vergleichen mit Map
• möglichst viele Bedingungen umsetzen können; Z.B.:
• Zugriff auf Variablen
• Verwendbarkeit von regulären (bzw. boolschen) Ausdrücken
• Beispiele:
• event = new map{(typ, „xyz“),(datei, „abc.txt“)}
• ereigniss = new MatchMap{(typ, event.typ),(datei, regExp)}
• Habt Sie IDEEN ????
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Offene Probleme - Komplexität
• Gibt es Episoden die sich durch das Modell nicht
verwirklichen lassen?
• Anforderung: alle möglichen Episodenerkenner
• Haben Sie...
• Ideen zu solchen „kritischen“ Episoden?
• Sonstige Mängel am Konzept entdeckt?
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Vielen Dank!
Episode Recognizer Framework - Christian Andreas Kopf ([email protected])
Herunterladen