Register or log in at GRIN

Your e-mail-address or password is wrong
Register now
For new authors: free, easy and fast
This will be used as your user name, please specify a valid e-mail address

Lost password

Your e-mail-address or password is wrong

Request a new password
Agile Methoden in der Softwareentwicklung close

Please wait

Please install the Adobe Flash Player if no e-book is displayed.

Agile Methoden in der Softwareentwicklung

Subtitle: Vergleich und Evaluierung

Diploma Thesis, 2006, 100 Pages
Author: Dipl.-Ing. (FH) Jürgen Götzenauer
Subject: Computer Science - Software

Details

Category: Diploma Thesis
Year: 2006
Pages: 100
Grade: Sehr gut
Language: German
Archive No.: V127411
ISBN (E-book): 978-3-640-33480-3
ISBN (Book): 978-3-640-33444-5

Abstract

Die Software-Industrie steht heute mehr denn je vor der Tatsache, dass ein Großteil der beauftragten Projekte die geforderte Qualität nicht erreicht, Zeit- und Budgetvorgaben überschritten werden, oder im schlimmsten Fall das Projekt noch während der Entwicklung abgebrochen wird. Die Anforderungen der Kunden an die beauftragte Software sind unklar, der Zeitraum zwischen Vertragsunterzeichnung und Auslieferung des Endprodukts wird zunehmend enger und die Entwicklung in verteilten Teams steht in Zeiten der Globalisierung auf der Tagesordnung. Der Übergang von den traditionellen Softwareentwicklungsmethoden hin zu leichtgewichtigen und agilen Vorgehensmodellen ist eine der Möglichkeiten sich diesen Herausforderungen erfolgreich zu stellen. Das Ziel der vorliegenden Arbeit ist es, die Eigenschaften und Schwerpunkte der verschiedenen Vertreter der Agilen Methoden zu erarbeiten und zu vergleichen. Zusätzlich soll aus diesen Vertretern der Agilen Methoden ein geeignetes Vorgehensmodell für die Entwicklungsabteilung eines weltweit agierenden Unternehmens im Bereich der Telekommunikation und Systemintegration ermittelt werden. Hierfür werden die unternehmensinternen Anforderungen erarbeitet und daraus ein Kriterienkatalog abgeleitet, wobei besonderes Augenmerk auf die Umsetzungsmöglichkeiten in global verteilten Softwareentwicklungsprojekten gelegt wird.


Excerpt (computer-generated)

G¨otzenauer, J¨

urgen

Agile Methoden in der Software

Entwicklung - Vergleich und Evaluierung

eingereicht als

D I P L O M A R B E I T

an der

Hochschule Mittweida (FH)

----------------------------------------------

University of Applied Sciences

Fachbereich Informationstechnik & Elektrotechnik

Graz, 2005

Vorgelegte Arbeit wurde verteidigt am:

16. Januar 2006


Bibliografische Beschreibung

otzenauer, J¨

urgen:

Agile Methoden in der Softwareentwicklung - Vergleich und Evaluierung. - 2005 - 103 S.

Graz, Hochschule Mittweida (FH), Fachbereich Informationstechnik & Elektrotechnik,

Diplomarbeit, 2005

Referat

Die Software-Industrie steht heute mehr denn je vor der Tatsache, dass ein Großteil der

beauftragten Projekte die geforderte Qualit¨

at nicht erreicht, Zeit- und Budgetvorgaben

¨

uberschritten werden, oder im schlimmsten Fall das Projekt noch w¨

ahrend der Entwicklung

abgebrochen wird.

Die Anforderungen der Kunden an die beauftragte Software sind unklar, der Zeitraum

zwischen Vertragsunterzeichnung und Auslieferung des Endprodukts wird zunehmend en-

ger und die Entwicklung in verteilten Teams steht in Zeiten der Globalisierung an der

Tagesordung.

Der ¨

Ubergang von den traditionellen Softwareentwicklungsmethoden hin zu leichtge-

wichtigen und agilen Vorgehensmodellen ist eine der M¨

oglichkeiten sich diesen Herausfor-

derungen erfolgreich zu stellen.

Das Ziel der vorliegenden Arbeit ist es, die Eigenschaften und Schwerpunkte der ver-

