Inhalt Softwaretechnik (MN) Kapitel 5

Ähnliche Dokumente
Softwaretechnik SS Vorlesungseinheit

Softwaretechnik SS 2006

Übungen Softwaretechnik I

OOA-Dynamische Konzepte

Objektorientierte Analyse (OOA) Übersicht

Unified Modeling Language (UML )

Inhalt. 1 Einführung 17. Strukturdiagramme. 2 Klassendiagramm 37

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

Das UML Benutzerhandbuch

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

Datenbanken. Teil 2: Informationen. Kapitel 7: Objektorientierte Sicht. UML-Diagramme. Vorstellung der unterschiedlichen UML-Diagramme

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.

Techniken der Projektentwicklungen

CARL HANSER VERLAG. Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML 2 glasklar

Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML2 glasklar. UNIFIED MODELING LANGUAGE l HANSER

Das umfassende Handbuch

UML (Unified Modelling Language) von Christian Bartl

NACHRICHTENTECHNISCHER SYSTEME

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 8 -

UML 2.0 Das umfassende Handbuch

Objektorientierte Analyse (OOA) Inhaltsübersicht

Unified Modeling Language 2

Softwaretechnik 2015/2016

Software Engineering in der Praxis

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

Vorlesung Software-Engineering I

Objektorientiertes Design

Vorlesung Programmieren

Das UML Benutzerhandbuch

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

Unified Modelling Language

Wirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Software-Engineering

Besteht aus Aktoren (actors) und use-cases sowie deren Verbindungen.

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS

Analyse und Design mituml2

INSPIRE - Modellierung

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

UML 2 glasklar Praxiswissen für die UML-Modellierung

Einführung in die objektorientierte Programmierung

UML - Sequenzdiagramm

SEQUENZDIAGRAMM. Christoph Süsens

Inhalt. Einleitung Liebe Leserin, lieber Leser, Wer dieses Buch aus welchem Grund lesen sollte Ihre Meinung ist uns sehr wichtig.

Aktivitätsdiagramm. 1 b b,c a,d b,d b,d 2 a,b,d a,d a,c a,b,c b,c 3 a c,d a,b a,d a,b 4 c,d c b,c a,d d 5 c,d a,c a,b d c

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Zustände Zustandsdiagramme

UML 1.4 Referenz. Matthias Niete Dirk M. Sohn Orientation in Objects GmbH Weinheimer Str Mannheim

Interaktionsdiagramme in UML

Analyse und Design mituml2.1

Vgl. Oestereich Kap 2.1 Seiten

Objektorientierte Softwareentwicklung

Analyse und Design mit U ML 2.3

ANWENDUNGSFALLDIAGRAMM:

Softwaretechnologie für Fortgeschrittene Wohce 4 Modellierung UML

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Software Engineering in der Praxis

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller

Anwendungsfalldiagramm UseCaseDiagramm

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest

Analyse und Modellierung von Informationssystemen

Tabellarische Kurzreferenz der UML-Elemente

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

UML -Klassendiagramme

Universität Karlsruhe (TH)

Objektorientierte Systementwicklung

UML 2 glasklar HANSER. Chris Rupp Stefan Queins Barbara Zengler. Praxiswissen für die UML-Modellierung. 3., aktualisierte Auflage

Unified Modeling Language

Unified Modeling Language (UML)

Super. Sub1. Sub2 State2. Sub3. Sub4. Super. State2. Sub4

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

UML. Weiteres Vorgehen im Projekt

Kapitel Weitere UML-Diagrammtypen

Formale Modellierung Vorlesung vom : Beyond JML

UML fürs Pflichtenheft

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

UML (UNIFIED MODELING LANGUAGE)

Aufgabe S1: Einmal quer durch s Skript

Testen mit Use Cases. Chris Rupp Dr. Stefan Queins

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Abbildungsverweise PlantUML Code. Version 1.0 Vanessa Petrausch

Die Unified Modeling Language UML

PRÜFUNG. Grundlagen der Softwaretechnik

Anwendungsfall. Das Anwendungsfall-Diagramm (Use-Cases/Use-Case Diagramm) Die Anwendungsfall-Beschreibung. Dr. Beatrice Amrhein

2. Übung zu Software Engineering

Aktivitätsdiagramm (Activity Diagram)

Objektorientierter Entwurf. Grundlagen des Software Engineerings

