STE6221 Sanntidssystemer LØSNINGSFORSLAG TIL KONTINUASJONSEKSAMEN

Like dokumenter
STE6221 Sanntidssystemer LØSNINGSFORSLAG TIL EKSAMEN

STE6221 Sanntidssystemer Løsningsforslag kontinuasjonseksamen

STE6221 Sanntidssystemer Løsningsforslag

LØSNINGSFORSLAG TIL EKSAMEN I STE6221 Sanntidssystemer

GJENNOMGANG UKESOPPGAVER 9 TESTING

STE 6219 Digital signalbehandling Løsning til kontinuasjonseksamen

STE 6219 Digital signalbehandling Løsningsforslag

Eksamen i TTK4145 Sanntidsprogrammering 12. august

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

Design med ASIC og FPGA (Max kap.7 og 18)

- analyse og implementasjon

Fakultet for informasjonsteknologi, Løsning på kontinuasjonseksamen i TDT4190 Distribuerte systemer 19. august 2006,

Generelt om operativsystemer

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

EKSAMEN STE 6219 Digital signalbehandling

Systemutviklingen er ferdig når et system er operativt. Med operativt menes når systemet blir brukt av brukerne på et faktisk arbeidssted.

UNIVERSITETET I OSLO

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

LØSNINGSFORSLAG TIL EKSAMEN STE 6219 Digital signalbehandling

Statisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere

Evaluering av It-systemer i et forvaltningsperspektiv. Drift, vedlikehold og videreutvikling av IT-systemet

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Kravspesifikasjon med UML use case modellering. Erik Arisholm

Lykke til! Eksamen i fag SIF8018 Systemutvikling. 20 mai, 2003 kl Fakultet for fysikk, informatikk og matematikk

Eksamen i fag SIF8018 Systemutvikling. Fredag 25. mai 2001 kl

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Løsningsforslag for TDT4186 Operativsystemer

Løsningsforslag til Case. (Analysen)

UNIVERSITETET I OSLO

Forprosjektrapport. ERTMS Driver Interface simulering. ERTMS Driver Interface simulering. Alexander Yngling

Krav. Beskriver tjenestene produktet skal håndtere Kravene kan testes

Grunnleggende testteori

Gruppe 43. Hoved-Prosjekt Forprosjekt

FYS 3270(4270) Data-assistert konstruksjon av kretselektronikk (tidligere Fys 329) Fys3270(4270)

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer 14. august 2006,

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel

LØSNINGSFORSLAG. EKSAMEN I Sanntidssystemer Fagkode: STE6221

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case?

Grunnleggende testteori

Løsningsforslag: Oblig 1. INF1050: Gjennomgang, uke 12

RAMMER FOR MUNTLIG-PRAKTISK EKSAMEN I TEKNOLOGI OG FORSKNINGSLÆRE ELEVER OG PRIVATISTER 2014

Grunnleggende testteori. Etter Hans Schaefer

Kort om evaluering og testing av It-systemer. Hvordan vurdere, verdsette, velge og teste?

INF3430/4431. Kretsteknologier Max. kap. 3

Funksjonskravene er delt opp i to deler, krav til spillsekvens og generelle funksjonskrav.

Generelt om operativsystemer

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

EKSAMEN TTK4175 INSTRUMENTERINGSSYSTEMER. Torsdag 13. Mai 2004 Tid: kl Sensurfrist 3. Juni Totalt 4 timer

Forskningsmetoder. INF1050: Gjennomgang, uke 13

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

Løsningsforslag for TDT4186 Operativsystemer

Model Driven Architecture (MDA) Interpretasjon og kritikk

VEDLEGG 1 KRAVSPESIFIKASJON

Introduksjon til kurset og dets innhold

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

Gruppenavn. Prosjektnavn Kravdokument For Navn på systemet. Versjon <1.0>

TDT4160 AUGUST, 2008, 09:00 13:00

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

UKEOPPGAVER 2: SYSTEMUTVIKLINGSPROSESSER OG PROSJEKTARBEID INNSPILL TIL SVAR

Eksamensveiledning. LOKALT GITT SKRIFTLIG EKSAMEN DTE2001 Produksjon og materialer. Sist redigert 03/03/19. Gjelder fra eksamen 2019.

Characteristics of a good design

Prototyping. Plenumstime Uke 6. Med Maria og Helle

Gruppenavn. Beskrivelse av arkitektur For Navn på systemet. Versjon <1.0>

Gjennomføring av muntlig-praktisk eksamen i Teknologi og Forskningslære 1 Privatister

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Kravspesifikasjon. Aker Surveillance. Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo,

