Kursplan för höstterminen 2003
ITERATIV PROGRAMVARUUTVECKLING - PROJEKTEDA290
Iterative Software Development - Project

Antal poäng: 5. Betygskala: UG. Valfri för: C3. Kursansvarig: Professor Boris Magnusson och Universitetslektor Görel Hedin, Inst f datavetenskap. Förkunskapskrav: Godkänt i kurserna Algoritmer och datastrukturer samt Objektorienterad modellering och design. Prestationsbedömning: För godkänt krävs fullgjorda laborationer, godkänt på kontrollskrivningen, samt fullgjorda planeringsövningar, långlaborationer och godkänd projektredovisning under kursens andra läsperiod. Hemsida: http://www.cs.lth.se. Övrigt: Kurstyp projekt.

Mål
Syftet med kursen är att ge en metod för, och praktisk erfarenhet av, iterativt framtagande av programvara med speciell tonvikt på användarens behov. Kursen ger inblick i viktiga principer för iterativt framtagande av programvara såsom planering, interaktionsdesign, funktionell design och implementation, testning och leverans. Kursen ger förståelse för användarens krav och metoder för att hantera dem. Kursen ger också metoder för och praktisk erfarenhet av programutveckling i grupp, samt fördjupning inom objektorienterad programutveckling.

Innehåll
I kursen används en konkret iterativ lättviktsmetod som tar sin utgångspunkt i idéer från extremprogrammering (XP). Deltekniker som stödjer iterativ utveckling är iterativ planering, automatiserad testning, test-first, parprogrammering och refaktorisering. Studenterna får också inblick i användarens roll i utvecklingsprocessen och samspelet mellan rollerna kund, projektledare, interaktionsdesigner och utvecklare. Användarens krav driver utvecklingen genom de berättelser som formuleras, användarens prioritering av dessa samt den återkoppling användaren ger på de leveranser som framställs under kursens gång.

Kursen ger praktisk erfarenhet av hur ett småskaligt projekt kan drivas och ger därmed en referensram för påbyggnadskurser som behandlar metodik för programutveckling för större projekt och organisationer.

Kursen går över två läsperioder. Under den första perioden varvas föreläsningar med laborationer och inlämningsuppgifter på enskilda moment som planering, testning, konfigurationshantering, refaktorisering, och interaktionsdesign. Under andra perioden delas studenterna in i grupper om cirka 10 personer. Varje grupp driver ett programutvecklingsprojekt som en serie av planeringsmöten varvade med långlaborationer och med en avslutande projektredovisning.

Litteratur
Preliminärt används följande två böcker:
P. Stevens: Using UML - Software Engineering with Objects and Components. Addison Wesley, 2000. ISBN: 0-201-64860-1 (Samma bok som i OMD-kursen. Endast kortare avsnitt ingår.)
R. Jeffries et al: Extreme Programming Installed. Addison Wesley, 2001. ISBN: 0-201-70842-6 (Handbok i extremprogrammering)
Dessutom tillkommer kursmaterial i form av artiklar.