Skript zur Vorlesung Software Engineering I

Download Report

Transcript Skript zur Vorlesung Software Engineering I

Vorlesung
Software Engineering I
Einführung UML
Verhaltensidagramme
Strukturdiagramme
Design Pattern
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
1
Systemsichten und Modellierung
Statik
Dynamik
Logik
Funktionen
Kontrollstrukturen
Abhängigkeiten
Daten
Zustände
Entscheidungstabellen
Datenstrukturen
Prozesse
Mathematik
Architektur
Zeitliches Verhalten
Regeln
Beschreiben die feste
Struktur des Systems,
die sich während der
Laufzeit nicht ändert.
Beschreiben das
Verhalten und die
Veränderungen
während der Laufzeit.
Beschreiben die
Programmfunktion
logisch und
mathematisch
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
2
Unified Modelling Language (UML)
UML = Sprache zur Beschreibung
von Softwaresystemen
• 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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
3
3
Geschichte der UML
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
4
UML2: Diagrammarten
sieben Strukturdiagramme
sieben Verhaltensdiagramme
 UML Diagrammübersicht siehe http://www.oose.de/uml
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
5
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
6
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
7
Use Case Diagramm: Notation
Akteur
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
8
Use Case Diagramm: Notation
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
9
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
10
UML2: Spezielle Aktionen
• Die UML2 definiert einen Satz von elementaren Aktionen
und teilt diese in mehrere Gruppen ein. Im folgenden
eine Auswahl:
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
11
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
12
UML2: Aktivitätsdiagramm (Flussnotation)
• Das UML-Äquivalent zum Flussdiagramm
• Beispiel:
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
13
UML2: Aktivitätsdiagramm (Knoten-Notation)
Knoten-Notation:
• Zur Darstellung von Kontrollstrukturen
ähnlich wie Struktogramme
• Unterstützt strukturierte Programmierung
besser als Fluss-Notation
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
14
UML2: Aktivitätsdiagramm: Notation
Synchronisation der Kontrolle (AND)
mit Synchronisationsbedingung
(Die Bedingung ist optional.)
Aktivität
Aktivität
[Bedingung]
Aufsplitten der Kontrolle
(Zulassen von Parallelität)
Kontrollfluß
Aktivität1
Aktivität2
Aktivität2 wird nach
Abschluß von Aktivität1
gestartet.
Verzweigunsaktivität
(kann auch durch normale
Aktivität dargestellt werden)
[Bedingung]
Version 09.04.2015
Kontrollfluß, der unter der
angegebenen Bedingung
gewählt wird.
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
15
UML2: Aktivitätsdiagramm: Notation
Aktivität
Objekt
[Zustand]
Aktivität
Die Ausführung der Aktivität versetzt das Objekt in
den angegebenen Zustand (optionales, selten
verwendetes Konstrukt in Aktivitätsdiagrammen).
Klasse
Start des Ablaufs und Identifikation
der betroffenen Klasse
 Überlappung zu Zustandsdiagrammen !