Operativsystemer og grensesnitt

Fakultet for informasjonsteknologi,

Oppgave 1: Multiple choice (20 %)

IEC Utvalg av endringer i ny versjon

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

GJENNOMGANG UKESOPPGAVER 4 USE CASE MODELLERING HELGA NYRUD & KRISTIN BRÆNDEN

INF2270. Input / Output (I/O)

Oppgave 1. Finn krav. Finn krav. Finn test

1. Å lage programmer i C++

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Læreplan i Programmering og modellering - programfag i studiespesialiserende utdanningsprogram

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

ALUMINIUMSKONSTRUKSJONSFAGET BESKRIVELSE AV PRØVEARBEIDET

Kontekst. DRI3010 Emnekode 644 Kandidatnummer Dato SIDE 1 AV 6

UNIVERSITETET I OSLO

RAMMER FOR MUNTLIG EKSAMEN I SAMFUNNSFAGENE ELEVER 2018

Introduksjon til programmering og programmeringsspråk

EKSAMENSOPPGAVE. Adm.bygget, rom K1.04 og B154 Ingen. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl.

Organisering og ledelse av hardware-utvikling

RAMMER FOR MUNTLIG-PRAKTISK EKSAMEN I TEKNOLOGI OG FORSKNINGSLÆRE X og 1 PRIVATISTER 2018

KONTINUASJONSEKSAMEN STE 6159 Styring av romfartøy

Kravhåndtering. INF1050: Gjennomgang, uke 03

PR november 2009 Programvare, pc-basert kontroll Side 1 av 5

EKSAMEN I FAG SIF MMI OG GRAFIKK Lørdag 16. august 2003 Tid: kl

EKSEMPLER, POTENSIALE OG UTFORDRINGER VED BRUK AV SPILLTEKNOLOGI FOR EFFEKTIVISERING AV HAVOPERASJONER

Test of English as a Foreign Language (TOEFL)

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: NEI

Forside Eksamen INF1055 V17

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

Scheduling og prosesshåndtering

Transkript:

HØGSKOLEN I NARVIK Avdeling for teknologi MSc.-studiet EL/RT STE6221 Sanntidssystemer LØSNINGSFORSLAG TIL KONTINUASJONSEKSAMEN Tid: Fredag 18.08.2006, kl: 09:00-12:00 Tillatte hjelpemidler: Godkjent programmerbar kalkulator, med tomt minne. Ingen trykte eller håndskrevne hjelpemidler tillatt. Eksamen består av 5 oppgaver og 3 sider. Faglærer: Førsteamanuensis, Dr.ing. Per J. Nicklasson, Tlf. 76 96 64 01/48 29 72 37 Oppgavenes vekt er angitt i prosent av total poengsum. Hvert nummerert delspørsmål gir 5 poeng.

Oppgave 1 (20%) a) Forklar kort hvilke hovedtyper av feil som kan oppstå ved utvikling av et sanntidssystem. Følgende hovedgrupper av feil kan oppstå: Feil i kravspesifikasjon Feil i systemdesign, altså design av totalsystemet som maskinvaren og programvaren inngår i. Feil i design av programvaren og maskinvaren Feil ved koding (syntaktiske, semantiske feil, logiske og algoritmiske feil) I tillegg kan interaksjonen med omverdenen gir feilsituasjoner ved bruk, fordi man under utvikling ikke har tatt hensyn til alle mulige situasjoner som kan oppstå (kan også tolkes som en ukomplett kravspesifikasjon). b) Hva er det som kjennetegner driftsikker programvare? Driftssikker ( dependable ) programvare kjennetegnes ved at den er: Korrekt ( correct ) Pålitelig ( reliable ) Sikker ( safe ) c) Hvilke 3 hovedtyper av krav benyttes i en kravspesifikasjon for programvare? Funksjonelle krav Ikke-funksjonelle krav Utviklingskrav d) Hva menes med prototyping? Nevn 3 bruksområder for prototyping ved utvikling av programvare. Med protoyping mener vi fremstilling av tidlige versjoner av et produkt (eller deler av produktet) for å kunne studere enkelte egenskaper med produktet. Prototypen er som oftest en nokså ukomplett versjon av produktet. Det kan f.eks. være en en simulering eller animasjon av produktets oppførse vha. dataverktøyl. Utforskende prototyping for å teste om begge parter er enige i krav. Exploratory prototyping Prototyping av krav f.eks. ved hjelp av visuelle verktøy. Solution prototyping. Granskende prototyping (alternative løsninger i designfasen, visuelle verktøy). Investigative prototyping. Verifikasjon (analyse av kode vha. formelle spesifikasjonsmetoder). Verification prototyping. Utviklende prototyping (modifikasjoner og oppgradering). Evolutionary prototyping. Oppgave 2 (15%) a) Hva menes med begrepet bespoke system-on-chip designs når det gjelder maskinvare for sanntidssystemer? Med dette begreper mener vi spesialdesignede maskinvareløsninger der hele systemet (mikroprosessor, minne, etc.) i hovedsak er integrert på en brikke Det kan f.eks. være ASICs (Application Specific Integrated Circuits) eller FPGAs (Field Programmable Gate arrays).

