Kursplan för läsåret 2007/2008
PROGRAMVARUUTVECKLING I GRUPP – PROJEKTEDA260
Software Development in Teams – Project

Antal högskolepoäng: 6. Betygskala: UG. Nivå: G2 (Grundnivå, fördjupad). Undervisningsspråk: Kursen ges på svenska. Överlappar följande kurs/kurser: EDA321, EDA322, EDA321 och EDA322. Obligatorisk för: D2. Valfri för: C3, C3da, E4ps, I4ip. Kursansvarig: Professor Boris Magnusson, Boris.Magnusson@cs.lth.se och univ. lektor Görel Hedin, Gorel.Hedin@cs.lth.se, Inst f datavetenskap. Förkunskapskrav: EDA027 Algoritmer och datastrukturer samt de obligatoriska momenten i EDA061 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. Detaljer kommer att finnas i kursprogrammet. Övrigt: Kurstyp projekt. Hemsida: http://www.cs.lth.se/EDA260.

Syfte
Många civilingenjörer kommer under sin karriär att samarbeta med andra i utveckling av programvara. Syftet med kursen är att ge kunskaper om och praktisk erfarenhet av hur man samverkar i ett team för att ta fram en programvaruprodukt. Fokus ligger på metoden extremprogrammering, en högiterativ, så kallad agil, utvecklingsprocess som syftar till hållbar utveckling av mjukvara. Kursen tar upp principer för samarbete med beställaren, planering, hållbar design/implementation, testning och leverans. Kursen fungerar samtidigt som fördjupning inom objektorienterad programmering.

Mål

Kunskap och förståelse
För godkänd kurs skall studenten

Färdighet och förmåga
För godkänd kurs skall studenten

Innehåll
En konkret iterativ, så kallad agil, programutvecklingsmetodik används där studenterna tränas i att arbeta i grupp. Den använda metoden tar sin utgångspunkt i idéer från extremprogrammering (XP) med deltekniker som iterativ planering, automatiserad testning, test-first, parprogrammering, refaktorisering och täta leveranser.

Kundens/användarens krav formuleras och prioriteras i samarbete med studenterna. Därigenom får studenterna inblick i de olika rollerna i processen exempelvis som kund/användare, projektledare och utvecklare samt förståelse för användarens behov och hur de kan hanteras. 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 på enskilda moment som planering, testning, versionshantering och refaktorisering. 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
chromatic: Extreme Programming Pocket Guide. O'Reilly 2003. ISBN: 0-596-00485-0. Dessutom tillkommer kursmaterial i form av artiklar.