Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Like dokumenter
Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

INF112 (Systemkonstruksjon) - Våren 2008 Prosjektoppgave - Del 2

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

UNIVERSITETET I OSLO

INF1000 Eksamensforberedelser og -tips. Høst 2014 Siri Moe Jensen

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamen i fag TDT4140 Systemutvikling. 6. juni, 2006 kl

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF Obligatorisk innlevering 7

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

INF109 (kun et utvalg av kommentarene er med i denne rapporten)

UNIVERSITETET I OSLO

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Brukermanual for Quizbuilder

UNIVERSITETET I OSLO

2. Beskrivelse av mulige prosjektoppgaver

STK1000 Obligatorisk oppgave 1 av 2

Tittel Objektorientert systemutvikling 2

Obligatorisk oppgave 1 INF1020 h2005

INF112(kun et utvalg av kommentarene er med i denne rapporten)

Fra krav til objektdesign

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

UNIVERSITETET I OSLO

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

UNIVERSITETET I OSLO

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN. Objektorientert programmering

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Oppgave 1. Sekvenser (20%)

Tillatte hjelpemidler: alle skrevne og trykte. Antall sider: 2 (+ 1 side vedlegg, bakerst). Oppgave 1 [25%]

INF Obligatorisk innlevering 7

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN

HØGSKOLEN I SØR-TRØNDELAG

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

HØGSKOLEN I SØR-TRØNDELAG

Gjennomgang av eksamen H99

UNIVERSITETET I OSLO

Beskjed fra Skagestein

MAT-INF 1100: Obligatorisk oppgave 1

UNIVERSITETET I OSLO

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

1 Kodegenerering fra Tau Suiten

Løsningsforslag MAT102 Vår 2018

Hvorfor objektorientert programmering?

MAT-INF 1100: Obligatorisk oppgave 1

FINANSREGNSKAP med IKT 7,5 sp (ØABED1000) BEDRIFTSØKONOMI I med IKT 10 sp (ØABED6000)

UNIVERSITETET I OSLO

Om oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din.

Vurderingsformer i AST2000 høsten 2018

Thursday, August 19, Web-prosjekt

HiOA TDK. Ingeniørfag data. DATS1600 Programutvikling. Eva Hadler Vihovde. Prosjektoppgaven Prosessdokumentasjon - Alternativ 1

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

UNIVERSITETET I OSLO

NB! Endring i undervisningsplanen

Forside Eksamen INF1055 V17

Obligatorisk oppgave 5: Modellering av krav

MAT-INF 1100: Obligatorisk oppgave 1

UNIVERSITETET I OSLO

Prosjektoppgave INF3290 høsten 2015

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

STK1000 Obligatorisk oppgave 2 av 2

INSPERA- brukerveiledning for student hjemmeeksamen i gruppe

Eksamen Objektorientert Programmering 2011

Prosjektoppgave INF2120 Våren 2007: Rebusløp

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004

UNIVERSITETET I OSLO

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

Transkript:

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk BOKMÅL EKSAMEN I EMNET INF 112 Systemkonstruksjon Torsdag 7. juni 2007 Tid: 09:00 12:00 Tillatte hjelpemidler: Ingen Viktige generelle råd og kommentarer: Oppgavesettet består av 4 oppgaver. Kontroller at oppgavesettet er fullstendig. Den første oppgaven omhandler en problemstilling som beskrives i "Generell innledning til oppgavene". Les nøye gjennom hele oppgavesettet før du begynner å besvare enkelte delspørsmål. For den første oppgaven er det viktig å holde seg til momenter som er nevnt i "Generell innledning til oppgavene", og ikke trekke inn andre aspekter. Bruksmønstre og UML diagrammer må være formatert slik at de er leselige og enkle å forstå. Drøftinger i de 2 siste oppgavene bør være formatert slik at det er lett å få oversikt over besvarelsen. Bruk gjerne punktvis oppstilling eller overskrifter for å skille svarene på de enkelte momentene fra hverandre. Synes du at oppgaveteksten er uklar eller ufullstendig noe sted, må du lage dine egne presiseringer og angi disse i besvarelsen. Prosentsatsene ved hver deloppgave angir omtrentlig vektlegging ved sensur. LYKKE TIL! Torill Hamre Khalid A. Mughal 1 / 6

