DD2386 Mjukvarukonstruktion i större system 7,5 hp

Patterns for Large-scale Development

För att kunna utveckla stora program krävs en tydlig uppdelning i entiteter. Varje entitet måste ha ett ansvar och genom publika APIer vara användbar utan att behöva modifieras. Genom att konstruera rätt abstraktion och motsvarande struktur blir ett stort/komplext program enklare att utveckla och förvalta. Kursen kommer även att befrämja studenternas analytiska tänkande och sinne för ordning och struktur.

  • Utbildningsnivå

    Avancerad nivå
  • Huvudområde

    Datalogi och datateknik
    Informations- och kommunikationsteknik
    Informationsteknik
  • Betygsskala

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

Det finns inget planerat kurstillfälle.

Lärandemål

Efter godkänd kurs ska studenten kunna

  • identifiera behovet av designmönster i utveckling av ny eller i förvaltning av existerande kod, samt implementera dessa i förekommande fall
  • strukturera, ur ett objektorienterat perspektiv, stora program så att de blir lättare att förstå och förvalta
  • konstruera och dokumentera publika APIer med ett tydligt ansvar
  • designa entiteter så att de blir testbara samt skriva test för dem
  • skydda sitt programs interna design från de publika APIerna
  • utveckla ett program i samarbete med andra
  • granska och reflektera över programkod
  • vidareutveckla given programkod

i syfte att

  • förstå och behärska de parametrar inom programutveckling som gör programkod hållbar, återanvändbar och flexibel inför förändrade krav.

Kursens huvudsakliga innehåll

Designmönster: öppen-stängd-principen (open-closed principle), ettansvarsprincipen (single responsibility principle), omkastad styrning (inversion of control), strategy pattern, template pattern, adapter pattern, wrapper pattern, decorator pattern och builder pattern; enhets- och systemtester, beroendeinjektion (dependency injection), globalt tillstånd, APIer, implementationsläckor, dokumentation av komponenter.

Kursupplägg

Kursen består av en serie laborationsuppgifter, sprintar, där nya krav tillkommer i varje sprint. På slutet ska kodgranskning av andras program genomföras.

Behörighet

För fristående kursstuderande krävs 90 högskolepoäng varav 45 högskolepoäng inom matematik eller informationsteknik. Dessutom krävs engelska B eller motsvarande.

Rekommenderade förkunskaper

Kunskaper i objektorientering och Javaprogrammering motsvarande DD1361 Programmeringsparadigm, DD2385 Programutvecklingsteknik, DD1341 Introduktion till datalogi, DD1346 Objektorienterad programkonstruktion eller DD1332 Objektorienterad programmering.

Litteratur

Kurslitteratur meddelas senast 4 veckor innan kursstart på kurswebben.

Examination

  • PRO1 - Projekt, 7,5, betygsskala: A, B, C, D, E, FX, F

Ges av

EECS/Datavetenskap

Kontaktperson

Tomas Ekholm, tomase@kth.se

Examinator

Tomas Ekholm <tomase@kth.se>

Övrig information

Kursen ersätts från och med hösten 2017 av DD2487 Storskalig programvaruutveckling.

Versionsinformation

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