Vorlesung "Software-Engineering"

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

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

UML 2.0 Das umfassende Handbuch

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

Das umfassende Handbuch

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

UML 2 glasklar Praxiswissen für die UML-Modellierung

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

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

NACHRICHTENTECHNISCHER SYSTEME

OOA-Dynamische Konzepte

Objektorientierte Analyse (OOA) Verhaltensdiagramme der UML

UML 2 glasklar. Mario Jeckle, Jürgen Hahn, Stefan Queins, Barbara Zengler, Chris Rupp. Praxiswissen für die UML-Modellierung und -Zertifizierung

UML (Unified Modelling Language) von Christian Bartl

Diagrammtypen der UML 2.0

Unified Modeling Language (UML )

UML 2 glasklar. Praxiswissen für die UML-Modellierung. Bearbeitet von Chris Rupp, Stefan Queins, die SOPHISTen

UML Grundlagen, Zustandsautomat. Zustandsautomaten bilden eine Erweiterung der endlichen Automaten

Unified Modeling Language 2

Diagrammtypen der UML 2.0

Unified Modeling Language

Software-Engineering

State diagrams (Zustandsautomaten)

Software-Engineering

Vorlesung Programmieren

Objektorientierte Analyse (OOA) Übersicht

Bei Sitzungen im Team oder mit dem Kunden erleichtert eine grafische Darstellung des Software-Systems die Kommunikation.

Objektorientiertes Design

Software Engineering in der Praxis

Aktivitätsdiagramm (Activity Diagram)

INSPIRE - Modellierung

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

Software Engineering in der Praxis

ANWENDUNGSFALLDIAGRAMM:

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

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

2. Strukturdiagramme

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

Techniken der Projektentwicklungen

Formale Modellierung Vorlesung vom : Beyond JML

Unternehmensmodellierung

Verhaltensmodellierung mit UML2 Übersicht

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

Verhaltensdiagramme. 3.5 Sequenzdiagramm 3.6 Kommunikationsdiagramm. Prof. Mario Jeckle

Universität Karlsruhe (TH)

Objektorientierte Analyse (OOA) Inhaltsübersicht

Chris Rupp, Stefan Queins, die SOPHISTen. UML 2 glasklar. Praxiswissen für die UML-Modellierung ISBN:

UML (UNIFIED MODELING LANGUAGE)

Software Engineering in der Praxis

Von UML 1.x nach UML 2.0

Kapitel Weitere UML-Diagrammtypen

Abbildungsverweise PlantUML Code. Version 1.0 Vanessa Petrausch

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

Vorlesung Programmieren

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

Vorlesung Software Engineering I

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

Dipl.-Inform. Lars Ebrecht

Objektorientierte Softwareentwicklung

Softwaretechnik SS Vorlesungseinheit

Unified Modeling Language (UML)

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

Objektorientierte Modellierung

Die Unified Modeling Language UML

Analyse und Design mit U ML 2.3

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

Einführung: Zustandsdiagramme Stand:

Tabellarische Kurzreferenz der UML-Elemente

Vorlesung Informatik II

UML fürs Pflichtenheft

Objektorientierte Softwareentwicklung

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

Inhaltsverzeichnis. Teil I Einführung 13. Teil II Struktur 41. Vorwort 11

2. Übung zu Software Engineering

Testen mit Use Cases. Chris Rupp Dr. Stefan Queins

Prof. Dr.-Ing. Dagmar Meyer Software Engineering 2 ANFORDERUNGSANALYSE UND -MODELLIERUNG

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

Software Engineering in der Praxis Praktische Übungen

Requirements Engineering I

Inhaltsverzeichnis.

Übung Einführung in die Softwaretechnik

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

Abbildungsverweise PlantUML Code. Version 1.0 Vanessa Petrausch

Softwaretechnik SS 2006

Softwaretechnik 2015/2016

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting

Unified Modelling Language

Übungsaufgaben UML Zertifizierung Fundamental-Level

Objektorientierte Modellierung mit UML

UML -Klassendiagramme

Übungen Softwaretechnik I

Software- und Systementwicklung

3. Tutorium zu Softwaretechnik I

Transkript:

Vorlesung "Software-Engineering" Prof. Ralf Möller, TUHH, Arbeitsbereich STS Übung: Miguel Garcia Heute: Spezifikation mit UML Verhaltensdiagramme 1

