Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP

Størrelse: px
Begynne med side:

Download "Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP"

Transkript

1 Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP Kursleksjonene er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonene til eget personlig bruk. Kursdeltakere som ønsker å bruke leksjonene til undervisning eller kursformål må ta kontakt med TISIP for nærmere avtale. Tore Berg Hansen

2 Innholdsfortegnelse Innledning...1 Aktivitetene i design...2 Modellene i design...2 Use case modeller...2 Interaksjonsmodeller...2 Patterns...2 Ekspert...3 Skaper...4 Løs kobling...5 Høy kohesjon...6 Kontroller...7 Klassediagrammene i design...7 Lesestoff...7 i

3 Innledning I en tidligere leksjon så vi på hva vi gjør i analysen. Et av poengene er at i objektorientert systemutvikling er skillet mellom analyse og design flytende. Vi illustrerte det som et kontinuum som vist i denne figuren. (Dere finner den igjen i Larman sin bok). Mer analyseorientert Mer designorientert hva krav undersøkelse av domenet hvordan logisk løsning Det er også slik at i et objektorientert utviklingsprosjekt vil vi kjøre flere runder med litt analyse, litt design og litt implementasjon. Dette var tema i en tidligere leksjon. I analysen finner man frem til de objekter (også kalt konsepter) som er typiske for problemdomenet. Dette er ikke programvareobjekter, men objekter som er i den virkelige verden. Dvs objekter fra problemområdet (også kalt problemdomenet). Under design finner man frem til programvareobjekter som kan realiseres i et programmeringsspråk og fortrinnsvis i et objektorientert programmeringsspråk som C++ eller Java. I design detaljerer vi klasser som skal inngå i programmet som skal utvikles. Mange av disse klassene henter vi fra problemdomenemodellen. Det er nettopp noe av poenget med objektorientering. Vi arbeider med de samme begreper i programmet som i den virkelige verden. Det gjør det lettere å forstå programmene fordi terskelen fra problem til program blir mindre. Men vi legger også til klasser som vi finner opp for å kunne lage en god løsning. Det kan også tenkes at konsepter fra problemområdet ikke vil bli brukt i programmet eller de kan bli attributter i klasser. I design arbeider vi altså med å finne frem til programvareklasser. Resultatet er en logisk løsning basert på det objektorienterte paradigme. Oppgaven er å fordele ansvar på samarbeidende objekter. Samarbeidet skjer ved at objektene sender meldinger til hverandre. Ansvaret som skal fordeles er uttrykt i use case og systemoperasjoner. Til støtte for arbeidet har vi god praksis nedfelt i såkalte mønstre (engelsk patterns). Interaksjonsdiagrammer er det viktigste arbeidsredskapet i design. Objektene defineres i klasser. Vi detaljerer klassene til et nivå hvorfra vi mer eller mindre rett frem kan skrive koden for klassene i det programmeringsspråket vi skal implementere i. Hvis vi bruker et verktøy som Rational Rose og legger våre modeller inn der, kan noe av koden genereres automatisk av verktøyet. I design lager vi designmodellen. Den består av interaksjonsdiagrammer og programvare klassediagrammer. Vi har i leksjon 2 og 3 sett innledningsvis på hva vi gjør i design. I denne leksjonen skal vi skal vi se på noen flere detaljer. 1

4 Aktivitetene i design I design er vi opptatt av å få detaljert hvordan systemet som skal utvikles skal bygges. I Unified Process gjøres det vesentlige av designarbeidet i bearbeidingsfasen. Men noe design vil vi kunne gjøre i oppstartsfasen og også i senere faser. Under design får vi gjerne mer kunnskap som gjør at vi kan komme til å gjøre endringer på tidligere beslutninger. Jaccobson 1 skriver: I design utvikler vi en design modell. Det skjer i tre trinn. 1. Identifikasjon av implementasjonsmiljøet. 2. Ta hensyn til dette og utvikle en første versjon av design modellen. 3. Beskriv hvordan objektene samspiller i hver use case Hos Jacobson består Designmodellen av objekter som utgjør strukturen i systemet. Larman inkluderer to modeller i Designmodellen. De er programvare klassemodell og interaksjonsmodell. Begge disse illustreres i diagrammer med bruk av UML. I læreboken 2 poengterer forfatteren hvor viktig det er å arbeide med interaksjonsdiagrammer i design. Han sier at mesteparten av tiden i design vil man bruke på slike diagrammer. Vi kommer tilbake til dette. Men vi kommer også til å arbeide med andre modeller. Modellene i design I design arbeider vi mye med interaksjonsdiagrammer. Det er en smakssak hvilken type interaksjonsdiagram man velger sekvensdiagram eller samarbeidsdiagram. Sekvensdiagrammer viser best rekkefølgen av hendelser, mens samarbeidsdiagrammer bedre får frem mønstre i samarbeidet og hvordan ansvaret er fordelt. Arbeidet med interaksjonsdiagrammer tar en vesentlig del av tiden i designfasen. De andre modeller man arbeider med er use case modeller og design klassemodeller (programv are klassemodell). Use case modeller Man lager reelle (konkrete) use case under design. Dette er noe av det første man starter opp med i denne fasen. En reell use case viser hva som skjer i samspillet mellom systemet og aktører uttrykt i konkrete termer knyttet til en inn/ut teknologi. Hvis f.eks et grafisk brukergrensesnitt er en del av systemet vil use case inneholde detaljerte beskrivelser av vinduer og dialoger. Det er ikke nødvendig å lage brukergrensesnittet, det kan utstå til implementasjon. Men detaljerte skisser må i det minste foreligge. Egnede verktøy kan brukes til å utforme brukergrensesnittene. Interaksjonsmodeller Disse lages på basis av - den konseptuelle modell - eventuelt kontrakter for systemoperasjoner - reelle use case Interaksjonsdiagrammet skal vise utvekslingen av meldinger mellom instanser (objekter) av klasser i klassemodellen. UML definerer to slags interaksjonsdiagrammer. Det er samarbeidsdiagram og sekvensdiagram. Ikke alle har forstått betydningen av å legge arbeid i å lage interaksjonsdiagrammer. Men nøkkelen til suksess ligger i riktig fordeling av ansvar mellom objekter og i dette arbeidet er interaksjonsdiagrammer et uvurderlig hjelpemiddel. Interaksjonsdiagrammer er et av de mest verdifulle ting som lages i objektorientert design. En vesentlig del av tiden i prosjektet må brukes på disse. Patterns Pattern kan oversettes med mønster. Dette temaet har blitt viet stor oppmerksomhet i den senere tid. Vi vil i dette faget kun gi en introduksjon. Mønstre kunne vært et eget fag. Pattern må også sees i sammenheng med begrepet 1 Ivar Jacobson, Object-Oriented Software Engineering A Use Case Driven Approach, Addison-Wesley, 1992, ISBN Craig Larman, Applying UML and Patterns An Introduction to Object-Orientetd Analysis and Design and the Unified Process, Prentice Hall, 2001, andre utgave, ISBN

