51
Softwaretechnik – Vorgehensweisen Softwaretechnik – Vorgehensweisen Karsten Weicker, Nicole Weicker HTWK Leipzig, FHTW Berlin The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44

Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Softwaretechnik –Vorgehensweisen

Karsten Weicker, Nicole WeickerHTWK Leipzig, FHTW Berlin

The Emperor: Everything is proceeding as I have foreseen.(Return of the Jedi, 1983)

Karsten Weicker, Nicole Weicker 1/ 44

Page 2: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweisen der Softwareentwicklung

Defintion: Softwaretechnik

Die Anwendung eines systematischen,disziplinierten, quantitativ bewertbaren Ansatzes furdie Entwicklung, den Betrieb und die Wartung vonSoftware; d.h. die Anwendung derIngenieurswissenschaft auf Software.

IEEE Std. 610.12 (1990)

Alternative Definition:Softwaretechnik ist Multi-Personen-Konstruktionvon Multi-Versionen-Software.

(nach David L. Parnas, 1974)

Karsten Weicker, Nicole Weicker 2/ 44

Page 3: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweisen der Softwareentwicklung

Defintion: Softwaretechnik

Die Anwendung eines systematischen,disziplinierten, quantitativ bewertbaren Ansatzes furdie Entwicklung, den Betrieb und die Wartung vonSoftware; d.h. die Anwendung derIngenieurswissenschaft auf Software.

IEEE Std. 610.12 (1990)Alternative Definition:Softwaretechnik ist Multi-Personen-Konstruktionvon Multi-Versionen-Software.

(nach David L. Parnas, 1974)

Karsten Weicker, Nicole Weicker 2/ 44

Page 4: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweisen der Softwareentwicklung

Tatigkeiten der Softwareentwicklung(informell)

I grobe Beschreibung der Aufgabe/Idee, was zuentwickeln ist

I Klarung, dass alle das Gleiche verstehenI Identifikation von getrennten Aufgaben

(Aufteilung der Aufgaben auf dieTeammitglieder)

I Entwicklung der SoftwareI enge KommunikationI Integration der TeileI Uberprufung, ob die Software das tut, was sie

tun sollKarsten Weicker, Nicole Weicker 3/ 44

Page 5: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweisen der Softwareentwicklung

Evolutionare Entwicklung

Spezifikation

Entwicklung

Validierung

GrobeBeschreibung

Endversion

Anfangsversion

Zwischenversionen

GleichzeitigstattfindendeAktivitaten

Karsten Weicker, Nicole Weicker 4/ 44

Page 6: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweisen der Softwareentwicklung

Wasserfall-Modell

Betrieb

Anforderungs-analyse

Anforderungs-spezifikation

System-entwurf

Implementation

Test

Karsten Weicker, Nicole Weicker 5/ 44

Page 7: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweisen der Softwareentwicklung

Definition

Definition (Vorgehensmodell)Ein Vorgehensmodell (oder auch Softwareprozess)ist eine Menge von Aktivitaten, die benotigt werdenum Softwaresysteme zu entwickeln, sowie derenAnordnung bzw. Abfolge.

I Beispiele:I evolutionare EntwicklungI WasserfallmodellI weitere spater

Karsten Weicker, Nicole Weicker 6/ 44

Page 8: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweisen der Softwareentwicklung

Definition

Definition (Vorgehensmodell)Ein Vorgehensmodell (oder auch Softwareprozess)ist eine Menge von Aktivitaten, die benotigt werdenum Softwaresysteme zu entwickeln, sowie derenAnordnung bzw. Abfolge.

I Beispiele:I evolutionare EntwicklungI WasserfallmodellI weitere spater

Karsten Weicker, Nicole Weicker 6/ 44

Page 9: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Aufbau der Vorlesung als Spirale

Aufbau der Vorlesung als Spirale

C BA

D

Code-Verstehen

Vorgehensweisen

UML

Testen funkt. Anforderungen

Strukturen und Muster

Vermeid. v. Missverstandnis

Nichtfunkt. Anforderungen

Qualitatsmanagement

A = Anforderungsanalyse

B = Anforderungsspezifikation

C = Systementwurf

D = Implementation

Aufgaben des Projektmanagements

Risikomanagement

Prozessmodelle

