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 Entwicklung von Web 2.0 Applikationen mit Ruby on Rails close

Please wait

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

Agile Entwicklung von Web 2.0 Applikationen mit Ruby on Rails

Diploma Thesis, 2007, 140 Pages
Author: Dipl.-Ing.(FH) Rico Schulz
Subject: Communications: Multimedia, Internet, New Technologies

Details

Category: Diploma Thesis
Year: 2007
Pages: 140
Grade: 1,3
Language: German
Archive No.: V128833
ISBN (E-book): 978-3-640-34600-4


Abstract

Die vorliegende Arbeit beschäftigt sich mit Web 2.0, Ruby on Rails und der agilen Softwareentwicklung. Es wird zunächst der Begriff „Web 2.0“ anhand dessen Prinzipien vorgestellt. Dabei werden die zentralen Kennzeichen des Web 2.0 herauskristallisiert und anschließend in kurzer ausformulierter Form dargelegt. Desweiteren wird Ruby on Rails vorgestellt. Dieses Framework dient der Entwicklung von datenbankbasierten Webapplikationen. Es soll durch innovative Funktionalitäten die Webentwicklung effizienter gestalten. Im weiteren Verlauf wird geprüft, ob sich Ruby on Rails für die Entwicklung von Web 2.0 Applikationen eignen könnte. Desweiteren wird das Konzept der agilen Softwareentwicklung beschrieben. Es wird dabei in kurzer Form auf die traditionellen Vorgehensweisen der Softwareentwicklung eingegangen. Später wird das Agile Manifest und der populärste agile Vertreter „Extreme Programming“ ausführlich dargestellt. Dies soll vorbereitend für die abschließende Evaluation des Potentials von Ruby on Rails für die agile Softwareentwicklung wirken.


Excerpt (computer-generated)

Agile Entwicklung von Web 2.0 Applikationen

mit Ruby on Rails

Diplomarbeit

Hochschule für Technik, Wirtschaft und Kultur Leipzig (FH)

Fachbereich Medien

Studiengang Medientechnik

Vorgelegt von:

Rico Schulz

Leipzig, den 15.05.2007


Bibliografischer Nachweis und Autorreferat

Bibliografischer Nachweis

Schulz, Rico

Agile Entwicklung von Web 2.0 Applikationen mit Ruby on Rails

Diplomarbeit, Hochschule für Technik, Wirtschaft und Kultur Leipzig (FH),

Fachbereich Medien, Studiengang Medientechnik, 2007

131 Seiten, 29 Bilder, 1 Tabelle, 75 Quellenangaben

Autorreferat

Die vorliegende Arbeit beschäftigt sich mit Web 2.0, Ruby on Rails und der agilen

Softwareentwicklung. Es wird zunächst der Begriff ,,Web 2.0" anhand dessen Prinzipien

vorgestellt. Dabei werden die zentralen Kennzeichen des Web 2.0 herauskristal isiert und

anschließend in kurzer ausformulierter Form dargelegt.

Desweiteren wird Ruby on Rails vorgestel t. Dieses Framework dient der Entwicklung von

datenbank-basierten Webapplikationen. Es soll durch innovative Funktionalitäten die

Webentwicklung effizienter gestalten. Im weiteren Verlauf wird geprüft, ob sich Ruby on

Rails für die Entwicklung von Web 2.0 Applikationen eignen könnte.

Desweiteren wird das Konzept der agilen Softwareentwicklung beschrieben. Es wird dabei in

kurzer Form auf die traditionellen Vorgehensweisen der Softwareentwicklung eingegangen.

Später wird das Agile Manifest und der populärste agile Vertreter ,,Extreme Programming"

ausführlich dargestellt. Dies sol vorbereitend für die abschließende Evaluation des

Potentials von Ruby on Rails für die agile Softwareentwicklung wirken.


Inhaltsverzeichnis

Inhaltsverzeichnis

1

Einleitung 1

1.1

Motivation und Ziel der Arbeit 2

1.2

Aufbau der Arbeit 2

2

Begriffserklärungen und Definitionen 4

