Vorlesung Software Engineering I

41
Version 06/15/22 Software Engineering I VE 04: Einführung UML 1 Dozenten: Markus Rentschler Andreas Stuckert Vorlesung Software Engineering I Einführung UML Verhaltensidagramme Strukturdiagramme Design Pattern

description

Vorlesung Software Engineering I. Einführung UML Verhaltensidagramme Strukturdiagramme Design Pattern. Systemsichten und Modellierung. Beschreiben die feste Struktur des Systems, die sich während der Laufzeit nicht ändert. - PowerPoint PPT Presentation

Transcript of Vorlesung Software Engineering I

Page 1: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 1

Dozenten:Markus RentschlerAndreas Stuckert

Vorlesung

Software Engineering I

Einführung UML

Verhaltensidagramme

Strukturdiagramme

Design Pattern

Page 2: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 2

Dozenten:Markus RentschlerAndreas Stuckert

Systemsichten und Modellierung

Beschreiben das Verhalten und die

Veränderungen während der Laufzeit.

Beschreiben das Verhalten und die

Veränderungen während der Laufzeit.

Beschreiben die feste Struktur des Systems, die sich während der Laufzeit nicht ändert.

Beschreiben die feste Struktur des Systems, die sich während der Laufzeit nicht ändert.

Beschreiben die Programmfunktion

logisch und mathematisch

Beschreiben die Programmfunktion

logisch und mathematisch

Page 3: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 3

Dozenten:Markus RentschlerAndreas Stuckert

Unified Modelling Language (UML)

UML = Sprache zur Beschreibung von Softwaresystemen

3

• Grundgedanke: Einheitliche Modellierungs-Notation für alle Softwaresysteme- UML entstand aus mehreren bestehenden Notationen- UML ist eine Notation, keine Methode !- UML ist ein Werkzeug für Systemanalyse und Systemdesign- Unterstützung durch viele CASE-Tools

• Verschiedene Diagrammtypen, die sich gegenseitig ergänzen können und verschiedene Systemaspekte hervorheben

Page 4: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 4

Dozenten:Markus RentschlerAndreas Stuckert

Geschichte der UML

Page 5: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 5

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Diagrammarten

UML Diagrammübersicht siehe http://www.oose.de/uml

sieben Strukturdiagramme sieben Verhaltensdiagramme

Page 6: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 6

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Verhaltensdiagramme

• Anwendungsfalldiagramm (Use Case Diagram) (stellt Beziehungen zwischen Akteuren und Anwendungsfällen dar)

• Aktivitätsdiagramm (Activity Diagram)(beschreibt Abläufe, die aus einzelnen Aktivitäten bestehen)

• Zustandsdiagramm (Statechart Diagram)(beschreibt endliche Zustandsautomaten für ein Objekt oder System)

• Sequenzdiagramm (Sequence Diagram)(beschreibt den zeitlichen Ablauf von Nachrichten zwischen Objekten)

• Kommunikationsdiagramm (Communication Diagram, ehem. Kollaborationsdiagramm)(Interaktionsdiagramm, zeigt Beziehungen und Interaktionen zwischen Objekten)

• Zeitverlaufsdiagramm (Timing Diagram)(Interaktionsdiagramm mit Zeitverlaufskurven von Zuständen)

• Interaktionsübersichtsdiagramm (Interaction Overview Diagram)(Interaktionsdiagramm zur Übersicht über Abfolgen von Interaktionen, ähnlich Aktivitätsdiagramm)

Page 7: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 7

Dozenten:Markus RentschlerAndreas Stuckert

Use-Case-Diagramme

• Beschreiben das Zusammenwirken von Aktoren [bspw. Personen] mit einem System

• Use-Case-Diagramme sind Verhaltensdiagramme: Sie beschreiben bestimmte Aspekte, wie sich ein System verhält.

• Im Use-Case-Diagramm können wesentliche Funktionen des Systems hervorgehoben und zueinander in Beziehung gesetzt werden.

• Diesen Diagrammen fehlt jedoch eine Möglichkeit, die Reihenfolge der Ausführung festzulegen.

Page 8: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 8

Dozenten:Markus RentschlerAndreas Stuckert

Use Case Diagramm: Notation

Akteur

Page 9: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 9

Dozenten:Markus RentschlerAndreas Stuckert

Use Case Diagramm: Notation

Page 10: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 10

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Aktionen

• In UML2 sind die Spracheinheit Aktionen (engl. actions) elementare Bausteine zur Verhaltensmodellierung.

• Ein- und Ausgabewerte werden über sog. Eingabepins entgegengenommen an sog. Ausgabepins ausgegeben.

Page 11: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 11

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Spezielle Aktionen

• Die UML2 definiert einen Satz von elementaren Aktionen und teilt diese in mehrere Gruppen ein. Im folgenden eine Auswahl:

Page 12: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 12

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Aktivität

• Eine Aktivität ordnet Aktionen als elementare Verhaltensbausteine in einem Netzwerk an, das aus Knoten und Kanten besteht.

• Aktivitätskanten sind in zwei Hauptgruppen eingeteilt:– ein Kontrollfluss ist eine Aktivitätskante, über die keine Objekt-Token fließen – ein Objektfluss ist eine Aktivitätskante, über die Objekt-Token von einem

Objektknoten zum nächsten fließen können

Page 13: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 13

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Aktivitätsdiagramm (Flussnotation)

• Das UML-Äquivalent zum Flussdiagramm

• Beispiel:

Page 14: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 14

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Aktivitätsdiagramm (Knoten-Notation)

Knoten-Notation:

• Zur Darstellung von Kontrollstrukturen ähnlich wie Struktogramme

• Unterstützt strukturierte Programmierung

besser als Fluss-Notation

Page 15: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 15

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Aktivitätsdiagramm: Notation

Aktivität

Aktivität1 Aktivität2

[Bedingung]

Aktivität

Kontrollfluß

Aktivität2 wird nachAbschluß von Aktivität1gestartet.

Verzweigunsaktivität(kann auch durch normaleAktivität dargestellt werden)

Kontrollfluß, der unter derangegebenen Bedingunggewählt wird.

Synchronisation der Kontrolle (AND)mit Synchronisationsbedingung (Die Bedingung ist optional.)

Aufsplitten der Kontrolle (Zulassen von Parallelität)

[Bedingung]

Page 16: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 16

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Aktivitätsdiagramm: Notation

AktivitätObjekt

[Zustand] Aktivität

Klasse

Die Ausführung der Aktivität versetzt das Objekt inden angegebenen Zustand (optionales, seltenverwendetes Konstrukt in Aktivitätsdiagrammen).

Überlappung zu Zustandsdiagrammen !

Beispiel: aus dem Aktivitätsdiagramm wird eineBestellung in den Zustand „abgewiesen“ versetzt (wasbedeutet das,für das Zustandsdiagramm?)

Aktivität wird durchgeführt,wenn über einen der eingehendenKontrollflüsse die Kontrolle ankommt(OR)

Start des Ablaufs und Identifikationder betroffenen Klasse

Ende des Ablaufs (optional)

Page 17: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 17

Dozenten:Markus RentschlerAndreas Stuckert

UML2: Aktivitätsdiagramm

Veränderungen gegenüber der UML1:

• In der UML1 waren die Aktivitätsdiagramme eine spezielle Form der Zustandsdiagramme. In der UML2 sind die Aktivitätsdiagramme eigenständig.

• Einige Begriffe der UML1 wurden weiterverwendet, bekamen aber eine vollständig neue Bedeutung. Ein Aktivitätsdiagramm in UML2 beschreibt eine Aktivität, die Teilschritte werden Aktionen genannt. In der UML1 wurden die Teilschritte eines Aktivitätsdiagramms Aktivitäten genannt; die Aktivitäten der UML1 heißen jetzt Aktionen, das Aktivitätsdiagramm von UML1 heißt jetzt Aktivität.

• Aktivitätsmodelle haben jetzt eine starke Ähnlichkeit zu Petrinetzen.

• Ein Aktivitätsdiagramm darf mehrere Anfangszustände haben.

• Signale, Zeitereignis und das Ablaufende wurden als neue Notationselemente eingeführt.

• Aktivitätsdiagramme dürfen Ein- und Ausgabeparameter enthalten.

Page 18: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 18

Dozenten:Markus RentschlerAndreas Stuckert

Beispiel Geschäftsprozessmodellierung

StudentIn

STUDSTUDSTUDSTUDSTUDSTUDSTUD

Hochschul-IT

H-ITH-ITH-ITH-ITH-ITH-ITH-IT

StudiendekanIn

S-DKNS-DKNS-DKNS-DKNS-DKNS-DKNS-DKN

DozentIn

DOZDOZDOZDOZDOZDOZDOZ

Sekretariat

SEKSEKSEKSEKSEKSEKSEK

Evaluationsplan erstellen

1

Benutzerprofile erarbeiten, Deckblätter anfordern

2

Benutzerprofile

Deckblätter erstellen, an SEK

schicken

3

Deckblätter

Umschläge m. Deckblättern und

Fragebögen zusammenstellen

4

Fragebögen

Fragebögen an Studierende

verteilen

5

Fragebögen

Befragung durchführen

6

Fragebögen

Fragebögen zur H-IT weiterleiten

8

Fragebögen

Fragebögen auswerten

9

Teilbereichbericht verwerten

11

Ergebnisse zur Kenntnis nehmen

13

Evaluations-ergebnisse