Kostenschatzung

Funkt. Anforderungen am Beispiel

Karsten Weicker, Nicole Weicker 7/ 44

Page 10: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

A = Anforderungsanalyse

Definition (Anforderung)Eine Anforderung ist eine vom Anwender benotigteFahigkeit des Systems, um ein Ziel zu erreichen,bzw. eine Fahigkeit, die das System besitzen muss,damit es einen Vertrag, einen Standard oder einanderes formelles Dokument erfullt.

Karsten Weicker, Nicole Weicker 8/ 44

Page 11: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

A = Anforderungsanalyse:Gegenstand der Anforderung

I funktionale Anforderung –uberprufbare Funktionalitat des SystemsProduktfunktionen

I nichtfunktionale Anforderung –andere Eigenschaften, u.a.

Benutzbarkeit KompatibilitatEffizienz DatenschutzZuverlassigkeit SicherheitPortierbarkeit

Karsten Weicker, Nicole Weicker 9/ 44

Page 12: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

Zwei Minuten AufgabeWelche der folgenden Aussagen ist einenicht-funktionale Anforderung?

� Neue Kunden konnen angelegt werden.

� Das System antwortet auf jede Anfrage inmaximal 2 ms.

� Auf Kundendaten kann nur intern zugegriffenwerden.

� Kundendaten konnen verandert werden.

� Die Bedienung des Systems ist leicht erlernbar.

� Die Kreditwurdigkeit eines Kunden kannberechnet werden.

Karsten Weicker, Nicole Weicker 10/ 44

Page 13: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

Zwei Minuten AufgabeWelche der folgenden Aussagen ist einenicht-funktionale Anforderung?

� Neue Kunden konnen angelegt werden.

�8 Das System antwortet auf jede Anfrage inmaximal 2 ms.

�8 Auf Kundendaten kann nur intern zugegriffenwerden.

� Kundendaten konnen verandert werden.

�8 Die Bedienung des Systems ist leicht erlernbar.

� Die Kreditwurdigkeit eines Kunden kannberechnet werden.

Karsten Weicker, Nicole Weicker 10/ 44

Page 14: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

A = Anforderungsanalyse:Lastenheft zur Dokumentation

Lastenheft beschreibt Wunsche des Auftraggebers

I auf Ebene der Benutzungsanforderungen

I Was und Warum

I Form: naturliche Sprache

I wichtig: Verstandlichkeit fur Auftraggeber

I ist Vordokument zum Pflichtenheft

I Ist- und Soll-Analyse

Karsten Weicker, Nicole Weicker 11/ 44

Page 15: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

B = Anforderungsspezifikation:Warum nach Analyse noch Spezifikation

I Beschreibung der Anforderungen in naturlicher Sprache

I vieldeutigI missverstandlich

I Eindeutigkeit in der FormulierungI Analyse: Problemfeld mit AblaufenI Analyse: keine Losung durch System!I Ubertragung der Anforderungen in informatische

ZusammenhangeI Was muss das System konnen, damit es die

Anforderungen erfullen kann?

Karsten Weicker, Nicole Weicker 12/ 44

Page 16: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

B = Anforderungsspezifikation:Pflichtenheft zur Dokumentation

Pflichtenheft = Realisierungsvorhaben des Auftragnehmers

I auf Ebene der SystemanforderungenI Wie und WomitI keine programmiertechnischen/ architektonischen DetailsI Ubertragung der Benutzerwunsche → Planung/

MachbarkeitsanalyseI Form: strukturierte naturliche Sprache, grafische

Notation oder mathematische SpezifikationI wichtig: eindeutige Beschreibung fur EntwicklerI wichtig: Vertragsgrundlage zwischen Entwickler und

Kunden! → verstandlich bleiben

Karsten Weicker, Nicole Weicker 13/ 44

Page 17: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

B = Anforderungsspezifikation:Validierung von Anforderungen

I Fur jede Anforderung ist zu uberprufnenI korrektI machbarI eindeutigI nachprufbar

I Fur den Katalog aller AnforderungenI vollstandigI konsistent

Karsten Weicker, Nicole Weicker 14/ 44

Page 18: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

B = Anforderungsspezifikation:Beispiel: Gliederung des Pflichtenhefts (IEEE)

