UNIVERSITETET I OSLO



Like dokumenter
Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Forside. Eksamen i IN1030 for Våren Ingen hjelpemidler tillatt.

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

UNIVERSITETET I OSLO

Fra krav til objektdesign

Spesifikasjon av Lag emne

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

Kravspesifikasjon. Kravspesifikasjon. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Hva skal systemet gjøre? Hvem og hva påvirker krav?

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

UNIVERSITETET I OSLO

Kravspesifikasjon med UML use case modellering. Erik Arisholm

Kravspesifikasjon. Dagens forelesning. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Kravspesifikasjon og objektorientert analyse

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

Tom Røise 9. Februar 2010

Beskjed fra Skagestein

Tom Røise 18. Februar 2009

Kravspesifikasjon. Erik Arisholm. Simula Research Laboratory. Institutt for Informatikk. INF1050-krav-1

UNIVERSITETET I OSLO

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

Lykke til! Eksamen i fag TDT4140 Systemutvikling NTNU Norges teknisk-naturvitenskapelige universitet

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

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

UML 1. Use case drevet analyse og design Kirsten Ribu

INF 5120 Obligatorisk oppgave Nr 2

UNIVERSITETET I OSLO

Hvordan komme i gang med ArchiMate? Det første modelleringsspråket som gjør TOGAF Praktisk

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

SLUTTRAPPORT. gruppe 42 Nils-Kristian Liborg, Bente Brevig, Tom Olav Bruaas, Eirik Lied og Hege Lid Pedersen. 25. november 2002

Prosjektstyring. Innhold: Prosessmodeller og prosjekter Prosjektplanlegging, inkl. tidsplanlegging Estimering og risikostyring

CASE verktøy. Systemutviklingsverktøy. Verktøyenes rolle. Hvorfor CASE verktøy. Eksempler på verktøy. Verktøyenes rolle

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell. Dagens forelesning. Fra krav til objekter

UNIVERSITETET I OSLO

A Study of Industrial, Component-Based Development, Ericsson

UML-Unified Modeling Language

Fellesprosjekt: gruppe 214

Del - leveranse Del 2. Inf 2120 fredag Gruppe 1 Knut Johannes Dahle

INF1050 Systemutvikling

EKSAMEN. Evaluering av IT-systemer. Eksamenstid: kl 0900 til kl 1300

Prosjektplan v1.7 (Revidert utgave 2)

Forelesning IMT Mars 2011

Prosjektgruppen: Gjermund Gartmann Tommy Jansson Margrethe Store. Prosjektledelse: Margrethe Store Kvalitetssikring: Tommy Jansson

NB! Endring i undervisningsplanen

Unified Modeling Language (UML) Kravspesifikasjon med UML use case modellering. UML diagrammer. Notasjon som støtter opp under modellbasert

UNIVERSITETET I OSLO

Gruppe 43. Hoved-Prosjekt Forprosjekt

t Institutt for informatikk Erik Arisholm 13. mai 2009 INF1050-oppsummering-1

UNIVERSITETET I OSLO

Fra krav til objekter. INF1050: Gjennomgang, uke 05

Kravspesifikasjon med. UML diagrammer. systemutvikling. Dokumentasjon av systemets krav, arkitektur, design og implementasjon

Hvordan er arbeidsmengden i forhold til omfanget i studiepoeng?

Kravspesifikasjon med. Erik Arisholm

UKE 11 UML modellering og use case. Gruppetime INF1055

Produktrapport Gruppe 9

Velkommen til. IN1010 Objektorientert programmering Våren 2018

Conference Centre Portal (CCP)

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Oppgave 1: Multiple choice (20 %)

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

SRD. Software Requirements and Design GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

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

INF Obligatorisk prosjektarbeid

UML-Unified Modeling Language. Prosess-oversikt. Use case realisering

Brukerkrav og use case diagrammer og -tekst 19. januar Agenda. Brukerkrav og use case. Diagrammer Tekst.

Forslag til løsning. Oppgave 1

Universitetet i Oslo Institutt for informatikk. Eskild Busch. UML hefte

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

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

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

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

Eksamen i fag TDT4140 Systemutvikling. 22. mai, 2008 kl

Spesifikasjon av Lag emne. Kursregistrering g bruksmønstermodell. Dagens forelesning. Fra krav til objekter

inf 1510: bruksorientert design

Software Requirements and Design (SRD) 1 Generelt om dokumenter

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

Innhold uke 9. Objektorientert programmering i Python. Om ukens pensum. Referanser og objekter Tema: Mer komplekse strukturer

