Agil objektorienteret softwareudvikling
Overordnede kursusmål
Målet med kurset er at formidle de grundlæggende begreber i object-oriented programming, og at sætte studerende i stand til at anvende disse begreber ved at bruge typiske objektorienterede programmeringssprog. Den studerende vil kunne være i stand til at læse programkode og at analysere programmets adfærd. Derudover vil den studerende være i stand til at anvende moderne agile softwareudviklingspraksis i sammenhæng med mindre softwareudviklingsprojekter, både ved at udvide eksisterende software og at udvikle nye funktionaliteter. Der vil fokuseres på kvalitetssikring, bl.a. automatiserede test og kontinuerlig integration. Yderligere lærer den studerende at arbejde i teams, at præsentere sit arbejde og dokumentere det. Den studerende lærer også at arbejde med aktuelle softwareudviklingsværktøjer (f.eks. IDE’er osv.).
See course description in English
Læringsmål
- Forklare principperne for objektorienterede programmeringssprog
- Udvikle software ved hjælp af objektorienterede principper i det introducerede programmeringssprog til at håndtere indkapsling, abstraktion, arv og polymorfisme
- Modellere software ved hjælp af begreberne af brugerhistorier og adfærdsdrevet udvikling
- Anvende begregerne af automatiseret test, refactoring og genbrug af eksisterende kode og biblioteker
- Forklare betydningen af systematisk fejlsøgning og være i stand til at anvende den
- Anvende begreberne af versionskontrol og kontinuerlig integration
- Anerkende og være i stand til at anvende et par ukomplicerede designmønstre
- Forklare fordelene ved en valgt softwarearkitektur
- Udføre et multi-ugers softwareteamprojekt, der anvender parprogrammering og dækker brugerhistorier, kører software, test og dokumentation
- Præsentere koncis projektiterationsresultater (dvs. at køre software og andre artefakter)
- Skrive en klar og velstruktureret rapport, der dokumenterer alle de centrale aspekter af et softwareudviklingsprojekt
- Håndtere udviklingen af et softwareprodukt i et agil team
Kursusindhold
Kurset introducerer en almindeligt anvendt objektorienteret programmeringssprog, og anvender agile udviklingsmetoder, der dækker følgende emner:
Emnerne, der præsenteres, er:
▪ Primitive typer og klassetyper
▪ Grundlæggende programmeringskonstruktioner (loops, branching statements, osv.)
▪ Værdier, operatører og udtryk
▪ Klasser, objekter, felter og metoder
▪ Brug af biblioteker
▪ Design af klasser, hierarkier, arv
▪ Abstraktion (abstrakte klasser, grænseflader)
▪ Fejl- og undtagelseshåndtering
▪ Grundlæggende designmønstre og softwarearkitekturer
▪ Pair programming
▪ Brugerhistorier, adfærdsdrevet udvikling, test af enheder
▪ Debugging, refactoring
▪ Versionskontrol, kontinuerlig integration
▪ Brug af udviklingsværktøjer (IDE osv.)
Anbefalede forudsætninger
02002/02003/02631, Erfaring med procedural programming
Undervisningsform
Seminarer og træningskurser. Træningskurser omfatter løsningen af mindre øvelser samt udvikling af et softwaresystem i hold på 4-6 studerende. Projektopgaven dokumenteres ved at køre software, og at præsentere testresultater og rapporter, der er inkluderet i den samlede vurdering af kurset.