vorlesung software engineering i
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 PresentationTRANSCRIPT
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
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
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
Version 04/21/23
Software Engineering I VE 04: Einführung UML 4
Dozenten:Markus RentschlerAndreas Stuckert
Geschichte der UML
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
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)
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.
Version 04/21/23
Software Engineering I VE 04: Einführung UML 8
Dozenten:Markus RentschlerAndreas Stuckert
Use Case Diagramm: Notation
Akteur
Version 04/21/23
Software Engineering I VE 04: Einführung UML 9
Dozenten:Markus RentschlerAndreas Stuckert
Use Case Diagramm: Notation
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.
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:
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
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:
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
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]
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)
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.
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
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
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
Version 04/21/23
Software Engineering I VE 04: Einführung UML 21
Dozenten:Markus RentschlerAndreas Stuckert
Sequenzdiagramm: Notation
ZEIT
Version 04/21/23
Software Engineering I VE 04: Einführung UML 22
Dozenten:Markus RentschlerAndreas Stuckert
Sequenzdiagramm: Notation
Version 04/21/23
Software Engineering I VE 04: Einführung UML 23
Dozenten:Markus RentschlerAndreas Stuckert
Kommunikationsdiagramm: Notation
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
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.
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 !
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.
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
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
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
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
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
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
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
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
Version 04/21/23
Software Engineering I VE 04: Einführung UML 36
Dozenten:Markus RentschlerAndreas Stuckert
UML: Komponentendiagramm
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)
Version 04/21/23
Software Engineering I VE 04: Einführung UML 38
Dozenten:Markus RentschlerAndreas Stuckert
UML:Komponentendiagramm
Version 04/21/23
Software Engineering I VE 04: Einführung UML 39
Dozenten:Markus RentschlerAndreas Stuckert
UML: Verteilungsdiagramm
Version 04/21/23
Software Engineering I VE 04: Einführung UML 40
Dozenten:Markus RentschlerAndreas Stuckert
Bsp. Verteilungsdiagramm
KnotenKommunikation
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.