Objektorientierte Analyse

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Wenn man hot potatoes startet erhält man folgenden Bildschirm.
OO Analyse Analyseprozess Erstellen eines Modells
Projektplanung für Softwareprojekte
Methodik: Objektorientierte Analyse
Objektorientierter Entwurf
Objektorientierter Entwurf
Checklisten dynamisches Modell
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Sequenzdiagramm.
Objektorientierte Analyse (OOA) Verhaltensmodellierung
Objektorientierte Analyse (OOA) Inhaltsübersicht
Objektorientierte Analyse (OOA) Übersicht
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Anwendungsfall-Diagramm (Use Case Diagram)
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Abhängigkeitsbeziehung
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Lösungen
Objektorientierte Konzepte
Methodik: Objektorientierte Analyse
Objektorientierte Konzepte und Notation in UML
Objektorientierte Konzepte
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
OO Analyse und Entwurf für Anwender
Kurzüberblick über ereignisgesteuerte Prozessketten (EPK)
Softwareprojekt Shopverwaltung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
3. Vorlesung: UML Use Case Diagramme
12. Vorlesung: Aktivitätsdiagramme
10. Vorlesung: Dynamische Konzepte
Outlook_03 - Freigabe von Postfächern für Kollegen
Dienstag, Markus Schoenen
Sequenzdiagramme (1) Festlegen des Inter-Objekt-Verhaltens (Interaktionsstruktur, Verantwortlichkeiten) Sequenzdiagramm ist temporal orientiert zeigt.
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Unified Modeling Language Repetition / Einführung zu UML
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
LVA , SS021 Im Mittelpunkt aller Bemühungen steht der Kunde und die Steigerung des Kundennutzens. Deswegen: Wer alles reinlässt kann nicht.
UML-Kurzüberblick Peter Brusten.
UML UML mit SiSy® Vorgehensmodell Dokumentation HTML-Export
UML Modellierung des Verhaltens von Klassen und Objekten
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Vom Geschäftsprozess zum Quellcode
Zustandsübergangsdiagramme (1)
Fingerübungen zu OOT Erstellen Sie, ausgehend vom nachfolgenden Beschrieb ein Use-Case Diagramm: Tanken an einer Tanksäule Der Kunde fährt mit seinem Wagen.
PHP: Operatoren und Kontrollstrukturen
Standardarbeitsplan anlegen
DD, DTD, DFD SWT-Übung WS 10/11. 2 DD, Syntax SWT-Übung , Gregor Buchholz Data Dictionary, Syntax - = (besteht aus) / ist äquivalent.
Klassen und Klassenstruktur
Unified Modeling Language UML
Software Engineering Strukturierte Analyse
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
Aufgabe 4 Betrachten Sie das unten dargestellte Klassendiagramm, das für eine Bibliothek zur Verwaltung ihrer Buchbestände modelliert wurde. Modellieren.
1 Prozesse im Studiengangsmanagement Kontext: Neues Abschlussziel erstellen Neues Studienfach erstellen.
1 Prozesse im Studiengangsmanagement Kontext: Neues Abschlussziel erstellen Neues Studienfach erstellen.
Name des Vortragenden ‌ Klasse ‌‌‌ Ort / tt.mm.jjjj Anwendungsfalldiagramm.
Seminararbeit Blackbox-Testverfahren Alexander Maas, Aachen,
Excel-Tool: Beschwerdeanalyse  Folie 1 von Bitte Makros aktivieren Das Excel-Tool funktioniert nur mit eingeschalteten Makros. Eventuell erhalten.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
A nwendungsfalldiagramm. Ü berblick  Allgemein  Anwendungsfalldiagramm in Stichpunkten  Zusammenhang  Anwendungsbereich  Diagramm.
4. Modellieren und Diagrammarten
 Präsentation transkript:

Objektorientierte Analyse Dynamisches Modell erstellen

Objektorientierte Analyse Szenarios, Aktivitäten, Zustandsautomaten und Operationen identifizieren Interaktionsdiagramme, Aktivitätsdiagramme, und Zustandsdiagramme erstellen