5 arkitektur som vi skal se litt på i en senere leksjon. Arkitektur dreier seg om mønstre på et overordnet nivå, mens patterns i den sammenheng vi skal se på her dreier seg om hvordan man fornuftig detaljerer oppbygningen av programmer. Til alle tider har dyktige og erfarne programvareutviklere laget gode programmer. Noe av årsaken til suksessen har vært ubevisst og bevisst bruk av programvarestrukturer som erfaringsmessig har vist seg å gi gode resultater for bestemt e typer av applikasjoner. Erfarne utviklerne har gjerne en verktøykiste med både generelle prinsipper og anerkjent praksis. Det har etter hvert kommet en del litteratur på markedet hvor man har forsøkt å samle og kategorisere disse prinsipper og praksis. En klassiker er boken til Gamma 3 m.fl (kjent som the gang of four ). I denne boken blir begrepet definert. Boken inneholder en beskrivelse av 23 patterns. I boken er et pattern bl.a beskrevet ved sitt navn, hvilke typer av problemer det er tenkt å løse og eksempler på bruk. Et pattern dokumenteres også ved samarbeidsdiagrammer. I denne leksjonen vil jeg følge opplegget til Larman. Han har også en del andre patterns enn Gamma. Her følger noen av de nyttigste patterns som er beskrevet i boken til Larman. Ekspert Ekspert er et pattern som gir svaret på hva som er det grunnleggende prinsipp for tildeling av ansvar til objekter. Prinsippet sier: Ansvar gis til den klasse som har den nødvendige informasjon for å kunne oppfylle ansvaret. I vårt eksempel med reis eplanleggeren betyr det at det objektet som skal ha ansvaret for å legge opp en reise er det objektet som har den nødvendige kunnskap. Jeg lar det være en del av neste øving å finne ut av det. Eksemplet i neste figur er hentet fra Larman sin bok. Salg dato tidspunkt inneholder 1..* VareLinje kvantitet * beskrevetav Produktspesifikasjon beskrivelse pris UPC Eksemplet er hentet fra en problemstilling hvor man ønsker å plassere ansvaret for å finne det totale salgsbeløp. Legg merke til at man som kandidater har hentet klasser fra problemdomenemodellen. Her gis ansvaret til salg som har all nødvendig informasjon. Salg kjenner til alle varelinjer som inngår i salget. Hver varelinje kjenner til spesifikasjonene for varen som inngår. Her har vi tre eksperter som hver har kunnskap om deler av salget: Salg har ansvar for å finne den totale salgssum VareLinje har ansvar for å finne delbeløpet Produktspesifikasjon har ansvaret for produktprisen Det betyr at klassene får operasjoner som vist i neste figur. 3 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns Elements of Reuseable Object- Oriented Software", Addison-Wesley, 1995, ISBN

6 Salg dato tidspunkt total() VareLinje kvantitet Produktspesifikasjon beskrivelse pris UPC pris() Vi summerer opp: Ekspert er det mest brukte pattern Informasjon kan være fordelt på flere klasser Vi får programvareobjekter som har en parallell til de tingene de representerer Gir innkapsling (et viktig objektorientert prinsipp) Støtter løs kobling Vi får lettvektsklasser med høy kohesjon De to siste begrepene skal vi komme tilbake til. Skaper Skaper (engelsk Creator). Dette mønsteret skal gi svar på hvilket objekt som skal ha ansvaret for å instansiere klasser (dvs skape objekter i et program). Kandidatene er karakterisert ved at de aggregerer et objektet inneholder objektet lagrer instanser av objektet er brukere av objektet har initialiseringsdata som objektet trenger når det skapes Samme eksempel som foran er vist i neste figur. 4

7 Salg dato tidspunkt inneholder 1..* Produktspesifikasjon VareLinje kvantitet * beskrevetav beskrivelse pris UPC Vi gir ansvaret for å skape VareLinje til Salg fordi Salg inneholder eller faktisk aggregerer mange VareLinje. Det betyr at vi har situasjonen som vist i neste figur. skapvarelinje(kvantitet) 1: create(kvantitet) :Salg Salg dato tidspunkt :VareLinje total() skapvarelinje() Løs kobling Løs kobling er et design prinsipp som skal sørge for at de objektene vi lager skal være egnet for gjenbruk samtidig som programmene blir lettere å forstå, vedlikeholde og utvide. Figuren viser to mulige design av samme problem 5