b) Hva er det som gjør testingen av innebygde systemer spesielt vanskelig sammenlignet med testing av konvensjonelle applikasjonssystemer? Det er flere momenter: Utviklingen av programvaren foregår ofte på et annet system enn det den til slutt skal anvendes på. Det fysiske grensesnittet (mangel på skjerm, tastatur, tilkoblingsmuligheter osv.) kan gjøre det vanskelig å få innsikt i hva som skjer på det endelige systemet. Det er vanskelig å teste systemet i de virkelige omgivelsene og under de virkelige operasjonsbetingelsene. c) Anta at du skal designe et sanntids styresystem for et jagerfly. Hvordan vil du sikre deg at systemet er i stand til å takle feil som oppstår på best mulig måte? For det første må det gjøres en grundig jobb under utarbeidelse av kravspesifikasjonen for systemet, og design av systemet. For slike systemer er det vanlig å bruke spesialutviklet maskinvare (spesielle prosessorer som er grundig testet), og dessuten redundans både mhp. maskinvare (flere prosessorer som gjør det samme, og der resultatene veies opp mot hverandre) og programvare (ulike prosessorer kjører forskjellige programvareversjoner som skal gjøre det samme, men som er utviklet med forskjellige verktøy, språk og av ulike team). Det benyttes også vel uttestede sanntids operativsystemer som selvfølgelig har tjenester som gjør det mulig å implemetere harde sanntidskrav. Oppgave 3 (5% 5% 5% 6 5% 45%) a) Hvorfor er det fornuftig å benytte et operativsystem ved konstruksjon av et sanntidssystem der det inngår datamaskiner? Fordi operativsystemet er et verktøy som gjør det lettere å utvikle systemet. Operativsystemet tilbyr ferdige tjenester, slik at de som utvikler resten av systemet kan avgrense sin oppgave. Interaksjonen mellom ulike oppgaver kan være komplisert i et sanntidssystem. b) Hvilke tjenester bør et sanntids operativsystem minst kunne gi dersom det skal benyttes i et hardt sanntidssystem? Mulighet for å definere oppgaver Parallellitet av oppgaveutførelse ( concurrency ) Synkronisering av utførelse. Tilgang til systemressurser på bestemte tidspunkter og tilfeldige tidspunkter (mulighet for avbrudd) Timing av utførelse (spesielt viktig for harde sanntidssystemer) Kommunikasjon mellom oppgaver Alt dette må utføres på en predikterbar og pålitelig måte. c) Anta at det i et hardt sanntidssystem eksisterer oppgaver som utføres som et resultat av avbrudd som kan komme ved tilfeldige tidspunkter. Drøft hvilke konsekvenser dette kan ha mhp. systemets ytelse. Det kan ha den konsekvensen at systemet i verste fall slutter å fungere. Dersom det ikke er satt av stor nok slakke i tidskravene til systemet for at slike oppgaver kan utføres i tillegg til de andre oppgavene, vil det blir for lite tid til at alle oppgaver og avbrudd kan utføres. d) Forklar kort følgende begreper relatert til sanntidssystemer: 1. Scheduling

