21
Evolutionsprozesse Dr. Thorsten Arendt Marburg, 22. Oktober 2015

Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Evolutionsprozesse

Dr. Thorsten Arendt Marburg, 22. Oktober 2015

Page 2: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Überblick

• Betrachtung der bekannten Softwareentwicklungsprozesse bezüglich Software-Evolution

• Evolutionsprozesse

• Techniken für Software-Evolution

• Beispiele für Evolutionsprozesse

• Entwicklungsprozesse in Open-Source-Projekten

• Kosten, Aufgaben und Probleme

2 Software-Evolution WS 2015/2016

Page 3: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Das Wasserfallmodell von Barry Boehm

3 Software-Evolution WS 2015/2016

System Requirements

Software Requirements

Preliminary Design

Detailed Design

Code and Debug

Test and PreOperations

Operations + Maintenance

Validation

Validation

Validation

Validation

Developm. Test

Validation Test

Revalidation Evolution → Wo ist hier die Evolution?

Page 4: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

V-Modell

4 Software-Evolution WS 2015/2016

ExploratoryConceptual

Plans & Requirements

RequirementsBaseline

ProductDesign

DetailedDesign

Code Unit test

Acceptancetest

Usage & Support

VALIDATION

VERIFICATION

ConceptValidation

Prod. Des. Verification

Det. Des. Verification

Req. Val. / Des. Val. / Test Val.

ExploratoryConceptual

Plans & Requirements

RequirementsBaseline

ProductDesign

DetailedDesign

Code Unit test

Acceptancetest

Usage & Support

VALIDATION

VERIFICATION

ConceptValidation

Prod. Des. Verification

Det. Des. Verification

Req. Val. / Des. Val. / Test Val.

Evolution →

Wo ist hier die Evolution?

Page 5: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

IBM Rational Unified Process (RUP)

5 Software-Evolution WS 2015/2016

(Konstruktion) (Inbetriebnahme) (Anfang) (Vertiefung )

Kern-Arbeits-schritte

Unter-stützende Arbeits-schritte

Evolution

Wo ist hier die Evolution?

Page 6: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Iterative Software-Entwicklung

6 Software-Evolution WS 2015/2016

Design (Lösungsmodell)

Implementierung (Lösung)

Analyse (Anforderungsmodell)

Test (Evaluierung)

Vorbereitung Nachbereitung

Wo ist hier die Evolution?

Page 7: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Agile Praktiken: Scrum, XP, etc.

7 Software-Evolution WS 2015/2016

• Iterative Entwicklung (getrieben durch neue oder geänderte Features)

• ständige Kommunikation der Entwickler mit dem Management und den Benutzern, kurze Rückkopplungsschleifen, schnelle Rückmeldungen

• Testgetriebene Entwicklung: Erst die Tests, dann die Implementierung.

• Ständiges Refactoring, fortlaufende Integration von Systemteilen

• Paarprogrammierung: Das Modell und der Programmcode werden immer von zwei Entwicklern/innen gleichzeitig entwickelt.

• Schnelle Code Reviews

• Gemeinsames Eigentum am Code Wo ist hier die Evolution?

Page 8: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Evolutionsprozesse

8 Software-Evolution WS 2015/2016

• Änderungsanforderungen sind die Auslöser für Software Evolution.

• Die Wahl eines bestimmten Evolutionsprozesses hängt von den folgenden Aspekten ab:

– Die Art des zu pflegenden Systems – Dem benutzten Entwicklungsprozess – Der Erfahrung und dem Wissen der Entwickler

Page 9: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Arten der Software-Wartung

9 Software-Evolution WS 2015/2016

• Perfective: Verbesserung der Systemfunktionalität

• Adaptive: Anpassung an Änderungen in der Umgebung

• Corrective: Beseitigung von Fehlern

System releaseplanning

Changeimplementa tion

Systemrelease

Impactanalysis

Changerequests

Adaptivemaintenance

Correctivemaintenance

Perfectivemaintenance

[Sommerville]

Page 10: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Evolutionsprozesse: Minizyklus

10 Software-Evolution WS 2015/2016

• Änderungsanforderung – Änderung der Anforderungsbeschreibung

• Planungsphase – Verstehen betroffener Programmkomponenten – Analyse der Änderungsauswirkungen

• Realisierung der Änderung – Umstrukturierung/Refactoring, um die anstehende Änderung

leichter durchführen zu können – Alle betroffenen Teile ändern

• Evaluation des Softwaresystems – Regressionstests

• Anpassung der Dokumentation

Page 11: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Techniken für Software-Evolution

11 Software-Evolution WS 2015/2016

• Planungsphase – Programmverstehen

• Wie funktioniert das existierende Programm? Wie ist es strukturiert?

– Analyse der Änderungsauswirkungen • Welche Teile werden durch die Änderungen betroffen sein?

• Realisierung der Änderung – Alle betroffenen Teile sollen konsistent geändert werden. – Restrukturierung/Refactoring

• Verbesserung der Softwarestrukturen, ohne das Systemverhalten zu ändern.

• Evaluation des Softwaresystems – Testen: War die Änderung lokal? Oder haben sich Teile geändert, die

gar nicht betroffen waren?

Page 12: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Evolutionsprozesse: Dringende Änderungen

12 Software-Evolution WS 2015/2016

• Dürfen realisiert werden, ohne alle Schritte eines wohldefinierten Evolutionsprozesses zu durchlaufen

• Dringende Änderungen sind nötig, wenn

– ein schwerwiegender Fehler beseitigt werden muss

– eine Änderung der Systemumgebung (z.B. neue Version des Betriebssystems) unerwartete Effekte zeigt

