Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Sensurfrist: 19. des. 2012 Eksamen i fag TDT4140 Systemutvikling 28.11.2012 9.00 Hjelpemidler A1: Kalkulator tillatt Alle trykte og håndskrevne hjelpemidler tillatt: Faglig kontakt under eksamen: Prof. Maria Letizia Jaccheri tel. 91897028 Eksamen er kvalitetssikret av: Per Håkon Meland Eksamen består av fire deler: 1) Prøving av generell kunnskap 27 %. 2) Krav og modellering 30 %. Alle delspørsmål teller likt. 3) Planlegging 23%. Alle delspørsmål teller likt. 4) Testing 20%. Alle delspørsmål teller likt. Les alle oppgavene før du begynner, disponer tiden og forbered spørsmål til faglærer ankommer lokalet. Gjør antagelser der det er nødvendig. Skriv kort og konsist på angitt sted. Om nødvendig kan du bruke tilleggsark. Merk disse tydelig. Lykke til!
Side 2 av 10 Oppgave 1. Hvert riktig svar gir 1.5 poeng. Feil svar teller -0.5. Ubesvart spørsmål teller null. Totalt 27 poeng. A. Programvare (software) er definert som dataprogram uten tilhørende dokumentasjon. True False B. Programvareprodukter er alltid utviklet for en spesiell kunde. True False C. Validering av programvare er en fase hvor man forsikrer seg om at det man lager er det kunden krever. True False D. Gjennomførbarhetsstudie, utvelgelse og analyse, spesifisering og kravvalidering er de viktigste delfasene av kravutvikling (requirements engineering). True False E. Test-først utvikling (Test-first development) betyr at når en systemfunksjon er identifisert skal man skrive testen for koden som implementerer den funksjonen før spesifikasjonen. True False F. I henhold til test-først utvikling skal testene være automatiserte og alle kjøres på nytt for hvert inkrement av systemet. True False G. Organisasjonskrav (organisational requirements) er generelle krav utledet fra grunnregler og prosedyrer (policies and procedures) i kundens organisasjon. Organisasjonskrav er funksjonelle krav. True False H. Generalisering (generalization) er brukt til å forenkle modeller av system med mange lignende objekter ved å assosiere til en super-klasse med felles arkitekturmønster (architectural patterns). True False I. Et arkitekturmønster er en stilisert, abstrakt beskrivelse av god praksis for arkitekturdesign, som har vært utprøvd og testet for mange ulike system og omgivelser. True False J. Programvaredesign (software design) er en aktivitet hvor programvarekomponenter og deres relasjoner, basert på en kundes krav, er identifisert. Denne aktiviteten er høyst repetitiv og kan automatiseres. True False K. Programvareinspeksjon (software inspection) omhandler utprøving og observasjon av produktets oppførsel. True False L. Vedlikeholdsinnsats (maintenance efforts) kan utløses av ny funksjonalitet eller endringer (65%), reparasjon av feil (17%) eller tilpasning til omgivelsene (18%). True False M. Et sosio-teknisk system (socio-technical system) vil alltid produsere samme sekvens av resultater gitt den samme tilførselssekvensen. True False N. Prosjektrapportering (project reporting) er ikke en ledelsesaktivitet. True False O. Milepæler (milestones) er tidspunkter i kalenderen hvor du kan sjekke fremgang, for eksempel overlevering av systemet for testing. True False P. Modularitet (modularity) er en kvalitetsegenskap. True False Q. Kap-24 Planleggbarhet (schedulability) er en kvalitetsegenskap. True False R. Kvalitetsegenskaper (quality attributes) er funksjonelle krav. True False
Side 3 av 10 Eksempelbeskrivelse (til bruk i oppgave 2,3,4) Selskap A har avtalt å utvikle et mobilbasert system for barn (heretter kjent som MBSC) for et sykehus. Prosjektet har blitt initiert av den lokale foreldreforeningen for kronisk syke barn. Denne foreningen er sterkt involvert i prosjektet og forplikter seg til å delta i utviklingen av systemet. MBSC-systemet vil komplementere (ikke erstatte) eksisterende informasjonssystem på sykehuset og inkluderer følgende hoved funksjonalitet: 1) Informasjon til foreldre og barn om barnets spesifikke sykdom og behandling; 2) Avtalehåndtering (appointment management) inkludert aktive påminnelser om avtaler; 3) barneunderholdning for barn før og under behandling, som for eksempel enkle spill. Systemet vil bare støtte mobile enheter. For hvert barn kan en eller flere foreldre registrere sitt eget mobiltelefonnummer og lage en bruker. Når en bruker ønsker å søke etter informasjon om et barn eller å reservere en avtale, må hun logge seg på systemet, mens systemet sjekker hennes identitet og styrer tilgang. Brukere får beskjed med en SMS 24 timer før hver avtale. Når en besøkende ankommer sykehuset kan han bruke mobiltelefonen til å skanne en QR KODE som en tilgjengelig ved inngangen til sykehuset. Da vil systemet spørre vedkommende om han vil registrere seg, og hvis det er tilfelle spørre om identifikator og hente navn fra et bakenforliggende system. Det kan også snakke med andre bakenforliggende systemer for å hente mer informasjon om vedkommende. Det kreves ikke registrering for bruk av underholdningsfunksjonaliteten, for eksempel filmer og spill. Brukerne av systemet er foreldre, barn og en administrator. Prosjektet startet den første uka i januar 2013. Opptil tre personer i selskap A kan arbeide på prosjektet.
Side 4 av 10 Oppgave 2 Krav 30 poeng a) Lag use case diagram for hovedfunksjonene til systemet; (F1) Informasjon, (F2) Avtalehåndtering, (F3) Underholdning.
Side 5 av 10 b) Gitt hovedfunksjonalitetskravet "F2 Avtalehåndtering" og et av de funksjonelle underkravene er "F2.1 Reserver avtale", angi andre underkrav til F2. Krav ID Beskrivelse F2 Avtalehåndtering F2.1 Reserver avtale c) Spesifiser en hendelsesbeskrivelse (scenario description) for kravet "Tilby underholdning".
Side 6 av 10 d) Spesifiser et sekvensdiagram for "Reserver en avtale". e) Definer de logiske entitetene til systemet og deres attributter (klassediagram).
Side 7 av 10 Oppgave 3 Planlegging 23 poeng a) Du som prosjektleder vil argumentere for bruk av smidig (agile) utviklingsmetode for et slikt programvaresystem. Angi de viktigste grunnene som motiverer dette valget. Du kan angi opptil fem grunner
Side 8 av 10 b) Lag en plan for å implementere dette prosjektet som 3 Scrum Sprints. Hvor lenge vil prosjektet vare? Hva vil kostnadene bli i ukesverk? c) Oppgi start- og sluttdato, samt varighet for utviklingen av de tre hovedfunksjonene (oppgaver). Spesifiser varighet for hver oppgave i uker eller dager. Vær tydelig på hvilken enhet du bruker. Lag en ressursallokeringsplan.
Side 9 av 10 Oppgave 4: Testing (20 poeng) Betrakt MBSC-systemet. a) Beskriv kort dine planlagte hovedområder for testingen av systemet, gitt at det er bestemt at dette prosjektet skal implementeres med 3 Scrum Sprints. b) Beskriv 2 scenarier som kan være til hjelp for å designe tester for F1.
Side 10 av 10 c) Beskriv høynivå tester (testdata, forhåndsbetingelser (preconditions) og forventet resultat) for testing av de tre hovedfunksjonene. Skriv minst to tester for hver av dem. Funksjon Testdata Forhåndsbetingelser Forventet resultat