Tildeling av prosessortid til de ulike oppgavene. 2. Preemptive En oppgave kan avbrytes av operativsystemet slik at en annen oppgave kan få kjøre. 3. Kernel Brukes om et sett med hovedfunksjoner i et operativsystem, dvs. de mest nødvendige operasjoner 4. Concurrent Parallell (samtidig) kjøring av oppgaver. På et system med kun en prosessor er det jo ikke mulig å gjøre dette, så det blir en tilsynelatende parallell kjøring av oppgaver. 5. Reentrant code Kode som er utformet slik at kjøringen av koden kan avbrytes midlertidig, og så kan den samme koden kjøres med andre dataverdier. Etter hvert vil første bruk av koden gjøres ferdig. Alt dette kan skje uten feil. F.eks. kan flere oppgaver ( tasks ) kalle den samme funksjonen, som kan avbrytes midlertidig for så bli kjørt på nytt, uten at noen av resultatene blir feile. 6. Deadlock En situasjon dere en oppgave ikke kan gjøre seg ferdig før en annen oppgave har utført noe, og den andre oppgaven (via en kjede av sammenhenger) venter på den første. Andre oppgaver kan godt fungere utmerket, men dette kan også medføre at hele systemet etterhvert går ned. Oppgave 4 (15 %) a) Forklar hva som menes med vedlikehold av programvare. Vedlikehold av programvare innebærer modifikasjon av eksisterende programvare for enten å rette opp feil, eller for å implementere oppgraderinger (nye tjenester). b) Mange utviklere klager på vanskeligheter under vedlikehold av programvare. Hva kan årsaken til dette være? Det er ikke uvanlig at når et produkt kommer i vedlikeholdsfasen, så har de originale designere/utviklere forlatt åstedet. Følgelig blir vedlikehold vanligvis utført av personer som: Ikke var involvert i utviklingen. Ikke har mulighet til å få tak i de originale designerne. Har tilgang til minimal designdokumentasjon (f.eks. kun kildekode). Har tilgjengelig designdokumentasjon som ikke samsvarer med den faktiske koden. Har begrenset forståelse av systemets overordnede oppgave. Må lære mye om systemet på kort tid, selv for små endringer. Ikke selv ville skrevet koden slik den fremstår. c) Du holder på å starte et nytt programvareprosjekt. Hva vil du gjøre (generelt) for å sikre at skikkelig dokumentasjon blir generert til bruk under vedlikehold etter at systemet er ferdig? De viktigste kravene er at dokumenter skal være: Komplette. Korrekte. Klare og forståelige. Konsistente.

Først må vi definere (i en formell brukermanual) hva som menes med komplett. Vi må mao spesifisere hvilke dokumenter som kreves for prosjektet. Dernest må vi definere korrekthet (for dokumentene, ikke designet): Benytt en notasjon som har definert syntaks og semantikk. Forskrifter om ikke-standard syntaks må inkluderes (av realistiske årsaker). Klarhet og god forståelse oppnås på to måter; ved valg av diagram og valg av symbol i diagram. Dersom et modelleringsspråk er komplekst, bruk et hensiktsmessig subsett (bare det du har bruk for). Hvordan diagrammer benyttes er i virkeligheten knyttet opp mot designteknikk og prosess. Ingen kokebokløsninger er tilgjengelige; den beste guide er designerfaring. Generelt bør vi styre mengden av informasjon som presenteres og kompleksiteten av den. Konsistens oppnås best ved bruk av CASE verktøy. Dette vil ikke stoppe noen fra å gjøre feil, men i det minste vil alle relaterte diagram ha samme feil (konsistent). Videre bør konsistens gjelde også for kode; koden må reflektere designspesifikasjonen (ellers kan du forkaste alle designdokumenter). Til slutt må hele systemet gå under en viss politikk (dvs. rutiner), slik at alle endringer lagres og kan spores, og dokumentasjonen oppdateres ved behov. Oppgave 5 (5%) Hvordan kan diagrammer og diagrammetoder hjelpe til med å produsere forutsigbar og pålitelig programvare? Bruk av diagrammer kan bidrar på mange måter: (i) Som designverktøy. God forståelse av problemet kreves for å kunne tegne diagrammer. Introduserer formalitet og strenghet i designprosessen, spesielt der syntaks og semantikk er klart definert. Prosessen fjerner tvetydighet og tvil. Bedrer mulighet for revidering og analyse av design, og gir kontroll på progresjon. Gir grunnleggende materiell for presentasjon av systemet. (ii) Til bruk ved dokumentasjon. Diagram gir mulighet til å demonstrere at: Vi gjør den rette jobben (høynivå) Vi gjør jobben rett (lavnivå) Vi kan vise at vi gjør den rette jobben ved å bruke diagrammer for å illustrere: Helhetlig og detaljert funksjonalitet i systemet. Funksjonalitet og interaksjon mellom forskjellige delsystemer. Overordnet struktur sammen med de store delsystemer. Overordnet funksjonalitet i design. Samhandling mellom system og miljø. Gode høynivå diagrammer er enkle og forståelige, og viser de store trekkene i systemet. Ved å benytte disse er det relativt enkelt å se effekter på systemets oppførsel ved endringer. Å vise at jobben gjøres rett illustreres ved å benytte diagram som: Er løsningsorientert. Går i detalj. Vektlegger intern informasjon om systemet.