2.1

Web 2.0 4

2.2

Framework, Programmbibliothek 4

2.3

Objektorientierung 5

2.4

Agile Softwareentwicklung 6

2.5

Ruby on Rails 7

3

Web 2.0 8

3.1

Einleitung 8

3.2

O′Reil ys Prinzipien des Web 2.0 9

3.2.1 Einleitung 9

3.2.2 Das Web als Plattform 10

3.2.3 Die Nutzung kol ektiver Intel igenz 13

3.2.4 Die Daten als nächstes ,,Intel Inside" 16

3.2.5 Abschaffung des Software-Lebenszyklus 17

3.2.6 Lightweight Programming Models (LPMs) 18

3.2.7 Software über die Grenzen einzelner Geräte hinaus 19

3.2.8 Benutzerführung (Rich User Experiences) 20

3.2.9 Zusammenfassung und Beschreibung der zentralen Kennzeichnung des Web

2.0

23

3.3

Die Gefahren des Web 2.0 24

3.3.1 Die Daten 24

3.3.2 Cyber-Stalking 25

3.3.3 Barrierefreiheit 25

3.3.4 Hackerangriffe 25

3.3.5 Andere Gefahren 26

4

Ruby on Rails 28

4.1

Einleitung 28

4.2

Die Prinzipien 29

4.2.1 Model-View-Control er (MVC) 29

4.2.2 Konvention über Konfiguration 34

4.2.3 DRY (don′t repeat yourself) 36

4.3

Ordnerstruktur und Rails-Umgebungen 36

4.3.1 Ordnerstruktur 36


Inhaltsverzeichnis

4.3.2 Rails-Umgebungen 37

4.4

Rails erweitern 38

4.4.1 RubyGem 38

4.4.2 Rails-Plugins 39

4.5

Generatoren 39

4.5.1 Scaffold-Generator 39

4.5.2 Weitere Generatoren 40

4.6

Versions- und Migrationskontrollen 41

4.6.1 Migrationskontrol e 41

4.6.2 Versionskontrol e 42

4.7

Internationalisierung 42

4.8

Webservices 43

4.9

E-Mail 43

4.10

Tests 43

4.10.1

Test-Datenbank 44

4.10.2

Verzeichnisstruktur 44

4.10.3

Unit-Tests 44

4.10.4

Funktionale Tests 44

4.10.5

Integration-Tests 44

4.10.6

Test-Fixtures 45

4.10.7

Mocks 45

4.10.8

Brakepointing 45

4.11

Rails-Helper 45

4.11.1

HTML-Tag 46

4.11.2

Pagination 46

4.11.3

Formatierung 47

4.11.4

Debug, Benchmark, Cache 47

4.11.5

RIA 47

4.11.6

SQL-Helper 48

4.11.7

Validierung 48

4.11.8

Callback 49

4.12

Skalierbarkeit 50

4.13

Sicherheit 51

4.13.1

Barrierefreiheit 51

4.13.2

Hackerangriffe 52

4.14

Rails-Anwendungen in der Praxis 54

4.15

Rails und Web 2.0 54

4.15.1

Einleitung 54

4.15.2

Das Web als Plattform nutzen 55


Inhaltsverzeichnis

4.15.3

Die Nutzung kol ektiver Intel igenz 55

4.15.4

Die Daten als nächstes ,,Intel Inside" 56

4.15.5

Abschaffung des Software-Lebenszyklus 56

4.15.6

Lightweight Programming Models (LPM) 57

4.15.7

Software über die Grenzen einzelner Geräte hinaus 57

4.15.8

Benutzerführung (Rich User Experiences) 57

4.15.9

Zusammenfassung 58

5

Agile Softwareentwicklung 59

5.1

Begriffsklärung 59

5.1.1 Software-Entwicklung 59

5.1.2 System 59

5.1.3 Modell 60

5.1.4 Agil 60

5.1.5 Methode 60

5.2

Einleitung 60

5.3

Traditionelle Softwareentwicklung 61

5.3.1 Wasserfal -Model 63