1. Einleitung: a) Ziel, b) Anwendungsbereich desProdukts, c) Definitionen, d) Referenzen, e) Uberblickuber das Dokument

2. Allgemeine Beschreibung: a) Produktperspektive,b) Produktfunktion, c) Benutzercharakteristika,d) Beschrankungen, e) Voraussetzungen undAbhangigkeiten

3. Spezifische Anforderungen: funktionale/nichtfunktionale Anforderungen, externe Schnittstellen

4. Anhange

5. Index

Karsten Weicker, Nicole Weicker 15/ 44

Page 19: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

B = Anforderungsspezifikation:Beispiel: Gliederung des Pflichtenhefts (Sommerville)

1. Vorwort: Versionsgeschichte

2. Einleitung: Notwendigkeit des Systems, Funktion,Zusammenarbeit mit anderen Systemen

3. Definition der Benutzeranforderungen

4. Systemarchitektur

5. Spezifikation der Systemanforderungen

6. Systemmodelle

7. Systementwicklung: erwartete Veranderungen

8. Anhange, Index

Karsten Weicker, Nicole Weicker 16/ 44

Page 20: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

B = Anforderungsspezifikation:Beispiel: Gliederung des Pflichtenhefts (Balzert)

1. Zielbestimmung: a) Muss b) Wunsch c) Abgrenzung2. Produkteinsatz3. Produktubersicht4. Produktfunktionen5. Produktdaten6. Produktleistungen (Zeit und Genauigkeit)7. Qualitatsanforderungen8. Benutzungsoberflache9. Nichtfunktionale Anforderungen (Gesetze, Normen etc.)

10. Technische Produktumgebung11. Anforderung an Entwicklungsumgebung12. Glossar

Karsten Weicker, Nicole Weicker 17/ 44

Page 21: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

Zwei Minuten AufgabeWelche der folgenden Aussagen ist korrekt?

� Lastenheft ist gleich Pflichtenheft.

� Das Pflichtenheft wird nur intern verwendet.

� Beide Dokumente dienen der Kommunikationmit dem Kunden.

� Das Pflichtenheft ist die Vorbereitung fur dasLastenheft.

� Das Lastenheft ist uberwiegend in naturlicherSprache verfasst.

� Das Pflichtenheft kann bereits Systemmodelleenthalten.

Karsten Weicker, Nicole Weicker 18/ 44

Page 22: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

Zwei Minuten AufgabeWelche der folgenden Aussagen ist korrekt?

� Lastenheft ist gleich Pflichtenheft.

� Das Pflichtenheft wird nur intern verwendet.

�8 Beide Dokumente dienen der Kommunikationmit dem Kunden.

� Das Pflichtenheft ist die Vorbereitung fur dasLastenheft.

�8 Das Lastenheft ist uberwiegend in naturlicherSprache verfasst.

�8 Das Pflichtenheft kann bereits Systemmodelleenthalten.

Karsten Weicker, Nicole Weicker 18/ 44

Page 23: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

C = Systementwurf

Definition (Software-Architektur)Die Software-Architektur eines Systems beschreibtdessen Software-Struktur(en), dessenSoftware-Bausteine sowie deren sichtbarenEigenschaften und Beziehungen zueinander (nachBass et. al., 2003).

Der Erstellungsprozess wird (Grob-)Entwurfgenannt.

Karsten Weicker, Nicole Weicker 19/ 44

Page 24: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

C = Systementwurf:Vorteile

Vorteile eines expliziten Entwurfs (gegenuber einerevolutionaren Entwicklung)

I Kommunikation zwischen den Projektbeteiligten:vereinfachte Darstellung des Systems alsDiskussionsgrundlage

I Systemanalysen: fruh Analysen bzgl. systemkritischerAnforderungen moglich, z.B. Performanz,Zuverlassigkeit, Wartbarkeit

I Wiederverwendung in großem Umfang: Ubertragung derArchitektur auf ahnliche Systeme

Karsten Weicker, Nicole Weicker 20/ 44

Page 25: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

C = Systementwurf:Mogliche Inhalte

I statisches Strukturmodell: Darstellung derKomponenten des Systems

I dynamisches Strukturmodell: Welche Prozesseentstehen zur Laufzeit?

I Schnittstellenmodell: Details der Dienste dereinzelnen Komponenten/Module