Generell innledning til oppgavene Fjernundervisningen ved Institutt for Informatikk, Universitetet i Bergen, tilbyr i dag to kurs i objektorientert programmering via Internett. I den forbindelse er det implementert flere nettbaserte informasjonssystemer, blant annet for: Dynamisk generering av kurssider Innlevering av obligatoriske oppgaver Kontrollspørsmål og interaktive (tidsbegrensede) prøver Disse systemene er utviklet gjennom flere prosjekter, deriblant flere hovedfagsoppgaver. De har derfor ulike måter å håndtere data på, og delvis forskjellige aksesskontroll-mekanismer. Innleveringssystemet finnes i flere varianter som blant annet håndterer brukervalidering på forskjellig måte. Det er også behov for noe ny funksjonalitet og for sikrere behandling og lagring av de innleverte oppgavene siden evalueringen av disse skal kvalifisere for retten til å gå opp til eksamen og i noen tilfeller inngå i den endelige karakteren i kurset. Kursledelsen ønsker derfor en ny versjon av innleveringssystemet, som skal kalles SendIt. Brukerne av SendIt vil være studenter ved fjernundervisningen, gruppeledere i kursene som gis, og de faglig ansvarlige. I tillegg trengs en systemadministrator. En innlevering kan bestå av en ZIP-fil, en XML fil (som må oppfylle en gitt struktur) eller en eller flere tekstfiler (som f.eks. kan inneholde Java-kode). SendIt skal tilby studentene mulighet for å laste opp innleveringer til de kursene de er oppmeldt i. Filen eller filene de laster opp skal hentes fra brukerens lokale maskin, og lagres i en sentral kursdatabase. Ved innlevering skal SendIt gi en kvittering for mottak, enten ved en melding i systemet, e-mail eller SMS, avhengig av hvilken type meldingstjeneste studentene har valgt. SendIt skal i tillegg lagre kvitteringene slik at studentene kan hente dem frem når de senere logger seg på systemet. Hver innlevering i et kurs har en frist, og systemet skal kun tillate en innlevering å bli lastet opp før fristen. Etter at fristen for en innlevering har gått ut, skal gruppelederne i det aktuelle kurset rette dem. SendIt må da kontrollere at innleveringene ikke inneholder skadelige filer. Det er f.eks. ikke tillatt for en ZIPfil å ha eksekverbare filer. SendIt skal også validere XML filer som er levert inn mot et predefinert skjema, f.eks. for kontrollspørmål besvart med SolveIt. Gruppelederne skal kunne knytte en kommentar og en poengsum til hver innlevering. Oppgavesett med kontrollspørsmål har allerede en poengsum. SendIt skal så klassifisere innleveringen som bestått/ikke bestått ut fra en forhåndsdefinert poengsum for innleveringen for det aktuelle kurset. Kommentarene til en innlevering vil kun være synlig for andre gruppeledere i kurset og faglig ansvarlig, inntil faglig ansvarlig har godkjent dem. Da vil de bli sendt ut til hver enkelt student, vha. den valgte meldingstjenesten. Kommentaren må også lagres i systemet, slik at studenter kan hente dem frem igjen ved senere pålogginger. SendIt skal holde holde orden på alle innleveringer i alle kurs, fristen for disse og status (innlevert innen frist, poengsum, og minimum poengsum for godkjent oppgave). Gruppeledere og faglig ansvarlige skal kunne ta ut statistikk over poenger oppnådd for øvelser i kurs de er knyttet til. På slutten av semesteret skal SendIt generere en liste over alle studenter som har fått godkjent obligatoriske oppgaver. Denne listen skal inneholde studentnummer, navn og samlet poengsum. For studenter som ikke har fått godkjent skal kun studentnummer og navn skrives ut (på en annen liste). Fordi data som håndteres av SendIt skal brukes til å sette endelig karakter, må dataene sikres på en god måte. Blant annet fordi personopplysninger skal lagres for entydig identifikasjon, f.eks. studentens navn, personnummer, adresse, e-mail address og mobilnummer. Kursledelsen ønsker at utviklergruppen kommer med forslag til hvordan dette skal gjøres. Implementering skal gjøres platformuavhengig ved bruk av Java og XML. Standardbiblioteker, f.eks. for håndtering av ZIP-filer og validering av XML filer skal brukes. Open source løsninger skal velges der slike er tilgjengelige. F.eks. er PostgreSQL valgt som databaseløsning av kunden. 2 / 6