Requirements Engineering I

Teil II: OOP und JAVA (Vorlesung 9)

Softwareanforderungsanalyse

Transkript:

Inhalt Softwaretechnik (MN) Kapitel 5 1. Einführung 2. Anforderungsanalyse und Use Cases 3. Grundlagen der objektorientierten Analyse (OOA): Das Klassendiagramm 4. Von der objektorientierten Analyse (OOA) zum objektorientierten Design (OOD) und zum Code 5. Dynamische Diagramme der UML 5.1 Aktivitätsdiagramm 5.2 Sequenzdiagramm 5.3 Zustandsdiagramm 6. Entwurfsmuster (Pattern) 7. Testen Schestag Softwaretechnik (MN) Kapitel 5 / 1

Ergänzungen zu Kapitel 4 (1) Umsetzung eines UML Klassendiagramms Analysesicht Designsicht C++ Source Analysesicht (UML) Desingsicht (C++) Konto.cpp Schestag Softwaretechnik (MN) Kapitel 5 / 2

Ergänzungen zu Kapitel 4 (2) Implementierung der Navigationsrichtungen einer Assoziation durch Referenzattribute: Analysesicht (UML) Desingsicht (C++) Schestag Softwaretechnik (MN) Kapitel 5 / 3

Ergänzungen zu Kapitel 4 (3) Folgende strategische Überlegungen sind vor der Implementierung einer Navigationsrichtung durchzuführen bzw. zu bedenken: Dominiert die Zahl der Prozesse, in denen eine Fachbereichsinstanz ihre assoziierten Studenten kennen sollte? Wenn ja, dann implementiere das Referenzattribut students vom Typ set(student*) in der Klasse Fachbereich. Dominiert die Zahl der Prozesse, in denen eine Studenteninstanz ihren assoziierten Fachbereich kennen sollte? Wenn ja, dann implementiere das Referenzattribut *fachbereich vom Typ Fachbereich in der Klasse Student. Die Implementierung beider Referenzattribute erhöht die Geschwindigkeit beim Suchen von Informationen, aber sie fordert auch einen erhöhten Aufwand bei Updates: Bei der Immatrikulation eines Studenten für einen Fachbereich muss nicht nur die Studenteninstanz den entsprechenden Fachbereichspointer erhalten, sondern auch das set Attribut students einen zusätzlichen Eintrag erhalten. Eine Assoziation ist immer dann implementiert, wenn mindestens eine der beiden Navigationsrichtungen implementiert ist! Ist in der Analysesicht ein Rollenname angegeben, so bietet sich dieser an als Bezeichner für das entsprechende Referenzattribut. Schestag Softwaretechnik (MN) Kapitel 5 / 4

5 Dynamische UML Diagramme (1) Die Diagramme der UML 2.0 im Überblick: UML 1.4: Kollaborations diagramm Schestag Softwaretechnik (MN) Kapitel 5 / 5

5 Dynamische UML Diagramme (2) Die UML eignet sich zur durchgängigen (OO) Modellierung statischer und dynamischer Aspekte bis zur Implementierung und stellt dafür unterschiedliche Diagrammkategorien zur Verfügung: Statische Diagramme (Strukturdiagramme) Klassendiagramm Objektdiagramm Paketdiagramm Dynamische Diagramme (Verhaltensdiagramme) Use Case Diagramm Interaktionsdiagramme Sequenzdiagramm Kommunikationsdiagramm (bis UML 1.4: Kollaborationsdiagramm) Zustands(übergangs)diagramm Aktivitätendiagramm Implementationsdiagramme (behandeln wir nicht im Rahmen dieser Vorlesung) Komponentendiagramm Verteilungsdiagramm Schestag Softwaretechnik (MN) Kapitel 5 / 6

5 Dynamische UML Diagramme (3) Szenarien bilden die Grundlage für die Erstellung dynamischer Diagramme Ein Szenario ist eine Sequenz von Verarbeitungsschritten, die unter bestimmten Bedingungen auszuführen ist. Diese Schritte sollen das Hauptziel des Akteurs realisieren und ein entsprechendes Ergebnis liefern. Sie beginnen mit dem auslösenden Ereignis und werden fortgesetzt, bis das Ziel erreicht ist oder aufgegeben wird. Ein Anwendungsfall kann durch ein einzelnes Szenario oder durch eine Kollektion von Szenarien dokumentiert werden. Jedes Szenario wird durch eine oder mehrere Bedingungen definiert, die zu einem speziellen Ablauf des jeweiligen Anwendungsfalls führen. Ein Akteur ist eine außerhalb des Systems liegende Rolle, z.b. ein Benutzer oder ein externes System. Der Akteur löst ein Szenario aus. Schestag Softwaretechnik (MN) Kapitel 5 / 7