Checkliste Szenario Wiederholung: Was ist ein Szenario? 1 Anwendungsfall= Bündel von Szenarios 1 Szenario= Beschreibung eines Anwendungsfall- Objekts Zeigt eine Sequenz von Verarbeitungsschritten, die unter bestimmten Bedingungen auszuführen sind Beschreibt eine Folge von Ereignissen und Systemreaktionen, die bei der Ausführung eines System(-teil)s auftreten

Checkliste Szenario 1. Szenarios aus Use Cases ableiten Konstruktive Schritte zum Modellieren von Szenarios 1. Szenarios aus Use Cases ableiten Welche Variationen des Use Cases können auftreten? Welche dieser Variationen sind für die Modellierung des Gesamtsystems wichtig?  häufig verwendete Systemfunktionen, Ausnahmesituationen Sind auch die Szenarios, die nicht zum erwünschten Erfolg führen, in Erwägung gezogen? Empfiehlt sich die textuelle Beschreibung eines Szenarios?  Name des Szenarios, Bedingung, Ergebnis

Checkliste Szenario Beispiele: Use Case: entleihe Medium Szenario 1: Name: entleihe Medium (Standardfall Ausgabe) Bedingungen: Medium verfügbar Medium nicht vorgemerkt Entleiherausweis gültig Entleiherkonto ausgeglichen Ergebnis: Medium wird ausgegeben Szenario 2: Name: entleihe Medium (Medium vorgemerkt) Medium ist verfügbar Medium wurde vorgemerkt Medium wird ausgegeben, wenn Entleiher= Vormerker Wenn Entleiher!=Vormerker, Vormerkung vorschlagen

Checkliste Szenario Szenario 3 Name: entleihe Medium (Ausweis ungültig) Bedingung: Ausweis des Entleihers ist ungültig Ergebnis: Ausleihe verweigert, Ausweisverlängerung vorgeschlagen Szenario 4 Name: entleihe Medium (nicht standardmäßiges Medium) Medium liegt vor Medium nicht vorgemerkt Ausweis gültig Medium ist nicht Standardmedium Ausgabe des Mediums, Buchung von Extragebühren

Checkliste Szenario 2. Diagrammart wählen Sequenz- (und) oder Kommunikationsdiagramm? Sequenzdiagramm: - zeitliche Reihenfolge - Operationensaufrufe/ -abfolge - Grundsätzliche Kommunikation zwischen den Objekten, Kern des Szenarios Kommunikationsdiagramm: - in der Regel einfacher zu erstellen - Zusammenwirken ausgewählter Objekte

Checkliste Szenario

Checkliste Szenario

Checkliste Szenario 3. Auslöser des Szenarios finden Aus Use Case Diagramm oder Beschreibungen der Use Cases 4. Kommunikationsobjekte ermitteln und eintragen - Welche Klassen bzw. Objekte sind an dem Szenario beteiligt?  Klassendiagramm - Sequenzdiagramm: Anordnung der Kommunikationspartner beachten 5. Ablauf des Szenarios konstruieren Vorgehensweise: - Zerlegen der Aufgaben des Use Case in Teile, bis jeder Teil einer Operation entspricht. - Welcher Schritt folgt nun? Welcher Kommunikationspartner führt die Operation aus?

6. Zentrale vs. Dezentrale Steuerungsstruktur Checkliste Szenario 6. Zentrale vs. Dezentrale Steuerungsstruktur in Sequenzdiagrammen

Checkliste Szenario Analytische Schritte Fehlerquellen - Ist das Sequenzdiagramm konsistent mit dem Klassendiagramm? Fehlerquellen zu viele Details Keine GUI betreffenden Objekte modellieren (=Entwurf)

Übung 1 Ziel: Aus Use Case Beschreibung Szenarios ableiten und Sequenzdiagramm erstellen Use Case Name: Medium ausleihen Ziel: Medium wird verbucht und ausgegeben Vorbedingung: Medium ist vorhanden Nachbedingung +: Entleiher erhält Medium Nachbedingung -: Entleiher erhält Medium nicht Akteure: Entleiher, Bibliotheksangestellte Auslösendes Ereignis: Entleiher legt Medium zur Ausleihe vor Beschreibung: Ausweisnummer des Entleihers wird überprüft Mediennummmer wird überprüft Medium wird verbucht Medium wird zur Ausleihe ausgegeben Erweiterungen: 1a. Ausweis ist nicht mehr gültig; Ausweis verlängern oder zurückgeben und Ausleihvorgang beenden 1b. Konto des Entleihers ist im Soll; Konto ausgleichen oder Vorgang beenden 2a. Medium ist vorgemerkt; Entleiher vormerken und Vorgang beenden 3a. Medium ist nicht Standardmedium; Leihfrist setzen, Sondergebühren verbuchen Alternativen: 4a. Medium wird zur Benutzung im Lesesaal bereitgestellt

