entwicklungsprozess - dhbw stuttgartrie/aswe/aswe10 entwicklungsprozess.pdf · workflow „analysis...

32
DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017 Seite 1 Entwicklungsprozess Inhalt RUP (Rational Unified Proces) von der IBM entwickelt objektorientiertes Vorgehensmodell benutzt UML (Unified Modeling Language) 9 Workflows mit ihren Artefakten (Dokumentationen) Ein paar kritische Anmerkungen zum RUP: https://www.mathematik.uni-marburg.de/~hesse/papers/Hes_00a.pdf Christoph Riewerts Erläuterungen: https://de.wikipedia.org/wiki/Rational_Unified_Process

Upload: ledung

Post on 19-Aug-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 1

Entwicklungsprozess

Inhalt

• RUP (Rational Unified Proces)

– von der IBM entwickelt

– objektorientiertes Vorgehensmodell

– benutzt UML (Unified Modeling Language)

• 9 Workflows mit ihren Artefakten (Dokumentationen)

Ein paar kritische Anmerkungen zum RUP:

https://www.mathematik.uni-marburg.de/~hesse/papers/Hes_00a.pdf

Christoph Riewerts

Erläuterungen:

https://de.wikipedia.org/wiki/Rational_Unified_Process

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 2

Entwicklungsprozess (RUP)

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 3

Entwicklungsprozess (RUP)

Dokumenttypen (obligatorische in Fettschrift):

• Vision (grober Überblick ohne Details): Stakeholder (Beteiligte, Benutzer), Problemdefinition,

Produkteigenschaften, grobe Anforderungen, Risiken, Glossar

• Requirements Management Plan: Business Cases (Geschäftsprozesse), Use Cases

(Anwendungsfälle, Verhalten des Produkts), Priorisierung der Use Cases, Dokumentation der

Anforderungen

• SRS, Software Requirements Specification (Pflichtenheft): Anforderungen, Use Cases, Class

Diagram, Priorisierungen

• SDP, Software Development Plan (Projektplan): Organisation, Ressourcen, Aktivitäten,

Monitoring, Meilensteine, Risikomanagement

• SAD, Software Architecture Document: Überblick zur Architektur des Systems

• Design Model: Komponenten, Schnittstellen, wichtige Klassen, Datenmodell

• Implementation Model: Packaging, Integration, Deployment

• CM, Configuration Management: Konfiguration, Versionskontrolle, Change Requests (CR)

• Test Model: Akzeptanzkriterien, Testfälle, Ausführung

• Deployment Plan: Umgebung, Hardware, Softwarekomponenten, Dokumentation, Wartung,

Schulung

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 4

Entwicklungsprozess (RUP)

Häufig reduziert sich die Anzahl der notwendigen Dokumente; für die Semesterarbeiten

werden 2 Dokumente gefordert, die um Kapitel aus anderen Dokumentationen ergänzt

werden:

Software Requirements Specification (SRS, Pflichtenheft):

Anforderungen,

Use Cases,

Class Diagram,

Datenmodell (aus dem Design Model),

Testfälle und Ausführung (aus dem Test Model)

Software Development Plan (SDP, Projektplan):

Projektorganisation

Ressourcen

Aktivitäten (Planung) incl. Aufwände

Monitoring (Istwerte)

Meilensteine

Risikomanagement

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 5

Entwicklungsprozess (RUP)

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 6

Entwicklungsprozess (RUP)Business Modeling

liefert

Geschäftsprozesse

Nur zur Entwicklung von Software wird dies häufig nicht gemacht, sondern im

Workflow „Analysis & Design“ werden die Prozesse, die implementiert werden, im

Detail modelliert und als Analyse-Modell dokumentiert.

Zur grafischen Darstellung und Modellierung wird die „Business Process Model and

Notation“ (BPMN) verwendet:

https://de.wikipedia.org/wiki/Business_Process_Model_and_Notation

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 7

Entwicklungsprozess (RUP)

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 8

Entwicklungsprozess (RUP)Requirements

liefert

Funktionale Anforderungen mittels Use Cases

Nichtfunktionale Anforderungen, z.B. an wesentliche Qualitätskriterien:

an die Verfügbarkeit

an die Ergonomie

an die Performance

an die Wartbarkeit

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 9

Funktionale Anforderungen (Funktionen und Daten) werden häufig aus der