5 Dynamische UML Diagramme (4) Ziel der Erstellung unterschiedlicher UML Diagramme ist es, ein Gesamtsystem und dessen zu implementierenden Komponenten also die Klassen auf Vollständigkeit zu überprüfen im Gesamtentwurf. Hierbei ist es notwendig, das Gesamtsystem unter den unterschiedlichsten Aspekten zu betrachten. UseCase3 «extend» Actor 1 Use Case 1 Use Case 4 «include» Actor 2 UseCase2 Use Case Diagramm(e) Subjekt1 1 * 1 * KonkretesSubjekt1 Kennung Use Case: Titel Autor, Datum, Version Zweck (kurze Beschreibung) Kennung Use Case: Titel Kontext: NameSystem NameSubsystem NameProzeß Autor, Datum, Version beteiligte Aktoren Zweck (kurze Beschreibung) auslösende Ereignisse Kennung Use Case: Vorbedingungen, Titel die erfüllt sein müssen Kontext: NameSystem relevante NameSubsystem Eingangs- und Ausgangsdaten NameProzeßund -signale Autor, Datum, Version beteiligte Aktoren (Verweis auf die Schnittstellen-Spezifikation) Zweck (kurze Beschreibung) auslösende Ereignisse kritische Ausnahmesituationen bzw. Fehlerfälle Vorbedingungen, die erfüllt sein müssen Kontext: NameSystem relevante NameSubsystem Eingangs- und Ausgangsdaten NameProzeß und -signale (Verweis auf die wesentliche Schnittstellen-Spezifikation) Ergebnisse beteiligte Aktoren auslösende Ereignisse kritische Ausnahmesituationen Nachbedingungen bzw. Fehlerfälle Vorbedingungen, die erfüllt sein nachgeordnete müssen Nutzungsfälle relevante Eingangs- und Ausgangsdaten Verweis auf und zugehörige -signale Szenarios wesentliche Ergebnisse (Verweis auf die Schnittstellen-Spezifikation) relevante funktionale Anforderungen kritische Ausnahmesituationen Nachbedingungen bzw. Fehlerfälle nachgeordnete Nutzungsfälle Verweis auf zugehörige Szenarios wesentliche Ergebnisse relevante funktionale Anforderungen Nachbedingungen nachgeordnete Nutzungsfälle Verweis auf zugehörige Szenarios relevante funktionale Anforderungen... Szenario / Szenarien pro Use Case Subjekt2 KonkretesSubjekt2 Sind die Attribute vollständig? Sind die Methoden vollständig? Klassendiagramm Schestag Softwaretechnik (MN) Kapitel 5 / 8

5.1 Aktivitätsdiagramm die Funktionalität Aktivitätsdiagramme sind eine Variante des Zustandsdiagramms (vgl. 5.3) und eignen sich gut zur Geschäftsprozessmodellierung. Sie sind vergleichbar mit den «alten» Flussdiagrammen bzw. Programmablaufplänen (PAPs) und eignen sich deshalb gut für Kontrollflussdarstellungen Akitivitätsdiagramme dienen der Beschreibung von Abläufen: Was tun die einzelnen Schritte eines Ablaufs? In welcher Reihenfolge werden sie ausgeführt? Wer ist für einen Schritt verantwortlich (optional)? Einsatzfelder: Beschreibung zur Realisierung einer komplexen Operation: Die einzelnen Schritte eines Aktivitätsdiagramms repräsentieren die Folge von Anweisungen der Operation. Beschreibung einer Folge von Schritten eines Anwendungsfalls Beschreibung des Zusammenspiels von Anwendungsfällen Beschreibung von Geschäftsprozessen Schestag Softwaretechnik (MN) Kapitel 5 / 9

