20
Vorlesung Software Engineering I WS 2018/19 Prof. Dr. Dirk Müller 4 Prozessanalyse und -modellierung

Vorlesung Software Engineering I - htw-dresden.demuellerd/SWEngI_WS201819/04_Prozess...Vorlesung Software Engineering I WS 2018/19 Prof. Dr. Dirk Müller 4 Prozessanalyse und -modellierung

  • Upload
    ngoliem

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

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

18/20

Notationen

Quelle: [Bal09], S. 101

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

WS 2018/19Dirk Müller: Software Engineering I

20/20

Literatur

[1] Herbert Stachowiak: „Allgemeine Modelltheorie“, Springer Wien, 1973

[2] Chris Rupp, Stefan Queins, Barbara Zengler: „UML 2 glasklar“, Hanser München, 3. Auflage, 2007