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.

Kursomgång och genomförande

Kursomgångar saknas för tidigare och kommande terminer, samt för innevarande termin.

Kursinformation

Innehåll och lärandemål

Kursinnehå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.

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.

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.

Kurslitteratur och förberedelser

Särskild 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.

Utrustning

Ingen information tillagd

Kurslitteratur

Kurslitteratur meddelas senast 4 veckor innan kursstart på kurswebben.

Examination och slutförande

Betygsskala *

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

Examination *

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

Examinator beslutar, baserat på rekommendation från KTH:s samordnare för funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.

Examinator får medge annan examinationsform vid omexamination av enstaka studenter.

Möjlighet till komplettering

Ingen information tillagd

Möjlighet till plussning

Ingen information tillagd

Examinator

Tomas Ekholm

Ytterligare information

Kurswebb

Ytterligare information om kursen kan hittas på kurswebben via länken nedan. Information på kurswebben kommer framöver flyttas till denna sida.

Kurswebb DD2386

Ges av

EECS/Datavetenskap

Huvudområde *

Datalogi och datateknik, Informations- och kommunikationsteknik, Informationsteknik

Utbildningsnivå *

Avancerad nivå

Påbyggnad

Ingen information tillagd

Kontaktperson

Tomas Ekholm, tomase@kth.se

Etiskt förhållningssätt *

  • Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
  • Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
  • Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.

Övrig information

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