INF1050 vår2006 Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelie fakultet Eksamen i: INF 1050 Systemutviklin Eksamensda: Freda 2. juni 2006 Tid for eksamen: 14.30-17.30 Oppavesettet er på: 5 sider pluss vedle Vedle: UML-diarammer for kompletterin 2 sider Tillatte hjelpemidler: Alle trykte o skrevne Kontroller at oppavesettet er komplett før du beynner å svare på spørsmålene. Innlednin Det har i Nore den senere tid vært en del uheldie til dels traiske hendelser der bakterier har blitt spredd med matvarer o forårsaket alvorli sykdom o lidelse. Dette har ført til at myndihetene vil intensivere arbeidet med å utvikle systemer for sporin av matvarer fra der hvor råvarene produseres fram til forbruker. Hjemmel for dette finnes i 11 i LOV 2003-12-19 nr 124: Lov om matproduksjon o mattryhet mv. (matloven), der det heter Konen kan i forskrifter om sporbarhet for innsatsvarer, planter, dyr eller nærinsmidler, samt om sporbarhet for materialer o jenstander som er bestemt til å komme i kontakt med, eller kan ha innvirknin på innsatsvarer eller nærinsmidler. I de forskriftene som nå etter hvert blir jort jeldende i hele EU/EØS-området er hovedprinsippet at enhver virksomhet som innår i produksjonskjeden skal ha oversikt over se selv, hvilke virksomheter innsatsvarene (råvarene, inrediensene) kommer fra (bare det nærmest foreående ledd), hvordan produktene settes sammen (hvilke innsatsvarer som innår i hver enkelt sats ( batch )) o hvilke virksomheter produktene år til (bare det umiddelbart neste ledd). Det siste jelder do ikke for detaljister, som ikke har plikt til å reistrere hva sluttforbrukeren kjøper. Poenet med dette er selvsat at når alarmen år, kan enhver virksomhet lett finne ut hvilke virksomheter innsatsvarene kommer fra, disse virksomhetene ijen kan slå opp i sine informasjonssystemer o finne ut hvilke innsatsvarer de har brukt osv. slik at man fort får oversikt over mulie smittekilder. Ny merkinsteknoloi i form av RFID-brikker (små databrikker der laret informasjon kan avleses ved hjelp av radiobøler) vil jøre det enklere enn før å merke o føle innsatsvarene. Sentralt i dette oppleet står berepet sats ( batch, LOT ), som vi kan oppfatte som en identifiserbar porsjon av en blandin av ulike inredienser eller innsatsvarer. Hvis vi for eksempel baker brød, består satsen av selve brøddeien som etter hvert kan bli til flere brød. I kommersiell produksjon skal alle satser ha et unikt satsnummer, o man skal omhyeli reistrere satsnumrene på alle innsatsvarene som brukes i satsen. En brødbaker må altså tilordne et nytt satsnummer til hver ny brøddei, o han må reistrere satsnummeret på melsekken, på jærpakken osv. som brukes i akkurat denne brøddeien. I denne oppaven forutsetter vi at satsnummeret er satt sammen av Eksamen i INF1050 Side 1 av 8 2. juni 2006
virksomhetens ornr (oranisasjonsnummer) o en lokal nummererin (virksatsnr) innenfor virksomheten. Oppave 1 (20% 36 min.) Vi har fått i oppave å lae et sporinssystem som skal tilfredsstille kravene skissert i innledninen, tilpasset mindre produksjonsvirksomheter. For databasen i systemet er foreslått følende dataorienterte UML-klassediaram: Produsent ornr {id} kontaktperson 1 * «identifyin» Sats virksatsnr {id} produksjonsda Leverandør ornr {id} kontaktperson 1 * Inredienssats Produktsats Kunde * * * * ornr {id} kontaktperson En produsent er den virksomheten som har produsert en sats, men den kan å via en eller flere leverandører før den havner hos en virksomhet som bruker den som inrediens. a) Foreslå en relasjonsdatabasestruktur som byer på denne modellen, dvs. tabeller med attributter, primærnøkler o referanseinteriteter. Berunn val av løsnin for underbereps-konstruksjonen. b) Det finnes klasser i modellen som man kan vurdere å eneralisere til en felles klasse. Ten opp den modellen som kommer fram hvis man foretar denne eneraliserinen. Hvilke fordeler kan en slik eneraliserin ha? c) Hvis vi forutsetter at produkter ikke kan innå som inredienser innenfor den samme produksjonsvirksomheten, hvordan kan dette uttrykkes i modellen? (Husk at hver virksomhet er forutsatt å ha hver sin database.) d) Det unike satsnummeret vil være delvis informasjonsbærende. Hvordan kan vi se dette av modellen? Berunn hvorfor satsnummeret tilfredsstiller kravet om at identifikatoren skal være stabil. e) Marker rafisk i modellen en skranke som uttrykker at en kunde som kjøper en produktsats ikke er produsent av den. Oppave 2 (20% 36 min.) Produksjonsvirksomheter benytter se av oppskrifter (resepter) som forteller hvilke inredienser o hvor mye av dem som skal innå i hver enkelt sats. I den følende tabelldatabasen er det som eksempel lat inn to oppskrifter på bakeprodukter. Eksamen i INF1050 Side 2 av 8 2. juni 2006
Produkt Resept produktnr produktnavn produktnr inrediens mende enhet bolle rubrød mararin melk jær 100 5 50 dl salt 0,5 ts sukker 1 dl kardemomme, malt 2 ts hvetemel 750 e 1 stk mararin 50 melk 6 dl jær 50 sirup 2 ss salt 2 ts rumel 400 hvetemel 350 a) I tabellen Resept manler det en entydihetsskranke. Over hvilke attributter vil du sette den? b) Er hver enkelt av disse tabellene på Boyce-Codd normalform? Hvis ikke, hva må jøres for å få dem over på denne formen? c) Hvilken referanseinteritet er det nærliende å etablere mellom de to tabellene? Gjør rede for de to ulike måtene denne referanseinteriteten kan bli brutt på, o hva som bør skje i hvert av de to tilfellene. d) Sett opp en SQL-kommando som enererer tabellen Produkt (uten forekomster). e) Sett opp en SQL-kommando som enererer en virtuell tabell (et "view") som inneholder en tabell med de produktnr som har inrediensen sukker. f) Sett opp en SQL-kommando som ir en tabell over alle produktnr som har både sukker o jær som inredienser. ) Sett opp en SQL-kommando som ir en tabell over hvor mane produktnr som inneholder sukker. h) Sett opp en SQL-kommando som ir en tabell over hvor mane inredienser hvert av produktene identifisert ved produktnr inneholder. i) Sett opp en SQL-kommando som ir en tabell med oppskriften på bolle, der produktnr ( ) er erstattet med produktnavn ( bolle ). j) Utvid datamodellen fra oppave 1 slik at den oså kan brukes som utanspunkt for å enerere denne tabelldatabasen. k) Hvis det er vikti å få ut inrediensene i en bestemt rekkeføle hva må jøres med tabelldatabasen da? l) Mane resepter/oppskrifter har variasjoner for eksempel får man rosinbolle ved å føye til inrediensen rosin til runnoppskriften for bolle. Foreslå en løsnin for hvordan slike variasjoner kan inkluderes i tabelldatabasen. m) Data fra tabelldatabasen skal kunne vises fram i en nettleser. Nevn de etter din personlie menin to viktiste eenskapene ved prorammerinsspråket PHP som jør det spesielt velenet for dette formålet. Eksamen i INF1050 Side 3 av 8 2. juni 2006
Oppave 3 (20% 36 min.) I denne oppaven skal du lae en objektorientert utformin (desin) av et bruksmønster som heter Oppdater kunde. Du skal her anta at en kunde er beskrevet i en klasse med et ornr o kontaktperson. Bruksmønsteret skal helt enkelt i aktøren (som er produsent for kunden) mulihet til å oppdatere kontaktpersonen til en itt kunde. Du skal anta at aktøren allerede vet ornr for kunden o at aktøren oppir dette ved oppstart av bruksmønsteret. Systemet skal deretter vise det amle kontaktnavnet til aktøren o i aktøren mulihet til å endre det. Til slutt skal systemet bekrefte overfor aktøren at oppdaterinen ble utført. Dersom det ikke finnes en kunde med det oppitte ornr, skal bruksmønsteret i en feilmeldin o avslutte handlinsforløpet. I følende tre deloppaver (3a, 3b o 3c) skal du fullføre henholdsvis tekstli spesifikasjon av bruksmønsteret, sekvensdiaram for normal hendelsesflyt o klassediarammet som tilsvarer sekvensdiarammet for normal hendelsesflyt. NB! Les hele oppaveteksten før du starter o sør for at den tekstlie spesifikasjonen tilsvarer (er konsistent med) sekvensdiarammet, som i sin tur tilsvarer (er konsistent med) klassediarammet. a) Spesifiser bruksmønsteret med normal hendelsesflyt o variasjoner ved å fullføre vedleet til oppave 3a: b) La et sekvensdiaram for normal hendelsesflyt (som du spesifiserte i oppave 3a) ved å fullføre vedleet til oppave 3b. c) La et klassediaram for sekvensdiarammet (som du spesifiserte i oppave 3b) ved å fullføre vedleet til oppave 3c. Oppave 4 (10% 18 min.) Hva Hvor- Hva dan Hvordan Refleksjon Analyse Utformin Vurderin Planlein Forandrin Realiserin Reulerin Produkt Styrin Ovenstående fiur viser hovedaktivitetene i systemutviklinsprosessen. a) Hvilken av disse hovedaktivitetene omfatter slike aktiviteter som evaluerin av et produsert informasjonssystem? b) Anta at et informasjonssystem skal utvikles i samsvar med en inkrementell metode. La en kopi av fiuren (det er tilstrekkeli å tene opp de seks hovedaktivitets-rektanlene tekst er ikke nødvendi så lene de er plassert på samme måte) o vis med en sammenhenende strek med pil i spissen i hvilken rekkeføle hovedaktivitetene jennomløpes. Eksamen i INF1050 Side 4 av 8 2. juni 2006
Oppave 5 (10% 18 min.) Vi antar at informasjonssystemet som skissert i innledninen, med en database som tilsvarer datamodellen i oppave 1, faller inn under Personopplysninsloven. a) Gi en berunnelse for dette (ev. at systemet ikke faller inn under loven) b) På hvilket rettsli runnla kan virksomhetene som vil benytte systemet, troli få hjemmel til å behandle personopplysninene? c) Må virksomhetene søke om konsesjon for å behandle personopplysninene? Berunn svaret! Oppave 6 (20% 36 min.) Ansvarli departement har besluttet at et informasjonssystemet som skissert i innledninen skal tas i bruk. Departementet er imidlertid i tvil om hvilken overordnet løsnin som er best, o vurderer to ulike alternativer. Den ene løsninen er basert på det syn at dette informasjonssystemet er et offentli anliende. Det offentlie beviler nødvendie midler o ir Mattilsynet ansvaret for at en sentralisert løsnin blir utviklet der alle aktuelle virksomheter skal reistrere sine data. Den alternative løsninen er basert på det syn at sikrin av tilstrekkelie data for å oppnå sporbarhet er noe alle involverte har et ansvar for. Hver virksomhet vil da bli pålat å reistrere nødvendie data i et system de selv må anskaffe o drifte. Mattilsynet vil da spesifisere krav til systemet i form av nødvendi minimumsfunksjonalitet, o hvilke data som må reistreres. Basert på slike spesifikasjoner (som vi kan kalle en standard) kan så ulike private datafirmaer utvikle sine ene løsniner o konkurrere om å få solt disse til de aktuelle virksomhetene. a) Anta at du er ansatt i et firma som skal i et anbud eller tilbud på en sentralisert løsnin. Beskriv en systemutviklinsstratei for dette alternativet. Vurder styrker o svakheter ved denne løsninen o den systemutviklinsstrateien du har beskrevet. Du bør spesielt vurdere i hvilken rad reler for offentlie innkjøp setter rammer for utviklinen av denne løsninen o hvilken innvirknin dette vil ha. b) Anta at du er ansatt i et firma som vil utvikle en prorampakke for sal i samsvar med det andre alternativet. Beskriv en systemutviklinsstratei for dette alternativet. Vurder styrker o svakheter ved denne løsninen o den systemutviklinsstrateien du har beskrevet. c) Gi en anbefalin til ansvarli departement anående hvilken løsnin o hvilken systemutviklinsstratei som bør pålees leverandørene. Du må her jerne anbefale en annen løsnin enn de to som er beskrevet ovenfor. Berunn svaret. Lykke til! Ole Hanseth, Erik Arisholm, Gerhard Skaestein Eksamen i INF1050 Side 5 av 8 2. juni 2006
For notater Eksamen i INF1050 Side 6 av 8 2. juni 2006
Vedle til oppave 3a) Spesifiser normal hendelsesflyt o variasjoner: Navn: Oppdater kunde Aktør: Produsent Trier: En kunde har fått ny kontaktperson Normal Hendelsesflyt: Variasjoner: Eksamen i INF1050 Side 7 av 8 2. juni 2006
Vedle til oppave 3b) Spesifiser de to manlende objektene samt manlende meldiner o aktiverinsbokser Produsent ok:=oppdaterenkunde(ornr) kundere:kundereister K:Kunde k: Kunde oppdaterkunde(ornr) viser ammeltnavn nyttnavn := beomnyttnavn(ammeltnavn) oppir nyttnavn oppdaterin OK bekreftoppdatertkunde(true) Vedle til oppave 3c (fyll inn manlende metoder o assosiasjoner m/multiplisitet) OppdaterKunde Kant KundeReister finnkunde(ornr): Kunde Kunde ornr: Strin kontaktperson: Strin ikontaktperson() : Strin //returnerer navnet oppdaterkontaktperson(nyttnavn : Strin) Eksamen i INF1050 Side 8 av 8 2. juni 2006