In dieser Arbeit wird nach einem iterativen, spezifikationsgetriebenen Ansatz vorgegangen. Dabei wird die Analyse anhand einer System-Spezifikation durchgeführt.
Um diese Spezifikation aufzustellen, wird zunächst eine grobe Version erstellt. Anhand dieser ersten Spezifikation können dann Nebenläufigkeitseigenschaften definiert werden. Anschließend werden diese Eigenschaften mit dem existierenden System verglichen. Dabei gefundene Unstimmigkeiten werden behoben oder dokumentiert. Mit dem erlangten Wissen kann dann wiederum die Spezifikation erweitert werden, um neue Eigenschaften aufzustellen, die analysiert werden können.
Auf diese Weise können sowohl Dokumentation als auch Implementierung fortwährend verbessert werden, sodass sich beide immer weiter annähern.
Bei der Erstellung der Spezifikation wird dabei konkret nach dem Vorbild des in "The 4+1 View Model of Architecture" [1] beschriebenen Verfahrens vorgegangen. Dabei wird das Softwaresystem von unterschiedlichen Standpunkten aus betrachtet, um so eine möglichst umfassende Spezifizierung des Systems zu ermöglichen, ohne die einzelnen Artefakte/Diagramme zu überladen.
Da es bei dieser Arbeit um Nebenläufigkeiten geht wird der Fokus auf dem Logical-View und dem Process-View liegen. Der Logical-View dient dabei dazu die funktionalen Top-Level-Komponenten des Systems herauszuarbeiten. Anhand dieser Komponenten wird dann der Process-View erstellt, in dem den logischen Komponenten Aufgaben zugeordnet werden und die Nebenläufigkeitseigenschaften dieser Aufgaben spezifiziert werden.
Die Entwicklung der Views wird von Szenarien vorangetrieben. Dazu werden zunächst die wichtigste Szenarien (Kern-Use-Cases) in Saros formuliert und anhand dieser werden die Views erstellt. Wenn das geschehen ist, werden die Views mit dem vorhandenen System abgeglichen und Unstimmigkeiten herausgearbeitet. Wenn das geschehen ist, werden neue Szenarien hinzugenommen und die Spezifikation wird an diese neuen Szenarien angepasst.
Nr. | Status | Zeitraum | Bis KW![]() |
Aufgaben ![]() |
Ergebnis ![]() |
---|---|---|---|---|---|
Vorarbeiten | |||||
Schriftliche Ausarbeitung | |||||
Laufende Session untersuchen | |||||
10 | ![]() |
Oktober 13 | KW40 | Abgabe der Arbeit | |
9 | ![]() |
September 13 | KW39 | Finale Version der Arbeit fertig | |
8 | ![]() |
September 13 | KW37 | Erste Version der Arbeit fertig | |
7 | ![]() |
August 13 | KW35 | Ausgesuchtes Problem b behandeln | |
6 | ![]() |
Juli 13 | KW31 | Ausgesuchtes Problem a behandeln | |
5 | ![]() |
Juli 13 | KW28 | List gefundener Probleme aufstellen und zu behandelnde Probleme festlegen | |
4a | ![]() |
Juni/Juli 13 | KW27 | Architektur definieren | |
4b | ![]() |
Juni/Juli 13 | KW27 | Analyse von Nebenläufigkeitseigenschaften | |
4c | ![]() |
Juni/Juli 13 | KW27 | Möglichkeiten zur Verbesserung beschreiben | |
3a | ![]() |
Mai/Juni 13 | KW23 | Architektur definieren | |
3b | ![]() |
Mai/Juni 13 | KW23 | Analyse von Nebenläufigkeitseigenschaften | |
3c | ![]() |
Mai/Juni 13 | KW23 | Möglichkeiten zur Verbesserung beschreiben | |
2a | ![]() |
April 13 | KW18 | Vorgehen festlegen | |
2b | ![]() |
April 13 | KW18 | Erste Version der Spezifikation erstellen | |
1 | ![]() |
- | KW14 | Masterarbeit anmelden | |
Implementierung | |||||
Einladungsprozess |