Komplett pensumoversikt for programvarearkitektur ved NTNU — med forklaringer, sentrale begreper, eksamenstips og vanlige fallgruver. Eksamensoptimalisert basert på tidligere eksamener.
Denne studieguiden dekker pensum i TDT4240 Programvarearkitektur ved NTNU. Faget bygger i hovedsak på Bass, Clements og Kazman sin bok Software Architecture in Practice (3. utgave) og Kruchtens 4+1 View Model of Software Architecture. Målet er at du skal kunne resonnere om, designe, dokumentere og evaluere programvarearkitektur med utgangspunkt i kvalitetsattributter framfor ren funksjonalitet.
Eksamen er en fire timers skriftlig prøve som følger et svært stabilt mønster: en del med korte teorispørsmål, en mønster-gjenkjenningsoppgave der du velger riktig arkitekturmønster for fem systembeskrivelser, en oppgave om edge-dominante systemer, en oppgave om skyarkitektur, en oppgave der du skriver kvalitetsattributt-scenarioer, og til slutt en stor designoppgave på 30 poeng (nesten halvparten av eksamen) der du designer en arkitektur for et beskrevet system med ASR-er, taktikker, mønstre, prosess-view, logisk view og begrunnelse.
Studieguiden er organisert tema for tema etter hvor tungt temaene faktisk veier på eksamen: dokumentasjon/views er klart tyngst (prosess- og logisk view alene er 22 av 30 poeng i designoppgaven), fulgt av arkitekturdesign og ASR, kvalitetsattributter, arkitekturstiler og sky- og edge-dominante arkitekturer (som til sammen utgjør en fast bolk på 9 poeng hvert år). Taktikker, designmønstre, arkitekturevaluering og vedlikeholdbarhet kommer først og fremst som korte teorispørsmål, men er nødvendige for å skrive et godt designsvar.
De sentrale arkitekturmønstrene (Layered, Broker, MVC, Pipe-and-Filter, Client-Server, Peer-to-Peer, Service-Oriented, Publish-Subscribe, Map-Reduce, Multi-tier) og hvilke kvalitetsattributter hvert mønster fremmer. Sentralt på eksamen i mønster-gjenkjenningsoppgaven.
Et arkitekturmønster (architectural pattern/style) er en gjennomprøvd løsning på et tilbakevendende designproblem på systemnivå. Det beskriver et sett med elementtyper, hvordan de samhandler, og hvilke begrensninger (constraints) som gjelder. Et mønster fremmer noen kvalitetsattributter på bekostning av andre, og det er nettopp denne avveiningen du må kunne argumentere for.
For hver systembeskrivelse, velg ETT mønster og begrunn i én setning:
Nøkkelformler
Vanlige feil
Eksamenstips
Laster...