5.1 Aktivitätsdiagramm die Komponenten (1) Aktivitätsdiagramme benutzen die folgenden Komponenten: Beginn und Ende des Ablaufs werden durch einen eindeutigen Start und möglicherweise mehrere Endezustände markiert. Startzustand: Endezustand: Man unterscheidet zwischen Aktion und Aktivität: Eine Aktion ist atomar, d. h. sie kann nicht weiter zerlegt und darf nicht während ihrer Ausführung unterbrochen werden. Aktion Eine Aktivität besitzt eine komplexe Struktur und kann z. B. selbst wieder durch ein Aktivitätsdiagramm beschrieben werden. Aktivität Im Folgenden benutzen wir den generischen Ausdruck Aktivität(szustand) Schestag Softwaretechnik (MN) Kapitel 5 / 10

5.1 Aktivitätsdiagramm die Komponenten (2) Alle Zustände eines Aktivitätsdiagramms sind untereinander durch gerichtete Kontrollflusskanten verbunden, die die Ausführungsreihenfolge der einzelnen Schritte festlegen. Man spricht auch von Transition (Übergang) und von Transitionspfeilen. A B Ist die Ausführung von A abgeschlossen, so wird automatisch der Übergang nach B ausgelöst und mit der Ausführung von B begonnen. Bedingte Transitionen: [Bedingung] B1 A C [ Bedingung] B2 Schestag Softwaretechnik (MN) Kapitel 5 / 11

5.1 Aktivitätsdiagramm die Komponenten (3) Beschreibung von Nebenläufigkeiten: Die Gabelung (Splitting) kennzeichnet den Beginn einer Nebenläufigkeit: Von einem Synchronisationsbalken aus führen mehrere Transitionen weg. Die Synchronisation (Vereinigung, Join) zeigt das Ende der Nebenläufigkeit an: Gabelung Vereinigung (Join) Zusammenführung UND Entscheidungsknoten: Einem Entscheidungsknoten sind eine oder mehrere eingehende Transitionen und zwei oder mehrere ausgehende Transitionen zugeordnet. Komplexe Entscheidungen können so in Form von Entscheidungsbäumen dargestellt werden. Alle ausgehenden Transitionen müssen paarweise disjunkte Bedingungen tragen. Entscheidung Zusammenführung ODER Schestag Softwaretechnik (MN) Kapitel 5 / 12

5.1 Aktivitätsdiagramm Aktivitäten und Übergänge (Zusammenfassung) Eine Aktivität ist ein Zustand mit interner Aktion, sie entspricht einem Zustand bei Zustandsautomaten (vgl. 5.3). Übergänge (Transitionen) modellieren den Kontrollfluss und den Objektfluss, z.b. bei Anwendungsfällen, beim Zusammenspiel verschiedener Operationen, zur Beschreibung des Ablaufs in einer Operation. Übergänge (Transitionen) sind i. d. R. nicht abhängig von Ereignissen, können unter einer bestimmten Bedingungen ausgeführt werden, Können aufgeteilt und wieder synchronisiert werden durch einen Synchronisationsbalken, zusätzliche Synchronisationsbedingungen sind möglich. Schestag Softwaretechnik (MN) Kapitel 5 / 13

5.1 Aktivitätsdiagramm ein erstes einfaches Beispiel Schaden feststellen selbst bezahlen Schaden melden Schaden vermerken mit anderen Versicherungen verhandeln [Eigenverschulden] Prämie erhöhen [Fremdverschulden] [AND] Quelle: Dr. Michael Hahsler, Abteilung für Informationswirtschaft, WU Wien Schestag Softwaretechnik (MN) Kapitel 5 / 14

5.1 Aktivitätsdiagramm ein zweites Beispiel Das folgende Aktivitätsdiagramm zum Szenario Teepause enthält Aktivitäten und Übergänge mit Bedingungen zur Steuerung der Verzweigungen: Wasser kochen Tee auswählen [Wasser siedet] Tee in Filter tun [Tee grün] 10 Min. warten [Tee schwarz] Tee aufgießen 3 Min. warten Tasse holen Filter entfernen Tasse füllen Tasse nehmen Tee trinken Tasse abstellen [nicht leer] [leer] PIWIN lesen Schestag Softwaretechnik (MN) Kapitel 5 / 15

