TTM4115
Design av kommuniserende systemer
Vår
Trondheim
Engelsk
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:
- Klassifisere ulike typer av krav, og forklare de viktigste aktivitetene i en utviklingsprosess. Nevne og oppdage potensielle problemer under kravspesifikasjon.
- 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.
- Forstå og beskrive hovedtrekkene ved applikasjonsprotokoller (som HTTP og MQTT), og bruke dem på korrekt måte i kontekst av en systemarkitektur.
- Liste opp og forklare hovedelementene i en smidig utviklingsmetode som for eksempel Scrum, og reflektere over deres anvendelse i et gitt utviklingssammenheng.
B. Ferdigheter:
- Fange opp brukerkrav og syntetisere relevante use cases med rett detaljnivå.
- Skrive prosjektleveranser som beskriver systemkrav, egenskaper og løsninger.
- Planlegge og koordinere utvikling av større programvareprodukter i et team av utviklere.
- Tenke i tilstander og transisjoner, og håndtere kompleks, samtidig oppførsel på en korrekt måte.
- Modellere forskjellige aspekter av et system på en effektiv måte, spesielt med tanke på detaljnivå og konsistens mellom forskjellige perspektiver.
- Bruke smidige utviklingsmetoder og reflektere over bruken av de i kontekst av et prosjekt.
- Gjøre riktige designvalg for systemarkitektur og dokumentere dem på en hensiktsmessig måte.
C. Generell kompetanse:
- Organisere og lede møter der brukerscenarioer blir samlet, diskutert og vurdert.
- Organisere arbeid med flere utviklere.
- Lede gruppediskusjoner og idémuldring.
- Gi tilbakemelding til andres arbeid som er kritisk, konstruktiv og relevant.
- 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.