Objektdiagramm Aufgabe: Darstellung einer (inhärent statischen) Momentaufnahme des Systems zur Laufzeit Aussage: Zeigt Objekte, Werte und Beziehungsausprägungen Aufgabe im Projekt: Darstellung von Beispielausprägungen der in den anderen Strukturdiagrammen modellierten Zusammenhänge Änderungen durch UML 2: Insgesamt: Marginalien! Im Detail... Offizieller Name in Instanzdiagramm geändert Stereotypen copy und become entfernt Multiobjekte existieren nicht mehr 42

Objektdiagramm objektname : Klassenname zitrone : Zutat : Zutat zitrone : Zutat verfeinert tequilasunrise : Cocktail cocktailzutat : Zutat zutatenname: String Zitrone name : String = Zitrone 43

Paketdiagramm Aufgabe: Darstellung der logischen Organisation von Modellelementen und deren Abhängigkeiten Aussage: Übersichtliche logische Aufbaustruktur des Systems Aufgabe im Projekt: Gliederung der Strukturelemente und Dokumentation des Zusammenhangs zwischen den einzelnen Gliederungseinheiten Änderungen durch UML 2: Insgesamt: keine Änderungen! Jedoch: Der Importmechanismus (insbesondere Behandlung und Verschmelzung von Namensräumen) prominenter dokumentiert. 44

P1 Paketdiagramm P2 A B P3 «access» «import» P4 «import» access: privater Paketimport (d.h. importierte Pakete sind im importierenden Paket private) import: öffentlicher Paketimport (d.h. importierte Pakete sind auch nach außen sichtbar) 45

Paketdiagramm P2 P3 A A P5 B P2::A P3::A «merge» «merge» A P2::B P4::B P4::C P1 P4 B C B C «merge» «merge» P5 access: privater Paketimport (d.h. importierte Pakete sind im importierenden Paket private) import: öffentlicher Paketimport (d.h. importierte Pakete sind auch nach außen sichtbar) merge: Erweiterung von import M. Jeckle: UML Redefiniert 2.0. Modellierung 2004, importierte Marburg, 2004-03-24 Classifier im aufnehmenden Paket 46

Paketdiagramm Mathematik Real - genauigkeit + quadratwurzelziehen() «merge» Mathematik erweitert Real - doppeltegenauigkeit + cosinus() 47

Die Verhaltensdiagramme Diagramme der UML 2 Strukturdiagramme Verhaltensdiagramme Klassendiagramm Komponentendiagramm Objektdiagramm Aktivitätsdiagramm Use-Case- Diagramm Zustandsautomat Kompositionsstrukturdiagramm Interaktionsdiagramme Verteilungsdiagramm Paketdiagramm Sequenzdiagramm Interaktionsübersichtsdiagramm Kommunikationsdiagramm Zeitverlaufsdiagramm 63

Die Verhaltensdiagramme Use-Case Diagramm Eine abstrakte funktionale Sicht auf das Gesamtsystem aus Sicht des späteren Anwenders Aktivitätsdiagramm Darstellung eines dynamischen Ablaufs Zustandsautomat Beschreibt die internen Zustände eines Classifiers Sequenzdiagramm Beschreibt den Intra- und Intersystem-Datenaustausch Kommunikationsdiagramm Statische Sicht auf dynamische Interaktion Timing-Diagramm Zeitabhängige Zustandsdarstellung Interaktionsübersichtsdiagramm Darstellung des Zusammenspiels verschiedener Interaktionen 64

Aufgabe: Use-Case-Diagramm Darstellung einer abstrakten funktionalen Sicht auf das Gesamtsystem aus Sicht des späteren Anwenders Aussage: Technikfern spezifizierter Leistungsumfang des Systems Aufgabe im Projekt: Dokumentation erster früher Analyseergebnisse Änderungen durch UML 2: Akteur muß zwingend benannt sein Vorbedingungen und Erweiterungspunkte werden als Notiz notiert Classifier können Use Cases besitzen Classifier können Use Cases realisieren 69

