Ein Use Case-Ein Use Case-Modellierungswerkzeug für die Modellierungswerkzeug für die ViPER-PlattformViPER-Plattform
Abschlussvortrag zur Diplomarbeit von Abschlussvortrag zur Diplomarbeit von Andreas WalterAndreas Walter
[email protected]@rwth-aachen.de
17. April 2007 Andreas Walter
ÜberblickÜberblick
Theoretische Grundlagen Begriffe & Einsatzgebiete Use Cases in der UML Textbasierte Beschreibung von Use Cases
Aufgabenstellung Lösung
Konzeptueller Lösungsansatz Technische Realisierung Demo
Zusammenfassung & Ausblick
17. April 2007 Andreas Walter
Begriffe & EinsatzgebieteBegriffe & Einsatzgebiete
Begriffe System Akteur Use Case Use Case-Modell
Einsatzgebiete Modellierung von Systemverhalten aus Benutzersicht
Deskriptiv Präskriptiv
Ausgangspunkt für Entwurf, Implementierung und Test Beispiele: Objectory, (R)UP, MeDUSA
17. April 2007 Andreas Walter
Use Cases in der UML: Use Case-Use Cases in der UML: Use Case-MetamodellMetamodell
17. April 2007 Andreas Walter
Use Cases in der UML: Use Cases in der UML: Use Case-Diagramme und ModelleUse Case-Diagramme und Modelle
17. April 2007 Andreas Walter
Textbasierte Beschreibung von Use Textbasierte Beschreibung von Use Cases nach Bittner & Spence(2003): Cases nach Bittner & Spence(2003): InhalteInhalteBestandteil Erläuterung
Name Der Name des Use Case. Muss eindeutig sein und sollte das Ziel der Interaktion zwischen System und Akteuren beschreiben.
Kurze Beschreibung Stellt knapp das erfasste Interaktionsspektrum dar.
Besondere Anforderungen Beschreibung derjenigen Anforderungen, die nicht in der Beschreibung des Ereignissflusses enthalten sind, beispielsweise nichtfunktionale Anforderungen.
Vorbedingungen Beschreibung des Zustandes, in dem sich das System vor der Ausführung des Use Case befinden muss.
Nachbedingungen Beschreibung des Zustandes, in dem sich das System nach der Ausführung des Use Case befinden muss.
Ereignisfluss Beschreibung der Ereignisse, die bei der Ausführung des Use Case geschehen (können).
Beziehungen Die Beziehungen, an denen der Use Case teilnimmt. Dies sind einerseits Beziehungen zu Akteuren, die an dem Use Case beteiligt sind, andererseits die Beziehungen zu anderen Use Cases.
17. April 2007 Andreas Walter
Beschreibung von Use Cases: Der Beschreibung von Use Cases: Der EreignisflussEreignisfluss
„Einheit“ der Use Case-Beschreibung: Ereignis (Event) Zerlegung der Beschreibung des Systemverhaltens in sogenannte
Flüsse (Flow of Events): Basisfluss: Weg des geringsten Widerstands von Start zur
Zielerreichung Alternative Flüsse: Optionales oder unter Umständen nötiges
(System-)Verhalten, verknüpft mit dem variierten Fluss über Erweiterungspunkte Spezifisch Beschränkt Generell
17. April 2007 Andreas Walter
Beschreibung von Use Cases: Der Beschreibung von Use Cases: Der Ereignisfluss (2)Ereignisfluss (2)
17. April 2007 Andreas Walter
Use Case-Beschreibung Use Case-Beschreibung (Bittner&Spence, 2003): Beispiel(Bittner&Spence, 2003): BeispielUse Case Description: Authenticate Customer
1. Brief Description: This use case is included by other use cases. It is used to authenticate that the individual using the ATM (the Customer) is authorized to use the inserted bank card and that the account associated with the bank card is active.
2. Use Case Diagram: [...]
3. PreconditionsThe bank card has been inserted into the ATM.The bank card information has been read successfully.A Customer is in dialogue with the including use case. The ATM Session ID has been created.
4. Basic Flow:
{Validate Card Information}1. The system sends the bank card information to the Bank System to confirm that that the bank
card and its associated account are active, that the card has not been reported stolen, and that the bank card information (including the PIN) read from the bank card is valid.
2. The system also sends the ATM ID and the ATM Session ID to the Bank System along with the bank card information.
3. The Bank System acknowledges that the bank card information is valid and that the card can be used.{Validate User Identity}4. The system prompts the Customer for the PIN5. The Customer enters the PIN.6. The system checks that the entered PIN is identical to the PIN read from the bank card.{Use Case Ends}7. Resume the including use case at the next step.
17. April 2007 Andreas Walter
Use Case-Beschreibung: Beispiel Use Case-Beschreibung: Beispiel (Forts.)(Forts.)5. Alternative Flows:
5.1 Handle No Communications With the Bank System
At {Validate Card Information} if the Bank System cannot be contacted or does not reply within the set communication time-out period,
1. If the communications link has failed more times than the communication retry number, then the authentication attempt is abandoned and basic flow is resumed at {Use Case Ends}.
2. The system attempts to contact the Bank System until it has completed the number of retry attempts indicated by the communication retry number.
3. If communications are reestablished, the basic flow is resumed at {Validate Card Information}.4. If there is still no response from the Bank System, the system created an event log entry to record the failure of the communications
link to the Bank System. The event log entry includes the type of failure.5. The system sends the event log to the Service Administrator to inform it that communication with the Bank System has been lost.6. Resume the basic flow at {Use Case Ends}.
[...]
6. PostconditionsThe Customer has been authorized to use the card.The Customer has been barred from using the card, and the card has been confiscated.The Customer has been barred from using the card, and the card has not been confiscated.
7. Public Extension PointsNone.
8. Special RequirementsNone.
17. April 2007 Andreas Walter
AufgabenstellungAufgabenstellung
Ziel: Werkzeugunterstützung für die Use Case-Modellierung im Rahmen einer UML-zentrierten Entwicklungsmethode (MeDUSA) Use Case-Modellierung als erste Aktivität
(Requirements Modeling) Identifikation von Use Cases UML-basiert und graphisch
(Use Case Modeling) Detaillierte Beschreibung von Use Cases in textbasierter
Form (Use Case Description Modeling) Konzeptuelle und technische Rahmenbedingung:
UML-Metamodell ist unverändert zu nutzen Use Case-Modell = UML-Modell/-Diagramme +
(Modell) textbasierte(r) Beschreibungen
17. April 2007 Andreas Walter
Konzeptueller LösungsansatzKonzeptueller Lösungsansatz Zweiteilung eines Use Case-Modells in UML-basierten und textbasierten
Teil impliziert überlappenden Informationsgehalt beider „Hälften“ Ein insgesamt konsistentes Use Case-Modell muss einen „semantischen
Kern“ besitzen, der eindeutig in beiden Hälften repräsentiert ist!
Problem: Verwendung natürlicher Sprache vs. Formalisierung Lösungsansatz: Stark strukturierte Beschreibung von Use Cases
Ermöglicht algorithmische Konsistenzprüfungen Erlaubt Verwendung natürlicher Sprache
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Repräsentation Beschreibungen: Repräsentation textbasierter Beschreibungentextbasierter Beschreibungen
NarrativeDescription als Repräsentation textbasierter Beschreibungen
Annahme: 1:1-Entsprechung
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Flüsse und Beschreibungen: Flüsse und FlusskontexteFlusskontexte
Flüsse beschreiben Verhaltensfragmente, die während der Ausführung eines Use Case am Stück auftreten können
Flusskontexte beschreiben in welchem Zusammenhang die Ausführung eines Flusses
beginnt, und was nach dem Erreichen des Endes eines Flusses geschieht
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Flüsse und Beschreibungen: Flüsse und Flusskontexte (2)Flusskontexte (2)
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Struktur eines Beschreibungen: Struktur eines FlussesFlusses
Ereignisbeschreibung ist elementarer Baustein eines Flusses
Aus Sicht des Metamodells wird diese nicht weiter interpretiert
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Struktur eines Beschreibungen: Struktur eines Flusses (2)Flusses (2)
Inklusionsschritte erfassen die Ausführung inkludierter Use Cases
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Struktur eines Beschreibungen: Struktur eines Flusses (4)Flusses (4)
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Struktur eines Beschreibungen: Struktur eines Flusses (3)Flusses (3)
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: ErweiterungenBeschreibungen: Erweiterungen
Erweiterungspunkte beschreiben Zeitpunkte, Erweiterungsregionen beschreiben Zeiträume
während der Ausführung eines Flusses, zu denen Verhaltenserweiterungen eintreten können
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Alternative Beschreibungen: Alternative ErweiterungenErweiterungen
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Alternative Beschreibungen: Alternative Erweiterungen (2)Erweiterungen (2)
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Externe Beschreibungen: Externe ErweiterungenErweiterungen
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Externe Beschreibungen: Externe Erweiterungen (2)Erweiterungen (2)
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Spezialisierung von Beschreibungen: Spezialisierung von Use CasesUse Cases
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Spezialisierungs-Beschreibungen: Spezialisierungs-ErweiterungenErweiterungen
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Spezialisierungs-Beschreibungen: Spezialisierungs-Erweiterungen (2)Erweiterungen (2)
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Einbettung in ein Beschreibungen: Einbettung in ein GesamtmodellGesamtmodell
17. April 2007 Andreas Walter
Metamodell für textbasierte Use Case-Metamodell für textbasierte Use Case-Beschreibungen: Einbettung in ein Beschreibungen: Einbettung in ein Gesamtmodell (2)Gesamtmodell (2)
17. April 2007 Andreas Walter
Beispiel für ein Use Case-ModellBeispiel für ein Use Case-Modell
17. April 2007 Andreas Walter
Beispiel für ein Use Case-Modell (2): Textbasierte Beispiel für ein Use Case-Modell (2): Textbasierte BeschreibungenBeschreibungen
Alternative Flow Simulate Current
Start At Choose between calculation and simulation, if simulation mode has been set
1 Store simulated value as current value
End If TRUE, continue at Current stored
Description of Use Case Current Output
Main Flow
Start Preconditions: None
1 AEP: Chosse between simulation and calculation
2 SEP: Calculate actual current
3 AEP: Current stored
4 Validate that current does not exceed span limits
5 AEP: Current validated
6 Calculate PWM output signal
7 Normalize
8 Output PWM signal
9 AEP: End
End Postconditions: None
Alternative Flow Raise „Limits exceeded“ alarm
Start At Current validated, if current exceeds span limits
1 Raise „Limits exceeded“ alarm
End If TRUE, Continue at End
17. April 2007 Andreas Walter
Beispiel für ein Use Case-Modell (3): Textbasierte Beispiel für ein Use Case-Modell (3): Textbasierte Beschreibungen (2)Beschreibungen (2)
Description of Use Case Current Output
Main Flow
Start Preconditions: None
1 AEP: Chosse between simulation and calculation
2 SEP: Calculate actual current
3 AEP: Current stored
4 Validate that current does not exceed span limits
5 AEP: Current validated
6 Calculate PWM output signal
7 Normalize
8 Output PWM signal
9 AEP: End
End Postconditions: None
Description of Use Case Alarm Current Output
Specialization Flow Calculate Alarm Current
Start At Calculate actual current
1 Calculate actual current from alarm value
Description of Use Case Flow Rate Current Output
Specialization Flow Calculate Flow Rate Current
Start At Calculate actual current
1 Calculate actual current from flow rate value
17. April 2007 Andreas Walter
Technische RealisierungTechnische Realisierung
Verwendete Rahmenwerke und Bibliotheken: Eclipse SWT/JFace Eclipse Forms Eclipse Modeling Framework (EMF) Graphical Editor Framework (GEF) ViPER
17. April 2007 Andreas Walter
Technische Realisierung (2)Technische Realisierung (2)
Graphischer Editor für UML Use Case-Modelle sc.viper.uml2.vme.behaviour.usecase:
Diagrammtyp-Erweiterung für ViPER UML2 VME
Editor für textbasierte Use Case-Beschreibungen sc.viper.uml2.vme.behaviour.usecase.narrativemodel
EMF-basierte Implementierung des Metamodells für textbasierte Use Case-Beschreibungen
Nutzung des EMF Validation Framework für die Realisierung von Konsistenzprüfungen
sc.viper.uml2.vme.behaviour.usecase.narrative Implementierung des Editors für textbasierte Use Case-
Beschreibungen
17. April 2007 Andreas Walter
Zusammenfassung und AusblickZusammenfassung und Ausblick
Herausforderungen Konzeptuell
Formalisierung textbasierter Use Case-Beschreibungen, ohne die Verwendung natürlicher Sprache zu sehr einzuschränken
Technisch Komplexität verwendeter Rahmenwerke ViPER reift noch
Ergebnisse Metamodell für textbasierte Use Case-Beschreibungen Editor für die graphische Bearbeitung von UML-basierten Use Case-
Modellen Editor für die Bearbeitung von textbasierten Use Case-Beschreibungen Integrierte Prüfung von Konsistenzbedingungen zwischen UML-Modell und
Modell textbasierter Beschreibungen Ausblick
Report-Generierung Simulation , interaktive Validierung
17. April 2007 Andreas Walter
EndeEnde
Vielen Dank!