5.1 Aktivitätsdiagramm eine weitere Komponente: Swimlanes Swimlanes (Verantwortlichkeitsbereiche) erlauben die Definition von Rollen und Verantwortlichkeiten in Aktivitätsdiagrammen. Die Verantwortlichkeitsbereiche entsprechen den handelnden Instanzen: Gast Bedienung Theke Platz nehmen Zeitung nehmen Kaffee bestellen Bestellung aufnehmen Kaffee bereiten servieren Zeitung lesen Kaffee trinken Rechnung schreiben bezahlen Schestag Softwaretechnik (MN) Kapitel 5 / 16

5.2 Sequenzdiagramm und Kollaborationsdiagramm (1) Die UML 1.4 bietet zur Darstellung von Szenarien zwei Arten von Interaktionsdiagrammen an: Sequenzdiagramm und Kollaborationsdiagramm Beispiel: Gegeben sei folgendes Szenario als textuelle Beschreibung: Eine Touristin A übermittelt erst das Reiseziel und dann den Reisetermin an das Informationssystem Travel. Das System nennt ihr darauf den Preis der Reise. Sie ist einverstanden und gibt den Buchungsauftrag. Nach dessen Eingang erhält sie eine Bestätigung. Die Interaktionen dieses Szenarios können mit Interaktionsdiagrammen graphisch dargestellt werden: Sequenzdiagramm zeitliche Abfolge ist wichtig Kommunikationsdiagramm logische Abfolge ist wichtig Schestag Softwaretechnik (MN) Kapitel 5 / 17

5.2 Sequenzdiagramm und Kollaborationsdiagramm (2) Sequenzdiagramm (zeitliche Abfolge): A: Tourist Travel: System Reiseziel Reisetermin Reisepreis Buchungsauftrag Bestätigung Zeit Schestag Softwaretechnik (MN) Kapitel 5 / 18

5.2 Sequenzdiagramm und Kollaborationsdiagramm (3) Kollaborationsdiagramm (logischer Ablauf Informationsaustausch) : 1. Reiseziel 2. Reisetermin 4. Buchungsauftrag A: Tourist Travel: System 3. Reisepreis 5. Bestätigung zeitlicher Ablauf: 1. 5. Kollaborationsdiagramme werden im Rahmen dieser Vorlesung nicht weiter vertieft! Schestag Softwaretechnik (MN) Kapitel 5 / 19

5.2 Sequenzdiagramm die Komponenten (1) Das Sequenzdiagramm ist ein 2 dimensionales Diagramm, dessen vertikale Achse der Zeit und dessen horizontale Achse den beteiligten Objekten entspricht. myx : X Objektsymbol Objektsymbol Lebenslinie Lebenslinie Aktivitätsbalken Aktivitätsbalken Zeit Destruktorsymbol Destruktorsymbol Schestag Softwaretechnik (MN) Kapitel 5 / 20

5.2 Sequenzdiagramm die Komponenten (2) Der Nachrichtenaustausch zwischen Objekten (Kontrollfluss) wird durch gerichtete, horizontale Pfeile dargestellt, deren Bezeichner einem vorhandenen oder noch zu ergänzenden (!) Methodennamen entsprechen sollte. Wir unterscheiden die folgenden Kontrollflussvarianten: Synchroner Kontrollfluss: Der Sender der Nachricht wartet, bis die durch die Nachricht ausgelöste Teilinteraktion beendet ist. Im Allgemeinen entspricht dieser Nachrichtenaustausch in seiner Semantik einem Prozeduraufruf. Asynchroner Kontrollfluss: Die Nachricht wird als Signal betrachtet, und der Sender der Nachricht wartet nicht auf die Antwort des Empfängers. Rücksprunganweisungen werden durch gestrichtelte Pfeillinien dargestellt. Eine Objekterzeugung wird wie folgt dargestellt: myx : X Zeit new( ) Schestag Softwaretechnik (MN) Kapitel 5 / 21

5.2 Sequenzdiagramm die Komponenten (3) Nachrichten können durch Überwachungsbedingungen (guard condition) beschriftet sein. Hierdurch können Fallunterscheidungen zum Ausdruck gebracht werden. [Bedingung], [ Bedingung] oder auch [else] Bei Verzweigungen ist die Nennung der guard condition obligatorisch. Das gleichzeitige Versenden von Nachrichten wird genau so dargestellt werden, allerdings wird dann auf eine Nennung von guard conditions verzichtet: [B] m1() [ B] m2() m1() m2() Alternative Lebenslinien können dann verwendet werden, wenn ein und dem selben Objekt in Folge einer Verzweigung unterschiedliche Nachrichten übermittelt werden. Zeit [B] m1() [ B] m2() Schestag Softwaretechnik (MN) Kapitel 5 / 22