schiedenen Vertreter der Agilen Methoden zu erarbeiten und zu vergleichen. Zus¨

atzlich

soll aus diesen Vertretern der Agilen Methoden ein geeignetes Vorgehensmodell f¨

ur die Ent-

wicklungsabteilung eines weltweit agierenden Unternehmens im Bereich der Telekommuni-

kation und Systemintegration ermittelt werden. Hierf¨

ur werden die unternehmensinternen

Anforderungen erarbeitet und daraus ein Kriterienkatalog abgeleitet, wobei besonderes

Augenmerk auf die Umsetzungsm¨

oglichkeiten in global verteilten Softwareentwicklungs-

projekten gelegt wird.

1


Danksagung

Ich m¨

ochte mich bei Herrn Prof. Dr.-Ing. Uwe Schneider von der Hochschule Mittweida

herzlich f¨

ur seine Unterst¨

utzung bei der Umsetzung der vorliegenden Arbeit bedanken.

Mein Dank gilt auch Herrn Dipl.-Ing. Mario Walder von der BearingPoint INFONOVA

GmbH, der mir die M¨

oglichkeit gab, die vorliegende Arbeit innerhalb meines beruflichen

Umfelds umzusetzen und mir immer mit Rat und Tat zur Verf¨

ugung stand.

Weiters m¨

ochte ich mich bei Herrn Dr. Peter Hruschka von der Atlantic Systems Guild

ur seine wertvollen Anregungen hinsichtlich der Anwendbarkeit Agiler Methoden in glo-

bal verteilten Softwareentwicklungsprojekten bedanken.

Mein ganz besonderer Dank gilt jedoch meiner Frau Martina und meiner Familie, die

mir auch in den entbehrungsreichen Zeiten des berufsbegleitenden Studiums zur Seite

standen und immer f¨

ur mich da waren.

urgen G¨

otzenauer

Graz, am 20. Dezember 2005

2


Inhaltsverzeichnis

1

Einleitung

8

1.1

Motivation

.

8

1.2

Zielsetzung

.

10

1.3

Gliederung

.

11

2

Klassische Softwareentwicklung

13

2.1

Die Softwarekrise .

13

2.2

Software Engineering - Methodik als L¨

osungsansatz .

15

2.3

Traditionelle Vorgehensmodelle .

16

2.3.1

Das Phasen- oder Wasserfallmodell .

16

2.3.2

Das V-Modell .

19

2.3.3

Das Spiralmodell .

20

2.4

Erfolgskriterien in Softwareprojekten .

21

3

Agile Softwareentwicklung

25

3.1

Eine neue Bewegung entsteht .

25

3.2

Das Agile Manifest .

26

3.3

Die vier Agilen Werte

.

28

3.3.1

Individuen und Interaktionen .

28

3.3.2

Funktionierende Software .

28

3.3.3

Zusammenarbeit mit dem Kunden .

28

3.3.4

Vorbereitung auf unbekannte ¨

Anderungen .

29

3.4

Die zw¨

olf Agilen Prinzipien .

29

4

Anforderungen an einen Entwicklungsprozess

31

4.1

Einordnung der Agilen Vorgehensmodelle

.

31

4.2

Unternehmensspezifische Anforderungen .

32

4.2.1

Unternehmensdarstellung .

32

4.2.2

Projekteigenschaften und Arbeitsumfeld .

32

4.3

Der Kriterienkatalog .

35

4.3.1

Einordnung der Agilen Methodik .

36

4.3.2

Projektgr¨

oße .

36

4.3.3

Projektphasen

.

37

4.3.4

Gewichtung .

37

4.3.5

Projektumwelt .

38

3


5

Vergleich und Evaluierung

39

5.1

Adaptive Software Development (ASD)

.

39

5.1.1

Rollen und Verantwortlichkeiten

.

40

5.1.2

Prozessbeschreibung .

40

5.1.3

Praktiken und Charakteristika

.

42

5.1.4

Zusammenfassung und Evaluierung .

43

5.2

Crystal Methods .

45

5.2.1

Rollendefinitionen

.

47

5.2.2

Prozessbeschreibung .

48

5.2.3

Praktiken und Charakteristika

.

50

5.2.4

Zusammenfassung und Evaluierung .

51

5.3

Scrum .

53

5.3.1