Beispiel: aus dem Aktivitätsdiagramm wird eine
Bestellung in den Zustand „abgewiesen“ versetzt (was
bedeutet das,für das Zustandsdiagramm?)
Version 09.04.2015
Aktivität wird durchgeführt,
wenn über einen der eingehenden
Kontrollflüsse die Kontrolle ankommt
(OR)
Software Engineering I
VE 04: Einführung UML
Ende des Ablaufs (optional)
Dozenten:
Markus Rentschler
Andreas Stuckert
16
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
17
Beispiel Geschäftsprozessmodellierung
StudiendekanIn
1
Evaluationsplan
erstellen
11
S-DKN
S-DKN
S-DKN
S-DKN
S-DKN
S-DKN
Teilbereichberich
t verwerten
12
Ergebnisse
hochschulintern
veröffentlichen
S-DKN
DozentIn
DOZ
DOZ
DOZ
5
Fragebögen an
Studierende
verteilen
Fragebögen
DOZ
13
Ergebnisse zur
Kenntnis nehmen
DOZ
DOZ
14
Ergebnisse den
Studierenden
vorgestellen
DOZ
Fragebögen
Sekretariat
Benutzerprofile
2
erarbeiten,
Deckblätter
anfordern
SEK
Umschläge
m.
4
Deckblättern und
Fragebögen
zusammenstellen
SEK
SEK
8
Fragebögen zur
H-IT weiterleiten
SEK
SEK
Fragebögen
Fragebögen
SEK
SEK
Teilbereich-Bericht
StudentIn
NEIN
STUD
STUD
STUD
6
Befragung
durchführen
7
Befragung am
STUD
PC?
STUD
STUD
Evaluationsergebnisse
Deckblätter
Benutzerprofile
STUD
Hochschul-IT
H-IT
3
Deckblätter
erstellen, an SEK
schicken
H-IT
H-IT
H-IT
JA
9
Fragebögen
auswerten
H-IT
10
Fragebögen
ablegen
H-IT
H-IT
Mit BPMN gibt es auch eine UML-Erweiterung für Geschäftsprozesse:
http://de.wikipedia.org/wiki/Business_Process_Modeling_Notation
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
18
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
19
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
20
ZEIT
Sequenzdiagramm: Notation
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
21
Sequenzdiagramm: Notation
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
22
Kommunikationsdiagramm: Notation
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
23
Kommunikationsdiagramm: Beispiel
Objekt
Pfandmaschine
1: nimmEineFlasche()
2: [Genommen==TRUE]
habeFlasche()
Sequenznummer
FlaschenMechanik
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Nachricht
Dozenten:
Markus Rentschler
Andreas Stuckert
24
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
25
Kommunikations- vs. Sequenzdiagramm
Beide Diagramme modellieren
denselben Sachverhalt !
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
26
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
27
Klasse  Objekt
Konto
Konto
Kontonummer: 1007
Inhaber: Emil Braun
Kontostand: 560,60 EUR
Kontomodell
Kontonummer: 1009
Inhaber: Helga Schmitt
Kontostand: 1.340,- EUR
Abheben 300,- EUR
Kontostand abfragen =>
560,60 EUR
Einzahlen 200,- EUR
Konto
Kontonummer
Inhaber
Kontostand
Einzahlen
Abheben
Kontostand abfragen
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Attribute
Methoden
Dozenten:
Markus Rentschler
Andreas Stuckert
28
Klassendiagramm: Notation
+ für public
# für protected
~ für package
− für private
Abstrakt: kursiv geschriebener Klassennamen.
Oder „{abstract} Klassenname“.
Notationsbeispiel:
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
29
Klassendiagramm: Notation
Klasse1 erbt von Klasse2
(Klasse1 spezialisiert Klasse2)
Beziehung zwischen Klasse 1 und Klasse 2
Gerichtete Assoziation
Navigierbar: von Klasse 1 nach 2
nicht navigierbar: von Klasse 2 nach 1
Beziehung zwischen Klasse 1 und Klasse 2
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
30
Klassendiagramm: Notation
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.
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
31
Objektdiagramm: Notation
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
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
32
Objektdiagramm: Notation
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!
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
33
UML: Komponentendiagramm
Komponentensymbol
- Eine Komponente ist eine austauschbare Einheit
- Diese Einheit ist ausführbar
- Komponenten bieten Schnittstellen
- Komponenten nutzen Schnittstellen anderer Komponenten
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
34
UML: Komponentendiagramm
Komponenten enthalten z.B.:
- Klassen
- Pakete
- Komponenten
Verschiedene Darstellungsweisen:
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
35
UML: Komponentendiagramm
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
36
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 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
37
UML:Komponentendiagramm
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
38
UML: Verteilungsdiagramm
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
39
Bsp. Verteilungsdiagramm
Kommunikation
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Knoten
Dozenten:
Markus Rentschler
Andreas Stuckert
40
Ü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.
Version 09.04.2015
Software Engineering I
VE 04: Einführung UML
Dozenten:
Markus Rentschler
Andreas Stuckert
41