TTM4115

Design av kommuniserende systemer

Vår

Trondheim

Engelsk

Oversikt

Snitt

B

3,99

0,07

Ståprosent

100 %

likt

Karakterfordeling
Snitt over tid
Ståprosent over tid

Om emnet

Faglig innhold

Emnet dreier seg om metoder, språk og arkitektur for å utvikle IKT systemer med vekt på kommunikasjon mellom systemkomponenter. Det inkluderer klassiske IKT systemer, cyberfysikalske systemer, tingenes internett, og kombinasjoner av slike systemer. Hovedtemaene er: - Utvikling av systemer i henhold til krav og use cases fra brukere - Språk for systemspesifikasjon og systemmodeller, med vekt på beskrivelse av oppførsel - Semantikk av spesifikasjons- og designmodeller, og konsistens mellom de - Utviklingsmetodikk, blant annet agile metoder.

Læringsmål

A. Kunnskap:

  1. Klassifisere ulike typer av krav, og forklare de viktigste aktivitetene i en utviklingsprosess. Nevne og oppdage potensielle problemer under kravspesifikasjon.
  2. Gjenkjenne modelleringselementer i UML, forklare semantikken av dem, og finne den rette måten å implementere dem i kode. Dette omfatter bland annet use case-, sekvens-, tilstandsmaskin- og deployment-diagrammer.
  3. Forstå og beskrive hovedtrekkene ved applikasjonsprotokoller (som HTTP og MQTT), og bruke dem på korrekt måte i kontekst av en systemarkitektur.
  4. Liste opp og forklare hovedelementene i en smidig utviklingsmetode som for eksempel Scrum, og reflektere over deres anvendelse i et gitt utviklingssammenheng.

B. Ferdigheter:

  1. Fange opp brukerkrav og syntetisere relevante use cases med rett detaljnivå.
  2. Skrive prosjektleveranser som beskriver systemkrav, egenskaper og løsninger.
  3. Planlegge og koordinere utvikling av større programvareprodukter i et team av utviklere.
  4. Tenke i tilstander og transisjoner, og håndtere kompleks, samtidig oppførsel på en korrekt måte.
  5. Modellere forskjellige aspekter av et system på en effektiv måte, spesielt med tanke på detaljnivå og konsistens mellom forskjellige perspektiver.
  6. Bruke smidige utviklingsmetoder og reflektere over bruken av de i kontekst av et prosjekt.
  7. Gjøre riktige designvalg for systemarkitektur og dokumentere dem på en hensiktsmessig måte.

C. Generell kompetanse:

  1. Organisere og lede møter der brukerscenarioer blir samlet, diskutert og vurdert.
  2. Organisere arbeid med flere utviklere.
  3. Lede gruppediskusjoner og idémuldring.
  4. Gi tilbakemelding til andres arbeid som er kritisk, konstruktiv og relevant.
  5. Reflektere over egen arbeid, individuell og i et team.

Læringsutbyttet av dette kurset er knyttet til konstruksjon av store, distribuerte IKT-systemer som er ryggraden i digitale infrastrukturer som er kritiske for samfunnet. Slike systemer implementerer funksjoner på en robust og effektiv måte, og er direkte relatert til SDG 9 (Industry, Innovation and Infrastructure). Indirekte bidrar slike systemer også til andre bærekraftsmål som muliggjørende teknologi i ulike områder, som SDG 2 (Zero Hunger), SDG 3 (Good Health and Wellbeing), SDG 7 (Affordable Clean Energy), for å nevne noen.

Læringsformer og aktiviteter

Kurset bruker teambasert læring der tradisjonelle forelesninger kombineres med øvinger. Gjennom semesteret får studentene kontinuerlig tilbakemelding på egen læringsfremgang gjennom flere tester (engelsk: Readiness Assurance Tests (RATs)). Disse testene gjennomføres først av hver student individuelt og deretter gjentas i grupper, vangligvis i begynnelsen av hovedtimen i hver læringsenhet . For å lære å arbeide med større prosjekter i en realistisk setting, inkluderer kurset også en semesteroppgave. I denne oppgaven planlegger, forbedrer og utvikler studentene en egen applikasjon.