8 betal() :Kasseterminal 1: create() b:betaling 2: leggtilbetaling(b) :Salg betal() :Kasseterminal 1: betal() :Salg 1.1: create() :Betaling Eksemplet er kyttet til betaling i en kasseterminal. Den nederste løsningen er bedre enn den øverste. Årsaken ar at den fordeler ansvaret for å ta betaling på flere objekter. Det legger færre oppgaver på klassen Kasseterminal. Den får færre koblinger. I dette enkle eksemplet er ikke antallet koblinger noe problem i noen av løsningene. Men man skal når man designer alltid ha i bakhodet at man bruker prinsippet for å evaluere sin design. Hvis man oppdager at noen klasser har fått mange koblinger til andre objekter bør man se etter om det ikke er mulig å delegere til flere objekter. To klasser X og Y er koblet hvis X har et attributt som refererer til en instans av Y X har en metode som referer en instans av Y X er direkte eller indirekte en subklasse av Y (arv) Y er et grensesnitt og X implementerer grensesnittet Bruk av prinsippet fører til uavhengige klasser. Arv skal bukes med forsiktighet. Det fører nemlig til sterk kobling mellom klasser. Arv var i objektorienteringens barndom nærmest et hellig prinsipp. Det skulle føre til gjenbruk av kode ved at man enten kunne bruke et objekt som det var, eller man kunne gjøre små endringer ved å lage subklasser. Et av problemene med arv er at de bryter med prinsippet om løs kobling. Særlig i dype arvhierarkier kan man etter hvert miste oversikten. Og hvis man oppdager at ting i superklassen må forandres for at et nedarvet objekt skal kunne brukes er man ille ute. Da må alle klasser som bruker superklassen endres! Og det fremmer ikke gjenbruk. Altså: Bruk arv med forsiktighet. Hvis du kan unngå bruk av arv så gjør du det! Høy kohesjon Prinsippet om høy kohesjon er tett koblet til prinsippet om løs kobling. Begge har sin opprinnelse i tidligere tiders strukturerte metoder. Her er poenget å bygge programmer ved hjelp av moduler som er løst koblet og som hver ideelt gjør bare en ting. Modulene skal være enfoldige. En enfoldig modul som bare gjør en ting har høy kohesjon. Prinsippet er overført til objektorientering. Man skal altså tilstrebe klasser med høy kohesjon. Da får man systemer som er lette å forstå består av gjenbrukbare komponenter lette å vedlikeholde og endre I eksemplet foran om løs kobling representerte den nederste design det beste valg. Også når vi anvender prinsippet om høy kohesjon er dette valget det beste. Vi konkluderer: Løs kobling og høy kohesjon må ses i sammenheng. De er prinsipper for design man alltid skal ha i bakhodet når man designer. En klasse med høy kohesjon er kjennetegnet ved: 6

9 et lite antall operasjoner som gjør lite arbeid lette å forstå lette å vedlikeholde at de samtidig fører til løs kobling Kontroller Dette er det siste pattern vi skal se på i denne modulen. En kontroller skal håndtere systemmeldinger. I leksjon 5 så vi at en systemmelding er en ekstern melding til systemet. Kilden til meldingen er utenfor systemet og sendes av aktører. Systemmeldinger gir opphav til systemoperasjoner i programsystemet som er under design. Prinsippet sier at systemmeldinger skal håndteres av klasser med en av disse egenskapene: Representerer hele systemet (fasade kontroller) Representerer en hel virksomhet eller organisasjon (fasade kontroller) Representerer noe i den virkelige verden som er aktivt, f.eks rollen til en person (rolle kontroller) Representerer en kunstig håndterer for alle systemhendelser i en use case (use case controller) Med kunstig mener vi at vi lager klassen spesielt for formålet og at den ikke finnes igjen i problemdomenet til programmet vi skal utvikle. Hvis man har en klasse Reiseplanlegger eller Reise i løsningen av vår øvingsoppgave, så er de eksempler på klasser som representerer hele systemet. Hvis man har en klasse Reiseplanlegger så er det et eksempel på en rolle. De er kandidater til å håndtere meldinger som planleggreise() eller legginnstrekning() osv. Valg av kontrollerklasser må også ses i sammenheng med prinsippene om løs kobling og høy kohesjon. Dvs man må ikke legge for mye ansvar på noen få klasser. God objektorientert design tilsier delegering. Rollekontrollere kan lett føre til inkohesive klasser. Dvs at de ikke vil være enfoldige. Og husk at kontrollerklasser ikke skal ligge i brukergrensesnittet (Se side i læreboken). Hvis man gjør det binder man systemoperasjonene til et bestemt brukergrensesnitt. Det reduserer muligheten for gjenbruk og gjør det vanskeligere å bytte brukergrensesnitt. Klassediagrammene i design Når alt ansvar er fordelt på klasser, lager vi designets klassemodell. Utgangspunktet er interaksjonsdiagrammene som er laget når vi har brukt de forskjellige design patterns for fordeling av ansvar og oppfyllelse av postbetingelsene i kontraktene for hver systemhendelse. Design klassemodellen er gjerne en videreutvikling av den konseptuelle modellen. Mange av klassene har paralleller i den modellen. Design klassemodellen inneholder programvareklasser. Dvs programvareenheter. Vi husker at i den konseptuelle modellen (også kalt problemdomenemodellen) er det konsepter fra den virkelige verden som inngår. Design klassemodellen gir informasjon om klasser, assosiasjoner mellom klasser og attributter grensesnitt med operasjoner og konstanter operasjoner med angivelse av parametere, typen til parametere, returverdier og typen til returverdier typen til attributter navigerbarhet avhengigheter Gir vi all denne informasjonen til et verktøy, kan dette generere en god del av koden for oss. Lesestoff I tilknytning til denne leksjonen kan dere lese disse kapitlene: 14, 15, 16, 17 7

Flere design mønstre. 19. september 2002, Tore Berg Hansen, TISIP

Flere design mønstre. 19. september 2002, Tore Berg Hansen, TISIP Flere design mønstre 19. september 2002, Tore Berg Hansen, TISIP Kursleksjonene er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonene til eget personlig bruk. Kursdeltakere som ønsker å

Detaljer

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

Gruppenavn. Prosjektnavn Beskrivelse av design For Navn på systemet. Versjon <1.0> Gruppenavn Prosjektnavn Beskrivelse av design For Navn på systemet Versjon Revisjonshistorie Dato Versjon Beskrivelse av endring Forfatter Innhold 1. Innledning

Detaljer

Løsningsforslag til Case. (Analysen)