– Änderungen im Geschäftsablauf eine schnelle Antwort benötigt (z.B. Release eines Konkurrenzprodukts)

Page 13: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Beispiel für einen Evolutionsprozess (1)

13 Software-Evolution WS 2015/2016

• Änderungsanforderung – Legacy System mit 2-Ebenen-Architektur

service-orientiertes System

• Planungsphase – Was sind die funktionalen Einheiten, die Services werden? – Wie können diese Einheiten voneinander entkoppelt werden?

• Realisierung der Änderung – Unterscheidung: Web Services, interne Services und Operationen – Code Annotation: z.B. UI, Logic, Data, um den Code zu entwirren – Refactorings Methoden/Klassen mit eindeutigem Zweck

• Evaluation des Softwaresystems – Unit-Tests für die neuen Services

Page 14: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Beispiel für einen Evolutionsprozess (2)

14 Software-Evolution WS 2015/2016

• Änderungsanforderung – Einheitlicher Zugriff auf Daten aus verschiedenen Komponenten

• Planungsphase – Verständnis der Komponentenschnittstellen – Integration in eine gemeinsame Schnittstelle

Anwendungen

Komponenten

Page 15: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Beispiel für einen Evolutionsprozess (2)

15 Software-Evolution WS 2015/2016

• Realisierung der Änderung – Entwurf einer neuen Schicht, die die gemeinsame Schnittstelle für

Anwendungen und spezifische für verschiedene Komponententypen hat – Anpassung der Komponenten an ihren Schnittstellentyp

• Evaluation des Softwaresystems – Unit-Test für die Komponenten und die neue Schnittstelle

Anwendungen

Neue Schicht

Komponenten

Page 16: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Entwicklungsprozesse in Open-Source-Projekten

16 Software-Evolution WS 2015/2016

• Meist eine Form von Extreme Programming

• Meist minimaler Verwaltungsaufwand

• Frühe Phasen wie eine exakte Anforderungsanalyse spielen häufig keine Rolle.

• Der Entwicklungsprozess ist meist dynamisch.

• Es gibt nicht den einen Entwicklungsprozess für OSS.

• Dynamische Zielanpassung – Z.B. GCC ursprünglich ein C-Compiler für 32-Bit-Plattformen.

Heute werden mehr als 200 Plattformen unterstützt.

• Intensive Werkzeugunterstützung

Page 17: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Technologische Unterstützung

17 Software-Evolution WS 2015/2016

• Automatisches Management von – Mailinglisten – Diskussionsforen

• (Öffentliche) Repositories mit Web-Oberfläche – Subversion – Git / GitHub

• Große Anzahl von Mirror sites, um die Verfügbarkeit der Projektdaten zu erhöhen

• Werkzeugunterstützte Fehlererfassung und -bearbeitung und automatisiertes Fehlerverfolgungssystem

– Bugzilla

Page 18: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Welche Kosten verursacht Software Evolution?

18 Software-Evolution WS 2015/2016

• Von der Software abhängige Kosten (interne Faktoren) – Änderungsvorhersage: Welche Systemteile werden sich stark

ändern? – Softwarequalität: Je höher die Qualität, desto niedriger die

Kosten.

• Von der Software unabhängige Kosten (externe Faktoren) – Teamstabilität: niedrigere Kosten bei stabilem Team – Entwicklererfahrungen: Häufig sind Entwickler für Software-

Wartung unerfahren – Wartungsvertrag: Ohne Wartungsvertrag wenig ‚Design for

Change‘ – Alter der Software: Je älter, desto schwieriger zu warten.

Page 19: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Aufgaben und Probleme

19 Software-Evolution WS 2015/2016

• Diagnoseerfahrungen: Woher kommt der Fehler? Wie ist das Programm aufgebaut?

• Programmiererfahrungen: Wie können neue Funktionalitäten geschickt eingebaut werden, ohne neue Fehler zu produzieren?

• Debugging und Testerfahrungen: Was hat sich geändert, was nicht? Was muss getestet werden?

• Dokumentationserfahrung: Welche Funktionalität hat sich geändert? • Frustresistenz: unzufriedene Nutzer; Beseitigung von Problemen, die

andere verursacht haben; schlecht geschriebener und dokumentierter Code

Page 20: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Zusammenfassung

20 Software-Evolution WS 2015/2016

• Softwareentwicklungsprozesse müssen Evolution genügend berücksichtigen.

• Ein Softwaresystem muss für Evolution vorbereitet sein.

• Evolutionsschritte sollten systematisch durchgeführt werden, um die Qualität eines Systems nicht zu beeinträchtigen.

• Hypothese: Ein Großteil des Erfolgs von Open-Source-Software ist auf erfolgreiche Evolutionsprozesse zurückzuführen.

• Evolutionskosten sind schwer abzuschätzen.

Page 21: Dr. Thorsten Arendt Marburg, 22. Oktober 2015 · Das Wasserfallmodell von Barry Boehm 3 Software-Evolution WS 2015/2016 System Requirements Software Requirements Preliminary Design

Sekundär-Literatur

21 Software-Evolution WS 2015/2016

• Barry W. Boehm: Software Engineering Economics, 1981

• Die Beauftragte der Bundesregierung für Informationstechnik: V-Modell XT (http://www.v-modell-xt.de/)

• IBM: Rational Unified Process / RUP (http://www-01.ibm.com/software/rational/rup/)

• Roman Pichler, Scrum – Agiles Projektmanagement erfolgreich einsetzen, 1. Auflage, 2007

• Ian Sommerville: Software Engineering, 9. Auflage, 2013