Lösung 1. Szenarios ableiten und kurz beschreiben Beispiel: Szenario 4 Name: entleihe Medium (nicht standardmäßiges Medium) Bedingung: Medium liegt vor Medium nicht vorgemerkt Ausweis gültig Medium ist nicht Standardmedium Ergebnis: Ausgabe des Mediums, Buchung von Extragebühren

2. Akteure und Objekte identifizieren Es existiert bereits folgendes Klassendiagramm : Entleiher Medium * * name anschrift typ mediennummer leihstatus vormerkung medienart 1 1 Konto In der Beschreibung sind bereits Bibliotheksangestellte und Entleiher als Akteure gelistet; im Klassendiagramm wurden die nebenstehenden Klassen identifiziert; sie stellen möglich Kommunikationspartner dar; der Entleiher ist als Klasse modelliert gebuehren status kontonummer

3. Sequenzdiagramm erstellen Hinweis: Das Diagramm könnte in weiteren Stufen verfeinert werden

4. Operationen aus Sequenzdiagramm im Klassendiagramm ergänzen (hier Auswahl): Entleiher Medium name anschrift typ mediennummer leihstatus vormerkung medienart * * hole_kontodaten() setze_gebuehren() ... liefere_daten() 1 1 Konto gebuehren status kontonummer liefere_daten() aktualisiere()

Checkliste Aktivität Aktivitätsdiagramme können zur Spezifikation von Use Cases und zur Verdeutlichung des Zusammenwirkens mehrerer Use Cases verwendet werden. Konstruktive Schritte 1. Start und Ende der Aktivität bestimmen. Hilfreich kann dabei eine bereits vorhandene Use Case Beschreibung sein. Wann terminiert die Aktivität? Handelt es sich bei der Aktivität um eine nichtterminierende, teilterminierende (nur einzelne Flows terminieren) oder vollständig terminierende? 2. Zuerst den Standardfall modellieren.

Checkliste Aktivität Welche Erweiterungen zum Standardfall sind möglich? Müssen Entscheidungsknoten modelliert werden? Liegt Parallelität in der Aktivität vor? Kann die Reihenfolge von Teilaktionen nicht genau bestimmt werden?  Bei einer Modellierung als Entscheidung muss nicht jeder Teilfluss durchlaufen werden, beim Splitting bzw. der Synchronisation geht die Verarbeitung erst dann weiter, wenn alle Teilpfade durchlaufen wurden. 4. Objektknoten eintragen, um die Aussagefähigkeit des Diagramms zu erhöhen. Erzeugen die Aktionen Daten oder werden Daten benötigt?

Checkliste Aktivität Exkurs: Objektknoten in Aktivitätsdiagrammen Ein Objektknoten gibt an, das ein oder mehrere Objekte existieren. Sie können Eingangs- oder Ausgangsparameter von Aktionen sein. Darstellung: Als Pins oder Rechtecke

Checkliste Aktivität Semantik: Objektfluss Oder-Semantik Kontrollfluss Und-Semantik Objektfluss Und-Semantik Eine Aktion startet erst dann, wenn die benötigten Objekte vorliegen bzw. am Ende einer Aktion werden die neuen Objekte bereitgestellt. Permanenter Objektfluss kann durch das Schlüsselwort {stream} oder alternativ durch einen ausgefüllten Pin dargestellt werden. Exkurs Ende

Checkliste Aktivität 5. Aktivitätsbereiche modellieren, wenn dies zur Aussagefähigkeit beiträgt und zeichentechnisch nicht problematisch ist. Alternativ sollte in diesem Fall und im Falle vieler Aktivitätsbereiche eine Textnotation bevorzugt werden. Analytische Schritte - Name: Analog zur Benennung von Operationen (Aktionen sind Verarbeitungsschritte!) - Gibt es Aktionsknoten, in die keine Kanten hineinführen oder aus der keine Kanten führen? - Sind Bedingungen bei einer Entscheidung eindeutig formuliert?  x>1 nicht: x>=1 - Ist die Menge der Bedingungen einer Entscheidung vollständig?