Løsningsforslag til Case. (Analysen) Løsningsforslag til Case (Analysen) Dette er en skisse til løsning av Case et med bussinformasjonssystemet. Jeg kaller det en skisse fordi det på den ene siden ikke er noe fasitsvar og fordi løsningen

Detaljer

Hva gjøres i analysen? 2. oktober 2001, Tore Berg Hansen, TISIP

Hva gjøres i analysen? 2. oktober 2001, Tore Berg Hansen, TISIP Hva gjøres i analysen? 2. oktober 2001, Tore Berg Hansen, TISIP Kursleksjonene er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonene til eget personlig bruk. Kursdeltakere som ønsker å

Detaljer

UML 1. Use case drevet analyse og design. 20.01.2004 Kirsten Ribu

UML 1. Use case drevet analyse og design. 20.01.2004 Kirsten Ribu UML 1 Use case drevet analyse og design 20.01.2004 Kirsten Ribu 1 I dag Domenemodell (forløper til klassediagram) Interaksjonsdiagrammer Sekvensdiagram Kollaborasjonsdiagram 2 Domenemodell visualisering

Detaljer

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

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser? UML Use case drevet analyse og design 31.01.2005 Kirsten Ribu I dag Domenemodell (forløper til klassediagram) Interaksjonsdiagrammer Sekvensdiagram Kollaborasjonsdiagram 1 2 Domenemodell visualisering

Detaljer

UML-Unified Modeling Language

UML-Unified Modeling Language UML-Unified Modeling Language Use case realisering Designmodellering 21.01.2004 Kirsten Ribu Use Case diagram Klassediagram Oppførselsdiagrammer: Sekvensdiagram Kollaborasjonsdiagram Tilstandsdiagram Aktivitetsdiagram

Detaljer

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

UML-Unified Modeling Language. Prosess-oversikt. Use case realisering Use case realisering Designmodellering 31.01.2005 Kirsten Ribu UML-Unified Modeling Language Use Case diagram Klassediagram Oppførselsdiagrammer Sekvensdiagram Kollaborasjonsdiagram Tilstandsdiagram Aktivitetsdiagram

Detaljer

1. Modellering av objektorienterte systemer

1. Modellering av objektorienterte systemer Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Modellering av objektorienterte systemer Tore Berg Hansen Lærestoffet er utviklet for faget IFUD Objektorientert systemutvikling 1. Modellering

Detaljer

Programvare arkitekturer

Programvare arkitekturer Programvare arkitekturer 14. oktober 2001, Tore Berg Hansen, TISIP Kursleksjonene er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonene til eget personlig bruk. Kursdeltakere som ønsker

Detaljer

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller UML- Use case drevet analyse og design Bente Anda 23.09.2004 23.09.04 INF320 I dag Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller 23.09.04 INF320

Detaljer

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

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen Hensikten med denne delen av kurset Objektorientert systemutvikling Rational Unified Process (RUP) Gurholt og Hasle kap. 6 UML Distilled kap. 2 Å lære modellerings- og designprinsipper og øve opp teknikker

Detaljer

Inception Elaboration Construction Transition Bemanning 1 1,5 2 2 Varighet i uker Antall iterasjoner (lengde i uker i parentes) Tabell 1

Inception Elaboration Construction Transition Bemanning 1 1,5 2 2 Varighet i uker Antall iterasjoner (lengde i uker i parentes) Tabell 1 Innhold Innledning... 2 Faseplan... 2 Iterasjonsplanlegging... 3 Oppstartsfasen... 3 Artefaktene i oppstartsfasen... 4 Utdypingsfasen... 5 Konstruksjonsfasen... 5 Overføringsfasen... 6 Litteratur... 7

Detaljer

Kap3: Klassemodellering

Kap3: Klassemodellering Kap3: Klassemodellering I dag: Litt repetisjon fra sist (innledende om klassemodellen) Deretter egentlig litt mer repetisjon, men nå fra intro- Felt-/Instansvariabler og kurset i Java: Klasser og Objekt,

Detaljer

Modellering av objektorienterte systemer

Modellering av objektorienterte systemer Modellering av objektorienterte systemer 16. august 2002, Tore Berg Hansen, Tisip Kursleksjonene er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonene til eget personlig bruk. Kursdeltakere

Detaljer

1. Modellering av objektorienterte systemer

1. Modellering av objektorienterte systemer Tore Berg Hansen 3.2.2004 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LV339D Objektorientert systemutvikling 1. Resymé: I denne leksjonen skal vi se på hva som genererelt

Detaljer

Innholdsfortegnelse: Resymé: Denne leksjon gir en kort og enkelt oversikt over hvilke oppgaver som skal utføres i design- og programmeringsfasen.

Innholdsfortegnelse: Resymé: Denne leksjon gir en kort og enkelt oversikt over hvilke oppgaver som skal utføres i design- og programmeringsfasen. Kort innføring i design og programmeringsfasen Jarle Larsen/Tore Berg Hansen 2.11.04 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO314 Prosjektrettet systemarbeid Resymé:

Detaljer

Use case drevet design med UML

Use case drevet design med UML Use case drevet design med UML Bente Anda 26.09.2005 23.09.04 INF3120 1 I dag Domenemodeller System sekvensdiagrammer Operasjonskontrakter GRASP patterns Designmodeller med sekvens- og klassediagram 26.09.05

Detaljer

UKE 11 UML modellering og use case. Gruppetime INF1055

UKE 11 UML modellering og use case. Gruppetime INF1055 UKE 11 UML modellering og use case Gruppetime INF1055 Hva skal vi i dag? Analyse og design - kapittel 5 og 7 UML modellering Ukesoppgaver 3: Modellering av krav UML UML Kompetansemål Modellering av krav

Detaljer

1. Objektorientert systemutvikling

1. Objektorientert systemutvikling Tore Berg Hansen 26.10.2004 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO314D Prosjektrettet systemarbeid 1. Resymé: I denne leksjonen skal vi se på hvordan man kan arbeide

Detaljer

Fra krav til objekter. INF1050: Gjennomgang, uke 05