5.2 Sequenzdiagramm die Komponenten (4) Ein rekursiver Methodenaufruf wird wie folgt dargestellt: Käufer:Person [Geld > 0] einkaufen( ) x : X Eine Nachrichtensequenz, die wiederholt werden soll (Schleife) wird durch ein umschreibendes Rechteck zu einem Block zusammengefasst, der im unteren Bereich Angaben zur Schleifensteuerung enthält: Zeit für alle X-Objekte x Schestag Softwaretechnik (MN) Kapitel 5 / 23

5.2 Sequenzdiagramm Regeln zur Anwendung Sequenzdiagramme sollten primär für die Abbildung einzelner Szenarien verwendet werden. Ablaufvarianten sind häufig übersichtlicher durch mehrere einander ergänzende Sequenzdiagramme zu modellieren. Verzweigungen und Schleifen sollten sparsam eingesetzt werden man benötigt sie nur dann, wenn das Diagramm andernfalls nicht mehr eindeutig interpretierbar ist. Die Nachrichten, die zwischen den beteiligten Objekten eines Sequenzdiagramms ausgetauscht werden, sollten durch Methoden der entsprechenden Klassen abbildbar sein. Ist dies nicht der Fall, so ist dies ein Indikator dafür, dass in der zugehörigen Klasse eine geeignete Methode noch hinzugefügt werden muss. CASE Tools unterstützen die Überprüfung der Vollständigkeit von Methoden dadurch, dass sie für die Bezeichner der Nachrichten die vorhandenen Methoden des Ziel- Objektes(!) zur Verfügung stellen bzw. diese automatisch durch noch fehlende Methoden mit dem entsprechenden Nachrichtenbezeichner auf Wunsch ergänzt. Schestag Softwaretechnik (MN) Kapitel 5 / 24

5.2 Sequenzdiagramm Vollständigkeit der Methoden UseCase3 «extend» Actor 1 Use Case 1 Use Case 4 «include» Actor 2 Use Case 2 Use Case- Diagramm Subjekt1 1 * Kennung Use Case: Titel Autor, Datum, Version Zweck (kurze Beschreibung) Kennung Use Case: Titel Kontext: NameSystem NameSubsystem NameProzeß Autor, Datum, Version beteiligte Aktoren Zweck (kurze Beschreibung) auslösende Ereignisse Kennung Use Case: Vorbedingungen, Titel die erfüllt sein müssen Kontext: NameSystem relevante NameSubsystem Eingangs- und Ausgangsdaten NameProzeßund -signale Autor, Datum, Version beteiligte Aktoren (Verweis auf die Schnittstellen-Spezifikation) Zweck (kurze Beschreibung) auslösende Ereignisse kritische Ausnahmesituationen bzw. Fehlerfälle Vorbedingungen, die erfüllt sein müssen Kontext: NameSystem relevante NameSubsystem Eingangs- und Ausgangsdaten NameProzeß und -signale wesentliche Ergebnisse beteiligte Aktoren (Verweis auf die Schnittstellen-Spezifikation) auslösende Ereignisse kritische Ausnahmesituationen Nachbedingungen bzw. Fehlerfälle Vorbedingungen, die erfüllt sein nachgeordnete müssen Nutzungsfälle relevante Eingangs- und Ausgangsdaten Verweis auf und zugehörige -signale Szenarios wesentliche Ergebnisse (Verweis auf die Schnittstellen-Spezifikation) relevante funktionale Anforderungen kritische Ausnahmesituationen Nachbedingungen bzw. Fehlerfälle nachgeordnete Nutzungsfälle Verweis auf zugehörige Szenarios wesentliche Ergebnisse relevante funktionale Anforderungen Nachbedingungen nachgeordnete Nutzungsfälle Verweis auf zugehörige Szenarios... relevante funktionale Anforderungen Szenario / Szenarien pro Use Case Subjekt2 MyJdbc MyJdbc getconnection() DriverManager getconnection() MyJdbc DriverManager createstatement() getconnection() next() executequery() / executeupdate() getxxx() DriverManager createstatement() executequery() / executeupdate() con :Connection con createstatement() :Connection executequery() / executeupdate() next() close() getxxx() close() next() close() getxxx() close() con :Connection stmt :Statement X X stmt :Statement stmt :Statement [falls executequery()] [falls executequery()] [falls executequery()] rset :ResultSet X rset :ResultSet X close() close()... X rset :ResultSet X Sequenzdiagramm pro Szenario Vollständigkeit der Methoden? KonkretesSubjekt1 1 * KonkretesSubjekt2 Schestag Softwaretechnik (MN) Kapitel 5 / 25

