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.
Inhaltsverzeichnis
1. Einleitung
1.1 Motivation und Ziel der Arbeit
1.2 Aufbau der Arbeit
2. Begriffserklärungen und Definitionen
2.1 Web 2.0
2.2 Framework, Programmbibliothek
2.3 Objektorientierung
2.4 Agile Softwareentwicklung
2.5 Ruby on Rails
3. Web 2.0
3.1 Einleitung
3.2 O’Reillys Prinzipien des Web 2.0
3.2.1 Einleitung
3.2.2 Das Web als Plattform
3.2.3 Die Nutzung kollektiver Intelligenz
3.2.4 Die Daten als nächstes „Intel Inside“
3.2.5 Abschaffung des Software-Lebenszyklus
3.2.6 Lightweight Programming Models (LPMs)
3.2.7 Software über die Grenzen einzelner Geräte hinaus
3.2.8 Benutzerführung (Rich User Experiences)
3.2.9 Zusammenfassung und Beschreibung der zentralen Kennzeichnung des Web 2.0
3.3 Die Gefahren des Web 2.0
3.3.1 Die Daten
3.3.2 Cyber-Stalking
3.3.3 Barrierefreiheit
3.3.4 Hackerangriffe
3.3.5 Andere Gefahren
4. Ruby on Rails
4.1 Einleitung
4.2 Die Prinzipien
4.2.1 Model-View-Controller (MVC)
4.2.2 Konvention über Konfiguration
4.2.3 DRY (don’t repeat yourself)
4.3 Ordnerstruktur und Rails-Umgebungen
4.3.1 Ordnerstruktur
4.3.2 Rails-Umgebungen
4.4 Rails erweitern
4.4.1 RubyGem
4.4.2 Rails-Plugins
4.5 Generatoren
4.5.1 Scaffold-Generator
4.5.2 Weitere Generatoren
4.6 Versions- und Migrationskontrollen
4.6.1 Migrationskontrolle
4.6.2 Versionskontrolle
4.7 Internationalisierung
4.8 Webservices
4.9 E-Mail
4.10 Tests
4.10.1 Test-Datenbank
4.10.2 Verzeichnisstruktur
4.10.3 Unit-Tests
4.10.4 Funktionale Tests
4.10.5 Integration-Tests
4.10.6 Test-Fixtures
4.10.7 Mocks
4.10.8 Brakepointing
4.11 Rails-Helper
4.11.1 HTML-Tag
4.11.2 Pagination
4.11.3 Formatierung
4.11.4 Debug, Benchmark, Cache
4.11.5 RIA
4.11.6 SQL-Helper
4.11.7 Validierung
4.11.8 Callback
4.12 Skalierbarkeit
4.13 Sicherheit
4.13.1 Barrierefreiheit
4.13.2 Hackerangriffe
4.14 Rails-Anwendungen in der Praxis
4.15 Rails und Web 2.0
4.15.1 Einleitung
4.15.2 Das Web als Plattform nutzen
4.15.3 Die Nutzung kollektiver Intelligenz
4.15.4 Die Daten als nächstes „Intel Inside“
4.15.5 Abschaffung des Software-Lebenszyklus
4.15.6 Lightweight Programming Models (LPM)
4.15.7 Software über die Grenzen einzelner Geräte hinaus
4.15.8 Benutzerführung (Rich User Experiences)
4.15.9 Zusammenfassung
5. Agile Softwareentwicklung
5.1 Begriffsklärung
5.1.1 Software-Entwicklung
5.1.2 System
5.1.3 Modell
5.1.4 Agil
5.1.5 Methode
5.2 Einleitung
5.3 Traditionelle Softwareentwicklung
5.3.1 Wasserfall-Modell
5.3.2 V-Modell
5.3.3 Zusammenfassung
5.4 Das agile Manifest
5.4.1 Einleitung
5.4.2 Werte
5.4.3 Prinzipien
5.4.4 Agile Praktiken
5.4.5 Agile Methodiken
5.5 Extreme Programming (XP)
5.5.1 Einleitung
5.5.2 Werte
5.5.3 Grundprinzipien
5.5.4 Rollen
5.5.5 Prozess
5.5.6 Praktiken
5.5.7 Anwendbarkeit
5.5.8 Zusammenfassung
6. Vorgehensweise und Methodik
6.1 Einleitung und Wahl der Evaluationsmethode
6.2 Vorbereitung der Evaluation
6.2.1 Einleitung
6.2.2 Leichtgewichtigkeit/Einfachheit
6.2.3 Feedback
6.2.4 inkrementell/iterative Entwicklung
6.2.5 Auf Änderungen ausgelegter Softwareentwicklungsprozess
6.2.6 Eignung von Ruby on Rails für die agile Softwareentwicklung
6.3 Überlegungen zu Leistungsstandards
7. Durchführung und Präsentation der Ergebnisse
7.1 Einleitung
7.2 Dokumentation der Untersuchungsdurchführung und Präsentation der Ergebnisse
7.2.1 Leichtgewichtigkeit des Frameworks
7.2.2 Gute Lesbarkeit des Programmcodes
7.2.3 Bereitstellung von Funktionalitäten zur Erstellung leichtgewichtiger Technologien
7.2.4 Bereitstellung von Funktionalitäten zur Erstellung leichtgewichtiger Dokumentationen
7.2.5 Unabhängige Test-Umgebung für Programmtests
7.2.6 Automatisierte Unit-Tests
7.2.7 Bereitstellung von sonstigen Funktionalitäten zur zügigen Feedbackgewinnung
7.2.8 Bereitstellung von Funktionalitäten zur zügigen Prototyp-Entwicklung
7.2.9 Bereitstellung von Funktionalitäten zur inkrementell/iterativen Softwareentwicklung
7.2.10 Objektorientierte Softwareentwicklung
7.2.11 Zentrale Konfigurationsmöglichkeiten des Frameworks
7.2.12 Bereitstellung von Funktionalitäten zur Erweiterbarkeit des Frameworks
7.2.13 Bereitstellung von Funktionalitäten zur einfachen Änderbarkeit von Software
7.2.14 Eignung für die agile Softwareentwicklung
8. Diskussion
8.1 Einleitung
8.2 Bewertung der Ergebnisse und Ableitung von Schlussfolgerungen
8.2.1 Leichtgewichtigkeit/Einfachheit
8.2.2 Feedback
8.2.3 Inkrementell/iterative Entwicklung
8.2.4 Auf Änderungen ausgelegter Softwareentwicklungsprozess
8.2.5 Eignung für die agile Softwareentwicklung
9. Zusammenfassung
10. Ausblick
Zielsetzung & Themen
Die vorliegende Arbeit untersucht das Potential des Web-Frameworks "Ruby on Rails" für die agile Softwareentwicklung. Dabei wird evaluiert, ob und wie das Framework die Anforderungen an moderne Web 2.0-Applikationen erfüllt und welche agilen Vorgehensweisen durch das Framework unterstützt werden.
- Analyse der Prinzipien des Web 2.0 nach Tim O'Reilly
- Grundlagen und Arbeitsweise des Ruby on Rails Frameworks
- Darstellung agiler Softwareentwicklungsmethoden, insbesondere Extreme Programming (XP)
- Evaluation von Ruby on Rails anhand definierter Wertekriterien
- Diskussion der Eignung für agile Softwareentwicklungsprozesse
Auszug aus dem Buch
3.2.4 Die Daten als nächstes „Intel Inside“
Warum nennt O’Reilly die Daten einer Web 2.0 Anwendung das „nächste Intel Inside“?
Intel (ein US-amerikanischer Halbleiterhersteller) begann 1991 mit einer neuen Marketingkampagne. Auf Verpackungen, Prospekten und Computergehäusen wurde der Werbeslogan „Intel Inside“ publiziert. Damit wollte Intel darauf hinweisen, dass „…im Innern des betreffenden PCs ein original Intel Prozessor die eigentliche Arbeit des Computing verrichtete“ [o.A. o.J.: Die Intel Geschichte: Der Weg zum Markenartikel]. Die „Intel Inside“ Kampagne war erfolgreich. Intel machte damit „…auf seine verborgenen High-Tech-Produkte aufmerksam“ [o.A. o.J.: Die Intel Geschichte: Der Weg zum Markenartikel], seine Prozessoren, und etablierte „Intel Inside“ selbst als Markennamen.
NavTeq (navteq.com), ein Anbieter digitalen Kartenmaterials (Landkarten), imitierte Intels Kampagne, indem Endgeräte, wie Navigationsgeräte, mit dem Aufdruck „NavTeq Onboard“ ausgeliefert wurden. [O’Reilly 2005, Die Daten als nächstes „Intel Inside“]
O’Reilly schreibt dazu, „…dass die Kontrolle über die Daten selbst, den Geschäftsvorteil bildet…“ [O’Reilly 2005, Die Daten als nächstes „Intel Inside“] und sieht „…Datenbankmanagement als eine Kernkompetenz des Web 2.0“ [O’Reilly 2005, Die Daten als nächstes „Intel Inside“]. Doch er fügt hinzu, dass eine Web 2.0 Anwendung die Kontrolle über eine „…spezialisierte Datenbank…“ [O’Reilly 2005, Die Daten als nächstes „Intel Inside“] haben muss, welche nur schwer durch Mitbewerber kopierbar sein darf.
Er führt als Beispiel das Online-Versandhaus Amazon (amazon.de) auf. Amazon entnimmt sein Angebot, wie seine Mitbewerber auch, aus einer zentralen Produktdatenbank. Im Gegensatz zur Konkurrenz baut Amazon diese aber unaufhörlich mit zusätzlichen Informationen, wie z.B. Produktbewertungen durch Kunden, Coverbildern, eigenen Identifikationsnummern, aus und macht seine Datenbestände auf diesem Weg einzigartig. [O’Reilly 2005, Die Daten als nächstes „Intel Inside“]
Zusammenfassung der Kapitel
1 Einleitung: Die Arbeit motiviert die Untersuchung von Ruby on Rails als Werkzeug für Web 2.0-Entwicklungen im Kontext agiler Softwareentwicklungsmethoden.
2 Begriffserklärungen und Definitionen: Vermittlung notwendiger Grundlagen zu Web 2.0, Frameworks, Objektorientierung und agilen Konzepten.
3 Web 2.0: Detaillierte Analyse der von O'Reilly definierten Prinzipien des Web 2.0 sowie Betrachtung der technischen und sozialen Risiken.
4 Ruby on Rails: Ausführliche Darstellung der Architektur, Prinzipien (MVC, DRY, Konvention über Konfiguration) und Funktionalitäten des Frameworks.
5 Agile Softwareentwicklung: Einführung in agile Werte und das "Agile Manifest", mit Fokus auf die Methodik Extreme Programming.
6 Vorgehensweise und Methodik: Definition von Hypothesen und Wertekriterien für die Evaluation des Framework-Potentials.
7 Durchführung und Präsentation der Ergebnisse: Messung der definierten Wertekriterien anhand wissenschaftlicher Aussagen und Framework-Features.
8 Diskussion: Zusammenfassende Bewertung der Untersuchungsergebnisse und Ableitung von Schlussfolgerungen über die Eignung des Frameworks.
9 Zusammenfassung: Abschlussbetrachtung der Ziele und zentralen Erkenntnisse der Diplomarbeit.
10 Ausblick: Diskussion künftiger Entwicklungen im Umfeld von Web 2.0 und der weiteren Evolution von Ruby on Rails.
Schlüsselwörter
Web 2.0, Ruby on Rails, Agile Softwareentwicklung, Extreme Programming, Framework, MVC, Datenbankmanagement, IT-Sicherheit, Skalierbarkeit, Software-Prozess, AJAX, Webapplikationen, Prototyping, Usability, Datenhaltung
Häufig gestellte Fragen
Worum geht es in der vorliegenden Diplomarbeit grundsätzlich?
Die Arbeit untersucht das Potential des Frameworks Ruby on Rails zur Entwicklung von Web 2.0-Applikationen und dessen Eignung im Rahmen agiler Softwareentwicklungsprozesse.
Welche zentralen Themenfelder behandelt der Autor?
Die zentralen Felder sind die Definition und Prinzipien von Web 2.0, die technische Arbeitsweise von Ruby on Rails sowie die theoretischen und praktischen Aspekte der agilen Softwareentwicklung.
Was ist das primäre Ziel oder die Forschungsfrage dieser Arbeit?
Das Ziel ist die wissenschaftliche Evaluation des Potentials von Ruby on Rails. Es soll geklärt werden, ob das Framework die Anforderungen an agile, effiziente Webentwicklung erfüllt.
Welche wissenschaftliche Methode wird zur Evaluation verwendet?
Es wird eine bewertende Evaluation durchgeführt, bei der das Objekt "Ruby on Rails" anhand von dreizehn abgeleiteten Wertekriterien auf bestimmte Systemeigenschaften geprüft wird.
Welche Inhalte stehen im Hauptteil der Untersuchung?
Der Hauptteil gliedert sich in die theoretische Fundierung (Web 2.0, Rails, Agile Methoden), die Festlegung von Evaluationskriterien und die anschließende praktische Durchführung und Dokumentation der Messung.
Durch welche Schlüsselwörter lässt sich diese Arbeit am besten charakterisieren?
Web 2.0, Ruby on Rails, agile Entwicklung, Extreme Programming, MVC-Architektur und Software-Prozessoptimierung.
Warum ist das "DRY-Prinzip" in Ruby on Rails so wichtig?
Das "Don't Repeat Yourself"-Prinzip hilft, Redundanzen im Code zu minimieren, was die Wartbarkeit und Lesbarkeit der Anwendung erheblich steigert.
Welche Schlussfolgerung zieht der Autor zur Eignung von Ruby on Rails für agile Projekte?
Der Autor kommt zu dem Ergebnis, dass Ruby on Rails ein hohes Potential für die agile Softwareentwicklung besitzt, da es zwölf von dreizehn definierte Wertekriterien erfüllt.
- Citar trabajo
- Dipl.-Ing.(FH) Rico Schulz (Autor), 2007, Agile Entwicklung von Web 2.0 Applikationen mit Ruby on Rails, Múnich, GRIN Verlag, https://www.grin.com/document/128833