Aufgabenbeschreibung bzw. aus dem Lastenheft kopiert. Ziel: Jede

funktionale Anforderung wird bei den Requirements als Use Case (s. UML)

spezifiziert mit folgenden Inhalten:

– Kurze Ablaufbeschreibung

– Input und Output

– Auslösendes Ereignis

– Durchführender

Bei komplexen Abläufen kommen zusätzlich das Aktivitätsdiagramm und das

Zustandsdiagramm der UML zum Einsatrz.

EntwicklungsprozessRequirements

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 10

Use case Titel: Auftrag ausführen Nummer: FREQ 21

Kurzbeschreibung (Ziel): Ware an Kunde geliefert

Akteure: Kundensachbearbeiter, Lagersachbearbeiter, Buchhaltung

Auslösendes Ereignis: Bestellung des Kunden liegt vor

Vorbedingung: Bestellung

Nachbedingung (bei Erfolg): Ware ausgeliefert (auch Teillieferungen), Rechnungskopie bei

Buchhaltung

Nachbedingung (bei Fehlerfall): Mitteilung an Kunden, dass nicht lieferbar

Standardablauf: 1. Kundendaten abrufen

2. Lieferbarkeit prüfen

3. Rechnung erstellen

4. Auftrag vom Lager ausführen lassen

5. Rechnungskopie an Buchhaltung geben

Erweiterungen: 1a. Kundendaten aktualisieren

Alternativen: 1a. Neukunden erfassen

3a. Rechnung mit Nachnahme erstellen

3b. Rechnung mit Bankeinzug erstellen

Beispiel für ein Use Case

EntwicklungsprozessRequirements

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 11

Die Verfügbarkeitsanforderungen gelten für die Nutzung des Gesamtsystems (Hard- und

Software) durch den Endanwender.

Zur Vereinfachung der Spezifikation werden Leistungsanforderungen häufig kategorisiert

und müssen dann nur noch projektspezifisch ausgewählt werden (Angaben beziehen

sich auf einen Zeitmonat mit 30 Tagen/Monat und 24 Stunden/Tag):

Kategorie Zeitl. Verfügbarkeit Max. Ausfalldauer Max. Anzahl Ausfälle

A 99,75 % 30 Min. 4

B 99,5 % 3,6 Std. 4

C 99 % 7 Std. 10

D 98 % 14 Std. 10

Die Erfüllung der Verfügbarkeit wird im praktischen Betrieb über einen festgelegten Zeitraum

(z.B. 2 Monate vor Ablauf der Gewährleistungszeit) ermittelt.

EntwicklungsprozessRequirements (Verfügbarkeit)

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 12

Vorgabe eines Style-Guides, der verwendet werden muss.

Empfehlung: Grundsätze der Dialoggestaltung gemäß ISO 9241 sollen implementiert

werden.

– Aufgabenangemessenheit: Ist es möglich, wiederholtes Eingeben zu

vereinfachen? …

– Selbstbeschreibungsfähigkeit: Sind alle Systemmeldungen verständlich? …

– Steuerbarkeit: Können Sie bei Bedarf eine Aufgabe unterbrechen? …

– Erwartungskonformität: Sind Sie bei Wartezeiten sicher, dass das Programm

arbeitet? ...

– Fehlertoleranz: Bekommen Sie bei fehlerhaften Eingaben Korrekturhinweise?...

– Individualisierbarkeit: Können Sie das Programm so einstellen, dass das Arbeiten

leichter fällt? …

– Lernförderlichkeit: Ermöglicht Ihnen das Programm, etwas gefahrlos aus zu

probieren? …

Hier gibt’s mehr Infos:

http://www.scoreberlin.de/usability-artikel/usability-iso-norm/

EntwicklungsprozessRequirements (Ergonomie)

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 13

Das Antwortzeitverhalten eines Systems wird häufig in vier Kategorien eingeteilt. Eine

projektspezifische Festlegung könnte dann folgendermaßen aussehen:

Kategorie < 1,5 Sek < 2,5 Sek < 10 Sek

A 98 % 100 % 100 %

B 85 % 95 % 99 %

C 60 % 85 % 98 %

D 50 % 70 % 90 %

Die Erfüllung des Antwortzeitverhaltens wird im praktischen Betrieb über einen festgelegten

Zeitraum (z.B. 2 Monate vor Ablauf der Gewährleistungszeit) ermittelt.

Für häufig benötigte

