Vorlesung Software Engineering I - htw-dresden.demuellerd/SWEngI_WS201819/04_Prozess...Vorlesung...
Transcript of Vorlesung Software Engineering I - htw-dresden.demuellerd/SWEngI_WS201819/04_Prozess...Vorlesung...
Vorlesung Software Engineering I
WS 2018/19
Prof. Dr. Dirk Müller
4 Prozessanalyse und -modellierung
WS 2018/19Dirk Müller: Software Engineering I
2/20
Übersicht
● Einführung● Software-Entwicklungsprozesse● Anforderungsanalyse● Prozessanalyse und -modellierung
– Modellierung– Modelle in der SW-Entwicklung– Systemgrenze– Extraktion von Anwendungsfällen– Beschreibung von Anwendungsfällen– Zusammenfassung
● Objekt-orientierte Analyse● UML
WS 2018/19Dirk Müller: Software Engineering I
3/20
Modelltheorie
1)Abbildung– natürliches/künstliches,
abstraktes/konkretesOriginal, sogar anderesModell als Originalmöglich
2)Verkürzung– keine alternative
Darstellung
3)Pragmatismus– Für wen? Wann? Wozu?
● Abstraktion und Konkretisierung als intellektuelle Kerntätigkeiten eines Informatikers
Quelle: [1], S. 157
WS 2018/19Dirk Müller: Software Engineering I
4/20
Perspektiven
● externe Sicht– Kontext oder Umgebung des Systems modelliert
● Interaktionssicht– Wechselwirkungen zwischen System und Umgebung– Wechselwirkungen zwischen Systemkomponenten
● Struktursicht– Modell der Organisation des Systems– Datenstrukturen, die im System verwendet werden
● Verhaltenssicht– zeitliches Verhalten des Systems– Reaktion auf und Triggern von Ereignissen
WS 2018/19Dirk Müller: Software Engineering I
5/20
Modelle in der SW-Entwicklung
● als Diskussionsgrundlage zu einembestehenden oder vorgeschlagenenSystem, z. B. bei agiler SW-Entwicklung
● als Dokumentation eines bestehendenSystems
● als detaillierte Systembeschreibung(Quelldokument) im Rahmen dermodellgetriebenen SW-Entwicklung(MDSD)
unvollständig inkorrekt
unvollständig korrekt
vollständig korrekt
Quelle: [Som10], S. 120 f.
WS 2018/19Dirk Müller: Software Engineering I
6/20
Systemgrenze
● Systemgrenze bestimmt Schnittstellen zu Akteuren(Personen, Sensoren, Aktoren, andere Systeme)
● anfangs evtl. Grauzone, muss dann verfeinert werden● Wahl der Systemgrenze nicht wertneutral
– Kontrolle– Kosten
Systemkontext
System
irrelevanteUmgebung
Quellen: [Som10], S. 122 f.und [Bal09], S. 462
WS 2018/19Dirk Müller: Software Engineering I
7/20
Anwendungsfälle und Geschäftsprozesse
● Anwendungsfälle sind Benutzungsszenarien eines Systems aus der Außensicht, also die Schnittstellen an der Systemgrenze– andersherum: Menge aller Anwendungsfälle konstituiert die
Systemgrenze– Benutzung des Systems durch einen Akteur
● Geschäftsprozesse sind Beschreibungen der Umsetzung von Systemzielen im Inneren der Systemgrenze
● „Akteure sind Rollen von Menschen oder Systeme, insbesondere Computersysteme, die als externe Beteiligte mit einem Unternehmen (Kunden) oder einem Softwareprodukt (Benutzer) kommunizieren und Daten austauschen.“ Quelle: [Bal09], S. 251
WS 2018/19Dirk Müller: Software Engineering I
8/20
Anwendungsfalldiagramm
Was macht das System? Nicht: Wie?
Quelle: [2], S. 252Systemgrenze
menschlicherAkteur
künstlicherAkteur
Anwendungsfall
WS 2018/19Dirk Müller: Software Engineering I
9/20
Beschreibung von Anwendungsfällen
Charakteristik des Anwendungsfalls
Empfohlene Notation zur Beschreibung
kurze klare Abläufe mit wenigen Sonderfällen
strukturierter Text
ablauforientiert Aktivitätsdiagramm
datenorientierteinfach Kommunikationsdiagramm
komplex Sequenzdiagramm
Bündelung vieler Szenarien Interaktionsübersichtsdiagramm
Abfolgen und Ereignisse gleichwahrscheinlich Zustandsdiagramm
Quelle: basiert auf [2], S. 242
UML
UM
L-In
tera
ktio
nsdi
agra
mm
e
WS 2018/19Dirk Müller: Software Engineering I
10/20
UML-Diagrammarten
Quelle: http://upload.wikimedia.org/wikipedia/de/5/53/UML-Diagrammhierarchie.png
WS 2018/19Dirk Müller: Software Engineering I
11/20
Aktivitätsdiagramm
Kontrollfluss- und Daten(fluss)modell
Quelle: [Bal09], S. 238
Eingabe
Ausgabe
Auswahl
Nebenläufigkeit
WS 2018/19Dirk Müller: Software Engineering I
12/20
Strukturierte Programmierung
● Algorithmen als verknüpfte Anweisungen– einfache Anweisungen und Kontrollstrukturen
● Strukturierte Programmierung:nur Kontrollstrukturen mit genau einem Ein- und Ausgang– lineare Kontrollstrukturen, sichert beliebige Komponierbarkeit
Anweisung
einfache Anweisung Kontrollstruktur
Sequenz Auswahl Wiederholung Aufruf Nebenläufigkeit
eins
eitig
e
zwei
seiti
ge
Meh
rfac
h-
abw
eise
nde
Sch
leife
akze
ptie
ren-
de S
chle
ifeQuelle: [Bal09], S. 227 ff.
in 1990ern neuhinzugekommen
WS 2018/19Dirk Müller: Software Engineering I
13/20
Zustandsdiagramm
Verhalten abhängig von bisher durchlaufener Historie
Quelle: [Bal09], S. 290
Zustand
Zustandsübergang(Transition)
Startzustand
Endzustand
Ereignis
Aktion
Klassemit Methoden
WS 2018/19Dirk Müller: Software Engineering I
14/20
Ereignisgesteuerte Prozesskette (EPK)
erweiterte EPK: Funktionen, Informationsobjekte und Organisationseinheiten mit einbezogen(Wirtschaftsinformatik)
Quelle: [Bal09], S. 253
1992 August-Wilhelm Scheer und SAP
bipartiter Graph mit Ereignissen und Funktionen
Grundelemente intuitiv,aber Erweiterungen nichtmehr
WS 2018/19Dirk Müller: Software Engineering I
15/20
eEPK-Beispiel
● Funktionen aktiv● Ereignisse passiv
– dürfen deshalb nicht in einen OR- oder XOR-Konnektor führen
● Kanten bilden Kontrollfluss ab
● neu in eEPK:– Datenfluss
Quelle: http://commons.wikimedia.org/wiki/File:EPK_komplexes_Beispiel.pngAbb. von Florian Lindner, Lizenz: CC-BY-2.5
WS 2018/19Dirk Müller: Software Engineering I
16/20
Petrinetze
● 1962 Carl Adam Petri, Kontroll- und Datenfluss● Nebenläufigkeit von kooperierenden Prozessen sowie
nichtdeterministisches Verhalten sehr gut beschreibbar
Quelle: [Bal09], S. 303
2 Variantenbipartiter Graph mitStellen und Transitionen
mathematisch aufLebendigkeit und Deadlocksanalysierbar
Belegungs-zustand
einer Stelle
WS 2018/19Dirk Müller: Software Engineering I
17/20
Petrinetz für gegenseitigen Ausschluss
Quelle: [Bal09], S. 323
WS 2018/19Dirk Müller: Software Engineering I
19/20
Zusammenfassung
● Systemgrenze und Anwendungsfälle als grundlegende Modellierungsentscheidungen
● Anwendungsfälle legen Schnittstellen an Systemgrenze fest (Außensicht)
● Geschäftsprozesse ermöglichen Umsetzung in Inneren● UML mit Anwendungsfalldiagramm und einem
Aktivitätsdiagramm per Anwendungsfall als Verfeinerung● 5 Kontrollstrukturen der strukturierten Programmierung:
Sequenz, Auswahl, Wiederholung, Aufruf, Nebenläufigkeit● Zustandsdiagramm für Prozesse mit Einfluss der Historie● Petrinetze für Nebenläufigkeit von kooperierenden
Prozessen und Nichtdeterminismus, höchste Formalität