IV1300 Programvaruteknik 7,5 hp

Software Engineering

Målet för programvaruteknik är att möjliggöra upprepning av lyckade mjukvaruutvecklingsprojekt, det vill säga mjukvaruprojekt där mjukvaran utvecklas enligt specifikationerna och inom givna budget- och tidsramar.

I en värld där komplexiteten hos mjukvarusystem ständigt ökar samtidigt som kraven på flexibilitet ökar är det nödvändigt att kombinera programvaru-teknikens principer med lättrörliga metoder som testdriven utveckling och en närvarande kund.

  • Utbildningsnivå

    Grundnivå
  • Huvudområde

    Teknik
  • Betygsskala

    A, B, C, D, E, FX, F

Kurstillfällen/kursomgångar

HT18 för programstuderande

Lärandemål

Målet för programvaruteknik är att möjliggöra upprepning av lyckade mjukvaruutvecklingsprojekt, det vill säga mjukvaruprojekt där mjukvaran utvecklas enligt specifikationerna och inom givna budget- och tidsramar. I en värld där komplexiteten hos mjukvarusystem ständigt ökar samtidigt som kraven på flexibilitet ökar är det nödvändigt att kombinera programvaruteknikens principer med lättrörliga metoder som testdriven utveckling och en närvarande kund.

Efter genomförd kurs skall studenten kunna:

  • beskriva skillnaden mellan plan-driven och lättrörlig utveckling.
  • redogöra för grunderna för ett programvarutekniskt angreppssätt för mjukvaruutveckling och principerna bakom.
  • redogöra för grunderna för plandrivet angreppssätt för mjukvaruutveckling och principerna bakom.
  • redogöra för grunderna för ett lättrörligt angreppssätt för mjukvaruutveckling och principerna bakom.
  • beskriva de lättrörliga arbetssätten i Scrum och XP.
  • beskriva och använda ett flertal tekniker (både från klassisk programvaruteknik och lättrörliga) för:
    - kravinsamling och kravhantering
    - resursplanering
    - riskanalys och riskhantering
    - testplanering
    - versionshantering
    - tids- och kostnadsuppskattningar
  • bedöma lämpligheten hos dessa tekniker för ett känt projekt, även möjliga kombinationer av plandrivna och lättrörliga sådana.
  • avgöra och motivera varför vissa tekniker är lämpliga att använda i plandrivna utvecklingsprojekt.
  • avgöra och motivera varför vissa tekniker är lämpliga att använda i lättrörliga utvecklingsprojekt.
  • hitta lämpliga programvarutekniksmetoder för framtida arbetsuppgifter.
  • lätt kunna ta till sig arbetsprocesser som använder sig av programvarutekniksmetoder.
  • utvärdera projekt och analysera bakomliggande orsaker till framgångar och misslyckanden för användning i framtida projekt.

Kursens huvudsakliga innehåll

För att på ett framgångsrikt sätt kunna leda ett icke-trivialt mjukvaruprojekt är det viktigt att besitta kunskap om alla aktiviteter som ingår i ett mjukvaruprojekt. Kursen fokuserar på att lära ut aktiviteter som projektplanering och projekthantering, kvalitetssäkring, versionshantering, grundläggande tids- och kostnadsuppskattning, grundläggande mätning av mjukvara, skapande och analys av kravspecifikation samt grundläggande validering och verifiering av mjukvara.

Efter genomgången kurs kommer studenten att ha:

  • deltagit aktivt i diskussioner under föreläsningar och seminarier.
  • deltagit aktivt i ett mjukvaruprojekt där man använt sig av en kombination av plan-drivna och lättrörliga tekniker.

Kursupplägg

Kursen ges i form av föreläsningar och seminarier och ett mjukvaruprojekt som utförs i grupp. Projektarbetet har som mål att omsätta programvaruteknikens teorier i praktiken.

Behörighet

  • Grundläggande behörighet samt Matematik D, Fysik B och Kemi A.
  • Goda programmeringskunskaper.

Rekommenderade förkunskaper

Goda programmeringskunskaper

Litteratur

  • Ian Sommerville:
    Software Engineering, 9

    ISBN-10: 0137035152
    ISBN-13:  9780137035151

    Publisher:  Addison-WesleyAlistair

  • (Cockburn: Agile Software Development, Addison-Wesley, 0-321-48275-1)

Examination

  • PRO1 - Projekt, 4,5, betygsskala: P, F
  • TEN1 - Tentamen, 3,0, betygsskala: A, B, C, D, E, FX, F

Ges av

EECS/Datavetenskap

Examinator

Mira Kajko-Mattsson <mekm2@kth.se>

Övrig information

Tidigare kursinformation, t o m V2010:
http://people.dsv.su.se/~beatrice/IV1300/

Versionsinformation

Kursplan gäller från och med VT2019.
Examinationsinformation gäller från och med VT2019.