Gottfried Wilhelm
Leibniz Universitt Hannover
Fakultt fr Elektrotechnik und Informatik
Institut fr Praktische Informatik
Fachgebiet Software Engineering
MSpec Eine Technik zur textuellen
Modellierung und Simulation
multimodaler szenariobasierter
Spezikationen
Bachelorarbeit
im Studiengang Informatik
von
Florian Wolfgang Hagen Knig
Prfer: Prof. Dr. Joel Greenyer
Zweitprfer: Prof. Dr. Kurt Schneider
Betreuer: Prof. Dr. Joel Greenyer
Hannover, 09.09.2014
ii
Erklrung der Selbststndigkeit
Hiermit versichere ich, dass ich die vorliegende Bachelorarbeit selbstndig undohne fremde Hilfe verfasst und keine anderen als die in der Arbeit angegebe-nen Quellen und Hilfsmittel verwendet habe. Die Arbeit hat in gleicher oderhnlicher Form noch keinem anderen Prfungsamt vorgelegen.
Hannover, den 09.09.2014
Florian Wolfgang Hagen Knig
iii
iv
Inhaltsverzeichnis
1. Einleitung 11.1. Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Lsungsansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3. Struktur der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Grundlagen 52.1. Verteilte reaktive Systeme . . . . . . . . . . . . . . . . . . . . . 52.2. Modal Sequence Diagram (MSD) . . . . . . . . . . . . . . . . . 6
2.2.1. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.2. Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3. Play-Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4. Domain-specic Language (DSL) . . . . . . . . . . . . . . . . . 212.5. Xtext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.6. Eclipse Modeling Framework . . . . . . . . . . . . . . . . . . . . 21
2.6.1. Ecore-Model . . . . . . . . . . . . . . . . . . . . . . . . . 222.6.2. Generator-Model . . . . . . . . . . . . . . . . . . . . . . 22
3. Die Modellierungssprache MSpec 233.1. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1. Import Ecore-Model . . . . . . . . . . . . . . . . . . . . 243.1.2. Specication . . . . . . . . . . . . . . . . . . . . . . . . . 243.1.3. UseCase . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.1.4. Collaboration . . . . . . . . . . . . . . . . . . . . . . . . 253.1.5. Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2. Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.2.1. Ablauf eines MSpec-Scenarios . . . . . . . . . . . . . . . 343.2.2. Der Message-Pointer . . . . . . . . . . . . . . . . . . . . 343.2.3. Unikation zweier Nachrichten . . . . . . . . . . . . . . . 35
4. bersetzung in ausfhrbaren Code 374.1. Konzepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.1. Ermittlung von Daten eines Scenario . . . . . . . . . . . 37
v
Inhaltsverzeichnis
4.1.2. Das Scenario als Zustandsautomat . . . . . . . . . . . . 374.2. bersetzung in Java . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.1. bersetzung in ein Ecore-Model . . . . . . . . . . . . . . 414.2.2. Ecore-Model-Code generieren . . . . . . . . . . . . . . . 424.2.3. Fertigstellung des Model-Codes . . . . . . . . . . . . . . 42
5. Implementierung 475.1. Der MWE2 Workow . . . . . . . . . . . . . . . . . . . . . . . . 475.2. Scoping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.3. Code-Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.4. Quickx-Provider . . . . . . . . . . . . . . . . . . . . . . . . . . 525.5. Label-Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6. Verwandte Arbeiten 556.1. ScenarioTools . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.2. Can Programming Be Liberated, Period? . . . . . . . . . . . . . 556.3. Behavioral Programming . . . . . . . . . . . . . . . . . . . . . . 566.4. WebSequenceDiagrams.com . . . . . . . . . . . . . . . . . . . . 56
7. Zusammenfassung und Ausblick 597.1. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . 597.2. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
A. Xtext-Grammatik von MSpec 61
Literaturverzeichnis 65
vi
1. Einleitung
In der heutigen Softwareentwicklung geht es meist nicht mehr nur um einzel-ne, eigenstndige Programme, sondern um verteilte reaktive Systeme, die ausvielen Komponenten bestehen. Besonders in den Bereichen Verkehr, Logistik,Produktion, Kommunikation und Medizin sind viele sicherheitskritische Com-putersysteme miteinander verbunden und mssen przise zusammenarbeiten.Diese Systeme so zu planen, dass sie hinterher auch korrekt funktionieren, ist diegroe Herausforderung im Entwurf. Die Probleme schleichen sich aber oft schonin den Anforderungen ein. Im szenariobasierten Entwurf werden diese Anforde-rungen als einzelne Szenarien dargestellt. Fr diese Darstellung gibt es Konzeptewie Live Sequence Charts (LSCs) und die hier betrachtete Modikation ModalSequence Diagrams (MSD). MSDs bieten neben einer intuitiven Verwendunginsbesondere die Mglichkeit przise zu spezizieren, wie die einzelnen System-komponenten in Reaktion auf Umweltereignisse reagieren mssen. Hierbei wirdspeziziert, was genau bei bestimmten Umweltereignissen passieren kann, mussoder nicht passieren darf. Oft werden aber an dieser Stelle Fehler gemacht, dieerst spter im Endprodukt entdeckt werden. Die Anforderungen knnen sehrvielseitig sein und Wechselwirkungen untereinander entwickeln, wodurch sichdie Mglichkeit ergibt, dass sich Anforderungen gegenseitig behindern oder wi-dersprechen. Bei sehr vielen Anforderungen und damit sehr vielen Szenarienknnen Entwickler leicht den berblick verlieren und solche Wechselwirkungenbersehen. Diese Fehler knnen gravierende Konsequenzen nach sich ziehen undsie zu korrigieren kann viel Zeit und Geld kosten.
1.1. Problemstellung
Es ist also wichtig, Fehler in den Anforderungen zu nden, bevor sie umgesetztwerden. Um dies zu bewerkstelligen, sind automatisierte Analysemethoden n-tig, mit denen diese Szenarien analysiert und simuliert werden knnen. Es gibtbereits die Werkzeuge ScenarioTools (siehe [GBPLM13]) und die Play-Engine(siehe [HM03]), die eine solche Simulation von Anforderungen ermglichen, in-dem sie grasche Editoren bieten, um Modal Sequence Diagrams zu erstellen,und zudem ein Play-Out dieser ermglichen. Die graschen Darstellungen der
1
1. Einleitung
Szenarien dieser Editoren sind zwar auf den ersten Blick bersichtlich und leichtzu lesen, jedoch verlieren sich diese Eigenschaften bei zunehmender Komplexittder Szenarien. Die graschen Editoren dieser Werkzeuge sind zudem leider nochnicht ausgereift und weisen Schwchen in der Bedienbarkeit und Erweiterbar-keit auf. Des Weiteren ist die Notwendigkeit spezieller Editoren fr Szenarienin der Praxis oft nicht akzeptiert.
1.2. Lsungsansatz
Es muss also eine benutzerfreundlichere Lsung her: Da grasche Darstellungenfr komplexe Probleme zu kompliziert werden, bietet sich eine Lsung auf Tex-tebene an. Es soll nun ermglicht werden, diese Szenarien textuell darzustellenund so die Anforderungen bersichtlich und ohne die Notwendigkeit eines gra-schen Editors aufzustellen. Der Schlssel dafr ist, eine Sprache speziell frSzenarien, die ebenso auf dem Prinzip der Modal Sequence Diagrams basiert,zu entwickeln. Mithilfe dieser Sprache soll dann Code generiert werden knnen,durch den Play-Out ermglicht wird. Dies soll das Aufstellen und die Darstel-lung komplexer Szenarien erleichtern und eine frhe Simulation und Analyseder Anforderungen ermglichen.Im Rahmen dieser Arbeit wird eine Modellierungsprache mit Namen MSpeczur textuellen Darstellung von Szenarien in Anlehnung an Modal Sequence Dia-grams prsentiert. Dazu werden Syntax und Semantik der Sprache erlutert undanhand von Beispielen gezeigt, wie eine Spezikation in MSpec aussehen knn-te. Diese Beispiele werden zudem mit bedeutungsgleichen Szenarien in Formvon MSDs verglichen. Ebenfalls werden Konzepte fr die Codebersetzung frdas Play-Out und die Implementierung der Sprache beschrieben.
1.3. Struktur der Arbeit
Diese Arbeit ist wie folgt strukturiert.In Kapitel 1 wird die Motivation, das Ziel und die Struktur der Arbeit beschrie-ben.Kapitel 2 erlutert grundlegende Konzepte und Begriichkeiten, die fr dasVerstndnis dieser Arbeit notwendig sind.In Kapitel 3 werden die Syntax und die Semantik der ModellierungsspracheMSpec vorgestellt.Kapitel 4 befasst sich mit der bersetzung der Sprache in ausfhrbaren Java-Code, der fr das Play-Out genutzt werden kann.
2
1.3. Struktur der Arbeit
In Kapitel 5 wird die Implementierung der Sprache und des Editors beschrie-ben.Kapitel 6 befasst sich mit verwandten Arbeiten. Hier werden Arbeiten und Ar-tikel vorgestellt, die sich mit den gleichen oder mit hnlichen Themen befassen,wie diese Arbeit.In Kapitel 7 werden die Erfolge und Entwicklungen der Arbeit noch einmalzusammengefasst und es wird ein Fazit gezogen.
3
1. Einleitung
4
2. Grundlagen
In diesem Kapitel werden Grundlagen erlutert, die fr das Verstndnis dieserArbeit ntig sind.
2.1. Verteilte reaktive Systeme
Reaktive Systeme tragen ihren Namen aus dem Grund, dass sie stndig auf ver-schiedene Ereignisse oder Signale entsprechend bestimmter Bedingungen reagie-ren mssen. Diese kontroll- oder ereignisgesteuerten Systeme ermglichen einendauerhaften Datenaustausch mit ihrer Umwelt, um zB. Daten aus Sensoren zuerhalten, diese zu verarbeiten und dann an ein anderes System weiterzugeben.Die in einem solchen System ablaufenden Reaktionen sind oft sehr komplexund darum schwer nachzuvollziehen, was eine Analyse bzw. Spezikation undImplementierung
Top Related