Use-Case-Diagramm Use-Case Systemname Systemgrenze Akteur Verkauf Verkaufsposten eingeben Kunde nicht gefunden «extend» Extend- Beziehung Verkäufer extension points: fehlender Kunde Assoziation Kreditwürdigkeit prüfen «include» Kundendaten einsehen Include- Beziehung System (Betrachtungsgegenstand): Umgrenzt die Einheit, welche die Use-Cases realisiert Darstellung ist nicht zwingend notwendig Assoziationen: beschreiben die Beziehungen zwischen Akteuren und Use-Cases extend-beziehung: Verhalten eines Use-Case kann durch einen anderen erweitert werden include-beziehung: Verhalten eines Use-Case ist vollständig in einem M. Jeckle: UML anderen 2.0. Modellierung enthalten 2004, Marburg, 2004-03-24 70

Use-Case-Diagramm Bürger Finanzamt Steuern hinterziehen - Einkommen - Vermögen + Belege fälschen() + Privat-/Geschäftskosten vermischen() Steuern zahlen Lohnsteuerkarte beantragen - Familienstand - Steuerklasse + Formular ausfüllen() + Karte ausdrucken() Auskunft über Finanzen geben - Einkommen - Vermögen + Belege zeigen() + Einkommensbeleg vorlegen() 71

Aktivitätsdiagramm Aufgabe: Darstellung eines dynamischen Ablaufs Aussage: Realisierung eines bestimmten Verhaltens durch das System Aufgabe im Projekt: Geschäftsprozeßmodellierung Beschreibung von Use Cases Dokumentation der Implementierung einer Operation Änderungen durch UML 2: Aktivitäten unabhängig von Zustandsautomaten Petri-Netz-ähnliche Semantik Diagrammtyp wird als Aktivität bezeichnet Vor- und Nachbedingungen Notation der Aktion und des Zustandes vereinheitlicht Multiple Startknoten Verschiedene End(-knoten)-Semantiken Neue Notationselemente... 72

Aktivitätsdiagramm Aktion 1 Aktion 2 Tokenkonzept aus den Petri-Netzen übernommen Tokenfluss steuert Ablauf einer Aktivität Ermöglicht die präzise Beschreibung des Verhaltens nur gedankliches Konstrukt (keine explizite Modellierung) 73

Aktivitätsdiagramm Aktivität Aktionsname Objekttyp Aktion Objektknoten Eingangsparameter Strukturierte Knoten Ausgangsparameter Kontrollelemente Name Startknoten Verzweigungsknoten Parallelisierungsknoten Kante Endknoten Verbindungsknoten Synchronisationsknoten 74

Aktivitätsdiagramm Aktivität Aktion Cocktail mixen Zutaten Zutaten mischen in Gläser füllen Cocktail Eis zerkleinern Eingangsparameter Ausgangsparameter Diagrammtyp heißt Aktivität Eine Aktivität kann Ein- und Ausgangsparameter besitzen Aktionen sind Verhaltensaufrufe Summe der Aktionen realisiert die Aktivität 75

Aktivitätsdiagramm möglicher Ablauf Aktivität Aktivitätsname Einladung bekommen Einladung Datum prüfen Objektknoten Aktion Kante [keine Zeit] [Zeit vorhanden] Lust auf Feier prüfen Bedingung [keine Lust] Kontrollknoten [Lust vorhanden] Feier absagen Zur Feier zusagen Kontrollelemente steuern den Ablauf der Aktivität starten und beenden Abläufe ermöglichen Nebenläufigkeit dienen der Synchronisation lassen alternative Abläufe zu 76

Aktivitätsdiagramm Aktion Exception- Typ Exception- Handler Unterbrechungsbereich Unterbrechungskante Unterbrechungsbereich: Beinhaltet eine Menge von Aktionen Kann über Unterbrechungskante verlassen werden. Alle Aktionen im Bereich werden dann beendet. Exception-Handler: Ermöglicht die Beschreibung von Ausnahmen Exception-Handler substituiert eine Aktion 77

Aktivitätsdiagramm Schlüsselwort Strukturierte Knoten: Umfassen Ausschnitt einer Aktivität Ausführung startet mit dem Anliegen aller Token der Eingangsknoten Objektknoten als Ein- und Ausgangsparameter möglich 78

Aktivitätsdiagramm Speise if Speise bewerten schmackhaft? then Gute Kritik erstellen Restaurant Bewertung else Schlechte Kritik erstellen Strukturierte Knoten zur Visualisierung komplexer Entscheidungen if: prüfen der Bedingung then: auszuführende Elemente else: möglicher Ablauf, wenn kein if-bereich zutrifft else if: wie if-bereich nur mit vorgegebener Prüfreihenfolge 79