Übung 2 Ziel: Aktivitätsdiagramm aus Use Case Beschreibung modellieren. Wir betrachten nochmal den Use Case aus Übung 1 und versuchen daraus ein Aktivitätsdiagramm zu entwickeln. Use Case Name: Medium ausleihen Ziel: Medium wird verbucht und ausgegeben Vorbedingung: Medium ist vorhanden Nachbedingung +: Entleiher erhält Medium Nachbedingung -: Entleiher erhält Medium nicht Akteure: Entleiher, Bibliotheksangestellte Auslösendes Ereignis: Entleiher legt Medium zur Ausleihe vor Beschreibung: Ausweisnummer des Entleihers wird überprüft Mediennummmer wird überprüft Medium wird verbucht Medium wird zur Ausleihe ausgegeben Erweiterungen: 1a. Ausweis ist nicht mehr gültig; Ausweis verlängern oder zurückgeben und Ausleihvorgang beenden 1b. Konto des Entleihers ist im Soll; Konto ausgleichen oder Vorgang beenden 2a. Medium ist vorgemerkt; Entleiher vormerken und Vorgang beenden 3a. Medium ist nicht Standardmedium; Leihfrist setzen, Sondergebühren verbuchen Alternativen: 4a. Medium wird zur Benutzung im Lesesaal bereitgestellt

Lösung Start und Ende ermitteln. Dazu lesen wir in der Beschreibung das auslösende Ereignis sowie das Ziel: Startaktion: Medium zur Ausleihe vorlegen Ende der Aktivität: Medium ausgeben Dann modellieren wir den Standardfall, so wie er in der Beschreibung vorliegt. Gibt es bereits Entscheidungsknoten oder Splittings? Danach wird analog der Erweiterungen und Alternativen das Diagramm verfeinert. Gibt es (weitere) Entscheidungen oder Splittings? Sind die Bedingungen für die Entscheidungen vollständig und korrekt? Sollen Aktivitätsbereiche modelliert werden? Empfiehlt sich das Einfügen von Objektknoten?

Checkliste Zustandsautomat Anwendungsgebiet in der Analyse Modellierung des dynamischen Verhaltens von Klassen und Use Cases (Verhaltenszustandsautomat) Spezifikation der Zustände und Bedingungen von Operationsabläufen (Protokollzustandsautomat) Konstruktive Schritte Muss überhaupt ein Zustandsautomat bzw. ein Zustandsdiagramm erstellt werden?  Lebenszyklus der Klasse/ Objekt; meist trivial - sinnvoll, wenn ein Objekt auf eine bestimmte Botschaft abhängig vom aktuellen Zustand unterschiedlich reagieren kann - wenn einige Operationen nur in bestimmten Zuständen auf ein Objekt anwendbar sind

Checkliste Zustandsautomat Beispiel 1: Der Zustandsautomat der Klasse Seminartyp ist trivial: der Seminartyp existiert oder er existiert nicht

Checkliste Zustandsautomat Beispiel 2: VerhaItenszustands-automat im ausgebuchten oder stornierten Zustand können keine Anmeldungen vorgenommen werden

Checkliste Zustandsautomat Beispiel 3: Protokollzustands-automat Die Operationen der Klasse werden so modelliert,dass sie zeigen, in welchen Zustand sie auf Objekte der Klasse angewandt werden können

Checkliste Zustandsautomat Beispiel 4: Der Use Case ‚Parkgebühr bezahlen‘ wird durch ein Zustandsdiagramm spezifiziert. Automaten lassen sich sehr gut durch Zustandsautomaten modellieren.

Checkliste Zustandsautomat 2. Zustandsautomatenelemente identifizieren und in Beziehung setzen Mögliche Vorgehensweisen: - Brainstorming: Tabelle erstellen, in der alle Zustände, Ereignisse und Verarbeitungsschritte, die innerhalb eines Anwendungsfalls oder durch Objekte der Klasse ausgeführt werden, eingetragen werden. - In welchen Zustand befindet sich ein Objekt der Klasse direkt nach seiner Erzeugung? Welche Ereignisse können eintreten? Welche Zustände können ausgehend davon folgen?