I Beziehungsmodelle: Datenflusse, Kontrollflusseetc.

Karsten Weicker, Nicole Weicker 21/ 44

Page 26: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

C = Systementwurf:Einflusse

I Leistungsfahigkeit: kritische Ablaufe in moglichstwenigen Komponenten mit wenig Kommunikation

I Zugriffsschutz: evtl. Schichtenarchitektur, kritischeInhalte in untersten Schicht

I Sicherheit (d.h. Vertraulichkeit, Authentizitat,Integritat): sicherheitskritische Aktivitaten in Subsystem⇒ verringert Kosten der Sicherheitsvalidierung

I Verfugbarkeit: redundante Komponenten zurAusfallsicherheit bei Updates/Wartung

I Wartbarkeit: kleine austauschbare Komponenten,Trennung von Erzeugen und Benutzen von Daten,Vermeidung gemeinsamer Datenstrukturen

Karsten Weicker, Nicole Weicker 22/ 44

Page 27: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

C = Systementwurf:Beschreibungsmittel

I schriftlich, textuellI Visualisierungen:

I wichtigeste AspekteI Wegweiser durch die Beschreibung

I In den Visualisierungen:I Rollen der BausteineI Beziehungen zwischen den BausteinenI Kommunikation

Karsten Weicker, Nicole Weicker 23/ 44

Page 28: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

D = Implementation

Aspekte der Implementation

I Dokumentation

I ProgrammierrichtlinienI Testen

I Unit-TestI KomponententestI IntegrationstestI Systemtest

I Versionskontrolle

Karsten Weicker, Nicole Weicker 24/ 44

Page 29: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Identifikation der grundlegenden Ablaufe

Aufbau der Vorlesung als Spirale

C BA

D

Code-Verstehen

Vorgehensweisen

UML

Testen funkt. Anforderungen

Strukturen und Muster

Vermeid. v. Missverstandnis

Nichtfunkt. Anforderungen

Qualitatsmanagement

A = Anforderungsanalyse

B = Anforderungsspezifikation

C = Systementwurf

D = Implementation

Aufgaben des Projektmanagements

Risikomanagement

Prozessmodelle

Kostenschatzung

Funkt. Anforderungen am Beispiel

Karsten Weicker, Nicole Weicker 25/ 44

Page 30: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Anforderungsanalyse

A: Ablauf der Anforderungsanalyse

Verstehen desAnwendungsbereichs

Setzen vonPrioritaten

Anforderungs-sammlung

Konflikt-losung

Klassifizierung

Anforderungs-uberprufung

Lasten-heft

Start

Karsten Weicker, Nicole Weicker 26/ 44

Page 31: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Anforderungsanalyse

A: Anforderungsanalyse:Schwierigkeit

I Beteiligte wissen nicht, was sie von einem Systemerwarten:

I unbewusste Anforderungen: SelbstverstandlichkeitI ungeahnte Anforderungen: Leistungsfahigkeit eines

derartigen Systems nicht abschatzbar

I unterschiedliches Fachwissen/ Fachsprache

I Konflikte zwischen Anforderungen oder unterschiedlicheFormulierungen derselben Anforderungen

I Veranderungen politischer, wirtschaftlicher odergeschaftlicher Randbedingungen

Karsten Weicker, Nicole Weicker 27/ 44

Page 32: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Anforderungsanalyse

A: AnforderungsanalyseSie offnen also morgens das Schloss am Haupteingang?

Ja, habe ich Ihnen doch gesagt.Jeden Morgen?

Naturlich.Auch am Wochenende?

Nein, am Wochenende bleibt der Eingang zu.Und wahrend der Betriebsferien?

Da bleibt er naturlich auch zu.Und wenn Sie krank sind oder Urlaub haben?

Dann macht das Herr Schmidt.Und wenn auch Herr Schmidt ausfallt?

Dann klopft irgendwann ein Kunde ans Fenster, weil er nichtreinkommt.

Was bedeutet eigentlich”morgens“? . . . (Ludewig/Lichter)

Karsten Weicker, Nicole Weicker 28/ 44

Page 33: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Anforderungsanalyse

Zwei Minuten Aufgabe