Fragebögen ablegen

10

Ergebnisse hochschulintern veröffentlichen

12

Ergebnisse den Studierenden vorgestellen

14

Teilbereich-Bericht

Befragung am PC?

7

JA

NEIN

Mit BPMN gibt es auch eine UML-Erweiterung für Geschäftsprozesse:

http://de.wikipedia.org/wiki/Business_Process_Modeling_Notation

Page 19: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 19

Dozenten:Markus RentschlerAndreas Stuckert

Aktivitätsdiagramme (Bewertung)

• Ein Aktivitätsdiagramm beschreibt die Reihenfolge und

Abhängigkeiten von logisch zusammengehörenden Aktionen.

• Die Aktionen eines Aktivitätsdiagramms sind Objekten zugeordnet

(Unterschied zur Funktionsorientierung von Datenflußdiagrammen !)

• Geeignet für die Modellierung von Geschäftsprozessen über die Grenzen von Anwendungsfällen hinweg.

• geeignet für die detaillierte Analyse von Anwendungsfällen.• geeignet für die Modellierung von parallelen Software-Systemen

mittels Partitionierung (sog. „Swimlanes“)

• nicht geeignet für die Beschreibung der Interaktion von Objekten• nicht geeignet für die Zustandsübergänge eines einzelnen Objektes

Page 20: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 20

Dozenten:Markus RentschlerAndreas Stuckert

UML: Interaktionsdiagramme

• Beschreiben zeitliche Abläufe (Aufrufsequenzen) zwischen (bekannten) Objekten

• Zwei semantisch äquivalente Darstellungen:(Andere Darstellung, aber dieselbe Sicht)

– Sequenzdiagramm - Verwendung bei wenigen Klassen- Zeitablauf klar ersichtlich- Basierend auf den Message Sequence Charts (MSCs) der ITU-T

– Kommunikationsdiagramm- Verwendung bei wenigen Nachrichten- Zeitablauf weniger klar ersichtlich

Page 21: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 21

Dozenten:Markus RentschlerAndreas Stuckert

Sequenzdiagramm: Notation

ZEIT

Page 22: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 22

Dozenten:Markus RentschlerAndreas Stuckert

Sequenzdiagramm: Notation

Page 23: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 23

Dozenten:Markus RentschlerAndreas Stuckert

Kommunikationsdiagramm: Notation

Page 24: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 24

Dozenten:Markus RentschlerAndreas Stuckert

Kommunikationsdiagramm: Beispiel

Pfandmaschine

FlaschenMechanik

1: nimmEineFlasche() 2: [Genommen==TRUE]

habeFlasche()

Nachricht

Objekt

Sequenznummer

Page 25: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 25

Dozenten:Markus RentschlerAndreas Stuckert

Kommunikationsdiagramm: Bewertung

Vorteile: • Darstellung von sowohl dynamischen als auch statischen

Beziehungen zwischen Objekten. • Darstellung komplexer Strukturen und Abläufe möglich.

Nachteile: • Zeitlicher Verlauf ist weniger übersichtlich.

Page 26: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 26

Dozenten:Markus RentschlerAndreas Stuckert

Kommunikations- vs. Sequenzdiagramm

Beide Diagramme modellieren denselben Sachverhalt !

Page 27: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 27

Dozenten:Markus RentschlerAndreas Stuckert

UML: Strukturdiagramme

• Klassendiagramm (Class Diagram)(wichtigstes Diagramm: Klassen und ihre Beziehungen untereinander)

• Paketdiagramm (Package Diagram)(Gliedert Softwaresysteme in Untereinheiten)

• Objektdiagramm (Object Diagram)(Objekte, Assoziationen und Attributwerte während Laufzeit)

• Kompositionsstrukturdiagramm (Composite Structure Diagram)(Abbildung innerer Zusammenhänge einer komplexen Systemarchitektur, Darstellung von Design Patterns)

• Komponentendiagramm (Component Diagram)(Komponenten und ihre Beziehungen und Schnittstellen)

• Verteilungsdiagramm (Deployment Diagram)(Einsatzdiagramm, Knotendiagramm, Laufzeitumfeld)

• Profildiagramm (Profile Diagram)Seit UML 2.2, um eigendefinierte Stereotypen-Sammlungen strukturieren zu können.

Page 28: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 28

Dozenten:Markus RentschlerAndreas Stuckert

Konto

Kontonummer: 1007

Inhaber: Emil Braun

Kontostand: 560,60 EUR

Kontostand abfragen => 560,60 EUR

Einzahlen 200,- EUR

Konto

Kontonummer: 1009

Inhaber: Helga Schmitt

Kontostand: 1.340,- EUR

Abheben 300,- EUR

Konto

Kontonummer

Inhaber

Kontostand

Einzahlen

Abheben