Aktivitätsdiagramm iterative Bierkiste besorgen Flasche öffnen Flasche leeren leere Bierkiste zurückgeben Mengenverarbeitung Einzelne Betrachtung der Elemente welche in der restlichen Aktivität nur als Sammlung betrachtet werden z.b. Listen, Vektoren, hashtable... Elemente werden als Objektknoten (Pin) übergeben 80

Aktivitätsdiagramm Fastfood-Restaurant besuchen Person Kunde Bedienung Parkplatz PKW ausparken PKW parken Restaurant Ort Menü verzehren Menü bestellen Menü zusammenstellen Kassieren Aktivitätsbereiche Teilung des Diagramms logisch gruppierte Partitionen Hierarchische und mehrdimensionale Partitionierung möglich 81

Aufgabe: Zustandsdiagramm Beschreibt die internen Zustände eines Classifiers Aussage: Zugelassene Status eines Classifiers durch Betrachtung als Zustandsautomat Aufgabe im Projekt: Zustandbeschreibung eines Classifiers Detaillierung eines Use Cases Verhaltensbeschreibung einer extern angebotenen Schnittstelle Änderungen durch UML 2: Protokollzustandsautomat neu eingeführt (Spezialisierung des allgemeinen Zustandsdiagramms) Explizierung von Ein- und Austrittspunkten sowie Terminatoren Vererbungssemantik (Overriding und Extension) geregelt 82

Zustandsdiagramm sm Zustandsautomatenname sm Zustandsautomatenname sm Zustandsautomatenname sm Zustandsautomatenname {protocol} {protocol} Unterscheidung: Verhaltenszustandsautomaten (Zustandsdiagramm) Protokollzustandsautomaten Ein Verhaltenszustandsautomat bildet das diskrete Verhalten einer Instanz eines Classifiers ab. Ein Protokollzustandsautomat beschreibt die erlaubte Aufrufsabfolge der Instanz eines Classifiers. 83

Zustandsdiagramm sm Zustandsautomat Zustandsname Zustandsname Unterzustandsautomatenzustand : sm Unterzustandsautomat einfacher Zustand Unterzustandsautomatenzustand zusammengesetzter Zustand Trigger [Guard] / Aktivität Transition in Verhaltenszustandsautomaten Endzustand [Vorbedingung] Operation / [Nachbedingung] Transition in Protokollzustandsautomaten Pseudozustände Startzustand Entscheidung Kreuzung Austrittspunkt Eintrittspunkt Gabelung Vereinigung H flache Historie H* tiefe Historie Terminator 84

Zustandsdiagramm sm Ampel rot(an) / [aus] / rot [reset] schalte(rot) / schalte(rot) / gelb gelb(an) / schalte(gelb) / rot-gelb schalte(grün) / grün 85

Zustandsdiagramm Zustandsname entry / Aktivität exit / Aktivität do / Aktivität Trigger [Guard] / Aktivität Trigger [Guard] / defer Zustandsname Ein Zustand beschreibt eine bestimmte Ausprägung: eine statische Situation auf ein externes Ereignis wartend Zustände können Aktivitäten enthalten: entry, do und exit activity verzögerte Ereignisse Eine Transition ist der Übergang von einem Quell- in einen Zielzustand 86

Zustandsdiagramm closed Fertigwischen entry / in Parkposition bringen [Wischer in Parkposition] Ausgangsstellung [passiv offen] TCB erstellen [geschlossen] TCB löschen listen Stufe 1 do / langsam drehen PKW neu angemeldet PKW gebraucht do/ benutzen Stufe2 gewählt / schalte 2 Stufe1 gewählt / schalte 1 aktiv after(60 seconds) standby Stufe 2 do / schnell drehen Verschiedene Zustandsübergänge 87

Zustandsdiagramm entry / Aktivität exit / Aktivität do / Aktivität Trigger / Aktivität Trigger / defer Zustandsname A B Zusammengesetzter Zustand: Setzt sich aus Zuständen, Pseudozuständen und Transitionen zusammen Steht stellvertretend für einen vollständigen Zustandsautomaten Kann Ein- und Austrittspunkte besitzen 88