5.3 Zustandsdiagramm (1) Die Aufgabe von Zustandsdiagrammen (State charts): Bei technischen Systemen ist es oft nützlich, wenn man die verschiedenen Zustände und die zulässigen Zustandsübergänge geeignet modellieren könnte. Erweiterung des Konzeptes der endlichen Automaten führt zum Zustandsautomat: Zustände und Zustandsübergänge Schachtelung in Super- und Subzustände Parallele Komposition von Zuständen Variablen, Kommunikation per Broadcast beispielsweise für technische Systeme viel verwendet Beispiele für Tools: StateMate, Rhapsody Schestag Softwaretechnik (MN) Kapitel 5 / 26

5.3 Zustandsdiagramm (2) Mit Hilfe von Zustandsdiagrammen werden von Objektzuständen Modellierung über den gesamten Lifecycle eines Objektes modelliert: Der jeweilige Zustand beschreibt die Eigenschaften des Objekts zu einem bestimmten Zeitpunkt. Attributwerte Beziehungen zu anderen Objekten Der Zustandsname soll daher kein Verb sein, sondern ein Adjektiv / Partizip. Ein Ereignis tritt zu einem bestimmten Zeitpunkt auf, es hat keine Dauer. neuer Attributwert Signal (z.b. Abschluss einer Operation) Ein Ereignis kann häufig als Nachricht angesehen werden Name kann entfallen, da Aktion (=Operation) gleichnamig Schestag Softwaretechnik (MN) Kapitel 5 / 27

5.3 Zustandsdiagramm die Komponenten Zustands (übergangs) diagramme in der UML: Quelle: Rational Corp. Schestag Softwaretechnik (MN) Kapitel 5 / 28

5.3 Zustandsdiagramm Beispiel 1 Die Zustände im Lebenszyklus eines Buch Objektes in einem Bibliothekssystem: Buch defekt / entfer nen() präsent neues Buch liegt vor / er fassen() after (Abholfrist vorbei) Ausleihwunsch / ausleihen() Leser gibt Buch z urück / zurückgeben() Bu ch erfassen() auslei hen() zurückgeben() vorbestellen() ent fer nen() Buch v erloren / entfer nen() Ausleihwunsch / vorbestellen() ausgeliehen Leser holt Buch ab / ausleihen() zur Abholung bereit vorbestellt Leser gibt Buch z ur ück / zurückgeben() Schestag Softwaretechnik (MN) Kapitel 5 / 29

5.3 Zustandsdiagramm Beispiel 2 Die Zustände im Lebenszyklus eines Tank Objektes: neues Soll / Soll einstellen leer Tank #maxfuellhoehe -sollfuellhoehe - istfuellhoehe +fuellen() +leeren() #solleinstellen() füllend do: füllen voll leerend do: leeren starte füllen ist voll starte leeren ist leer Schestag Softwaretechnik (MN) Kapitel 5 / 30

5.3 Zustandsdiagramm Beispiel 3 Der Zustandsautomat einer Digitaluhr sei durch folgende Daten in Tabellenform beschrieben: Zustandstabelle mit 4 Spalten: Aktueller Zustand Ereignis (Eingabe) Aktion (Ausgabe) Folgezustand Zustand Ereignis Aktion Folgezustand Normalzeit Knopf 1 Stunden blinken Stunden stellen Stunden stellen Knopf 1 Minuten blinken Minuten stellen Stunden stellen Knopf 2 Stunden erhöhen Stunden stellen Minuten stellen Knopf 1 Sekunden blinken Sekunden stellen Minuten stellen Knopf 2 Minuten erhöhen Minuten stellen Sekunden stellen Knopf 1 Normalanzeige Normalzeit Sekunden stellen Knopf 2 Sekunden stellen Sekunden stellen............ Schestag Softwaretechnik (MN) Kapitel 5 / 31