Oppgave 1. (30%) (3 deloppgaver; a: 5%, b: 10%, c: 15%) a) Skriv 2-4 funksjonelle krav og 2-4 ikke-funksjonelle krav til SendIt ut fra den beskrivelsen som er gitt i "Generell innledning til oppgavene". Marker hvilke av kravene som er funksjonelle (F) og hvilke som er ikke-funksjonelle (IF). b) Identifiser aktørene til SendIt, og tegn et bruksmønsterdiagram for operasjoner knyttet til innlevering og retting av obligatoriske oppgaver. Skriv et bruksmønster for selve innleveringen. c) Lag en analysemodell (UML klassediagram) for den delen av systemet som har med innlevering av obligatoriske oppgaver å gjøre. Husk at innleveringen skal knyttes opp mot det aktuelle kurset som studenten tar, og at innlevering må skje før fristen. Ta med de attributter og operasjoner som du mener som er relevante ut fra den informasjonen som er tilgjengelig, og identifiser assosiasjonene mellom klassene. Oppgave 2. (20%) (2 deloppgaver, begge teller likt) a) Kunden ønsker at SendIt skal lagre diverse personopplysinger om studentene, slik det er gitt i "Generell innledning til oppgavene". Kunden ønsker dessuten å kunne bruke kodesnutter fra noen av besvarelsene som øvelsesoppgaver i senere kurs. Hvilke lover og regler må du ta hensyn til for å oppfylle disse kravene, og hvilke føringer legger disse på kundens ønsker? Forklar kort hva GPL (GNU Public Licence) innebærer dersom man ønsker å videreutvikle et program som er har denne lisensen? b) I årets INF112 prosjekt ble ulike metoder for beregning av poengsum for en besvarelse av et oppgavesett diskutert: Dagens metode, der man får poeng for hvert riktig svar man har valgt. (Feil svar gir 0 poeng.) Poeng gis kun dersom alle riktige svar på et spørsmål er krysset av, og 0 poeng dersom man bare har valgt noen av de riktige svarene. Bruk av minuspoenger for feil svar slik at det å svare feil eller "helgardere" en besvarelse vil trekke ned. Ett av designmønstrene i læreboken kan brukes til å lage en løsning som tillater bytte av utregningsmetode, også under kjøring av programmet. Hva heter dette mønsteret? Lag et UML klassediagram for dette mønsteret tilpasset gitt problemstilling. Oppgave 3. (30%) (2 deloppgaver; a: 20%, b: 10%) I denne oppgaven besvarer du ett punkt under delspørsmål a), avhengig av hvilken gruppe du tilhørte: a) Gruppe 1: Figur 1 viser design av systemarkitekturen til SolveIt. Forklar kort motivasjonen for denne oppdelingen, hva hovedansvaret til pakkene var, og avhengighetene mellom dem. Angi hvilke pakker, hvis noen, som ble gjenbrukt fra tidligere INF112 prosjekter. Gruppe 2: Figur 2 viser design av systemarkitekturen til SolveIt. Forklar kort motivasjonen for denne oppdelingen, hva hovedansvaret til pakkene var, og avhengighetene mellom dem. Angi hvilke pakker, hvis noen, som ble gjenbrukt fra tidligere INF112 prosjekter. 3 / 6

b) Angi hvilket av områdene under du arbeidet mest på. Gi en kort vurdering av kvaliteten på resultatet ut fra kundens forventninger slik du oppfattet dem. Skisser kort hvilke forbedringer du i ettertid ser kunne vært gjort. Prosjektstyring. Kravinnsamling og analyse. Systemdesign. Implementasjon (inkludert Javadoc) og testing (inkludert planlegging). Brukermanual og evaluering av brukervennligheten til SolveIt. For punktet "Implementasjon og testing" velg en av pakkene dersom du jobbet på flere. Oppgave 4. (20%) (2 deloppgaver; begge teller likt) Utviklingen av SendIt vurderes gjennomført som neste års INF112 prosjekt. a) Hvilke to (2) av aspektene under ville du endre til fremtidige INF112 prosjektet. Begrunn hvorfor du mener disse vil ha størst positiv innflytelse. Trekk inn dine erfaringer fra årets prosjekt i begrunnelsen. Gruppestørrelse. Verktøy for programutvikling og prosjektarbeid. Brukerkontakt. Opplæring i teknologier og verktøy. Oppgavens omfang og kompleksitet. Prosjektledelse. Utviklingsmetode. b) Det er flere andre faktorer som kan virke positivt inn på prosjektgjennomførelsen og det endelige resultatet. Nevn noen (maks. 3) av disse og begrunn hvorfor du mener de vil påvirke prosjektet. 4 / 6

Figur 1: Overordnet design for Gruppe 1. 5 / 6

Figur 2: Overordnet design for Gruppe 2. 6 / 6