Eine Simulationsumgebung für strukturierte natürlichsprachliche Anwendungsfallbeschreibungen Grundlagen ExecutionModel Simulationsumgebung Mark Lehmacher, Veit Hoffmann, Prof. Dr. Horst Lichter Research Group Software Construction horst.lichter@rwth-aachen.de www-lufgi3.informatik.rwth-aachen.de
Einleitung Ziel der Arbeit Grundlagen Simulationsumgebung für strukturierte natürlichsprachliche Anwendungsfallbeschreibungen Grundlagen besagte Anwendungsfallbeschreibungen zur detaillierten Darstellung von Use Cases ViPER Plattform (Visual Modeling Platform for Embedded & Real Time Software) Context Kisters AG: Monitoring of a multi project portfolio.
Grundlagen und einführendes Beispiel Gliederung Grundlagen und einführendes Beispiel
ViPER Plattform ViPER realisiert auf Grundlage der Eclipse Rich Client Plattform basiert auf Technologien aus Eclipse-Projekten: EMF, GEF gemeinsame Infrastruktur in Form von ViPER-spezifischen Frameworks (VMF, VME) ViPER-UML2: beeinhaltet Editoren für diverse UML2 Diagrammtypen ViPER-MeDUSA: Integrierte Unterstützung zur Anwendung des MeDUSA Prozesses zum Design eingebetteter Systeme ViPER-NaUTiluS: Narrative Description Toolkit for Evaluation and Simulation
NaUTiluS derzeitiger Funktionsumfang geplante Features flussorientierte Spezifikation von natürlichsprachlichen Beschreibungen (NarrativeDescriptions) für Use Cases dafür ein Meta Modell: NarrativeModel basierend auf Notation von Bittner & Spence automatische Überprüfung der Konsistenz zwischen NarrativeModel und UML Use Case Modell geplante Features Evaluation & Analyse von UML Use Case Modellen und dazugehörigen NarrativeModel Instanzen Simulation von NarrativeModel Instanzen
Beispiel: Geldautomat
NarrativeModel: Flow NarrativeDescription Flow Geld abheben Events
Use Case: Geld abheben Geld abheben Kunde kommt zum Geldautomaten und schiebt Bankkarte ein Externe Inklusion von Authentifizieren Der Kunde wählt Geldbetrag und bekommt das Geld ausgezahlt Externe Erweiterung durch Quittung drucken falls Kunde dies wünscht
NarrativeModel: Event
Use Case: Authentifizieren Automat informiert Kunden: falsche PIN Kunde gibt PIN ein Automat zieht Karte ein
NarrativeModel Weitere NarrativeModel Konzepte jeder Fluss hat ein oder mehrere Kontexte Exception-Flows Vererbung auf NarrativeDescription Ebene (parallel zur Use Case Hierarchie) abstrakte Flows in abstrakten Use Cases Redefinition von Flüssen und Events erweiterte Semantik für Extensions
NarrativeModel spannt Graph auf
Das ExecutionModel als Basis für die Simulation Gliederung Das ExecutionModel als Basis für die Simulation
Simulationsumgebung Was soll die Simulation leisten? Unterstützung der Anforderungsanalyse Evaluierung/Validierung von NarrativeModel Instanzen (auf Vollständigkeit, Konsistenz usw.) Ausgabeartefakte (Text, Modell) als Grundlage für Metriken Tools that are affordable for a medium size enterprise
Simulationsumgebung Simulation ausführungsorientierte Sicht auf NarrativeModel: Standardablauf vs. Alternativabläufe NarrativeModel spannt Graphen von möglichen Pfaden auf ein Pfad durch diesen Graphen entspricht einem Szenario über Simulation Szenarien durchspielen Entscheidungspunkte durch Verzweigungen (in Alternativabläufe) weitere Entscheidungspunkte durch semantische Variationspunkte (Vererbung)
ExecutionModel ExecutionModel ist Meta-Modell theoretischer Unterbau der Simulation Erfassen des aufgespannten Graphen in Modell Simulation auf je einer ExecutionModel Instanz entsteht aus Transformation einer NarrativeModel Instanz technische Realisierung: EMF
ExecutionModel
ExecutionModel
Beispiel: Transitions/EventExecutions
ExecutionModel ! Verhältnis Events zu EventExecutions mehrere EventExecutions kapseln selben Event falls auf mehreren Wegen erreichbar !
Effekte durch Vererbung Semantische Variation
ExecutionModel
Beispiel: ExecutionContext Authentifizieren#Falsche PIN Authentifizieren#Standard Geld abheben#Standard Geld abheben Authentifizieren
ExecutionModel
Die Simulationsumgebung Gliederung Die Simulationsumgebung
Simulationsumgebung Bestandteile der Simulationsumgebung Visualisierung der internen Struktur von NarrativeDescriptions Visualisierung des durch die NarrativeModel Instanz aufgespannten Graphen ein Trace-Editor zum Aufnehmen und Abspielen von Szenarien Integration der verschiedenen Views und Editoren eigene Eclipse Perspektive für Simulation
Aktueller Stand Bereits „fertiggestellt“ Demonstration! FlowView: graphische Darstellung der internen Struktur von NarrativeDescriptions ExecutionModelView: graphische Darstellung einer ExecutionModel Instanz Demonstration!
ExecutionModelView ExecutionModelView abstrahierte Darstellung einer ExecutionModel Instanz visualisiert wird immer ein Kontext (bzw. die Aktionsmöglichkeiten eines Flows) Navigation über die verschiedenen Kontexte zur Darstellung Transformation der ExecutionModel Instanz in UML Activity Model Kontext repräsentiert durch Activity Step repräsentiert durch Action in der Activity Activities und Actions über Stereotypen und Profilmechanismus mit ExecutionModel verheiratet technische Realisierung: GEF, Draw2D
Noch zu tun TraceEditor Integration Aufnehmen von Traces (Recorder) Traces im Modell gespeichert, daher wieder abspielbar Integration mit vorhandenen Views Herausforderung: Synchronization der Workbench Selektionen Evaluierung der Simulationsumgebung
Nice to have Weiterführende Ideen graphische Visualisierung einer Menge von Traces in der ExecutionModelView in Form von gefärbten Pfaden (Hot spots entdecken) Robustheit der Simulation gegen korrupte NarrativeModel Instanzen Integration der Simulation mit NarrativeModel Editor und Views (vgl. Java Debug Perspektive)
Zusammenfassung NarrativeModel Grundlage der Simulation ExecutionModel wird berechnet aus NarrativeModel EventExecution, Transition und ExecutionContext zentrale Konzepte FlowView und ExecutionModelView zum Visualisieren von NarrativeDescriptions und ExecutionModel Instanzen TraceEditor muss noch realisiert werden und mit Views integriert werden