5.3 Zustandsdiagramm Beispiel 3 (Fortsetzung) Das Zustandsdiagramm zur Zustandstabelle einer Digitaluhr : Start Knopf 1 gedrückt / Stunden blinken Normalzeit Knopf 1 gedrückt / Normalanzeige Stunden stellen Sekunden stellen Knopf 2 gedrückt / Stunden erhöhen Knopf 1 gedrückt / Minuten blinken Minuten stellen Knopf 1 gedrückt / Sekunden blinken Knopf 2 gedrückt / Minuten erhöhen Knopf 2 gedrückt / Sekunden stellen Schestag Softwaretechnik (MN) Kapitel 5 / 32

5.3 Zustandsdiagramm Anwendung Zustandsautomaten und Zustandsdiagramme......eignen sich gut dazu, das Verhalten von Elementen, z.b. von Objekten oder Interaktionen, zu beschreiben,...werden am häufigsten dazu eingesetzt, den Lebenszyklus eines Objektes zu modellieren. Alle Objekte einer Klasse besitzen denselben Zustandsautomaten. Jedes Objekt kann einen individuellen Zustand einnehmen. Im Allgemeinen ist es nicht notwendig, für jede Klasse ein Zustandsdiagramm zu erstellen. Schestag Softwaretechnik (MN) Kapitel 5 / 33

5.3 Dynamische Diagramme der UML Zusammenfassung UseCase3 «extend» Actor 1 Use Case 1 Use Case 4 «include» Actor 2 Use Case 2 Use Case Diagramm Kennung Use Case: Titel Autor, Datum, Version Zweck (kurze Beschreibung) Kennung Use Case: Titel Kontext: NameSystem NameSubsystem NameProzeß Autor, Datum, Version beteiligte Aktoren Zweck (kurze Beschreibung) auslösende Ereignisse Kennung Use Case: Vorbedingungen, Titel die erfüllt sein müssen Kontext: NameSystem relevante NameSubsystem Eingangs- und Ausgangsdaten NameProzeßund -signale Autor, Datum, Version beteiligte Aktoren (Verweis auf die Schnittstellen-Spezifikation) Zweck (kurze Beschreibung) auslösende Ereignisse kritische Ausnahmesituationen bzw. Fehlerfälle Vorbedingungen, die erfüllt sein müssen Kontext: NameSystem relevante NameSubsystem Eingangs- und Ausgangsdaten NameProzeß und -signale wesentliche Ergebnisse beteiligte Aktoren (Verweis auf die Schnittstellen-Spezifikation) auslösende Ereignisse kritische Ausnahmesituationen Nachbedingungen bzw. Fehlerfälle Vorbedingungen, die erfüllt sein nachgeordnete müssen Nutzungsfälle relevante Eingangs- und Ausgangsdaten Verweis auf und zugehörige -signale Szenarios wesentliche Ergebnisse (Verweis auf die Schnittstellen-Spezifikation) relevante funktionale Anforderungen kritische Ausnahmesituationen Nachbedingungen bzw. Fehlerfälle nachgeordnete Nutzungsfälle Verweis auf zugehörige Szenarios wesentliche Ergebnisse relevante funktionale Anforderungen Nachbedingungen nachgeordnete Nutzungsfälle Verweis auf zugehörige Szenarios... relevante funktionale Anforderungen Szenario / Szenarien pro Use Case MyJdbc MyJdbc getconnection() DriverManager getconnection() MyJdbc DriverManager createstatement() getconnection() next() executequery() / executeupdate() getxxx() DriverManager createstatement() executequery() / executeupdate() con :Connection con createstatement() :Connection executequery() / executeupdate() next() close() getxxx() close() next() close() getxxx() close() con :Connection stmt :Statement X X stmt :Statement stmt :Statement [falls executequery()] [falls executequery()] [falls executequery()] rset :ResultSet X rset :ResultSet X close() close()... X rset :ResultSet X Sequenzdiagramm pro Szenario Vollständigkeit der Methoden? Subjekt1 1 * Subjekt2 Normalzeit Drücken Knopf 1 Drücken Knopf 1 Stunden stellen do/ Stunden blinken KonkretesSubjekt1 1 * KonkretesSubjekt2 Drücken Knopf 2 / Stunde erhöhen Zustandsdiagramm für geeignete Businessobjekte Vollständigkeit der Attribute und Methoden? Schestag Softwaretechnik (MN) Kapitel 5 / 34