DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Inhaltsübersicht • • • • • • Einführung Anforderungen an die UML-Diagramme Verhalten: Use-Case-Diagramm Verhalten: Aktivitätsdiagramm Verhalten: Zustandsautomat Struktur: Klassendiagramm Seite 1 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Einführung In der Systemanalyse wird aus den fachspezifischen Anforderungen das Systemmodell erstellt; im Systemmodell ist spezifiziert, was das System leisten soll, d.h. statische Struktur und dynamisches Verhalten sind vollständig beschrieben. In der Systementwicklung wird aus dem Systemmodell und den ITspezifischen Anforderungen das Software-System erstellt; das Software-System beschreibt, wie die Anforderungen umgesetzt wurden Seite 2 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Einführung UML ist die Notation für die OOA. Mit den UML-Diagrammen gliedert sich das Systemmodell in zwei Aspekte: (dynamische) Verhaltensmodellierung und (statische) Strukturmodellierung, für deren Beschreibung vier UML-Diagramme zuständig sind. Methodische Gliederung Komponenten Diagramm (UML 2) Verhaltensmodellierung (dynamisch) Ereignisse Kontrollfluss (Ablauf) Zustandsübergänge Use-Case-Diagramm Aktivitätsdiagramm Zustandsautomat Strukturmodellierung (statisch) Daten (–Strukturen) Schnittstellen (Kontext) Funktionen Datenfluss Klassendiagramm Aktivitätsdiagramm (nur Parameter/Objektfluß) Seite 3 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Anforderungen an die UML-Diagramme Vollständigkeit der OOA • Kontext, d.h. externe Schnittstellen • Funktionshierarchie Konsistenz zwischen den Diagrammen • Aktoren und Swimlanes • Parameter und Klassen • Ereignisse und Klassen • Use Cases und Aktionen bzw Aktivitäten Verständlichkeit für die unterschiedlichen Nutzer • Komplexität einer Aktivität • Beschreibungsmöglichkeiten in einem Diagramm Seite 4 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Verhaltensmodellierung Seite 5 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Verhaltensmodellierung Seite 6 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Verhaltensmodellierung Seite 7 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Bedeutung der Use Cases Anwendung im Projekt • • • • Use Case Diagramm liefert die funktionelle Gliederung in form von Anwendungsfällen in der 1. Gliederungsebene; weitere Gliederungsebenen werden durch Aktivitätsdiagramme visualisiert Use Cases liefern den Kontext, d.h. sie beschreiben alle Systemgrenzen (externe Schnittstellen) Use Cases stellen keine objektorientierte Sicht auf das System dar, sondern beschreiben die funktionellen Anforderungen aus Anwendersicht (was statt wie) (und Entwicklersicht) Verständlichkeit wird erreicht durch: – Sparsame Verwendung der include- und extend-Beziehungen – Vorgabe eines Templates zur textuellen Beschreibung der Use Cases Zu beachten • • • • Akteure (actors) werden nur dann eingeführt, wenn sie direkt mit dem System (inter-)agieren, d.h. aktiv beteiligt sind; es gibt somit nicht nur menschliche Akteure! Schnittstellen nach außen werden in den Aktivitätsdiagrammen als Ein- und Ausgabeparameter spezifiziert Für eine detaillierte(re) Spezifikation der Daten steht das Klassendiagramm zur Verfügung Bei einem gleichwertigen Auftreten von Abfolgen und Ereignissen im Use Case empfiehlt es sich, einen Zustandsautomaten zur Beschreibung hinzuzufügen Seite 8 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Use Case Diagramm • • • Das Use Case Diagramm hält fest, was Akteure/Aktoren, die sich außerhalb des Systems befinden) vom System erwarten. Es bildet des externe Verhalten des System ab. Es enthält die grafische Darstellung der Use Cases (Anwendungsfälle). Use Cases helfen, das System in logische Teile (planbare Einheiten) zu gliedern und liefern die Schnittstellen, so dass sie auch als Grundlage für das Testen des Systems nach der Erstellung bieten Notation: Anwendungsfälle werden durch Ellipsen, die den Namen des Anwendungsfalles - möglichst als Verb - tragen, und einer Menge von beteiligten Objekten (Akteure, häufig als Strichmännchen gezeichnet), die den Namen ihrer Rolle tragen. dargestellt. Zwischen den Anwendungsfällen existieren KommunikationsBeziehungen, die durch Linien dargestellt werden, spezielle Beziehungen sind: – <<extend>>-Beziehung, – <<include>>-Beziehung (ersetzt die <<uses>>-Beziehung aus der UML1.1) – Generalisierungsbeziehung (seit UML 1.3). Seite 9 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Use Case Diagramm Beispiel mit dem Case-Tool Innovator: • Paket “Verwaltung” dient zur Gruppierung (Systemgrenze) • • • • Kommunikationsbeziehungen (einfache Striche) werden nicht benannt <<extend>>Beziehung sagt, daß der Use Case “Anmelden” durch den Use Case “Kontozugang sperren” (unter bestimmten Umständen, siehe [ ] im Diagramm) erweitert wird (extension point) <<include>>Beziehung sagt, daß der Use Case “Abmelden” den Use Case “BLZ überprüfen” enthält Der use case “BLZ überprüfen“ gehört originär zum Paket “Auskunft” Seite 10 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Use Case Diagramm Beispiel für eine Generalisierung (Innovator): Es existieren drei (konkrete) Anwendungsfälle, die eine Spezialisierung des abstrakten Anwendungsfalles Kfz reservieren darstellen. Christoph Riewerts Ebenfalls ist die Generalisierung zwischen den Akteuren eingezeichnet. Für den Prozeß der Reservierung bedeutet das, daß entweder der Reservierungswunsch direkt vom Kunden im Anwendungsfall Kfz online reservieren bearbeitet wird oder daß der Reservierungswunsch vom CallCenter-Agenten (im Falle Kfz telefonisch reservieren) oder vom Niederlassungsmitarbeiter (im Falle Kfz persönlich reservieren) weitergeleitet wird (leider ist diese Datenschnittstelle Reservierungswunsch im Diagramm nicht sichtbar). Seite 11 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Use Case Diagramm Übung (Flugbuchung): Der Anwendungsfall “Buchen eines Fluges” verwendet die zwei Use Cases “Beratung” und “Rechnung ausdrucken”. Eine Beratung wird jedoch nur in Ausnahmefällen durchgeführt, während der Anwendungsfall “Rechnung ausdrucken” von allgemeiner Natur sein soll und somit auch von weiteren Use Cases benutzt werden kann. Entwerfen Sie ein Anwendungsfall-Diagramm. Seite 12 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Use Case Diagramm Übung (Bibliothekssystem): Für ein Bibliothekssystem sind folgende Anwendungsfälle zu spezifizieren: Buch ausleihen, Buch vormerken, Buch zurückgeben, Buch inventarisieren, Buch suchen. Sollte ein Kunde zur Benutzung der Bibliothek noch nicht berechtigt sein, müssen seine Kundendaten aufgenommen werden. Definieren Sie die notwendigen Akteure und stellen Sie ein Use Case Diagramm auf. Seite 13 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Use Case Beschreibung (Template) Wann ist eine Funktion ausreichend beschrieben? Antwort: Wenn zu jeder Funktion folgende Angaben gemacht werden: – Auslöser einer Funktion – Input zu einer Funktion – Output einer Funktion – (bei komplexen Inhalten) einzelne Funktionsschritte – Durchführender Use case Titel: ___________________ Nummer: ……… Kurzbeschreibung (Ziel): ……… Akteure: ……… Auslösendes Ereignis: ……… Vorbedingung: ……… Nachbedingung (bei Erfolg / bei Fehlerfall): Der Standardablauf wird in der Regel als Aktivitätsdiagramm gezeichnet, da wir bei umfangreichen Use Cases die Ein- und Ausgabeparameter der Aktionen explizit benötigen. Standardablauf (Abfolge der Aktionen): 1. 2. 3. …….. Seite 14 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Use Case Beschreibung Beispiel für einen Use Case Use Case Titel: Auftrag ausführen Nummer: FREQ 21 Kurzbeschreibung (Ziel): Ware an Kunde geliefert Akteure: Kundensachbearbeiter, Lagersachbearbeiter, Buchhaltung Auslösendes Ereignis: Bestellung des Kunden liegt vor Vorbedingung: Bestellung Nachbedingung (bei Erfolg): Ware ausgeliefert (auch Teillieferungen), Rechnungskopie bei Buchhaltung Nachbedingung (bei Fehlerfall): Mitteilung an Kunden, dass nicht lieferbar Standardablauf: 1. Kundendaten abrufen 2. Lieferbarkeit prüfen 3. Rechnung erstellen 4. Auftrag vom Lager ausführen lassen 5. Rechnungskopie an Buchhaltung geben Erweiterungen: 1a. Kundendaten aktualisieren Alternativen: 1a. Neukunden erfassen 3a. Rechnung mit Nachnahme erstellen 3b. Rechnung mit Bankeinzug erstellen Seite 15 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Use Case Beschreibungen Beispiele für verbesserungsfähige Use Cases: Seite 16 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Use Case Beschreibungen Hier sind die verbesserten Use Cases: - Keine Lösungen (Oberflächen) beschreiben - Hauptablauf (mit Alternativen) kennzeichnen - Detaillierung der Daten (Attribute) ins Klassendiagramm übernehmen Seite 17 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen Übung Flugbuchung Seite 12: Seite 18 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.5.1 Okt 2010 Objektorientierte Analyse (OOA) Anhang: Lösungen der Übungen Übung (Bibliothekssystem) Seite 13 Seite 19