Rollen und Verantwortlichkeiten

.

53

5.3.2

Prozessbeschreibung .

54

5.3.3

Praktiken und Charakteristika

.

56

5.3.4

Zusammenfassung und Evaluierung .

58

5.4

Dynamic Systems Development Method (DSDM) .

60

5.4.1

Rollen und Verantwortlichkeiten

.

61

5.4.2

Prozessbeschreibung .

61

5.4.3

Praktiken und Charakteristika

.

63

5.4.4

Zusammenfassung und Evaluierung .

64

5.5

Extreme Programming (XP)

.

66

5.5.1

Rollen und Verantwortlichkeiten

.

67

5.5.2

Prozessbeschreibung .

67

5.5.3

Praktiken und Charakteristika

.

69

5.5.4

Zusammenfassung und Evaluierung .

71

5.6

Feature Driven Development (FDD) .

73

5.6.1

Rollen und Verantwortlichkeiten

.

73

5.6.2

Prozessbeschreibung .

75

5.6.3

Praktiken und Charakteristika

.

77

5.6.4

Zusammenfassung und Evaluierung .

78

5.7

Zusammenfassung der Evaluierung .

80

6

Agile Methoden und global verteilte Entwicklung

81

6.1

Eigenschaften gobal verteilter Entwicklung .

81

6.2

Organisatorische Komplexit¨

at in global verteilter Entwicklung .

82

6.3

Agile Praktiken in global verteilter Entwicklung .

83

6.4

Umsetzung in der BearingPoint INFONOVA GmbH

.

86

7

Zusammenfassung

88

7.1

Res¨

umee .

88

7.2

Ergebnisse .

89

7.3

Schlussbemerkung und Ausblick .

93

Literaturverzeichnis

95

4


Abbildungsverzeichnis

2.1

Das Phasen- oder Wasserfallmodell .

17

2.2

Das erweiterte Phasen- oder Wasserfallmodell .

18

2.3

Das NATO-Phasenmodell (Quelle: [NR68, S.13]) .

19

2.4

Das V-Modell .

20

2.5

Das Spiralmodell (Quelle: wikipedia.org) .

21

2.6

IT-Projekte von 1994 bis 2004 (Quelle: Standish Group Int.) .

23

2.7

Rezept f¨

ur Projekterfolg (Quelle: Standish Group Int.) .

24

4.1

Projekt-Entwicklung vs. Produktentwicklung .

33

4.2

Struktur von Projektmitarbeitern .

34

4.3

Struktur von verteilten Projektteams .

35

5.1

ASD Prozessmodell .

41

5.2