5.3.2 V-Modell 64

5.3.3 Zusammenfassung 65

5.4

Das agile Manifest 65

5.4.1 Einleitung 65

5.4.2 Werte 66

5.4.3 Prinzipien 67

5.4.4 Agile Praktiken 70

5.4.5 Agile Methodiken 71

5.5

Extreme Programming (XP) 73

5.5.1 Einleitung 73

5.5.2 Werte 74

5.5.3 Grundprinzipien 75

5.5.4 Rollen 76

5.5.5 Prozess 78

5.5.6 Praktiken 81

5.5.7 Anwendbarkeit 84

5.5.8 Zusammenfassung 85

6

Vorgehensweise und Methodik 86

6.1

Einleitung und Wahl der Evaluationsmethode 86

6.2

Vorbereitung der Evaluation 86

6.2.1 Einleitung 86

6.2.2 Leichtgewichtigkeit/Einfachheit 86


Inhaltsverzeichnis

6.2.3 Feedback 87

6.2.4 inkrementel /iterative Entwicklung 88

6.2.5 Auf Änderungen ausgelegter Softwareentwicklungsprozess 89

6.2.6 Eignung von Ruby on Rails für die agile Softwareentwicklung 90

6.3

Überlegungen zu Leistungsstandards 91

7

Durchführung und Präsentation der Ergebnisse 92

7.1

Einleitung 92

7.2

Dokumentation der Untersuchungsdurchführung und Präsentation der Ergebnisse

92

7.2.1 Leichtgewichtigkeit des Frameworks 92

7.2.2 Gute Lesbarkeit des Programmcodes 93

7.2.3 Bereitstellung von Funktionalitäten zur Erstel ung leichtgewichtiger

Technologien 94

7.2.4 Bereitstellung von Funktionalitäten zur Erstel ung leichtgewichtiger

Dokumentationen 94

7.2.5 Unabhängige Test-Umgebung für Programmtests 95

7.2.6 Automatisierte Unit-Tests 95

7.2.7 Bereitstellung von sonstigen Funktionalitäten zur zügigen Feedbackgewinnung

95

7.2.8 Bereitstellung von Funktionalitäten zur zügigen Prototyp-Entwicklung 96

7.2.9 Bereitstellung von Funktionalitäten zur inkrementel /iterativen

Softwareentwicklung 97

7.2.10

Objektorientierte Softwareentwicklung 98

7.2.11

Zentrale Konfigurationsmöglichkeiten des Frameworks 98

7.2.12

Bereitstellung von Funktionalitäten zur Erweiterbarkeit des Frameworks 99

7.2.13

Bereitstellung von Funktionalitäten zur einfachen Änderbarkeit von Software

99

7.2.14

Eignung für die agile Softwareentwicklung 100

8

Diskussion 101

8.1

Einleitung 101

8.2

Bewertung der Ergebnisse und Ableitung von Schlussfolgerungen 101

8.2.1 Leichtgewichtigkeit/Einfachheit 103

8.2.2 Feedback 103

8.2.3 Inkrementel /iterative Entwicklung 103

8.2.4 Auf Änderungen ausgelegter Softwareentwicklungsprozess 103

8.2.5 Eignung für die agile Softwareentwicklung 104

9

Zusammenfassung 105

10

Ausblick 106


Inhaltsverzeichnis

Glossar 108

Abbildungsverzeichnis 118

Literaturverzeichnis 120

Thesen zur Diplomarbeit


Einleitung

1

1 Einleitung

Seit den 60er Jahren, mit Beginn der immer stärker werdenden Nutzung von Computern,

begannen auch Unternehmen die Vorteile dieser technischen Errungenschaft für sich zu ent-

decken. Im Laufe der Zeit stel ten sie stetig wachsende und komplexere Anforderungen an

die zu entwickelnde Software. Diese wachsenden Anforderungen brachten die Softwareent-

wicklungsbranche an ihre Grenzen, was sich durch viele gescheiterte Projekte äußerte. Es

wurde zunehmend von einer Softwarekrise gesprochen. Mittels Adaptierung typischer Vor-

