Agile Softwareentwicklung (Sommersemester 2011)
Dozent:
Prof. Dr. Robert Hirschfeld
(Software-Architekturen)
,
Bastian Steinert
(Software-Architekturen)
Allgemeine Information
- Semesterwochenstunden: 4
- ECTS: 6
- Benotet:
Ja
- Einschreibefrist: 1.4.2011 - 30.9.2011
- Lehrform: Seminar
- Belegungsart: Wahlpflichtmodul
Studiengänge, Modulgruppen & Module
- IT-Systems Engineering A
- IT-Systems Engineering B
- IT-Systems Engineering C
- IT-Systems Engineering D
- Software Architecture & Modeling Technology
Beschreibung
Agile Softwareentwicklungsprozesse, wie zum Beispiel Extreme Programming, zeichnen sich durch einen hohen Grad an Flexibilität, Pragmatismus und Leichtgewichtigkeit aus. In einem agilen Projekt werden die Projektziele iterativ und inkrementell definiert und erarbeitet, so dass Missverständnisse und Veränderungen frühzeitig erkannt und berücksichtigt werden können. Im ständigen Diskurs erlangen Entwickler ein immer besseres Verständnis des Problemraums und können ihre Erfahrungen und ihr Wissen in Bezug auf das Software-System sowie die verwendeten Programmiersprachen, Bibliotheken und Werkzeuge austauschen.
Im Rahmen dieses Seminars soll die Arbeit nach agilen Prinzipien und Methoden vertieft werden. Neben bewährten Inhalten/Themen erhalten die Teilnehmer Einblick in aktuelle Forschungsfragen im Bereich der Prozess- und Werkzeugunterstützung für Programmierer. Dazu arbeiten die Teilnehmer in kleinen Projektgruppen unter Anwendung agiler Vorgehensweisen.
Voraussetzungen
- Grundlegendes Verständnis von agilen Entwicklungsprozessen
- Vertiefte Programmierkenntnisse in Smalltalk oder Java (anhängig vom gewählten Projektthema)
Literatur
- Kent Beck, Cynthia Andres. Extreme Programming Explained - Embrace Change. Addison-Wesley, 2004.
- Kent Beck. Test Driven Development - By Example. Addison-Wesley, 2002.
- Mike Cohn. User Stories Applied. For Agile Software Development. Addison-Wesley Professional, 2004.
- Steve Freeman, Nat Pryce. Growing Object-Oriented Software, Guided by Tests. Addison-Wesley Professional, 2009.
- Jutta Eckstein. Agile Software Development in the Large: Diving Into the Deep. Dorset House Publishing Company, Incorporated, 2004.
Lern- und Lehrformen
Leistungserfassung
Die Leistung wird durch die erfolgreiche Bearbeitung eines gewählten Themas erbracht. Dazu sollen agile Techniken theoretisch erarbeitet und präsentiert sowie praktisch eingesetzt werden. In Gruppenarbeit werden Werkzeuge für die Unterstützung agiler Vorgehensweisen implementiert und in bestehende Systeme integriert. Jede Gruppe stellt im Rahmen von regelmäßigen Treffen ihre Erkenntnisse und Ergebnisse vor.
Zur Erlangung der sechs benoteten Leistungspunkte sind die folgenden Anforderungen zu erfüllen:
- Regelmäßige Anwesenheit im Seminar bzw. beim Treffen mit den Projektbetreuern
- Eigenständige Erarbeitung und Präsentation eines ausgewählten Themas zu den Seminargrundlagen
- Bearbeitung eines Projektthemas in einer Gruppe sowie regelmäßige Demonstration des Fortschrittes
- Abschlusspräsentation der Ergebnisse des Projektes
Eine Woche vor dem jeweiligen Vortragstermin bespricht jeder Teilnehmer die Vorversion der Vortragsunterlagen mit einem der Betreuer. Die Vortragsunterlagen sind einen Tag vor dem Vortrag per Email oder auf einer CD-ROM einzureichen. Sie bestehen aus
- den Dokumentquellen der im Vortrag verwendeten Folien,
- einer PDF-Version derselben,
- dem in der Demo verwendeten Quellcode,
- einer Installationsbeschreibung, und
- einem Demo-Script.
Alle im Rahmen der Veranstaltung erstellten Quelltexte sollen unter der MIT-Lizenz und, falls notwendig, mit einer den verwendeten Systemen kompatiblen Lizenz bereitgestellt werden.
Termine
Seminar:
- Donnerstags, 9:15-10:45, HPI A-2.2
Themenstellung:
Themenvergabe:
Zurück