TDDC76 Programmering och datastrukturer
Projekt
Projektet ska genomföras i grupper om fyra-sex personer. Plan för genomförande finns nedan.
Dokument som ska lämnas in ska vara skrivna med något text- eller dokumentverktyg, figurer får ritas för hand. Dokumentens innehåll beskrivs kort på sidor som finns länkade under respektive moment i projektplaneringen nedan.
Grunderna i objektorienterad programutveckling och vanliga hjälpmedel beskrivs i dokumentet Objektorienterad programutveckling i ett nötskal
Projektgrupper har på eget initiativ och med framgång använt olika verktyg och bibliotek, t.ex.
- Doxygen dokumentationssystem för, bland annat, C++
- GitLab.ida stöd för versionshantering
- dokumentframställning
- Cinder bibliotek för grafik, ljud, video, m.m.
- openFrameworks verktygslåda för grafik, ljud, video, m.m.
- SFML (Simple and Fast Multimedia Library) multimediabibliotek
- SDL (Simple Directmedia Layer) multimediabibliotek
- Qt ramverk för utveckling av grafiska program
- WebCollab webbaserat system för projekthantering
Övrigt
• Exempel på projekt som gjorts tidigare.
• Socketar i ett nötskal
• Frågor och svar
• Valgrind ramverk för att bygga dynamiska analysverktyg tillgängliga verktyg
• Humor
Plan för genomförande
För frågor som kan vara av allmänt intresse finns en sida med svar.
Bilda projektgrupper och föreslå projekt
Projektgrupperna ska registrera sig genom anmälan till assistenten senast ett visst datum, se kursens schema för Ht1.
I samband med projektgruppsregisteringen helst innan ska gruppen välja ett projekt. Projektförslaget ska diskuteras med assistenten, som får göra en bedömning om dess lämplighet och genomförbarhet. Detta måste vara avklarat i så god tid att gruppen hinner skriva kravspecifikationen innan deadline för denna.
Kravspecifikationen
En kravspecifikation ska tas fram. Av denna ska det blivande systemets funktioner klart framgår och användargränssnitt och andra externa egenskaper ska beskrivas. Detta ska vara användarens syn och krav på systemet, dvs vad systemet ska klara, ej hur. Uppdelning kan göras i absoluta krav på det levererade systemet samt tilläggsfunktionalitet, vilken utlovas endast i mån av att det kan utföras inom projektets tidsram.
Vad bör en kravspecifikation innehålla?
Kravspecifikationen ska lämnas till handledaren för bedömning i slutet av Ht1, se exakt när i kursens schema för Ht1
Objektorienterad analys
OOA genomförs med utgångspunkt från kravspecifikationen. Analysen dokumenteras med objekt- och klassdiagram, scenarion, tidsdiagram, etc., med tillhörande beskrivande texter.
OOA-dokumentet ska vara handledaren tillhanda senast ett visst datum, se kursens schema läsperiod Ht2.
Klasskort och beskrivningsformulär
Vad bör ett analysdokument innehålla?
Värt att notera: En väl genomförd OOA och tillika OOD framhålls genomgående i tidigare års studenters erfarenhetsredovisningar som synnerligen viktigt för att projekt kunnat genomföras framgångsrikt och i tid (eller inte, om man slarvat...).
Objektorienterad design
OOD genomförs med utgångspunkt från OOA-dokumentet. Denna omfattar en överordnad systemdesign, infrastrukturdesign (t.ex. design av användargränsytor och permanent datalagring), samt detaljdesign av klasser. Resultatet ska vara förfinade och kompletterade diagram, scenarion och tillhörande beskrivningar, samt avslutade klassbeskrivningar.
Designdokumentet lämnas till handledaren senast ett visst datum, se kursens schema för Ht2.
Klasskort och beskrivningsformulär
Vad bör ett designdokument innehålla?
Kodning
Programmering av systemet görs i C++ och en "testmiljö" skapas, så att man på något sätt kan prova systemet. En möjlighet är att skriva ett huvudprogram som tillåter interaktiv testning av programmet. En annan möjlighet är att koda scenarion och låta programmet skriva ut olika resultat då ett scenario exekveras. Resultatet av detta moment ska vara ett välstrukturerat och välkommenterat program, inklusive nödvändiga datafiler, Make-fil för systemets generering, samt en användarhandledning.
Exempel på utformning av kodmallar
Projektet ska vara avslutat och slutdokumentation (kod) inlämnad senast då läsperiod Ht2 slutar, se kursens kursens schema för Ht2.
Erfarenhetsrapport
Varje grupp ska lämna in en kort erfarenhetsrapport. Den kan utformas antingen så att gruppen skriver tillsammans om sina erfarenheter av projektet eller att var och en skriver om sina egna erfarenheter och att dessa sätts ihop i ett gemensamt dokument, se exempel på det senare (ett autentiskt dokument från tidigare år, lätt redigerat samt anonymiserat).
Sidansvarig: Jonas Lindgren
Senast uppdaterad: 2015-08-18