gehensweisen der traditionellen Ingenieursdisziplin wurde versucht, den ganzheitlichen

Prozess der Softwareentwicklung strukturierbar und kalkulierbar zu machen und somit diese

Krise zu beenden. Doch die letzen Jahre zeigten, dass ein Softwareentwicklungsprozess

keinesfal s planbar und berechenbar wie beispielsweise ein Hausbau ist, sondern sich in

ständiger Bewegung befindet. [Dogs & Klimmer 2005: 15-18] Diese Erkenntnisse versucht,

die seit dem Jahr 2000 immer populärer werdende agile Softwareentwicklung zu berück-

sichtigen, welche eines von drei Themen dieser Arbeit ist.

Desweiteren wird das Thema ,,Web 2.0" Bestandteil dieser Arbeit sein. In den letzten Jahren

ist der Begriff ,,Web 2.0" immer mehr zum Trendthema geworden. In den Medien wurde und

wird, sowohl positiv als auch zunehmend kritisch, darüber berichtet. (siehe [Ristau 2006]

[Lennartz 2006] [Braun & Weber 2006] [Puscher 2007]) Der Inhalt des Marketingbegriffs

,,Web 2.0" entstand aus Beobachtungen der in den letzten Jahren neu entstandenen, erfolg-

reichen Internetunternehmen und der im Jahr 2000 stattgefundenen Internetkrise. Diese

äußerte sich dadurch, dass die damals an den Börsen gelisteten Internetunternehmen ihren

Börsenwert innerhalb von zwei Jahren auf ein Minimum reduzierten oder sogar Zahlungs-

unfähigkeit anmelden mussten. Ein Grund dafür waren die zu hoch gesteckten Erwartungen

an diese Internetunternehmen. Dieses Ereignis des Wertverfal s wurde später mit dem

Marketing-Ausdruck das ,,Platzen der Dotcom Blase"1 beschrieben. [o.A. o.J.:

Lexikon

Freenet: Definition Dotcom-Blase

]

Ein weiteres Thema dieser Arbeit wird Ruby on Rails (kurz Rails) sein. Rails ist ein junges

Framework2, welches innovative Neuerungen für die Entwicklung von datenbankbasierten

Internetanwendungen3 bereitstel en soll. Auch über Rails wurde in der letzten Zeit viel in den

1 Dotcom (eng. Punkt com) ­ Synonym für Unternehmen, die im Zusammenhang mit dem Internet

Dienstleitungen erbringen. / Blase ­ etwas Aufgeblähtes, ohne Substanz

2 Siehe Abschnitt 2.2 ­ Frameworks geben dem Entwickler ein Programmgerüst der zu entwickelnden

Software vor, um die Softwareentwicklung effizienter zu machen.

3 Anwendungen im Internet, welche ihre Daten in Datenbanksystemen verwalten.


Einleitung

2

Medien berichtet (siehe [Lenz 2007] [Broersma 2006] [Hinterndorfer 2006]). Es sol den

Entwicklern einen ,,...neue[n] Ansatz für die Web-Entwicklung" [Hinterndorfer 2006] bieten.

1.1 Motivation und Ziel der Arbeit

Die agile Softwareentwicklung soll, durch ihre andere Sichtweise auf den ganzheitlichen

Prozess der Softwareentwicklung, helfen, die Krise in dieser Branche zu beenden. Web 2.0

beschreibt eine veränderte Sichtweise auf das Internet und soll damit neue Ansatzpunkte für

die Nutzung des Internets geben. Ruby on Rails sol , als Werkzeug zur Erstellung von

Webapplikationen, eine andere Herangehensweise für die Entwicklung dieser aufzeigen.

Die Motivation dieser Arbeit besteht darin, al diese Themen miteinander zu verbinden. Der

bis heute teils unverstandene Begriff ,,Web 2.0" wird näher beleuchtet und dessen zentrale

Kennzeichen herauskristal isiert. Anschließend wird Ruby on Rails näher vorgestellt, um