Fra krav til objekter. INF1050: Gjennomgang, uke 05 Fra krav til objekter INF1050: Gjennomgang, uke 05 Kompetansemål Systemmodellering og systemperspektiv Utvikle abstrakte modeller av et system Ulike modeller representerer ulike perspektiver av systemet

Detaljer

Use Case-modellering. INF1050: Gjennomgang, uke 04

Use Case-modellering. INF1050: Gjennomgang, uke 04 Use Case-modellering INF1050: Gjennomgang, uke 04 Kompetansemål Modellering av krav Kunne modellere ulike typer krav UML-diagrammer Innføring i grunnleggende UML-modellering Bruksmønster (use case) Sekvensdiagram

Detaljer

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

Gruppenavn. Beskrivelse av arkitektur For Navn på systemet. Versjon <1.0> Gruppenavn Beskrivelse av arkitektur For Navn på systemet Versjon Revisjonshistorie Dato Versjon Beskrivelse av endring Forfatter Innhold 1. Innledning 4 1.1

Detaljer

Design Patterns - mønstre

Design Patterns - mønstre Design Patterns - mønstre Om mønstre i design Kirsten Ribu 28.02.2005 1 I dag Om estimeringseksperimentet Mønstre Patterns 2 Estimeringsksperimentet 22 deltakere 11 fikk oppgitt 50 timer 11 fikk oppgitt

Detaljer

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

GJENNOMGANG UKESOPPGAVER 7 REPETISJON GJENNOMGANG UKESOPPGAVER 7 REPETISJON INF1050 V16 KRISTIN BRÆNDEN DAGENS TEMA Oppgaver hentet fra tidligere eksamensoppgaver om temaene vi har gått gjennom til nå DAGENS PLAN Gjennomgang av oppgaver Repetisjon

Detaljer

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

Gruppenavn. Prosjektnavn Kravdokument For Navn på systemet. Versjon <1.0> Gruppenavn Prosjektnavn Kravdokument For Navn på systemet Versjon Revisjonshistorie Dato Versjon Beskrivelse av endring Forfatter Innhold 1. Innledning 4 1.1

Detaljer

Argumenter fra kommandolinjen

Argumenter fra kommandolinjen Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene

Detaljer

Tittel Objektorientert systemutvikling 3

Tittel Objektorientert systemutvikling 3 EKSAMENSFORSIDE Fagnr. OBJ310 Tittel Objektorientert systemutvikling 3 Ansvarlig faglærer Viggo Holmstedt Klasse(r) Dato IS 3 20.05.2011 Eksamensoppgaven Ant. sider inkl. består av følgende: forside og

Detaljer

Spesifikasjon av Lag emne

Spesifikasjon av Lag emne Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objekter Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use Cases) o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Detaljer

God objektorientert design Flere UML diagrammer UML Distilled kap. 7,8, 9 Using UML, kap. 11, 12, 14 Kirsten Ribu 17.03.04

God objektorientert design Flere UML diagrammer UML Distilled kap. 7,8, 9 Using UML, kap. 11, 12, 14 Kirsten Ribu 17.03.04 Mer om UML God objektorientert design Flere UML diagrammer UML Distilled kap. 7,8, 9 Using UML, kap. 11, 12, 14 Kirsten Ribu 17.03.04 1 I dag Litt repetisjon GRASP mønstre og OO design Prosjektoppgaven:

Detaljer

1. Objektorientert systemutvikling

1. Objektorientert systemutvikling Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Objektorientert systemutvikling Tore Berg Hansen 25.10.2005 Lærestoffet er utviklet for faget LO314D Prosjektrettet systemarbeid 1. Objektorientert

Detaljer

Enkle generiske klasser i Java

Enkle generiske klasser i Java Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt

Detaljer

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

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie SRD GLIS Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie Innholdsfortegnelse 1. Systemoversikt... 2 2. Tekniske krav... 3 2.1. Funksjonskrav og brukergrensesnitt spesifikasjon... 3 2.2. Begrensninger...

Detaljer

Læringsmål for forelesningen

Læringsmål for forelesningen Læringsmål for forelesningen Objektorientering Abstrakte klasser og grensesnitt, redefinering av metoder Java-programmering Arv og bruk av abstrakte klasser Eclipse Undersøke instanser i Eclipse 1 Dagens

Detaljer

Design Patterns - mønstre. Kirsten Ribu

Design Patterns - mønstre. Kirsten Ribu Design Patterns - mønstre Kirsten Ribu 04.02.2004 1 I dag Om estimeringseksperimentet Mer om use case estimering, fortsetter fra i går Verktøy Visual Paradigm www.visual-paradigm.com Mønstre Patterns Mari

Detaljer

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

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie SRD GLIS Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie Innholdsfortegnelse 1. Systemoversikt... 2 2. Tekniske krav... 3 2.1. Funksjonskrav og brukergrensesnitt spesifikasjon... 3 2.2. Begrensninger...

Detaljer

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49 Innhold Forord...5 1 Det første programmet...15 1.1 Å kommunisere med en datamaskin 16 1.2 Programmeringsspråk 17 1.3 Et program som skriver på skjermen 18 1.4 Kompilering og kjøring 19 1.5 Kommentarer

Detaljer

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer Fra krav til objekter Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050--1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use

Detaljer

Produktrapport Gruppe 9

Produktrapport Gruppe 9 Forord Dette dokumentet er ment for personer som skal vedlikeholde, endre eller utvikle systemet. Produktdokument innholder informasjoner om programmets funksjoner og hvordan de fungerer. Før bruk av dette

Detaljer

Forelesning IMT Mars 2011

Forelesning IMT Mars 2011 Forelesning IMT2243 31. Mars 2011 Tema: forts. arkitektur og OOD (ObjektOrientert Design) Eksempler på arkitekturvurderinger Yummy Inc., BUSTA, Tidligere studentprosjekter Prosjekt del 3 Designfasen Forventninger

Detaljer

AlgDat 12. Forelesning 2. Gunnar Misund