ASD Projektphasen (Quelle: [DK05, S.142] .

42

5.3

¨

Ubersicht der verschiedenen Crystal Methodiken .

46

5.4

Crystal Projektphasen (Quelle: [DK05, S.149]) .

50

5.5

Das Scrum-Prozessmodell in der Grob¨

ubersicht .

54

5.6

Der Scrum-Prozess im ¨

Uberblick .

56

5.7

Beispielhafte Burndown-Chart

.

57

5.8

DSDM Prozessmodell

.

62

5.9

XP Prozess¨

ubersicht .

68

5.10 Test Driven Development (TDD) .

69

5.11 FDD Prozess¨

ubersicht .

75

5.12 FDD Prozess-Schritte (Quelle: Kevin Morrison) .

76

6.1

Abnahme der Kommunikationsh¨

aufigkeit (Quelle: [Kot01, S.56])

.

83

5


Tabellenverzeichnis

2.1

Kriterien f¨

ur den Projekterfolg im Jahr 1994

.

22

5.1

Evaluierungsmatrix f¨

ur Adaptive Software Development (ASD) .

44

5.2

Evaluierungsmatrix f¨

ur Crystal Methods .

52

5.3

Evaluierungsmatrix f¨

ur Scrum .

59

5.4

Die MoSCoW-Regel

.

63

5.5

Evaluierungsmatrix f¨

ur Dynamic Systems Development Method (DSDM)

.

65

5.6

Evaluierungsmatrix f¨

ur Extreme Programming (XP) .

72

5.7

FDD Zertifizierungsstufen .

73

5.8

Evaluierungsmatrix f¨

ur Feature Driven Development (FDD) .

79

5.9

Evaluierungsmatrix - Gesamt¨

ubersicht .

80

6


Abk¨

urzungsverzeichnis

ACM Association for Computing Machinery

ADT Agile Database Techniques

AM Agile Modelling

ASD Adaptive Software Development

DIN Deutsches Institut fuer Normung

DSDM Dynamic Systems Development Method

FDD Feature Driven Development

HTML Hypertext Markup Language

ISO International Organization for Standardization

IT Information Technology

JAD Joint Application Development

LSD Lean Software Development

NATO North Atlantic Treaty Organisation

PP Pragmatic Programming

SW Software

TDD Test Driven Development

TSP Team Software Process

UI User Interface

XP eXtreme Programming

7


Kapitel 1

Einleitung

In diesem Kapitel wird die grundlegende Motivation und Ausgangssituation der vorlie-

genden Arbeit beschrieben, die Aufgabenstellungen und Zielsetzungen pr¨

azisiert und die

Gliederung des Dokuments n¨

aher erl¨

autert.

1.1

Motivation

Software findet sich mittlerweile in allen Bereichen des Lebens und ist schon lange aus

unserem Alltag nicht mehr wegzudenken. Der Wandel hin zur nahezu vollst¨

andig automa-

tisierten Informationsgesellschaft hat sich in den letzten Jahren bereits vollzogen. Neben

den herk¨

ommlichen Computersystemen, die sich schon in fast jedem Haushalt und jedem

uro finden, steigt auch die Verbreitung von sogenannten Embedded-Systems1 rasant an.

Man m¨

ochte meinen, dass durch diese ubiquit¨

are Nutzung von Software-Komponenten

deren Entwicklung ein qualitativ zumindest gleichwertiges Niveau wie die Entwicklung

von Produkten in vergleichbaren traditionellen Ingenieursdisziplinen (z.B. Maschinenbau,

Elektrotechnik oder Architektur) erreicht hat. Doch schon in der ersten H¨

alfte der 60er

Jahre des 20. Jahrhunderts zeichnete sich in der Industrie eine Situation ab, die im Bereich

der Software-Entwicklung zu dem Begriff Softwarekrise2 f¨

uhrte:

· Programme taten nicht das, was sie sollten, oder aber sie taten das, was sie tun

sollten, nur fehlerhaft.

· Software kostete, wenn sie ¨

uberhaupt je fertig wurde, ein Vielfaches dessen, was zu

Beginn geplant war.

· Termine wurden selten eingehalten und die nachtr¨

agliche ¨

Anderung von exisitieren-

der Software war nahezu unm¨

oglich.

1Embedded System:

A computer system that is part of a larger system and performs some of the

"

requirements of that system; for example, a computer system used in an aircraft or mobile phone." [IEE90,

S.30]

2Softwarekrise:

Bezeichnet ein Mitte der sechziger Jahre des zwanzigsten Jahrhunderts auftretendes

"

Ph¨

anomen: Erstmalig ¨

uberstiegen die Kosten f¨

ur die Software die Kosten f¨

ur die Hardware. In der Folge

kam es zu den ersten großen gescheiterten Software-Projekten." (Vgl. http://de.wikipedia.org/wiki/

Softwarekrise) - Wird in Kapitel 2 - Abschnitt 2.1, Seite 13 n¨

aher erl¨

autert.

8


KAPITEL 1. EINLEITUNG

9

Die Software-Industrie war zu dieser Zeit nicht mehr in der Lage, mit den damals

bekannten Techniken und Werkzeugen die Entwicklung großer Programme zu beherrschen.

[PS94, S.19ff]

In einer ersten Reaktion auf die Softwarekrise erkannte man, dass ein v¨

ollig neues und

systematisches Vorgehen notwendig war, um von der damals vorherrschenden Kunst des

"

Programmierens" den Schritt zu ingenieurm¨

aßiger Softwareentwicklung zu gehen. Vor die-

sem Hintergrund wurde 1968 auf einer NATO-Konferenz in Garmisch der Begriff Software

Engineering3 gepr¨

agt. [NR68, S.19ff]

Man sah Parallelen zur Herstellung von Produkten im Bereich der Ingenieurwissen-

schaften und wollte deren methodisches Vorgehen adaptieren. Der Entwicklungsprozess