Zustandsdiagramm Startzustand: Verweist auf den ersten Zustand Einer pro Region Startzustand Entscheidung: Ausgehende Transition wird während der Ausführung der Transition bestimmt Entscheidung Kreuzung: Ausgehende Transition ist vor der Ausführung der Transition bekannt Kreuzung Ein- und Austrittspunkt: Zum Betreten und Verlassen von Unterzustandsautomaten Austrittspunkt Eintrittspunkt 89

Zustandsdiagramm Gabelung und Vereinigung: Teilen eine Transition auf mehrere parallele Zustände auf bzw. fügen mehrere Transitionen zu einer zusammen Flache Historie: Speichert den zuletzt aktiven Unterzustand eines komplexen Zustands Gabelung Vereinigung H flache Historie Tiefe Historie: Speichert den zuletzt aktiven Unterzustand eines in einem komplexen Zustand enthaltenen Zustands H* tiefe Historie Terminator: Bei Erreichen endet die Lebensdauer der Instanz des beschriebenen Classifiers Terminator 90

Zustandsdiagramm eingeschaltet Betriebsmodi Autoradio H Zustand3 manuell umgeschaltet [keine Kassette drin] probiert Prüfung Trinkbarkeit Trinkbarkeit geprüft manuell umgeschaltet [Kassette drin] Kassette eingelegt [Kassette ausgeworfen] umschalten do / Trinkbarkeit prüfen getrunken [ist ok = ja] trinken Zustand2 ausgeschaltet manuell umschalten [CD-Kassette drin] manuell umgeschaltet [ist ok = nein] wegschütten Zustand1 A do / x = 1 A do / x = 1 Trigger / x = -1*x Trigger / x = -1*x [x<0] B C [x>=0] [<0] B x C [>=0] 91

Zustandsdiagramm sm Geldautomat sm Geldautomat defekt defekt defekt defekt {final} {final} Karte prüfen Karte {final} prüfen {final} Karte angenommen Karte angenommen Betrag wählen Betrag wählen Betrag gewählt Betrag gewählt sm Geldautomat {extended} sm Geldautomat {extended} Betrag einlesen {extended} Betrag einlesen {extended} Betrag wählen Betrag wählen anderer Betrag anderer gewählt Betrag gewählt Betrag eingeben ok Betrag eingeben ok Transaktion bestätigen Transaktion {final} bestätigen {final} Karte ausgegeben Karte {final} ausgegeben {final} Transaktion nicht Transaktion bestätigen nicht bestätigen Transaktion bestätigen Transaktion {final} bestätigen {final} Spezialisierung von Zustandsautomaten durch Erweiterung um Regionen, Zustände und Transitionen Erweiterung von Regionen und Zuständen Erweiterung von Transitionen 92

sm Port TCP active client {protocol} Zustandsdiagramm sm Port TCP passive client {protocol} closed closed [geschlossen] TCB löschen [aktiv offen] TCB erstellen und syn senden [geschlossen] TCB löschen listen [passiv offen] TCB erstellen Syn sent established [syn + ack erhalten] ack senden [rst erhalten] syn rcvd [syn erhalten] syn + ack senden [ack erhalten] [geschlossen] fin senden [timeout] established [fin erhalten] ack senden fin wait 1 passiv geschlossen fin wait 2 [ack erhalten] [fin +ack erhalten] ack senden time wait [ack erhalten] fin senden aktiv geschlossen Protokollzustandsautomat close wait last ack [geschlossen] ack senden [ack erhalten] 93

Aufgabe: Sequenzdiagramm Beschreibt den Intra- und Intersystem-Datenaustausch Aussage: Wie spielen die einzelnen Systeme oder komponenten zusammen Aufgabe im Projekt: Darstellung der dynamischen Aurufbeziehungen Änderungen durch UML 2: Erweiterung der möglichen Kommunikationspartner Referenzierung und Hierarchisierung möglich Kontrollflüsse ausdrückbar Neue Elemente Interationsrahmen Kombinierte Fragmente Sprungmarken und Coregionen Interaktionsreferenzen Gates für Nachrichten 94

Sequenzdiagramm Kommunikationspartner sd Interaktion K1 K2 K3 Nachricht1(Argument) Lebenslinie Zeitlicher Verlauf Ok=Nachricht1 Nachricht2 Aktionssequenz Nachricht 95