AlgDat 12. Forelesning 2. Gunnar Misund AlgDat 12 Forelesning 2 Forrige forelesning Følg med på hiof.no/algdat, ikke minst beskjedsida! Algdat: Fundamentalt, klassisk, morsomt,...krevende :) Pensum: Forelesningene, oppgavene (pluss deler av

Detaljer

Tittel Objektorientert systemutvikling 2

Tittel Objektorientert systemutvikling 2 EKSAMENSFORSIDE Fagnr. OBJ208 Tittel Objektorientert systemutvikling 2 Ansvarlig faglærer Viggo Holmstedt Klasse(r) Dato IS/IN 2 11.06.2009 Eksamensoppgaven Ant. sider inkl. består av følgende: forside

Detaljer

1 Kodegenerering fra Tau Suiten

1 Kodegenerering fra Tau Suiten Kodegenerering fra Tau Suiten For å generere Javakode eller en annen form for programmeringskode ut i fra Tau suiten, er det visse ting som må være utført.. En UML modell må eksistere og være korrekt.

Detaljer

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

Oppgave 1: Multiple choice (20 %)

Oppgave 1: Multiple choice (20 %) Oppgave 1: Multiple choice (20 %) For alle oppgavene gjelder at det bare er ett riktig svar. No Spørsmål Svar A Svar B Svar C Svar D 1 Kanban er et eksempel på: Prosess Software prosess Prosess modell

Detaljer

Hvordan designe en ER-modell med MS-VISIO

Hvordan designe en ER-modell med MS-VISIO AITeL Databaser Hvordan designe en ER-modell med MS-VISIO Kjell Toft Hansen 19. august 2003 Brukerveiledningen er forfatters eiendom. Som kursdeltaker kan du fritt bruke den til eget personlig bruk. Kursdeltakere

Detaljer

Mer om objektorientering og UML

Mer om objektorientering og UML INF1050: Systemutvikling 21. februar 2017 Mer om objektorientering og UML Universitetslektor Yngve Lindsjørn INF1050 > Systemutvikling->objektorientert modellering 1 Temaer i dagens forelesning Ø Objektorientert

Detaljer

Objektorientering og UML. INF1050: Gjennomgang, uke 06

Objektorientering og UML. INF1050: Gjennomgang, uke 06 Objektorientering og UML INF1050: Gjennomgang, uke 06 Kompetansemål Objektorientert design Objektdesign og ansvarstilordning Bruk av UML Fokus på klassediagrammer Designmodeller Designmønstre ( design

Detaljer

Læringsmål for forelesningen

Læringsmål for forelesningen Læringsmål for forelesningen Objektorientering Delegeringsteknikken Delegering vs. arv 1 Dagens forelesning Introduksjon og motivasjon Hvorfor forelese om standardteknikker, såkalte patterns? Hva slags

Detaljer

IN2001: Kravhåndtering, modellering, design

IN2001: Kravhåndtering, modellering, design IN2001: Kravhåndtering, modellering, design 30 januar 2018 Yngve Lindsjørn ynglin@ifi.uio.no IN2001 -> Kravhåndtering og modellering 1 Gode beskrivelser av krav er viktig for kontrakt oppdragsgiver leverandør

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1050 Eksamensdag: 2. juni 2014 Tid for eksamen: 09:00-13:00 Oppgavesettet er på 4 sider Vedlegg: Ingen Tillatte hjelpemidler:

Detaljer

Fra problem til program

Fra problem til program Fra problem til program Gitt et problem, hvordan går man fram for å programmere en løsning? UML klassediagrammer Enhetstesting Dokumentasjon Som student ønsker vi oss et program som kan holde oversikt

Detaljer

2. HVA ER EN KOMPONENT?

2. HVA ER EN KOMPONENT? Innholdsfortegnelse 1. INTRODUKSJON 3 2. HVA ER EN KOMPONENT? 3 2.1. Litt av historien 3 2.2. UML og komponenter 5 2.3. Noen definisjoner 5 REFERANSER 7 1. Introduksjon Komponenter og komponentbasert systemutvikling

Detaljer

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram Fastsatt som forskrift av Utdanningsdirektoratet 3. april 2006 etter delegasjon i brev 26. september 2005 fra Utdannings-

Detaljer

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

HiOA TDK. Ingeniørfag data. DATS1600 Programutvikling. Eva Hadler Vihovde. Prosjektoppgaven 2015. - Prosessdokumentasjon - Alternativ 1 HiOA TDK Ingeniørfag data DATS1600 Programutvikling Eva Hadler Vihovde Prosjektoppgaven 2015 - Prosessdokumentasjon - Alternativ 1 - Forsikring - Gruppe #14 Studentnavn Marius Alexander Skjolden Hans Christian

Detaljer

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

Universitetet i Oslo Institutt for informatikk. Eskild Busch. UML hefte Universitetet i Oslo Institutt for informatikk Eskild Busch UML hefte 6. desember 2000 Innhold Dette heftet tar for seg deler av UML som er sentralt i kurset IN29. Use case-, sekvens-, tilstand- og klassediagrammer,

Detaljer

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

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner Etter uke 9 skal du Introduksjon til objektorientert programmering INF1001 Høst 2016 Uke 9 Kunne designe og implementere en programstruktur med flere klasser Kunne etablere og manipulere objekter i (sammensatte)

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

DRI2001 h04 - Forelesning Systemutvikling og nettsteder Systemutvikling utvikling av offentlig nettsteder DRI2001 forelesning 20.10 Litt om eksperimentell systemutvikling og prototyping Systemutviklingsprosessene og utvikling av [offentlige] nettsteder Fasene

Detaljer

Distributed object architecture

Distributed object architecture Forelesning IMT2243 1. April 2009 Tema: forts. arkitektur og design av programvare Oppsummering fra forrige gang Programvarearkitektur i distribuerte systemer Programvarearkitektur i RUP Eksempler på arkitekturvurderinger

Detaljer

Modellering 1. Modellering

Modellering 1. Modellering Tore Berg Hansen 25.8.2004 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget SO328D Programutviklingsmetoder 1. Resymé: I dette notatet skal vi se på hva som genererelt ligger

Detaljer

2 Grafisk grensesnitt 1

2 Grafisk grensesnitt 1 Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Grafisk grensesnitt 1 Mildrid Ljosland 01.02.2011 Lærestoffet er utviklet for faget LN350D Applikasjonsutvikling for mobile enheter 2 Grafisk

Detaljer

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv Bygg et Hus Introduksjon I denne leksjonen vil vi se litt på hvordan vi kan få en robot til å bygge et hus for oss. Underveis vil vi lære hvordan vi kan bruke løkker og funksjoner for å gjenta ting som

Detaljer

AlgDat 10. Forelesning 2. Gunnar Misund

AlgDat 10. Forelesning 2. Gunnar Misund AlgDat 10 Forelesning 2 Oversikt Java repetisjon IDE eller teksteditor + kommandolinje? Java Collections and Generics Programvareutvikling En mengde mer eller mindre veldefinerte metoder (software engineering):

Detaljer

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; } Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

ADDISJON FRA A TIL Å

ADDISJON FRA A TIL Å ADDISJON FRA A TIL Å VEILEDER FOR FORELDRE MED BARN I 5. 7. KLASSE EMNER Side 1 Innledning til addisjon 2 2 Grunnleggende om addisjon 3 3 Ulike tenkemåter 4 4 Hjelpemidler i addisjoner 9 4.1 Bruk av tegninger

Detaljer

Eksamensbesvarelser i REA3015 Informasjonsteknologi 2

Eksamensbesvarelser i REA3015 Informasjonsteknologi 2 Eksamensbesvarelser i REA3015 Informasjonsteknologi 2 Eksamensbesvarelsene er fra eksamen våren 2013. Forberedelsen og eksamensoppgaven finner du her: Eksamensoppgaver Eksamensveiledningen med kjennetegn

Detaljer

1. Leksjon 01: Introduksjon til faget Prosjektrettet systemarbeid

1. Leksjon 01: Introduksjon til faget Prosjektrettet systemarbeid Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Leksjon 01: Introduksjon til faget Prosjektrettet systemarbeid Greta Hjertø og Tore Berg Hansen 30.08.2005 Revidert av Kjell Toft Hansen

Detaljer

Fra krav til modellering av objekter

Fra krav til modellering av objekter INF1050: Systemutvikling 14. februar 2017 Fra krav til modellering av objekter Førstelektor Yngve Lindsjørn INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 1 Temaer i dagens forelesning

Detaljer

Kravspesifikasjon med UML use case modellering. Erik Arisholm 25.02.2009

Kravspesifikasjon med UML use case modellering. Erik Arisholm 25.02.2009 Kravspesifikasjon med UML use case modellering Erik Arisholm 25.02.2009 Unified Modeling Language (UML) Notasjon som støtter opp under modellbasert systemutvikling objektorientert analyse ( hva systemet

Detaljer

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

INF1000 Eksamensforberedelser og -tips. Høst 2014 Siri Moe Jensen INF1000 Eksamensforberedelser og -tips Høst 2014 Siri Moe Jensen Hva skal evalueres? Fra kurssidene Etter å ha tatt INF1000 Overordnet pensum kan du skrive små til middels store programmer oppdelt i klasser.

Detaljer

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Arv. Book book1 = new Book(); book1. title = Sofies verden class Book { String title; } class Dictiona ry extends Book { Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser 1 Ulike typer prosessmodeller Systemutvikling Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu 19.05.2004 De røde er viktige i kurset: Evolusjonær (prototyping) Inkrementell (RUP) XP fossefall

Detaljer

Factory Patterns Interface Deklarerer at klassen skal bruke et interface (implements i Java) Definerer implementasjoner for alle metodene i interfacet

Factory Patterns Interface Deklarerer at klassen skal bruke et interface (implements i Java) Definerer implementasjoner for alle metodene i interfacet Factory Patterns Interface Deklarerer at klassen skal bruke et interface (implements i Java) Definerer implementasjoner for alle metodene i interfacet Slide 2 v Factory Method Pattern Class creational

Detaljer

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

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel Use case modellen Use case modellering i analysefasen Metode for å identifisere og beskrive de funksjonelle kravene til et system Kapittel 3 i UML Distilled Kirsten Ribu beskriver kravene til systemet,

Detaljer

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

PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004 PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004 VERSJON: PROSJEKTPLAN (1.0) 24. SEPTEMBER, 2004 prosjektplan.doc GRUPPE 12 PROSJEKTPLAN: PROSJEKTLEDELSE: USE CASE: KVALITETSSIKRING: ANDRÉ

Detaljer

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 24. august 2006 1. Å lage programmer i C++ Resymé: Dette notatet

Detaljer

UKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

UKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski UKE 13 Mer UML modellering Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski Hva skal vi i dag? Objektorientert design - kapittel 5 og 7 UML modellering Aktivitetsdiagrammer Klassediagram Ukesoppgaver

Detaljer

Objektorientering i VB en introduksjon

Objektorientering i VB en introduksjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Objektorientering i VB en introduksjon Oppdatert av Atle Nes Objektorientering i VB en introduksjon Resymé: Visual Basic.NET er et objektorientert

Detaljer

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

Del - leveranse Del 2. Inf 2120 fredag Gruppe 1 Knut Johannes Dahle Del - leveranse Del 2 Inf 2120 fredag 29.4 Gruppe 1 Knut Johannes Dahle AV Catrine Myhre (catrinem@ifi.uio.no) Mehdi Zare (mehdiz@ifi.uio.no) Odd Christer Brovig (oddcb@ifi.uio.no) Christer Aas (chrisva@ifi.uio.no)

Detaljer

Introduksjon til fagfeltet

Introduksjon til fagfeltet LC238D http://www.aitel.hist.no/fag/_dmdb/ Introduksjon til fagfeltet Datafiler side 2 Databasesystemer side 3-5 Databasearkitektur ANSI/SPARC side 6-7 Datamodeller side 8 Flerbruker databasesystem side

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Bokmål Kandidat nummer: UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1050 Eksamensdag: 31. Mai, 2011 Tid for eksamen: 09:00-13:00 Oppgavesettet er på 6 sider Vedlegg:

Detaljer

GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML

GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML INF1050 V16 KRISTIN BRÆNDEN DAGENS TEMA Klassediagram Aktivitetsdiagram Tilstandsdiagram Sekvensdiagram 1 Ta utgangspunkt i følgende klasser:

Detaljer

OOSU 22.sept Pattern har sin opprinnelse innen arkitektur (byplanlegging / bygninger)

OOSU 22.sept Pattern har sin opprinnelse innen arkitektur (byplanlegging / bygninger) OOSU 22.sept 2010 PATTERNS (mønstre) Hva er et Pattern opprinnelsen Mal for en Patternbeskrivelse Hva er et Pattern Language? Ulike typer Pattern vi anvender innen systemutvikling Dagens Pensum : (kursorisk

Detaljer

Kandidat nr. 1, 2 og 3

Kandidat nr. 1, 2 og 3 Kandidat nr. 1, 2 og 3 Rapport 1 IT202E Bacheloroppgave i Informatikk Vår 2011 Mobilapplikasjonsutvikling med Scrum 1 Innhold Innledning... 3 Overordnet Prosjektplan... 3 Produktbacklog... 5 Sprint planning

Detaljer

INF Obligatorisk innlevering 7

INF Obligatorisk innlevering 7 INF1000 - Obligatorisk innlevering 7 Høsten 2016, IFI UiO Frist: 6. November 2016 kl 22:00 Tema denne uka: Et større objektorientert program. Administrasjon av eierskap og utlån av DVD-er I denne oppgaven

Detaljer

Forslag til løsning. Oppgave 1

Forslag til løsning. Oppgave 1 Forslag til løsning Eksamen 2003 Oppgave 1 A) Lag en Business Model (COMET) for krisehåndteringssystemet. B) Diskuter fordeler og ulemper ved bruk av COMET i forhold til (Rational) Unified Process for

Detaljer

Fra krav til objektdesign

Fra krav til objektdesign Fra krav til objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050-ansvar-1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller

Detaljer

Trafikanten Pluss, delleveranse 2. Gruppe 8 Eivind Hasle Amundsen [eivinha] og Eigil Moe [eigilmo]

Trafikanten Pluss, delleveranse 2. Gruppe 8 Eivind Hasle Amundsen [eivinha] og Eigil Moe [eigilmo] Trafikanten Pluss, delleveranse 2 Gruppe 8 Eivind Hasle Amundsen [eivinha] og Eigil Moe [eigilmo] 29. april 2005 Innledning I delleveranse 2 har vi jobbet med spesifikasjonene til gruppen vi kritisterte

Detaljer

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

Løsningsforslag: Oblig 1. INF1050: Gjennomgang, uke 12 Løsningsforslag: Oblig 1 INF1050: Gjennomgang, uke 12 Obligatorisk oppgave 1: Pensum Bakgrunn for systemet Aktører og interessenter Utviklingsprosesser Kravhåndtering og kravspesifikasjon Use case-modellering

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Dette stoffet er Pensum, og det er bare beskrevet her Mye her er nok kjent stoff for mange INF5110 7. mai 2013 Stein Krogdahl 1 Hvordan kunne skrive

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Tirsdag 2. juni 2009, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under

Detaljer

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

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? 1/15/2004 1 Use case modellen Use case modellering i analysefasen Metode for å identifisere og beskrive de funksjonelle kravene til et system Kapittel 3 i UML Distilled Kapittel 8 i Gurholt og Hasle Kirsten

Detaljer

2. Beskrivelse av mulige prosjektoppgaver

2. Beskrivelse av mulige prosjektoppgaver Avanserte databaser (øving 9, 10, 11 & 12) Tore Mallaug 25.01.2008 Opphavsrett:Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO326D Avanserte Databaser INNLEVERINGSFRISTER (Obligatorisk

Detaljer

1. Datamodellering. 1.1. Kommentarer til læreboka

1. Datamodellering. 1.1. Kommentarer til læreboka Tore Mallaug 20.10.2009 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for fagene LN323D Databaser 1. Datamodellering Resymé: Denne leksjonen viser et par eksempler på ER-modellering

Detaljer

INNFØRING I PRINSIPPER FOR OBJEKTORIENTERT PROGRAMMERING EMILIE HALLGREN OG KRISTIN BRÆNDEN

INNFØRING I PRINSIPPER FOR OBJEKTORIENTERT PROGRAMMERING EMILIE HALLGREN OG KRISTIN BRÆNDEN INNFØRING I PRINSIPPER FOR OBJEKTORIENTERT PROGRAMMERING AGENDA Bakgrunn Hva er objektorientert programmering? Pseudokode Datatyper Attributter Metoder Returverdier Lister Relasjoner Spørsmål BAKGRUNN

Detaljer

JavaScriptbibliotek. Introduksjon MVVC. Informasjonsteknologi 2. Gløer Olav Langslet Sandvika VGS

JavaScriptbibliotek. Introduksjon MVVC. Informasjonsteknologi 2. Gløer Olav Langslet Sandvika VGS MVVC JavaScriptbibliotek Gløer Olav Langslet Sandvika VGS Knockout.js Informasjonsteknologi 2 Introduksjon I dag skal vi se nærmere på et JavaScriptbibliotek som heter Knockout. Knockout og andre biblioteker,

Detaljer

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

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk Innhold uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2017 uke 7 Siri Moe Jensen Lite tilbakeblikk: Prosedyrer og funksjoner Objektorientert programmering Introduksjon: Hvorfor,

Detaljer

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

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objektdesign Hva skal systemet gjøre? UML: Bruksmønstermodeller o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Detaljer

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

Hensikten med denne delen av kurset. Objektorientering hva er det? Objektets egenskaper. Best practises ved programvareutvikling Objektorientert systemutvikling, litt UML og Rational Unified Process (RUP) UML Distilled kap. 2 Hensikten med denne delen av kurset Å lære og øve på modelleringsteknikker Å lære om gode designprinsipper

Detaljer