Agile Methoden haben bei der Organisation von Projekten in den vergangenen Jahren weiter an Bedeutung gewonnen. Gerade in der Softwareentwicklung erfreuen sie sich großer Beliebtheit und so steigt die Zahl der Projekte, in denen Scrum, Extreme Programming, Kanban oder ähnliche Vorgehensmodelle zum Einsatz kommen. Kunden und Dienstleister versprechen sich hierdurch bessere Produkte und kürzere Entwicklungszyklen. Es soll möglichst schnell ein potenziell auslieferbares Produkt entstehen, das dann nach und nach verbessert und angepasst werden kann. Den Softwareentwicklern kommt in diesem Zuge ein hohes Maß an zusätzlicher Freiheit und Verantwortung zu. Sie treffen sich regelmäßig mit dem Kunden zu Rückschau und Planung, arbeiten mit diversen Backlogs und kommen zum täglichen Stand-Up-Meeting zusammen. Doch außerhalb dieser vorgegeben Methoden kann die Agilität rasch verfliegen, da weiterhin mit unflexiblen Werkzeugen und Frameworks gearbeitet werden muss. Gerade bei der Entwicklung von Web-Anwendungen im Java-Umfeld sind meist erhebliche Vorarbeiten und Konfigurationen notwendig, bevor überhaupt mit der eigentlichen Entwicklung begonnen werden kann. Mit der Sprache Groovy und dem darauf aufsetzenden Web-Application-Framework Grails soll die Entwicklung in der Java-Welt deutlich agiler werden. Ob dies zutrifft und wie dies funktionieren kann, soll diese Arbeit darlegen. Dazu sollen zunächst die Eigenschaften einiger agile Vorgehensmodelle sowie Groovy und Grails vorgestellt werden. Es folgt eine Analyse, wie Grails die Entwicklung in agilen Projekten unterstützen kann sowie ein Blick auf mögliche Grenzen des Einsatzes.
Inhaltsverzeichnis
1 Einleitung
2 Grundlagen
2.1 Agile Vorgehensmodelle
2.1.1 Das „Manifesto for Agile Software Development“
2.1.2 Scrum
2.1.3 Extreme Programming
2.1.4 Kanban
2.2 Die Java-basierte Sprache Groovy
2.3 Das Web-Application-Framework Grails
2.3.1 Die Entstehung von Grails
2.3.2 Die Konzepte von Grails
3 Grails in der Entwicklung von agilen Web-Anwendungen
3.1 Grails und Scrum
3.2 Grails und Extreme Programming
3.3 Grails und Kanban
4 Schlussbetrachtung
Zielsetzung & Themen
Die Arbeit untersucht, inwieweit das Web-Application-Framework Grails in Verbindung mit der Sprache Groovy die Entwicklung von Web-Anwendungen in agilen Projekten im Java-Umfeld durch Vereinfachung und Beschleunigung der Prozesse unterstützen kann.
- Grundlagen agiler Vorgehensmodelle (Scrum, Extreme Programming, Kanban)
- Eigenschaften und Vorteile der Programmiersprache Groovy gegenüber Java
- Architektur, Konzepte (MVC, DRY, CoC, Scaffolding) und Stack von Grails
- Analyse der Unterstützung agiler Entwicklungsmethoden durch Grails-Features
Auszug aus dem Buch
2.3.2.1 Model View Controller
Model View Controller (MVC) ist ein ursprünglich für Smalltalk 80 konzipiertes Pattern in der Softwareentwicklung zur Strukturierung des Codes in drei Schichten, die grundsätzlich unabhängig voneinander entwickelt und flexibel ausgetauscht werden können. Das Model beschreibt dabei das zugrundeliegende Datenmodell. Der Controller bestimmt die eigentliche Steuerung des Programms sowie die auf das Model anwendbaren Methoden. Die View übernimmt die Präsentation. Eine Anfrage geht zunächst an einen Controller, der über die auszuführende Aktion entscheidet, die Daten aus dem Model zusammenstellt und aufbereitet und diese dann an eine View zur Darstellung übergibt.46 So ist es beispielsweise möglich, die selbe Datenbasis unterschiedlich aufzubereiten und dann entweder als Hypertext Markup Language (HTML) im Browser auszugeben oder strukturiert in Extended Markup Language (XML) oder JavaScript Object Notation (JSON) als Webservice beziehungsweise für die Verwendung von Asynchronous JavaScript and XML (AJAX) zu verwenden. Das Model muss für keine dieser Ausgabevarianten verändert werden. Grails-Projekte entsprechen grundsätzlich dem MVC-Pattern, welches zusätzlich durch Scaffolding unterstützt wird.47 Model und Controller werden dabei üblicherweise in Groovy erstellt während die View mittels GSP bereitgestellt wird.
Zusammenfassung der Kapitel
1 Einleitung: Die Arbeit führt in die zunehmende Bedeutung agiler Methoden in der Softwareentwicklung ein und stellt die Forschungsfrage, wie Grails die Entwicklung von Web-Anwendungen im Java-Umfeld agiler gestalten kann.
2 Grundlagen: In diesem Kapitel werden agile Vorgehensmodelle (Scrum, XP, Kanban) erläutert sowie die Programmiersprache Groovy und das Framework Grails samt ihrer Kernkonzepte detailliert vorgestellt.
3 Grails in der Entwicklung von agilen Web-Anwendungen: Hier wird analysiert, wie spezifische Grails-Funktionalitäten wie das Scaffolding und die Einhaltung von Konventionen die Umsetzung der Anforderungen aus Scrum, XP und Kanban unterstützen.
4 Schlussbetrachtung: Das Fazit fasst zusammen, dass Grails durch die Reduktion von Konfigurationsaufwand und die Förderung einer agilen Arbeitsweise einen signifikanten Mehrwert für die Web-Entwicklung im Java-Umfeld bietet.
Schlüsselwörter
Agile Softwareentwicklung, Grails, Groovy, Web-Anwendungsentwicklung, Scrum, Extreme Programming, Kanban, Model View Controller, Convention over Configuration, Scaffolding, Java, Web-Framework, iterative Entwicklung, Softwareprozess, Projektmanagement
Häufig gestellte Fragen
Worum geht es in dieser Hausarbeit im Kern?
Die Arbeit untersucht, wie das Web-Application-Framework Grails dazu beitragen kann, Web-Anwendungen im Java-Umfeld agiler und effizienter zu entwickeln.
Was sind die zentralen Themenfelder der Arbeit?
Die zentralen Themen sind agile Vorgehensmodelle, die Programmiersprache Groovy und das Framework Grails sowie deren Synergie in der praktischen Softwareentwicklung.
Welches primäre Ziel verfolgt der Autor?
Das Ziel ist es darzulegen, ob und wie Grails die hohen Anforderungen an Agilität in Softwareprojekten durch Vereinfachung von Entwicklungsprozessen erfüllen kann.
Welche wissenschaftliche Methode wird verwendet?
Es handelt sich um eine theoretische Arbeit, die auf Literaturanalyse, der Untersuchung von Framework-Konzepten und der Analyse von Prozessmodellen basiert.
Was wird im Hauptteil behandelt?
Der Hauptteil gliedert sich in eine theoretische Einführung in agile Modelle und Technologien sowie eine analytische Betrachtung der Unterstützung von Scrum, XP und Kanban durch Grails.
Durch welche Schlüsselwörter lässt sich die Arbeit charakterisieren?
Die Arbeit lässt sich am besten durch Begriffe wie Agile Entwicklung, Grails, Groovy, Framework, MVC und Software-Konventionen charakterisieren.
Warum spielt die Convention over Configuration eine so wichtige Rolle für Grails?
Dieser Ansatz reduziert die Komplexität massiv, da er viele Konfigurationsentscheidungen durch standardisierte Konventionen ersetzt, was Fehlerquellen minimiert und Zeit spart.
Inwiefern unterscheidet sich Grails' Ansatz zum Scaffolding von einer manuellen Erstellung?
Durch Scaffolding werden CRUD-Seiten und Controller zur Laufzeit dynamisch aus dem Datenmodell generiert, was die Erstellung funktionsfähiger Prototypen extrem beschleunigt.
- Quote paper
- Jens Küsters (Author), 2011, Agile Entwicklung von Web-Anwendungen mit Grails, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/176956