darauf folgend aufzuzeigen, ob sich Ruby on Rails für die Entwicklung von Web 2.0 Appli-

kationen eignen könnte. Der Vorgang der agilen Softwareentwicklung sol näher betrachtet

und abschließend das Potential von Ruby on Rails für die agile Softwareentwicklung evalu-

iert werden.

Heinemeier Hansson4 und Thomas gehen in ihrem Buch ,,Agile Webentwicklung mit Rails" in

dem Abschnitt ,,Rails ist agil" auf nur eineinhalb Seiten auf die Agilität von Rails ein. Sie

schreiben, dass ,,Agilität [...] [ein] Bestandteil der Struktur von Rails" [Thomas & Heinemeier

Hansson 2006: 3] ist und ,,Statt ständig zu versuchen, einen Zusammenhang zwischen den

Rails-Prozessen und den agilen Grundsätzen herzustel en, haben wir uns entschieden, das

Framework für sich selbst sprechen zu lassen" [Thomas & Heinemeier Hansson 2006: 4].

Diese Vorgehensweise kann für ein Lehrbuch über Ruby on Rails durchaus praktikabel sein,

aber die sehr kurze Abhandlung von Agilität stel t eine weitere Motivation für diese Arbeit

dar, wissenschaftlich zu prüfen, ob sich Rails wirklich für die agile Softwareentwicklung eig-

net.

1.2 Aufbau der Arbeit

Zum Grundverständnis des Themas der Arbeit werden in dem Kapitel ,,Begriffserklärung und

Bedeutung" essentielle Kenntnisse vermittelt.

4 Webentwickler beim Web 2.0 Unternehmen ,,37signals" und Erfinder von Ruby on Rails


Einleitung

3

Im dritten Kapitel wird beschrieben, was sich hinter dem Begriff ,,Web 2.0" verbirgt. Darüber

hinaus werden die zentralen Kennzeichen von Web 2.0 in knapper, ausformulierter Form

fixiert und anschließend auf die Gefahren von Web 2.0 hingewiesen.

In dem Kapitel über Ruby on Rails wird dieses Entwicklungsframework präzise dargestel t.

Warum erfreut sich gerade Ruby on Rails in den letzten Monaten immer wachsender Be-

liebtheit bei Entwicklern von Webapplikationen? Welche Prinzipien vertritt Ruby on Rails und

welche Funktionalitäten bietet es? Im späteren Verlauf dieses Kapitels soll geklärt werden,

ob sich Ruby on Rails für die Entwicklung von Web 2.0 Applikationen eignen könnte.

Im darauf folgenden Kapitel wird das Konzept der agilen Softwareentwicklung beschrieben

und die Unterschiede zur traditionellen Softwareentwicklung aufgezeigt. Anschließend wird

das ,,Agile Manifest"5 näher betrachtet und der populärste agile Vertreter ,,Extreme Program-

ming" ausführlich vorgestel t.

Die Vorgehensweise und verwendete Methodik für die Evaluation werden im Kapitel sechs

dargelegt. Es werden Hypothesen aufgestellt und Wertekriterien für die im anschließenden

Kapitel durchzuführende Messung des Potentials von Ruby on Rails für die agile Software-

entwicklung herausgearbeitet.

Im Kapitel ,,Durchführung und Präsentation der Ergebnisse" wird die Evaluation durch-

geführt, dokumentiert und die Ergebnisse präsentiert. Diese Ergebnisse werden im Kapitel

acht vor dem Hintergrund der aufgestel ten Hypothesen diskutiert, bewertet und daraus

Schlussfolgerungen abgeleitet.

Abschließend sollen die Ergebnisse dieser Arbeit zusammengefasst und vor dem Hinter-

grund, ob sich Ruby on Rails für die agile Entwicklung von Web 2.0 Applikationen eignen

könnte, zusammengeführt werden.

5 Erklärung von 17 Befürwortern der agilen Softwareentwicklung über Gemeinsamkeiten



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/128833/agile-entwicklung-von-web-2-0-applikationen-mit-ruby-on-rails
please wait Please wait