Introduktion och grundläggande begrepp för programvaruutveckling. Abstraktion / modeller och uppdelning. Livscykel för programvara. Unified process. Unified Modeling Language (UML). Kravspecifikation och kravanalys. Systemdesign. Objektdesign. Designmönster. Refaktorering. Omvandling av modeller till kod. Testning. Agil programvaruutveckling och agil modellering. Grunderna för extremprogrammering. DevOps-metoder.
Praktiska delen av kursen innehåller övningar och ett litet programvaruutvecklingsprojekt.