Welche Kompetenzen benotigt Ihrer Meinung nachein Informatiker zur Erhebung einerAnforderungsanalyse?

Karsten Weicker, Nicole Weicker 29/ 44

Page 34: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise: Anforderungsspezifikation

B: Ablauf der Anforderungsspezifikation

Durchfuhrbar-keitsstudie

System-modelle

Benutzer- undSystem-

anforderungen

Datenanalyse

SpezifikationLastenheft Validierung

Pflichtenheft

Karsten Weicker, Nicole Weicker 30/ 44

Page 35: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise: Anforderungsspezifikation

B: Anforderungsspezifikation:Durchfuhrbarkeitsstudie

Beantwortet eine (oder mehrere) der folgendenFragen:

I Beitrag zur Verwirklichung der Gesamtziele desUnternehmens?

I Realisierbar unter Nutzung der derzeitigenTechnologie und innerhalb des Kosten- undZeitrahmens?

I Kompatibel mit bestehenden Systemen?

Karsten Weicker, Nicole Weicker 31/ 44

Page 36: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise: Anforderungsspezifikation

B: Anforderungsspezifikation:Validierung

I Ziele:I GultigkeitsprufungenI KonsistenzprufungenI VollstandigkeitsprufungenI RealisierbarkeitsprufungenI Verifizierbarkeitsprufungen

I Techniken:I Anforderungs-ReviewsI PrototypenI TestfallerzeugungI automatische Konsistenzanalyse

Karsten Weicker, Nicole Weicker 32/ 44

Page 37: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise: Anforderungsspezifikation

B: Anforderungsspezifikation

Glass-Gesetz

Mangel hinsichtlich der Anforderungen sind dieHauptursache fur das Scheitern von Projekten.

(nach Endres & Rombach, 2003)

Karsten Weicker, Nicole Weicker 33/ 44

Page 38: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise: Anforderungsspezifikation

B: Anforderungsspezifikation

Boehms erstes Gesetz

Fehler kommen einerseits am haufigstenwahrend der Anforderungs- und der Ent-wurfsphase vor und sind andererseits umsokostspieliger je spater sie entfernt werden.

(nach Endres & Rombach, 2003)

Karsten Weicker, Nicole Weicker 34/ 44

Page 39: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise: Anforderungsspezifikation

Aufbau der Vorlesung als Spirale

C BA

D

Code-Verstehen

Vorgehensweisen

UML

Testen funkt. Anforderungen

Strukturen und Muster

Vermeid. v. Missverstandnis

Nichtfunkt. Anforderungen

Qualitatsmanagement

A = Anforderungsanalyse

B = Anforderungsspezifikation

C = Systementwurf

D = Implementation

Aufgaben des Projektmanagements

Risikomanagement

Prozessmodelle

Kostenschatzung

Funkt. Anforderungen am Beispiel

Karsten Weicker, Nicole Weicker 35/ 44

Page 40: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Aktivitaten in allen EntwurfsprozessenSystemstrukturierung, z.B.

I Datenspeichermodell:Bericht-generator

Datenspeicher

Admin-Zugriff

Kunden-Zugriff

Waren-lager

I Client-Server-Architektur:Katalog-Server

Bilder-Server

Web-Server

Client 1 Client 2

Netzwerk

I Schichtenmodell:

Programmlogik

Datenbank

GUI

Karsten Weicker, Nicole Weicker 36/ 44

Page 41: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Aktivitaten in allen EntwurfsprozessenSystemstrukturierung, z.B.

I Datenspeichermodell:Bericht-generator

Datenspeicher

Admin-Zugriff

Kunden-Zugriff

Waren-lager

I Client-Server-Architektur:Katalog-Server

Bilder-Server

Web-Server

Client 1 Client 2

Netzwerk

I Schichtenmodell:

Programmlogik

Datenbank

GUI

Karsten Weicker, Nicole Weicker 36/ 44

Page 42: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Aktivitaten in allen EntwurfsprozessenSystemstrukturierung, z.B.

I Datenspeichermodell:Bericht-generator

Datenspeicher

Admin-Zugriff

Kunden-Zugriff

Waren-lager

I Client-Server-Architektur:Katalog-Server

Bilder-Server

Web-Server

Client 1 Client 2

Netzwerk

I Schichtenmodell:

Programmlogik