Dialoge (Rückmeldungen,

Info-Funktionen)

für Dialoge mit

Transaktionen

(Terminplanung,

Stammdatenauskunft)für umfangreiche

Transaktionen

EntwicklungsprozessRequirements (Performance)

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 14

Welches Qualitätsmodell (Metriken) liegt zugrunde?– Klassische Metriken: Kommentarverhältnis, McCabe-Komplexität, ..– Für die Objektorientierung existieren weitere Metriken:

DIT: Je größer die Vererbungstiefe, desto größer die Fehlerwahrscheinlichkeit (FW)NOC: Je größer die Anzahl Subklassen einer Klasse, desto geringer die FWWMC: Je größer die Anzahl Methoden und Operatoren einer Klasse, desto größer

die FW

Welche Programmierrichtlinie ist zu verwenden?– Bei JAVA bieten sich die Code Conventions (Sep/97) von SUN an– für C# bietet Microsoft entsprechende Richtlinie an

Sind spezielle Entwurfsmuster oder getestete Komponenten (Reuse) aus anderen Systemen zu verwenden?

Welche Architektur-Standards sind einzusetzen, z.B. Vorgabe einer Referenzarchitektur oder eines Ebenenkonzept?

Welche Produkte sind vorgeschrieben für die Entwicklung?

Nachweis durch den Einsatz eines Source Code Analyse Tools, z.B. checkstyle

EntwicklungsprozessRequirements (Wartbarkeit)

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 15

Entwicklungsprozess (RUP)

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 16

Entwicklungsprozess (RUP)Analysis & Design

liefert

UML-Diagramme:

Klassendiagramm

Use Case Diagramm

Aktivitätsdiagramm

Zustandsautomat

Komponenten Diagramm

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 17

Der iterative OOA-Modellbildungsprozess besteht aus folgenden Aufgaben

• Analyse der relevanten Geschäftsprozesse

• Ableiten von Klassen aus den Geschäftsprozessen

• Erstellen des statischen Modells

• Parallel dazu Erstellung des dynamischen Modells

• Berücksichtigung der Wechselwirkungen beider Modelle.

Entwicklungsprozess (RUP)Analysis & Design

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 18

Erstellen des statischen Modells

• Klassen identifizieren

– Für jede Klasse nur so viele Attribute und Operationen identifizieren wie für das

Problemverständnis und das identifizieren, wie für das Problemverständnis und das einwandfreie

Erkennen der Klasse notwendig sind.

• Assoziationen identifizieren

– Zunächst nur die reinen Verbindungen eintragen, d. h. noch keine genaueren Angaben, z. B. zur

Kardinalität oder zur Art der Assoziation machen.

• Attribute identifizieren

– Identifizieren aller Attribute des Fachkonzepts.

• Vererbungsstrukturen identifizieren

– Aufgrund der identifizierten Attribute Vererbungsstrukturen erstellen.

• Assoziationen vervollständigen

– Endgültig festlegen, ob eine »normale« Assoziation, Aggregation oder Komposition vorliegt sowie

Festlegung der Kardinalitäten, Rollen, Namen und Restriktionen.

• Attribute spezifizieren

– Für alle identifizierten Attribute eine vollständige Spezifikation erstellen.

• Muster identifizieren

– Das Klassendiagramm daraufhin überprüfen, ob Muster enthalten sind und diese richtig modelliert

wurden.

Entwicklungsprozess (RUP)Analysis & Design

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 19

Erstellen des dynamischen Modells (Systemverhalten):

• Use Case Diagramm liefert die funktionelle Gliederung mit Angabe der Ein- und Ausgaben in

jedem Use Case (Kontext-Diagramm gibt es leider nicht in der UML)

• Use Cases ggfs. ergänzen durch Activity- und State-Diagramme (Zustandsautomaten)

Berücksichtigung der Wechselwirkungen beider Modelle

• Use Cases werden umgesetzt in Methoden von Klassen

• Ein- und Ausgaben werden umgesetzt in entsprechende Attribute von Klassen

• Akteure werden Klassen

Zu beachten

• Falls keine 1:1-Umsetzung sinnvoll ist, dann ist dies explizit zu dokumentieren, z.B. durch eine

Zuordnungs-Matrix „Use-Case zu Methode“

• Zuordnung Klassen zu Methoden frei wählbar