Checkliste Zustandsautomat 3. Gibt es einen oder mehrere Endzustände oder ist der Zustandsautomat zyklisch? 4. Aktivitäten (Verarbeitungen) eintragen - Gibt es mit einer Transition eine Verarbeitung? - Besitzen alle eingehenden Transitionen eines Zustands die gleiche Aktivität?  entry/ - Besitzen alle ausgehenden Übergänge die gleiche Aktivität?  exit/ - Wird über die Dauer eines Zustands eine Verarbeitung ausgeführt und ruft ihre Beendigung einen Zustandsübergang hervor?  do/ 5. Welche externen oder internen Ereignisse lösen Zustandsübergänge aus? Handelt es sich um zeitliche Ereignisse?

Checkliste Zustandsautomat Analytische Schritte Name: Sollte die Zeitspanne beschreiben, in der sich das Objekt in einem Zustand befindet. Möglichst nicht in Form einer Verarbeitung ausdrücken: „prüfend“ statt „prüfen“ Die Aktivitäten und Verarbeitungen des Zustandsdiagramms sollten konsistent zum Klassendiagramm sein, d.h. mindestens eine Teilmenge der Operationen aus dem Klassendiagramm sein Besitzen alle Zustände ein- und ausgehende Transitionen? Gibt es Situationen, die nicht durch die bestehenden Transitionen modelliert sind?

Checkliste Operationen Konstruktive Schritte Operationen aus den Interaktionsdiagrammen/ Zustandsdiagrammen in das Klassendiagramm eintragen Gibt es Listenoperationen (=Operationen, die auf Listen zurückgreifen, z.B. die Operation „ermittleKunden()“ aus Beispiel 1) die das statische Modell vervollständigen?  als Klassenoperation eintragen Verwaltungsoperationen werden nicht in das Klassendiagramm der Analyse eingetragen Operationen in einer Vererbungsstruktur so hoch wie möglich eintragen Ergänzende Beschreibungen der Operationen vornehmen, wenn Funktionsweise nicht klar wird  kann eine Operation in diesem Fall zerlegt werden?

Checkliste Operationen Analytische Schritte Name: Verb, Verb/Substantiv Kombination; sollte aussagen, was die Operation macht; konsistenter Aufbau Allgemein gehaltene Namen können ein Indiz auf Operationen sein, die verschiedene Verarbeitungsschritte beinhalten. Hier evtl. prüfen, ob sich mehrere aussagekräftige Verben finden lassen. Z.B.: „verarbeite()“  ladeDaten(), ermittleWert(), …

Übung 3 Ziel: Für eine Klasse den Zustandsautomaten (Lebenszyklus) erstellen. Spezifizieren Sie für die Klasse Mietwagen (s.u.) den Lebenszyklus. Die Wirkung der Operationen ist wie folgt definiert: vermieten(): Ein neues Objekt von Mietvertrag erzeugen und entweder vorhandenem Kunden zuordnen oder neuen Kunden erfassen. zurücknehmen(): Gibt der Kunde den Mietwagen vertragsgemäß zurück, so wird das Auto gewaschen und überprüft. bereitstellen(): Ergibt sich bei der Prüfung die einwandfreie Funktion, so wird der Wagen wieder in den Fuhrpark überstellt. anmeldenWerkstatt(): Ein defekter Mietwagen wird zur Reparatur angemeldet. Sobald ein Mietwagen repariert ist, wird er wieder bereitgestellt. ausmustern(): ergibt sich bei der Prüfung, dass der Kilometerstand des Mietwagens > 80000 km ist, wird er aus dem Fuhrpark des Mietwagenverleihs entfernt und zum Verkauf bereitgestellt. Ist der Wagen defekt, wird er zunächst repariert, um einen höheren Verkaufspreis zu erzielen.

Weitere Übungen Stellen Sie das Szenario aus Übung 1 als Kommunikationsdiagramm dar. Leiten Sie aus Übung 1 weitere Szenarien ab und stellen Sie diese in einem Interaktionsdiagramm dar. Erstellen Sie für das Medium Buch einen innerhalb einer Bibliothek typischen Lebenszyklus.