Datenbank

GUI

Karsten Weicker, Nicole Weicker 36/ 44

Page 43: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Aktivitaten in allen Entwurfsprozessen

Modellierung der SteuerungI zentrale Steuerung

I Aufruf/Ruckgabe-Modell⇒ hier sind Abweichungen vom Betrieb nur schwermoglich

I Managermodell (oder Event-Loop-Modell)

I ereignisgesteuerte SystemeI Broadcast-Modell, z.B. Integration in einem

NetzwerkI Interrupt-getriebene Modelle, z.B. Echtzeitsysteme

Karsten Weicker, Nicole Weicker 37/ 44

Page 44: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Aktivitaten in allen Entwurfsprozessen

Dekomposition in ModuleI Objektmodelle

I lose gekoppelte Objekte kommunizierenmiteinander

I an Datenanalyse orientiert

I Datenflussmodell: Funktionalitaten werdengekapselt, die Daten transformieren

Karsten Weicker, Nicole Weicker 38/ 44

Page 45: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Entwurf:Vorgehensweise

Lastenheft

ErstellungArchitektur-Vision

Dekompositionin Bausteine

Bewertung derAlternativen

PflichtenheftArchitekturdefinieren

Karsten Weicker, Nicole Weicker 39/ 44

Page 46: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Entwurf:Erstellen der Architektur-Vision

I z.T. parallel zur Anforderungsanalyse

I erste Skizze der ArchitekturI grundlegende Auswahl der

I Architekturstile (Strukturierung und Steuerung)I Architektur-/EntwurfsmusterI Technologien

I gesamte Bandbreite der Anforderungenabdecken

Karsten Weicker, Nicole Weicker 40/ 44

Page 47: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Entwurf:Dekomposition des Systems in Bausteine

I basierend auf bekannten LosungenI Referenzarchitekturen, Architekturmuster etc.

I oder anhand von Architektur-PrinzipienI anschließend: Iterative Verfeinerung der

Architektur-VisionI durch Ergebnisse aus der Anforderungsspezifikation

Karsten Weicker, Nicole Weicker 41/ 44

Page 48: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Entwurf:Bewertung von Alternativen

I große Entscheidungsfreiheit fuhrt zu vielenArchitektur-Alternativen

I Bewertungsansatze:I Checklisten: Liste detaillierter Fragen zu

funktionalen und nicht-funktionalen AnforderungenI Szenarien: Auftraggeber, Benutzer und Architekten

erarbeiten Szenarien (z.B. zur Erweiterbarkeit)I Architektur-Prototypen

Karsten Weicker, Nicole Weicker 42/ 44

Page 49: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

C: Entwurf:Bewertung von Alternativen

Curtis Gesetz

Ein guter Entwurf erfordert tiefes Wissen hin-sichtlich des Anwendungsgebietes.

(nach Endres & Rombach, 2003)

Karsten Weicker, Nicole Weicker 43/ 44

Page 50: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

Zwei Minuten AufgabeSchlagen Sie fur die folgenden Beispiele jeweils einegeeignete Systemstrukturierung vor.

I Suchmaschine zur Suche im Internet nachBildern und Web-Seiten

→ Client-Server

I elektronisches Warenhaus

→ Schichtenmodell

I Reinigungsroboter zum Saubern freierFussbodenflachen, der Wande und andereHindernisse erkennt

→ Datenspeichermodell

Karsten Weicker, Nicole Weicker 44/ 44

Page 51: Softwaretechnik -- Vorgehensweisen...The Emperor: Everything is proceeding as I have foreseen. (Return of the Jedi, 1983) Karsten Weicker, Nicole Weicker 1/ 44 Softwaretechnik –

Softwaretechnik – Vorgehensweisen

Vorgehensweise Software-Entwurf

Zwei Minuten AufgabeSchlagen Sie fur die folgenden Beispiele jeweils einegeeignete Systemstrukturierung vor.

I Suchmaschine zur Suche im Internet nachBildern und Web-Seiten→ Client-Server

I elektronisches Warenhaus→ Schichtenmodell

I Reinigungsroboter zum Saubern freierFussbodenflachen, der Wande und andereHindernisse erkennt→ Datenspeichermodell

Karsten Weicker, Nicole Weicker 44/ 44