• Konsistenz wird erreicht durch Namensgleichheit und richtige Schreib- bzw. Leserichtung bei den

Daten

Entwicklungsprozess (RUP)Analysis & Design

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 20

Erstellen des Design-Modells (aus dem OOA-Modell):

• Anpassung der Namen im Hinblick auf die Zielsprache

• Konsequenter Einsatz der Stereotyp-Bezeichnungen: <<stereotyp>>

• Konsequenter Einsatz von Bezeichnern für Klasseneigenschaften: {property}

• Definition von Container-Klassen, sofern noch nicht gemacht

• Definition von Schnittstellen-Klassen

• Festlegen der Sichtbarkeiten, sowohl für Attribute als auch für Operationen

• Vervollständigen der Signatur der Operationen

• Definition von abstrakten Operationen

• Angabe der Navigation bei den Assoziationen/Aggregationen

• Konkretisieren der Vererbung (Polymorphismus, Mehrfachvererbung)

• Definition von Paketen, sofern noch nicht gemacht

Entwicklungsprozess (RUP)Analysis & Design

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 21

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

Entwicklungsprozess (RUP)Implementation

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 22

Entwicklungsprozess (RUP)Implementation

liefert

Anforderungen an die technische Realisierung

– Aussagen zur benötigten Hardware incl. Betriebssystem

– Aussagen zur verwendeten Programmiersprache

– Aussagen zum Einsatz von Fremdprodukten, Opensource-Produkten

– Aussagen zu den verwendeten Protokollen bei verteilten Subsystemen

Packaging

Source Code

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 23

Entwicklungsprozess (RUP)

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 24

Entwicklungsprozess (RUP)Test

liefert

Dokumentation der Testfälle für white box Testing

Dokumentation der Testfälle für black box Testing

white box Testing

• Programmtext als Ausgangspunkt der

Testdatenermittlung

• möglichst viele Programmabläufe

werden ausgeführt

• unterschiedliche Überdeckungen

werden angestrebt (C0, C1, …)

• Programme können getestet werden,

für die keine Spezifikation vorliegt

black box Testing

• Spezifikation des Testobjekts als

Ausgangspunkt der Testdatenermittlung,

• Testdaten werden in Klassen eingeteilt,

bei jedem Repräsentant einer Klasse

verhält sich das Testobjekt gleich

• Qualität der Testdaten hängt ab von der

Aussagekraft der Spezifikation

Zur Erinnerung: Anforderungen an das Testen müssen Bewertungsmaß, Erhebungsart

und Erfüllungsmaß enthalten.

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 25

Entwicklungsprozess (RUP)

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 26

Entwicklungsprozess (RUP)Deployment

liefert

Installationsanleitung

deployment diagram (Zuordnung von Artefakten, z.B. von Software-

Komponenten, auf Hardware-Einheiten) :

Beispiele:

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 27

Entwicklungsprozess (RUP)

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 28

Entwicklungsprozess (RUP)Configuration Mgmt

liefert

Angaben

• zu Konfiguration,

• zur Versionskontrolle und

• zu Change Requests

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 29

Entwicklungsprozess (RUP)

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 30

Entwicklungsprozess (RUP)Management

Liefert

Meilensteinplan

Projektstruktur

Reporting

Kommunikation zw. Auftraggeber und Auftragnehmer

Risikomanagement

Aufwandsplanung und –kontrolle

Unter Management wird hier im wesentlichen das Projekt-Management verstanden.

Bei Einsatz von Scrum wird im SDP folgendes dokumentiert (alle 2 Wochen

aktualisiert):

Zusammensetzung des Teams

User Stories (Produkt Backlog)

Tasks mit Verantwortlichem, Zeitdauer, Aufwand (Sprint Backlog)

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 31

Entwicklungsprozess (RUP)

Process Workflows

Supporting Workflows

Management

Environment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Iterationen umfassen jeweils alle Workflows einer Phase

DHBW Stuttgart, Informatik, Advanced SW-Engineering Nov 2017

Seite 32

Entwicklungsprozess (RUP)Environment

Liefert

Beschreibung und Einsatz der Entwicklungsumgebung

Für die Android-Plattform ist zur Zeit die leistungsfähigste Entwicklungsumgebung

(IDE) unter https://developer.android.com/studio/index.html

herunterladbar („Android Studio“).

Anleitung dazu:

https://www.youtube.com/watch?v=Z98hXV9GmzY