von Software sollte dadurch plan- und kalkulierbar werden. Die oben genannten Umst¨

ande

und die steigende Komplexit¨

at der Programme bei kommerziellen Softwareprojekten f¨

uhr-

ten zur Definition von sogenannten Vorgehensmodellen4, mit denen die Arbeitsabl¨

aufe in

Softwareprojekten standardisiert werden sollten. Es etablierte sich ein erstes systemati-

sches Modell, das sich gr¨

oßtenteils am Vorbild von industriellen Fertigungsprozessen ori-

entierte und den Softwareentwicklungsprozess in die vier großen Phasen Analyse, Entwurf,

Implementierung und Test gliederte, das sogenannte Phasen- oder Wasserfallmodell 5.

Inzwischen gibt es eine große Anzahl an wissenschaftlichen Untersuchungen zu der

Fragestellung, wie man Software qualitativ hochwertig und zugleich fristgerecht und wirt-

schaftlich ¨

okonomisch entwickeln k¨

onnte. Es wurden weitere Methoden und Vorgehens-

modelle entwickelt, welche die Bereiche der Softwareentwicklung Schritt f¨

ur Schritt in ihre

Teilprozesse zerlegen und umfangreiche Regelwerke zur effizienten Softwareentwicklung zur

Verf¨

ugung stellen. Dennoch ist es auch heute noch h¨

aufig so, dass viele Softwareprojekte

die Anforderungen, welche vom Kunden gefordert werden, nicht oder nur unzureichend

erf¨

ullen, Termin- und Budgetvorgaben ¨

uberschreiten und somit letztendlich die Projekt-

ziele verfehlen. [Int95, S.3ff]

Es stellt sich zunehmend heraus, dass bei der Entwicklung von Software andere Ge-

setzm¨

aßigkeiten gelten, als in den traditionellen Ingenieursdisziplinen und Softwarepro-

jekte beim Projektstart oftmals mit vielen Konstanten begonnen werden, die sich aber im

weiteren Projektverlauf sehr schnell zu Variablen ¨

andern.

So sollen zum Beispiel Preis, Liefertermin, Qualit¨

at und Umfang der geforderten Soft-

ware schon zu Vertragsbeginn feststehen und das Projekt mit Hilfe eines definierten Pro-

jektplans abgewickelt werden. Doch sind diese Anforderungen an ein Softwareprodukt

angst nicht so stabil und weisen h¨

aufig Konflikte und Zielkonkurrenzen auf. Niedrigst-

preise widersprechen umfangreicher Funktionalit¨

at und sportlich" definierte Zeitrahmen

"

konkurrieren naturgem¨

aß mit den hohen Qualit¨

atsanspr¨

uchen der meisten Kunden.

Dynamische Projekte an der Spitze von Markt und Technologie entwickeln ihre kon-

kreten Anforderungen oft sogar erst w¨

ahrend des eigentlichen Projektverlaufs.

3Software Engineering:

The application of a systematic, disciplined, quantifiable approach to the

"

development, operation, and maintenance of software." [IEE90, S.67]

4Vorgehensmodell: Gliedert einen Prozess in verschiedene, strukturierte Phasen, denen wiederum ent-

"

sprechende Methoden und Techniken zugeordnet sind. Aufgabe eines Vorgehensmodells ist es, die allgemein

in einem Prozess auftretenden Aufgabenstellungen und Aktivit¨

aten in ihrer logischen Ordnung darzustel-

len." (Vgl. http://de.wikipedia.org/wiki/Vorgehensmodell)

5Wird in Kapitel 2 - Unterabschnitt 2.3.1, Seite 16 dieser Arbeit n¨aher erl¨autert.



Comments

No comments yet

Add Comment
Your comment is reviewed before being published

Other users also were interested in the following titles:

Erstellen einer schriftlichen Hausarbeit

Author: Claudia Nickel
Presentations, Models, Tutorials, Instructions, 2006 Download as PDF-file for 4,99 EUR

Grundtechniken wissenschaftlichen Arbeitens

Author: Maik Philipp
Presentations, Models, Tutorials, Instructions, 2004 Download as PDF-file for 5,99 EUR

This text can be quoted and accessed from this url:

http://www.grin.com/e-book/127411/agile-methoden-in-der-softwareentwicklung
please wait Please wait