The displayed memo is not the latest version. Show (latest version).
Rubriker markerade med en asterisk ( * ) kommer från kursplan version
Innehåll och lärandemål
Kursinnehåll
Kravhantering: funktionella och icke funktionella krav, användarhistorier, produktlogg
Analys och systemspecifikation
Projektprocesser för mjukvaruutveckling
Design och implementationsregler för återanvändning, underhåll och utbyggbarhet
Metoder för testning och programvalidering som enhetstester, integrationstester och acceptanstester
Dokumentation av kod, produktbeskrivning samt installationsanvisningar och manual
Introduktion till flerlagerarkitektur
Upphovsrättsliga och andra juridiska aspekter på programvaruutveckling.
Lärandemål
Kursen skall ge studenten träning i att utveckla en större programvara samt en fördjupning i projektmetodik. Arbetet utförs i projektform. Projektet skall ge förståelse och träning i projektmetodiker och verktyg som används vid framtagning av större program.
Efter genomgången kurs ska studenten ha:
kunskap om olika projektmetodiker samt deras fördelar och nackdelar samt fördjupad kunskap inom agil projektmetodik
färdigheter i att ta fram och hantera krav för ett mjukvarusystem
kunskaper om genomförandet av utvecklingsprocessen för en större programvara med hänsyn tagen till återanvändbarhet, underhåll och utbyggbarhet
förmåga att, i dialog med beställare eller produktägare, genomföra analys och design av en större programvara
färdighet i att implementera, testa och utvärdera en större programvara
färdigheter i dokumentation av lösningen, både ur utvecklar- och användarperspektiv
tillämpa kunskaper inom teknikområdet och använda lämpliga metoder och modeller samt kritiskt analysera resultat och alternativa lösningar
kunna sätta in tekniken i ett större sammanhang och beakta användarkrav, ekonomiska, miljömässiga och samhälleliga aspekter och kunna överväga teknikens möjligheter och begränsningar
Under projektet ska agil projektmetodik, återkoppling till beställare, testning, versionshantering och dokumentation implementeras på det sätt som beskrivs i teoridelen av kursen.
Lösningen ska, så långt möjligt, implementeras så att återanvändning av moduler är möjlig och så att det är enkelt att bygga vidare på lösningen.
Dessutom ska studenten, tillsammans med projektgruppen, ha producerat en produktbeskrivning med tydlig problemformulering, beskrivning av metoder samt utvärdering av produkten gentemot målen.
Detaljplanering
Kursivt = obligatoriskt
Datum
Kursivt = obligatoriskt
16/3
Introduktion till kursen Föreläsning: Kravhantering, användarhistorier
16/3
Obligatorisk övning om kravhantering och användarhistorier
17/3
Föreläsning: Agil projektmetodik, SCRUM, eXtrem Programming
20/3, kl. 12:00
Inlämning av uppgift om användarhistorier
25/3
Föreläsning: Trelagerarkitektur, Object-Relational-Mapping, REST API
26/3, kl. 12:00
Inlämning av sammanfattning av "Agil Projektmetodik"
27/3
Föreläsning: Testning Seminarium om implementation av agil projektmetodik, OBS! Gruppen måste ha tillgång till en produktlogg från uppdragsgivaren till detta pass.
1/4
Kravspecifikation, grov tidsplan inklusive milstolpar, produktlogg, m.m. publiceras enligt instruktioner i kurs-PM Möte med handledaren
vecka 14 - 21
Arbete med projektet. Möte med handledaren en gång i veckan ("Handledning" i schemat). Handledaren ska även vara inbjuden till alla etappuppföljningsmöten.
4/5
Rapportskrivning, Gunilla Nauclér
22/5, kl. 12:00
Första version av rapport inlämnad via kurswebben samt till opponerande grupp
28/5
Slutseminarium: Muntlig redovisning och opposition på den tekniska produkten. Skriftlig sammanställning av kommentarer på produkt och rapport lämnas in av opponerande grupp.
3/6
Inlämning av slutlig version av rapporten.
Förberedelser inför kursstart
Särskilda förberedelser
Särskild behörighet
Följande kurser ingår i den särskilda behörigheten: - HI1038, projektkurs inom data- och nätverksteknik. - HI1027, objektorienterad programmering. TEN1, kan tenteras i slutet av peirod 3. - HI1030, databasteknik. HI1030, LAB1, kan redovisas den 4/3.
Projektuppgift
Studenter bildar projektgrupper och söker företag samt projektuppgift på egen hand. Gruppstorleken bör vara 3-5 personer, lämplig storlek beror bl.a. på vilken uppgift som löses. I första hand ska uppgiften komma från en extern uppdragsgivare, ett företag eller en organisation. Uppgiftsförslag presenteras för kursens lärare i god tid innan kursstart. För grupper som inte fått uppdrag av ett företag finns ett begränsat antal uppgifter att utföra på uppdrag av MTH vid campus Flemingsberg.
Krav på uppgiften Nedanstående bör normalt ingå i projektuppgiften: • Programmering i något (helst) objektorienterat språk – det kan vara språk som inte använts tidigare i utbildningen. • En klient-server-lösning, distribuerad applikation. En webb-klient är vanligt, men andra lösningar kan diskuteras. • En databas • Någon form av autentisering. Det ingår naturligtvis också i kursen att på egen hand att sätta sig in i de specifika tekniker som behövs för att lösa den specifika uppgiften.
Examinator beslutar, baserat på rekommendation från KTH:s handläggare av stöd till studenter med funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.
Examinator får medge annan examinationsform vid omexamination av enstaka studenter.
När kurs inte längre ges har student möjlighet att examineras under ytterligare två läsår.
Kursen avslutas med en presentationsdag där grupperna presenterar sin slutprodukt.
Godkänt projektarbete (PRO1; 7,0 hp), betygsskalan P/F och godkänd redovisning av teoriavsnitt (RED1; 2,0 hp), betygskala P/F
Avsnittet nedan kommer inte från kursplanen:
RED1 - Redovisning, 2,0 hp
Kravhantering, funktionella och icke-funktionella krav och användarhistorier redovisas via en obligatorisk övning och en inlämning, enligt detaljplaneringen.
Projektmetodik redovisas genom en inlämningsuppgift kopplad till boken ”Agil projektledning”, inlämning, samt deltagande i obligatoriska föreläsningar, övningar och ett seminarium, enligt detaljplaneringen. Inlämningsuppgiften, som skrivs enskilt, ska innehålla en sammanfattning av boken på minst 10 000 och max 13 000 tecken, exklusive blanksteg, samt en separat reflektion, på en sida, över hur denna metodik kan implementeras i ditt projekt. Notera att reflektionen inte ingår i de 10 – 13 000 tecknen.
PRO1 - Projekt, 7,0 hp
Gruppen ska träffas IRL, på plats, alla dagar som är markerade "projektarbete" och "handledning" i schemat. Studenter som inte deltar aktivt i arbetet kan avskiljas från projektet.
Slutseminarium, 28/5
Varje grupp kommer att presentera sin rapport under MAX 10 minuter. Därefter följer ca 5 minuter med kommentarer och frågor från examinator och opponerande grupp (se nedan). Samtliga gruppmedlemmar skall kunna svara för rapportens innehåll. Obligatorisk närvaro gäller hela dagen.
Opposition
Vid slutseminariet ska varje grupp opponera på en annan grupps lösning, som den presenteras i rapporten och vid presentationen. Den föreliggande rapporten ska noggrant gås igenom, och opponenterna ska väcka diskussion i frågor som behandlas, visa på tänkbara alternativa lösningar, påpeka eventuella oklarheter och svagheter i rapporten, etc. Oppositionen ska genomföras i positiv anda, och syftar inte till att hitta så många felaktigheter som möjligt i den andra gruppens arbete. Oppositionen levereras också som ett skriftligt dokument till den andra gruppen direkt efter presentationen. I den skriftliga oppositionen ges även kommentarer på rapporten som sådan; vid den muntliga oppositionen ska fokus ligga på den tekniska lösningen.
Rapporten
Rapporten skrivs enligt den rapportmall som finns på kurswebben. En första version av den fullständiga rapporten lämnas in via Canvas samt till opponerande grupp, enligt datum i detaljplaneringen. Denna version läses och kommenteras av opponerande grupp. Slutlig rapport lämnas in via Canvas efter slutseminariet, enligt detaljplaneringen. Det är denna version som bedöms av examinator.
Notera att den löpande texten i rapporten endast i undantagsfall bör innehålla ren kod. Viktiga delar av koden kan publiceras i ett appendix. Däremot bör ett kondensat av de diagram, och liknande, som beskriver lösningen finnas med i rapporten.
Etiskt förhållningssätt
Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.
Ytterligare information
Projektarbetets genomförande
Möten under projektet
Projektarbetet startar 1 ½ - 2 veckor in i perioden. Arbetet bedrivs enligt vad som beskrivs i kurslitteraturen, ”Agil projektledning”, av Tomas Gustavsson, samt det kompletterande material som publiceras på kurswebben. Speciellt gäller detta etapper, etappmöten, stå-upp-möten samt produktlogg och etapploggar. Varje etapp rekommenderas vara 1-2 veckor lång.
Gruppen ska dessutom möta sin handledare varje vecka, de dagar som är markerade "Handledning" i schemat, och då redovisa status i arbetet och demonstrerar ny implementerad funktionalitet.
Obligatorisk dokumentation
Gruppen ska fortlöpande presentera information om projektet via en grupp-webb på KTH Social, https://kth.se/social. På denna sida presenteras och uppdateras fortlöpande tidplan, protokoll, produktlogg, protokoll från etappmöten samt ett schema över alla arbetsmöten (minst) en etapp framåt i tiden. I schemat över arbetsmöten ska för varje arbetspass anges var gruppen samlas; handledaren kan besöka dessa möten utan förvarning.
Anteckningar ska föras vid varje etappuppföljningsmöte. Handledaren ska vara kallad till alla etappuppföljningsmöten. Dessa möten bokas om möjligt in med handledaren de dagar som är markerade ”Handledning” i schemat. Vid dessa möten ska en representant för uppdragsgivaren och/eller produktägaren närvara.
Digital projekttavla
Gruppen ska använda en digital projekttavla för att presentera det fortlöpande arbetet under etappen. Tavlan ska uppdateras vid slutat av varje arbetspass. Man kan använda Taiga på KTH, kontakta då Reine Bergström för konto. Handledaren ska ha tillgång till gruppens projekttavla.
Kod, versionshantering
Koden ska finnas på en versionshanteringsserver, eller motsvarande tjänst på internet, som handledaren ges tillgång till (läsrättigheter). Om gruppen inte använder uppdragsgivarens tjänst för detta använder ni lämpligen Github (github.com eller KTH).