Sequenzdiagramm Lebenslinie Zustandsbedingung sd Bild aufhaengen :Person :Hammer :Nagel :Daumen :Bild [gerade] loop Abbruchbedingung [Nagel haelt] alt schlagen getroffen = schlagen treffen Kombiniertes Fragment treffen Interaktions -verweis ref Daumen verbinden aufhaengen Nachricht Aktionssequenz 96

Sequenzdiagramm Synchrone Nachricht A B C N1 N3 N2 N4 Found Nachricht Antwortnachricht Asynchrone Nachricht Lost Nachricht 97

Sequenzdiagramm sd Nahrung aufnehmen :Partygast :Buffet :Snacks alt [Partygast.Hungergefühl>normal] pluendern [Partygast.Hungergefühl== normal] aufessen [else] weiterfeiern alt: Bedingungsgesteuerte Alternativen (min. zwei) ignore: Gezielte Unterspezifikation (d.h. Realitätsausschnitt fehlt) consider: Betonung der Bedeutung opt: Optionale Ausführung loop: Zählschleife neg: Nicht zugelassener Ablauf assert: Zusicherung, die gelten muß par: Nebenläufigkeit oder Parallelität (wird nicht unterschieden) critical: Ununterbrechbarer kritischer Abschnitt 98

Sequenzdiagramm sd Tankstopp :Person :Auto :Kasse tanken(benzin) Scheiben putzen Öl kontollieren bezahlen Coregion: Alternativdarstellung zum parallel kombinierten Fragment Nur zugelassen wenn genau eine Lebenslinie betroffen ist Ablaufreihenfolge innerhalb der Coregion nicht festgelegt 99

Sequenzdiagramm ref C sd X Y Z ref C ref A ref B sd A X Y Z sd B Y Z Referenziert (ref) auf eine beliebige Interaktion Wiederverwendung in mehreren Diagrammen möglich Zooming Gedanke Auch für Lebenslinien möglich 100

Aufgabe: Kommunikationsdiagramm Statische Sicht auf dynamische Interaktion Aussage: Stellt Teile einer komplexen Struktur und ihre Beziehungen in der Zusammenschau dar Aufgabe im Projekt: Dokumentation aller ausgetauschten Nachrichten Änderungen durch UML 2: Diagrammtyp neu eingeführt (entspricht inhaltlich und konzeptionell dem Kollaborationsdiagramm) Untermenge des Sequenzdiagramms Keine Verweise Keine kombinierten Fragmente Keine Berücksichtigung der Ereignisreihenfolge 101

Kommunikationsdiagramm Name der Interaktion Lebenslinie cd Gassi gehen Nachrichtenname 1:Gassi gehen Hundehalter Hund Sequenzbezeichner 3:entfernen 2.1:schimpfen 1.1:machen Richtung der Nachricht Passant 2:reintreten Häufchen Notationselemente: Interaktion Lebenslinien Nachrichten Sequenzbezeichner 102

Kommunikationsdiagramm cd Reparaturauftrag 1a:beauftragen 1a.1:Auftrag Besitzer Auftragsannahme Mechaniker 1b:ausleihen 2:fahren 1a.1.1.1:erledigt 1a.1.1a:reparieren Mietwagen Auto 1a.1.1b* [alle Ersatzteile vorhanden]: Ersatzteil beschaffen Lager 1a.1.1c:[Ersatzteil nicht vorhanden]: bestellen Ersatzteil Notation etwas unübersichtlich: Nebenläufigkeit dokumentiert durch Buchstaben im Sequenzbezeichner Definition von Schleifen mit einem Stern * Kennzeichnung von nebenläufigen Schleifen-durchläufen mit Doppelstrich 103

Aufgabe: Timing-Diagramm Zeitabhängige Zustandsdarstellung Aussage: Dokumentation des Zeitpunktes eines Zustandswechsels eines Kommunikationspartner Aufgabe im Projekt: Dokumentation des zeitlichen (System-)Verhaltens analog einer Schaltung Änderungen durch UML 2: Diagrammtyp neu eingeführt 104