Kontostand abfragen

Attribute

Methoden

Kontomodell

Klasse Objekt

Page 29: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 29

Dozenten:Markus RentschlerAndreas Stuckert

+ für public# für protected~ für package− für private

Abstrakt: kursiv geschriebener Klassennamen.Oder „{abstract} Klassenname“.

Notationsbeispiel:

Klassendiagramm: Notation

Page 30: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 30

Dozenten:Markus RentschlerAndreas Stuckert

Klasse1 erbt von Klasse2(Klasse1 spezialisiert Klasse2)

Beziehung zwischen Klasse 1 und Klasse 2

Gerichtete AssoziationNavigierbar: von Klasse 1 nach 2nicht navigierbar: von Klasse 2 nach 1

Beziehung zwischen Klasse 1 und Klasse 2

Klassendiagramm: Notation

Page 31: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 31

Dozenten:Markus RentschlerAndreas Stuckert

Klasse1 realisiert Klasse2

Aggregation:Teil des Ganzen.Der Teil kann aber auch alleine bestehen.

Komposition:„Existenzabhängiges Teil“ kann nur in Verbindung mit dem Ganzen existieren.

Klassendiagramm: Notation

Page 32: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 32

Dozenten:Markus RentschlerAndreas Stuckert

Das Objektdiagramm soll verdeutlichen, wie die Attribute einer Klasse zu einem bestimmten Zeitpunkt (Momentaufnahme) des Programms sind.

=> Es werden die Ausprägungen einer Klasse dargestellt

Objektdiagramm: Notation

Page 33: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 33

Dozenten:Markus RentschlerAndreas Stuckert

Die Komponenten (Assoziationen, Vererbungspfeile, usw.) sind genau gleich wie beim Klassendiagramm.

Unterschiede zum Klassendiagramm:

- Es werden nur die Attribute mit ihren Werten eingetragen (nicht die Methoden)

- Statt dem Klassennamen wird das Objekt folgendermaßen bezeichnet:

- Objektname:Klassenname (Wichtig: Unterstreichen nicht vergessen! Mit Unterstreichen wird deutlich gemacht, dass es sich um Objekte handelt. Dies gilt für alle UML-Diagramme)

- Bei unbekanntem Objektnamen: :Klassenname

- Datentypen können fortgelassen werden!

Objektdiagramm: Notation

Page 34: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 34

Dozenten:Markus RentschlerAndreas Stuckert

- Eine Komponente ist eine austauschbare Einheit

- Diese Einheit ist ausführbar

- Komponenten bieten Schnittstellen

- Komponenten nutzen Schnittstellen anderer Komponenten

Komponentensymbol

UML: Komponentendiagramm

Page 35: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 35

Dozenten:Markus RentschlerAndreas Stuckert

Komponenten enthalten z.B.:

- Klassen

- Pakete

- Komponenten

Verschiedene Darstellungsweisen:

UML: Komponentendiagramm

Page 36: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 36

Dozenten:Markus RentschlerAndreas Stuckert

UML: Komponentendiagramm

Page 37: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 37

Dozenten:Markus RentschlerAndreas Stuckert

Implementierungsdiagramme

• Zur Darstellung von Aspekten der Implementierung.– Dies betrifft sowohl die statische Code-Struktur als auch die

Systemstruktur zur Ausführungszeit (Runtime). Speziell bei verteilten Anwendungen und Komponenten ist dies von besonderer Bedeutung.

• Die UML sieht zwei Implementierungsdiagramme vor:

• Komponentendiagramm– Komponentendiagramme zeigen den Aufbau des

Applikationscodes

• Verteilungsdiagramm– Verteilungsdiagramme zeigen die Struktur des Laufzeitsystems,

(Physische Struktur)

Page 38: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 38

Dozenten:Markus RentschlerAndreas Stuckert

UML:Komponentendiagramm

Page 39: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 39

Dozenten:Markus RentschlerAndreas Stuckert

UML: Verteilungsdiagramm

Page 40: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 40

Dozenten:Markus RentschlerAndreas Stuckert

Bsp. Verteilungsdiagramm

KnotenKommunikation

Page 41: Vorlesung Software Engineering I

Version 04/21/23

Software Engineering I VE 04: Einführung UML 41

Dozenten:Markus RentschlerAndreas Stuckert

Übung UML Design Pattern

Praxisprojekt

• Erstellen Sie für Ihre Systemmodellierung ein Design Pattern in UML

• Benutzen Sie dazu ein CASE-Tool• Starten sie mit einem Use-Case-Diagramm• Fügen sie jedem Use-Case ein Aktivitätsdiagramm hinzu• Modellieren Sie die Systemarchitektur mit einem

Component/Deployment Diagram• Fügen Sie jeder Komponente ein State Diagramm hinzu• etc.