Thursday, August 19, Web-prosjekt

INF Obligatorisk innlevering 7

UNIVERSITETET I OSLO

Kap3: Klassemodellering

UNIVERSITETET I OSLO

INF1050 Systemutvikling

INF Modellering med objekter (Oblig 2) **TimeregistreringSystem** (Designet av Alen Cemer

1 Kodegenerering fra Tau Suiten

INF 1050 BRUK AV MODELLERINGSVERKTØYET RATIONAL ROSE

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

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Utvikling fra skallet og inn

INF2120 Tools at your fingertips

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

I dag Prosjektstyring og prosjektgjennomføring

Prosjektoppgave våren 2007

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

2. Beskrivelse av mulige prosjektoppgaver

Hensikten med denne delen av kurset. Objektorientering hva er det? Objektets egenskaper. Best practises ved programvareutvikling

Velkommen til. INF våren 2017

STE6221 Sanntidssystemer Løsningsforslag kontinuasjonseksamen

Transkript:

Eksamen i IN219, 14. desember 2000, løsningsforslag Side 1 av 10 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN219 Store programsystemer Eksamensdag : Torsdag 14. desember 2000 Tid for eksamen : 09.00 13.00 Oppgavesettet er på : 2 sider Vedlegg : Ingen Tillatte hjelpemidler : Alle trykte og skrevne Oppgave 1 vektlegges 50% Oppgave 2 vektlegges 50% Kontroller at oppgavesettet er komplett før du begynner å besvare det. Les gjerne gjennom hele settet før du begynner med besvarelsen. Forsøk å legge vekt på god struktur i besvarelsen. Oppgave 1 (50 %) Som student på universitetet må du registrere deg til de kurs du vil ta (emnepåmelding). Du må angi kurs og hvilke øvingsgrupper du vil følge. Visse kurs krever bestått eksamen i andre kurs. For å kunne ta eksamen er det også et krav om godkjent obligatorisk oppgave (fra samme semester som eksamen eller fra tidligere semestre). Et annet krav for å kunne ta eksamen er at du har gyldig studiekort og har betalt semesteravgift. Før eksamen får du melding om når og hvor eksamen skal foregå. Etter at sensuren er falt, kan du ringe universitetet for å få opplyst ditt resultat. I denne oppgaven skal du anta at du er ansatt i et konsulentfirma som står for utviklingen av et elektronisk kursadministrasjonssystem kalt KURSADM. KURSADM skal støtte universitetets arbeid med å gjennomføre og sikre kvalitet i de aktivitetene som er beskrevet ovenfor. I alle underoppgavene nedenfor skal du selv gjøre ekstra antakelser dersom du finner det nødvendig. Oppg. 1A Lag en UML use case-modell (både use case-diagram og use casebeskrivelse) for KURSADM. Begrunn kort ditt valg av aktører. Aktører Student - Registrerer seg til kurs ved å angi kurs og øvingsgruppe.

Eksamen i IN219, 14. desember 2000, løsningsforslag Side 2 av 10 Kursadministrasjon - Legger inn hvilke kurs og øvingsgrupper som tilbys samt godkjente obliger og eksamensresultater for hver student. Student administrativt system - Eksternt system som holder oversikt over studenter med gyldig studiekort og betalt semesteravgift. Sensurtelefon - Eksternt system som eksamensresultater overføres til. Use case diagram: Student Emnepåmelding Sjekk forutsetninger Opprett kurs Opprett øvingsgrupper Kursadministrator Godkjenn obligatorisk oppgave Få overført eksamensresultater Sensurtelefon Registrer sensur Registrer student Stud.adm. syst. Registrer betalt semesteravgift

Eksamen i IN219, 14. desember 2000, løsningsforslag Side 3 av 10 Tekstlige beskrivelser av use casene En optimal løsning bør ha en kortfattet beskrivelse (ett par linjer) av hvert use case samt detaljert beskrivelse av ett par av use casene. Bare en kort beskrivelse av hvert use case er akseptabelt når diagrammet inneholder svært mange use case. Til dem som spurte opplyste Dag på eksamen at de ikke trengte å beskrive alle use casene hvis tiden ikke strakk til; det var bedre å beskrive noen færre, men heller grundig. Eksempel på kortfattet beskrivelse: Use case Opprett kurs Kursadministrator registrerer nødvendig informasjon om et nytt kurs. Informasjonen vil omfatte navn på kurset, emnekode, når og hvor det holdes samt navn på forelesere. Hvis kurset inneholder øvingsgrupper så inkluderes et use case for å opprette disse. Eksempel på detaljert beskrivelse: Use case Emnepåmelding Aktør Student Trigger En student ønsker å melde seg på ett eller flere kurs Precondition Studenten må være registrert i systemet Normal hendelsesflyt 1. Studenten logger seg inn med navn og passord 2. Systemet sjekker at studenten har betalt semesteravgift. 3. Systemet henter frem registreringsskjema for dette semesteret 4. Studenten fyller inn informasjon om kurs, øvingsgrupper samt adresseinformasjon 5. Systemet sjekker at studenten er kvalifisert til å ta de valgte kursene v.h.a. use caset "Sjekk forutsetninger". 6. Studenten bekrefter informasjonen og avslutter 7. Systemet lagrer informasjonen Alternativ hendelsesflyt 1a. Studenten bruker navn og/eller passord som ikke er kjent av systemet. 1a1. Systemet ber studenten om å forsøke igjen. Maks. 3 forsøk. 2a. Systemet oppdager at studenten ikke har betalt semesteravgift. 2.a.1. Systemet gir melding til studenten 2.a.2. Use caset avsluttes 5a. Systemet oppdager at studenten ikke er kvalifisert til å ta et av de valgte kursene 5.a.1. Systemet gir melding til studenten Postcondition Systemet er oppdatert med de kursene som studenten skal ta inneværende semester. Oppg. 1B Lag et objektorientert design for KURSADM der du anvender UML klassediagrammer. (Du må selv vurdere omfanget av ditt design i forhold til tiden du har til rådighet.)

Eksamen i IN219, 14. desember 2000, løsningsforslag Side 4 av 10 Klassediagram Kurs Navn Emnekode Sted Tid Foreleser Status Forutsetter OpprettØvingsgruppe() OpprettOblig() Forutsetninger() RegistrerStudentpåKurs() Oblig Nummer Status Øvingsgruppe Kurskode Gruppekode Sted Tid Status RegistrerStudentpåØvingsgruppe() Eksamensr esultat Karakter Studentinfo Navn StudentId SemesteravgiftBetalt GodkjennOblig() RegistrerSensur() SjekkObliger() SjekkNavnogPassord() SjekkBetaltSemesteravgift() SjekkForutsetninger() Forslaget ovenfor 1 B er noe "slapp i fisken". Der bør vel klassene for kurs, gruppe og obligatorisk oppgave splittes i to, en for beskrivelser av "fenomenet" og en for instanser knyttet til påmeldingen: F.eks. en for kursdefinisjon (eksempel på instans: IN219 i høstsemesteret 2000) og en for kurspåmelding for en gitt student. Resultatet blir da at noen av relasjonene <0:n, 0:n> forsvinner og de andre endres til <1, 0:n>. I en "normalisert" design vil det da være nok med én relasjon ut fra studentinfo, nemlig til kurspåmeldingsinstansen. Det er heller ikke lett å se hvordan mønsterløsningen håndterer regler knyttet til bruk av godkjente øvelser fra tidligere kurs.

Eksamen i IN219, 14. desember 2000, løsningsforslag Side 5 av 10 Oppg. 1C Lag et sekvensdiagram over operasjoner som vil inngå i to av use casediagrammene beskrevet i oppgave 1A. Sekvensdiagram for use case "Emnepåmelding" Studentene har lært å angi hvilken aktør det er som initierer interaksjonen. Student vil derfor bli vist som en aktør i sekvensdiagrammene i besvarelsene fordi det er slik det gjøres i Tau UML. I Rational Rose (som er benyttet i dette løsningsforslaget), vises bare objekter i sekvensdiagrammet. Merk at studentene ikke har lært om syntaks og semantikk for piler i sekvensdiagrammer. Husk at de er bedt om å lage sekvensdiagram for to use cases. :Student :StudentInfo :Kurs :Øvingsgruppe SjekkNavnogPassord() SjekkBetaltSemesteravgift() SjekkForutsetninger() Forutsetninger() RegistrerStudentpåKurs() RegistrerStudentpåØvingsgruppe() Oppg. 1D Beskriv noen metoder/teknikker for identifisering og/eller spesifisering av kravene til et programvaresystem. Gjør rede for deres svake og sterke sider. Noen teknikker: Fra foil av Ray Welland (dataflyt og datamodellering er lite vektlagt i IN219):

Eksamen i IN219, 14. desember 2000, løsningsforslag Side 6 av 10 De skal både beskrive teknikkene og fordeler/ulemper Data flow modelling (describing an existing system) Lite vektlagt i kurset Semantic Data Modelling (describing complex data structures; databases) Lite vektlagt i kurset Object modelling, class diagrams and use cases - Unified Modeling Language (UML) Mye vektlagt. Fordeler: Enkelt å forstå (?) pga. intuitive diagrammer og naturlig språk Enkelt å lære (??) Ulemper: Flertydig - ulike tolkninger hos ulike aktører (stakeholders) Verbos notasjon Viewpoint-oriented methods Vord er den metoden som omtales her Fordeler: (Fra Wellands foiler:) good for interactive systems (services) external viewpoints are natural, easy to identify valid viewpoints must have an interaction with the system (can eliminate invalid viewpoints) services have associated non-functional requirements. Formal specification Z er forelest her. Fordeler: Automatisk feilfinning, reduserer risikoen for feil, inkonsistens etc. Konsis og presis notasjon Ulemper: (Fra Wellands foiler:) The effort involved (mostly by hand) and skills required Lack of tool support, although some are becoming available Lack of necessary background and poor training of existing staff, together with the use of unfamiliar notations

Eksamen i IN219, 14. desember 2000, løsningsforslag Side 7 av 10 Lack of knowledge among project managers Validation problems hard to communicate ideas to users - might build perfect, but invalid, system again, tools required - animation, alternative representations Problems of scale formal specification techniques not suited for very large projects - lack of modularity, information hiding in some traditional f.s. techniques Prototyping (customer interaction, validation) Lite vektlagt i kurset Oppgave 2 (50 %) I denne oppgaven skal du kombinere teori fra pensum og praktiske erfaringer fra den obligatoriske prosjektoppgaven. Oppgaven skal kunne besvares også dersom du gjennomførte prosjektoppgaven i 1999 eller tidligere. Angi år for gjennomføring av obligatorisk prosjektoppgave i begynnelsen på besvarelsen! Oppg. 2A Angi hvilken prosessmodell (systemutviklingsmodell) din prosjektgruppe anvendte i det obligatoriske prosjektet og gjør rede for hovedprinsippene i denne prosessmodellen. I 2000 var det angitt at studentene skulle bruke en inkrementell utviklingsmodell. I 1999 og 1998 var prosessen nærmere en vannfallsmodell, men det kan hende at noen jobbet mer evolusjonært. Angitt prosessmodell må sjekkes opp mot resten av besvarelsene i oppgaven mhp konsistens. Hovedprinsippene i prosessmodellen beskrives gjennom fasers sekvens og iterasjoner, samt hvordan leveranser er delt opp. Stoff om dette står i foilene om prosjektplanlegging, litt spredt i Sommerville-boka kap. 3 + at det er gitt en beskrivelse av inkrementell prosessmodell i oblig-retningslinjene se in219- hjemmesidene. Sommerville definerer prosessmodell som: Abstract representation of a software process (from a particular viewpoint) og bruker en tradisjonell inndeling i vannfalls, evolusjonær,... modell. For å gjennomføre en svært god besvarelse bør studentene i tillegg ha tenkt på mer grunnleggende prinsipper rundt prosessmodellen, f eks anvendt noe av stoffet fra gruppedynamikken: Alle systemutviklingsmodeller gir strukturer for rekkefølge på aktiviteter. Modeller er ment å sikre at en hensiktsmessig rekkefølge på systemutviklingen gjennomføres. Systemutviklingsprosessen blir mer oversiktlig gjennom oppdeling i delproblemer (faser, aktiviteter, prosesssteg), mao støtte av en nokså universell problemløsningsstrategi. Noen systemutviklingsmodeller (inkrementelle) gir strukturer for leveranseoppdeling. Dette er gunstig for problemløsningen dersom delproblemene har svært ulik kompleksitet eller at leveransetidspunktet bør være ulike. Mao, matcher en naturlig problemløsningsstrategi for visse type problemer. Noen systemutviklingsmodeller gir strukturer for problemforståelse gjennom utprøving (f eks evolusjonær systemutvikling). Dette er naturlig problemløsningsstrategi for

Eksamen i IN219, 14. desember 2000, løsningsforslag Side 8 av 10 problemer der forståelsen mhp når problemet er løst (behovet er dekket) må antas å være ufullstendig. NB: Vi bør se an litt hva studentene har vektlagt før vi sier noe endelig om hvor mye vi skal belønne/trekke for at slike mer grunnleggende prinsipper er tatt med/ikke tatt med. Oppg. 2B Skisser kort de viktigste sammenhengene mellom prosessmodellen og prosjektplanen i ditt prosjekt, dvs hvordan prosjektplanen konkretiserte hovedprinsippene i prosessmodellen beskrevet i oppgave 2A. Her forventes det at studentene skal, relatert til sitt prosjekt, skisserer og konkretiserer sammenhenger relatert til at (tatt fra undervisningsfoilene): Faser i prosjektmodellen blir til overordnede aktiviteter og milepæler i prosjektplan (men prosjektplan vil typisk inneholde flere og mer detaljerte aktiviteter). Relasjon mellom faser i prosjektmodellen blir til Gantt-diagram eller lignende i prosjektplan. Innhold i faser i prosjektmodellen blir til leveranser, dokumentasjon, verifikasjon og validering, risikostyringsaktiviteter m.m. i prosjektplan. Prosjektplanen er prosjektleders virkemiddel for å sikre leveransene under rammebetingelsene som settes av prosessmodellen. Konflikter oppstår dersom disse to målene ikke samsvarer (ref. skunk projects og byråkrati ). En god besvarelse vil være kjennetegnet ved at studenten både evner å konkretisere viktige sammenhenger og å se dette i en større sammenheng. Spesielt viktig blir det (for de som har brukt inkrementell metode dvs flesteparten) å angi hvordan inkrementene ble implementert i prosjektplanen ( læreinkrement som de ble anbefalt å ha, se oblig-retningslinjer, prioritert inkrement som de skulle ha, og rest-inkrement - som vel de færreste rakk). Oppg. 2C Vurder fordeler og ulemper med den prosessmodellen dere anvendte i gjennomføring av den obligatoriske prosjektoppgaven i forhold til en alternativ prosessmodell. Angi og begrunn om du ville ha valgt den alternative prosessmodellen eller en annen prosessmodell dersom du skulle gjennomføre et lignende prosjekt på nytt. Her bør studenten komme med vurderinger om sammenhengen mellom valgt prosessmodell og prosjektets rammebetingelser, dvs størrelse, teknologisk risiko, usikkerhet i estimate, prosjektprioriteter (tid, kvalitet, kostnad), behov for opplæring m.m. Det meste av dette kan neppe leses direkte ut av Sommerville, og reflekterte erfaringer fra prosjektet (som viser at de har lagt innsats i og lært fra prosjektet) må vektlegges. Oppg. 2D Angi hvilke systemutviklingsverktøy dere benyttet i prosjektet. Klassifiser disse verktøyene. Beskriv fordeler og ulemper med bruk av disse verktøyene i forhold til oppgavene som ble løst. (Tips: Angi kriterier du har brukt i evalueringen og hva du sammenligner med når du angir fordeler og ulemper.) Hvilke verktøy: Årets studenter bør nevne Tau UML, helst også CVS

Eksamen i IN219, 14. desember 2000, løsningsforslag Side 9 av 10 Tidligere års studenter bør i hvert fall nevne Make og CVS. Vi godtar her alle typer verktøy (Sommerville er vid i sin def., jfr. figur nedenfor). Så det å nevne editor, kompilator er bedre enn ingenting. Klassifisering: CASE technology Tools Workbenches Environments Editors Compilers File comparators Integrated environments Process-centred environments Analysis and design Programming Testing Tool type Examples Multi-method Single-method General-purpose Management tools workbenches PERT workbenches tools, Estimation workbenches tools Editing tools Text editors, diagram editors, word processors Configuration management tools Version management systems, Change management systems Prototyping tools Very high-level languages, user interface generators Method-support tools Design editors, data dictionaries, cod generators Language-processing tools Compilers, interpreters Program analysis tools Cross reference generators, static analysers, dynamic analysers Testing tools Test data generators, file comparat Debugging tools Interactive debugging systems Documentation tools Page layout programs, image edito Re-engineering tools Cross-reference systems, program restructuring systems Language-specific workbenches Eks. på produkter MS project Emacs, MS word, Tau UML, Rose RCS, CVS, Make, Tau Generas Genova Tau UML, RosE

Eksamen i IN219, 14. desember 2000, løsningsforslag 10 Jbuilder, VisualAge Fuse Side 10 av Se også fig. 3.15 i sommerville som viser ulike typer verktøy i de ulike fasene: Spesifikasjon, design, implementasjon, Verifisering & validering Fordeler og ulemper Her kan det sies mye, det viktigste er at de har en god begrunnelse og at de har definert kriteriene sine, som kan være: Funksjonalitet, og kvalitet og bredde på støtten.