Die im Überblick Diagrammtyp Klassendiagramm Paketdiagramm Diese zentrale Frage beantwortet das Diagramm Aus welchen Klassen besteht mein System und wie stehen diese untereinander in Beziehung? Wie kann ich mein Modell so schneiden, dass ich den Überblick bewahre? Stärken Beschreibt die statische Struktur des Systems. Enthält alle relevanten Strukturzusammenhänge/Datentypen. Brücke zu dynamischen Diagrammen. Normalerweise unverzichtbar. Logische Zusammenfassung von Modellelementen. Modellierung von Abhängigkeiten/ Inklusion möglich. Objektdiagramm Welche innere Struktur besitzt mein System zu einem bestimmten Zeitpunkt zur Laufzeit (Klassendiagrammschnappschuss)? Zeigt Objekte u. Attributbelegungen zu einem bestimmten Zeitpunkt. Verwendung beispielhaft zur Veranschaulichung Detailniveau wie im Klassendiagramm. Sehr gute Darstellung von Mengenverhältnissen. 111

Die im Überblick Diagrammtyp Diese zentrale Frage beantwortet das Diagramm Stärken Kompositionsstrukturdiagramm Komponentendiagramm Verteilungsdiagramm Wie sieht das Innenleben einer Klasse, einer Komponente, eines Systemteils aus? Wie werden meine Klassen zu wieder verwendbaren, verwaltbaren Komponenten zusammengefasst und wie stehen diese in Beziehung? Wie sieht das Einsatzumfeld (Hardware, Server, Datenbanken, ) des Systems aus? Wie werden die Komponenten zur Laufzeit wohin verteilt? Ideal für die Top-Down- Modellierung des Systems (Ganz- Teil-Hierarchien). Zeigt Teile eines Gesamtelements und deren Mengenverhältnisse. Präzise Modellierung der Teile- Beziehungen über spezielle Schnittstellen (Ports) möglich. Zeigt Organisation und Abhängigkeiten einzelner technischer Systemkomponenten. Modellierung angebotener und benötigter Schnittstellen möglich. Zeigt das Laufzeitumfeld des Systems mit den greifbaren Systemteilen. Darstellung von Softwareservern möglich. Hohes Abstraktionsniveau, kaum Notationselemente. 112

Die im Überblick Diagrammtyp Diese zentrale Frage beantwortet das Diagramm Stärken Use-Case-Diagramm Was leistet mein System für seine Umwelt (Nachbarsysteme, Stakeholder)? Außensicht auf das System. Geeignet zur Kontextabgrenzung. Hohes Abstraktionsniveau, einfache Notationsmittel. Aktivitätsdiagramm Zustandsautomat Sequenzdiagramm Wie läuft ein bestimmter flussorientierter Prozess oder ein Algorithmus ab? Welche Zustände kann ein Objekt, eine Schnittstelle, ein Use Case, bei welchen Ereignissen annehmen? Wer tauscht mit wem welche Informationen in welcher Reihenfolge aus? Sehr detaillierte Visualisierung von Abläufen mit Bedingungen, Schleifen, Verzweigungen. Parallelisierung und Synchronisation. Darstellung von Datenflüssen. Präzise Abbildung eines Zustandsmodells mit Zuständen, Ereignissen, Nebenläufigkeiten, Bedingungen, Ein- und Austrittsaktionen. Schachtelung möglich. Darstellung des Informationsaustauschs zwischen Kommunikationspartnern Sehr präzise Darstellung der zeitlichen Abfolge auch mit Nebenläufigkeiten. 113

Die im Überblick Diagrammtyp Diese zentrale Frage beantwortet das Diagramm Stärken Interaktionsübersichtsdiagramm Kommunikationsdiagramm Timingdiagramm Wer kommuniziert mit wem? Wer arbeitet im System zusammen? Wann befinden sich verschiedene Interaktionspartner in welchem Zustand? Wann läuft welche Interaktion ab? Stellt den Informationsaustausch zwischen Kommunikationspartnern dar. Überblick steht im Vordergrund (Details und zeitliche Abfolge weniger wichtig). Visualisiert das exakte zeitliche Verhalten von Klassen,Schnittstellen,.. Geeignet für die Detailbetrachtungen, bei denen es wichtig ist, dass ein Ereignis zum richtigen Zeitpunkt eintritt. Verbindet Interaktionsdiagramme (Sequenz-, Kommunikation- und Timingdiagramme) auf Top-Level- Ebene. Hohes Abstraktionsniveau. 114