20.1 Det objektorienterte paradigme (mønster)

Størrelse: px
Begynne med side:

Download "20.1 Det objektorienterte paradigme (mønster)"

Transkript

1 Kap. 20 Objektorienterte begreper og prinsipper Kap. 20 Objektorienterte begreper og prinsipper OOP - objektorientert programmering Opprinnelig fra norske SIMULA (67) Objektorientert utvikling kom i bruk for fullt i løpet av 90- tallet. OOA - Objektorientert Analyse ble et begrep i løpet av 80- tallet. Metodene er avhengig av gode objektorienterte språk. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 1 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 2 Kap. 20 Objektorienterte begreper og prinsipper Fordeler med objektorientering: Gjenbruk Raskere utvikling Høy kvalitet Lettere vedlikehold (p.g.a. lav kopling mellom moduler) Færre sideeffekter av endringer Lettere å tilpasse og skalere (til nye problemer) 20.1 Det objektorienterte paradigme (mønster) Objektorienterte språk: Simula Ada 95 C++ Eiffel Smalltalk Java Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 3 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper Det objektorienterte paradigme (mønster) Ved objektorientert utvikling bør en velge en evolusjonær utviklingsmodell som gir muligheter til sammensetning av gjenbrukte moduler. Fig viser en utviklingsmodell som er tilpasset OO utvikling. OO prosessmodell (spiralmodellen) Brukerkommunikasjon Innsamling av krav Planlegging Risikoanalyse Ja Hent klasse i bibliotek Identifiser kandidatklasse Er klassen i bibliotek? Nei Lag ny klasse Legg ny klasse i bibliotek Evaluering av bruker Testing Implementering Engineering, Construction & Release Konstruer n-te versjon av systemet Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 5 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 6 1

2 20.2 OO Begreper Fig viser eksempel på objekter av klassen møbler Stol er medlem (member, instance -tilfelle, eksempel, instans) av en mye større klasse av objekter som kalles møbler. Et sett generelle (generiske) attributter (egenskaper) kan assosieres med (knyttes til) alle objekter i klassen møbler. Alle møbler har pris, dimensjon, vekt, plassering, farge, osv.. Disse attributtene gjelder for alle typer møbler (stoler, bord, sofa, etc.) Arv: Siden stol er medlem av klassen møbler, arver stol alle attributter som er definert for møbelklassen. Klasse: Møbler Dimmensjon Objekt: Stol Dimmensjon Fig. 2 Arv fra klasse til objekt Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 7 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper OO Begreper - 2 Operasjoner (tjenester, services, metoder) : I tillegg til atributter må vi definere operasjoner på objektene. En operasjon endrer vanligvis verdien av en attributt. F.eks: (location) = bygning + etasje + rom Operasjon flytt (move) vil endre en eller flere av datafeltene i plassering. Andre operasjoner på møbelklassen er: kjøpe selge veie osv.. Fig viser at operasjonene arves fra møbelklassen til alle forekomster av klassen. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 9 OO Begreper - 2 F.eks: = bygning + etasje + rom Operasjon flytt vil endre en eller flere av datafeltene i plassering. Andre operasjoner på møbelklassen er kjøpe, selge, veie osv.. Fig. 3 viser at operasjonene arves fra møbelklassen til alle forekomster av objektet. Objekt: Stol Dimensjon Kjøp Selg Veie Flytt Klasse: Møbler Dimensjon Kjøp Selg Veie Flytt Objekt: Bord Dimensjon Kjøp Selg Veie Flytt Systemutvikling Kap.20 Objektorienterte begreper og prinsipper OO Begreper Klasser og objekter Innkapsling (encapsulation) betyr at all informasjon er pakket inn under et navn, og kan gjenbrukes (reused) som en spesifikasjon eller programkomponent. En mer formell definisjon (Coad, Yourdon): Objektorientert = objekt + klassifisering + arv + kommunikasjon Objektet stol (fig 20.3) innkapsler data (attributter) og operasjoner og eventuelt andre objekter (sammensatte (composed) objekter og konstanter) Fig viser sammenheng mellom klasse, attributter og operasjoner. En klasse innkapsler data og prosedyrer (operasjoner, metoder og tjenester). En klasse er en generalisert beskrivelse (mønster) som beskriver en samling av like objekter. Alle objekter i klassen arver attributtene og operasjonene i klassen. En superklasse (metaklasse) er en samling av klasser. En subklasse er et tilfelle av en klasse. Ut fra dette kan vi definere et hierarki av klasser slik fig viser. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 11 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 12 2

3 Klassenavn Attributter Møbler (superklasse) Attributter Operasjoner Operasjoner Attributter Bord Stol Disk Attributter er egenskaper til objektene (definert i klassen) Attributtene får verdier definert fra et domene (verdiområde). For eksempel kan attributten farge (på en bil) ha verdier fra domenet: {hvit, svart, sølv, grå, blå, rød, gul, grønn...}. Subklasser av møbler Fig. 4 Alternativ representasjon av klasse Fig. 5 Et hierarki av klasser Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 13 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper Operajoner, metoder og tjenester Operasjoner, metoder eller tjenester er innkapslet i klassene, og de tilsvarer moduler i andre utviklingsmetoder. Enkle metoder er for eksempel en som henter ut data fra modulen: GetColor. Mer kompliserte metoder kan involvere andre objekter ved at det sendes meldinger (også kalt stimuli) til andre objekter som returnerer informasjon til det første objektet Meldinger Objekter kommuniserer (interact) ved å utveksle meldinger: destination.operation(parametre) destination - objekt som skal utføre operasjonen operation - operasjon som skal motta meldinga parameters argument (data,parametre) Fig og 20.7 viser bruk av meldinger. Objektene A, B, C og D (i 20.7) sender meldinger til hverandre. Obj. B vil ha utført operasjon Op10 i obj. D: D.op10(data) Under utførelse av op10 må obj. D sende melding til obj. C: C.op08(data) Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 15 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 16 Sender objekt sender.operasjon(parametre) A Op1 Op2 B Op3 Op4 Op5 Melding Returverdi D.op10(data) Mottaker.operasjon(parametre) Mottaker objekt C Op6 Op7 Op8 Op9 C.op08(data) Op10 Op11 D Fig. 6 Meldingsutveksling mellom objekter Fig. 7 Meldingsutveksling Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 17 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 18 3

4 Innkapsling, arv og polymorfi Når en ny klasse skal lages kan en velge mellom følgende muligheter: Klassen konstrueres og bygges fra grunnen. Vi finner en foreldreklasse i biblioteket som inneholder de fleste attributter og operasjoner. Den nye klassen arver fra foreldreklassen, og nye attributter og operasjoner legges til. Klassehierarkiet restruktureres slik at nødvendige attributter og operasjoner kan arves av den nye klassen. Karakteristikker (attributter og operasjoner) til en eksisterende klasse kan overstyres ved at private versjoner av attributter og operasjoner lages for den nye klassen. Fig. 20.8a og b viser eksempel på restrukturering. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 19 Fig. 8 X1 + Char6() X3 Char6() X2 Opprinnelig klassehierarki + + X4 Char7() + Char7() + Char6() X3 Restrukturert klassehierarki + X2a Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 20 X1 + X2 + Char7() X4 Char7() X2b Char8() + Char8() Innkapsling, arv og polymorfi Multiarv er arv fra flere klasser (fra forskjellige klassehierarki). Dette bør ikke brukes, da det fører til kompliserte strukturer. (Det er heller ikke tillatt i alle OO språk) Innkapsling, arv og polymorfi Polymorfi vil si at samme operasjon defineres forskjellig ut fra de spesielle egenskapene til hver klasse. Eks. For forskjellige figurer (linjer, trekanter, rektangler osv.) vil alle ha behov for en operasjon som tegner figuren (draw). Operasjonen må implementeres forskjellig for hver figurtype. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 21 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper Identifisering av elementer i en objektmodell I denne seksjonen vises hvordan en kan gå frem for å identifisere klasser, objekter, attributter, operasjoner og meldinger i et gitt problem Identifisering av klasser og objekter Vi identifiserer (definerer) klasser der objektene er instanser (forekomster). Når vi isolerer objekter, definerer vi også klasser. En måte å identifisere objekter på, er å utføre en grammatikalsk analyse av prosessbeskrivelsen av systemet: Vi identifiserer alle substantiver (nouns) og setter de i en tabell (marker også synonymer). Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 23 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 24 4

5 Identifisering av klasser og objekter -2 Forskjellige eksempel på objekter: Eksterne system (andre systemer, enheter, folk) som produserer eller konsumerer informasjon som brukes i systemet. Ting (gjentander, rapporter, display, brev, signaler) som er en del av informasjonsdomenet for problemet. Forekomster av hendelser (f.eks. overføring av egenskaper eller fullføring av en serie av robotbevegelser) som forekommer i sammenheng med systemoperasjoner. Roller (f.eks. leder, ingeniør, salgsrepresentant) som personer har eller spiller når de bruker systemet. Organisasjonsenheter (avdeling, gruppe, team) som er relevant for en applikasjon. Steder (plasser, posisjoner, f.eks. fabrikkgolv, lasterampe) som representerer sammenhengen (konteksten) til problemet og den totale funksjonen til systemet. Strukturer (sensorer, firehjulsbil, datamaskin) som definerer en klasse av objekter eller i det ytterste (ekstreme) relaterte klasser av objekter. NB: Vær også oppmerksom på hva som ikke er objekter! Fig Forskjellige eksempel på objekter: Forekomster Ting Eksterne enheter Klassenavn Attributter Operasjoner Op1 Op2 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 25 Roller Org.enheter Steder Strukturer Identifisering av klasser og objekter -3 Eks. s viser prosessbeskrivelse for Safe Home og tabell over substantiver og klassifisering av disse som mulige objekter. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper Identifisering av klasser og objekter Identifisering av klasser og objekter -5 Coad og Yourdon gir 6 kriterier for utvelgelse av objekter: 1. Bevare informasjon. Det potensielle objektet vil være nyttig under analysen bare hvis informasjonen om det må huskes (lagres) for at systemet kan fungere. 2. Nødvendige tjenester. De potensielle objektene må ha et sett identifiserbare operasjoner som kan endre verdien av attributtene. 3. Sammensatte (multiple) attributter. I analysen fokuserer vi på hovedinformasjonen. 4. Felles attributter. Attributter som anvendes på alle forekomster av objektet. 5. Felles operasjoner. Operasjoner som kan defineres for alle forekomster av objektet. 6. Essensielle krav. Eksterne entiteter i problemrommet som produserer eller konsumerer informasjon som er sentral (essensiell) for virkemåten til enhver løsning for systemet vil nesten alltid defineres som objekter i kravmodellen. Et objekt som skal være med i modellen må tilfredsstille de fleste karakteristikkene (kravene). Første steg i objektorientert analyse (OOA) er å definere objektene. Eks. viser anvendelsene av karakteristikkene på Safe Home Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 27 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper Spesifisering av attributter Attributtene beskriver et objekt som er med i analysemodellen. Det er attributtene som definerer objektet som klargjør hva som menes med objektet i sammenheng med problemrommet. For å bestemme et egnet sett attributter til et objekt, kan vi (analytikerne) igjen studere prosessbeskrivelsen for problemet, og velge de ting som naturlig tilhører objektet. I tillegg må vi stille følgende spørsmål: Hvilke data (items, felt, sammensatte og/eller elementære) definerer dette objektet fullstendig i forbindelse med det aktuelle problemet. Eks. s. 542: sensor informasjon = sensor type + sensor nr. + alarmgrense Hvert felt kan videre deles opp i elementære felt. Fig viser systemobjekt for Safe Home Definering av operasjoner En operasjon endrer objektet på en eller annen måte ved å endre en eller flere attributtverdier. Operasjonene kan deles i tre grupper: 1. Operasjoner som manipulerer data (legge til, slette, reformatere, utvalg) 2. Beregningsoperasjoner 3. Operasjoner som overvåker et objekt for forekomster av en kontrollhendelse. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 29 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 30 5

6 Definering av operasjoner -2 Vi kan igjen bruke prosessbeskrivelsen. Verb isoleres (velges). Eks. assign (for sensorer), programmere (på systemet), aktiver, deaktiver (alarm). Program kan dekomponeres i subprogram for å programmere systemet: spesifiserer telefonnr, lage sensortabeller, sette alarmnivå, passord osv. I tillegg til grammatikalsk analyse kan vi få innsikt i andre operasjoner ved å se på kommunikasjonen (meldingsutveksling) mellom objektene Avslutning av objektdefinisjonen I tillegg til operasjoner som er plukket ut utfra grammatisk analyse, kan andre operasjoner plukkes ut ved å studere den generelle livshistoria til objektet, og meldingene som utveksles mellom objektene som definerer systemene. Generisk (generell) livshistorie inkluderer: Oppretting (create) Modifisering Manipulering Lese Sletting Fig viser systemobjektet i Safe Home med attributter og operasjoner. Tilsvarende må gjøres for de andre objektene. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 31 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper Administrasjon av OO systemutviklingsprosjekt. De samme aktivitetene som brukes i tradisjonell utvikling brukes også i objektorientert utvikling, men de må tilpasses: 1. Etabler et felles rammeverk for prosjektprosessen. 2. Bruk rammeverket og historiske målinger til å lage innsats- og tidsestimater. 3. Spesifiser produkter og milepeler slik at fremdriften kan måles. 4. Definer sjekkpunkt for kvalitetssikring og -kontroll. 5. Administrere endringer som skjer under utviklingen. 6. Etterspor, overvåk og kontroller fremdriften Felles prosessrammeverk for OO. Et felles prosessrammeverk (A common process framework (CPF) definerer en organisasjons fremgangsmåte for systemutvikling og vedlikehold. Fra fig ser vi at OO utvikling følger en iterativ modell, også kalt rekursiv/parallell modell som brukes på følgende måte: Utfør tilstrekkelig analyse slik at hovedproblemklasser og forbindelser isoleres. Utfør nok konstruksjon slik at det kan avgjøres om klassene og forbindelsene kan implementeres på en praktisk måte. Lag en prototype av gjenbrukbare klasser fra biblioteket. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 33 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper Felles prosessrammeverk for OO Objektorientert prosjektmåling og estimering Test prototypen slik at feil rettes. Få kundens vurdering og tilbakemelding på prototypen. Gjør endringer i analysemodellen ut fra erfaringene med prototypen, fra konstruksjon, og fra tilbakemelding fra brukerne. Forbedre konstruksjonen slik at endringene (i analysemodellen) blir imøtekommet. Implementer spesielle klasser (objekter) som ikke finnes i biblioteket. Sett sammen en ny prototype med objekter fra biblioteket og nye objekter. Test den nye prototypen. Få tilbakemelding fra brukere. Dette fortsetter til prototypen er utviklet til et ferdig system! Følgende forslag til prosjektmålinger foreslås for OO rekursiv/parallell utvikling: Antall scenarie skript (detaljerte sekvenser av steg som beskriver interaksjon mellom bruker og applikasjon). Hvert skript organiseres i tripletter på formen: [initiator, action, participant] - initiator er objektet som ber om en tjeneste - action er resultatet av forespørselen - participant (deltager) er tjenerobjektet som utfører tjenesten Antall nøkkelklasser (uavhengige komponenter som defineres tidlig i OOA). Antall støtteklasser som er nødvendig for å implementere systemet (brukergrensesnitt, db-aksess, kommunikasjon) Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 35 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 36 6

7 Objektorientert prosjektmåling og estimering-2 Gjennomsnittlig antall støtteklasser for hver nøkkelklasse. Antall subsystemer. Et subsystem er en samling klasser som utfører en funksjon som er synlig i det endelige system (sluttbrukersystem). Arbeid på subsystemene kan fordeles på prosjektdeltagerne, og utføres parallelt OO estimering og planlegging Estimering bør utføres ved hjelp av flere forskjellige teknikker. Erfaringer fra tradisjonell utvikling kan brukes. Det foreslås en 6-punkts metode spesielt for OO utvikling Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 37 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper OO estimering og planlegging Planlegging av OO prosjekter er komplisert p.g.a. den iterative fremgangsmåten. Det foreslås et sett målinger som kan være til hjelp i planleggingen: Antall hovediterasjoner. (en hovediterasjon er en runde (360 grader) i spiralen. Antall fullførte kontrakter. En kontrakt er en gruppe funksjoner som tilbys fra subsystem og klasser til klienten. Dette er ofte passende milepæler for å påvise fremdrift i prosjektet Oppfølging av fremdrift i et OO prosjekt Parallelliteten i OO utvikling gjør oppfølgingen vanskelig. Følgende milepeler kan anses som oppfylt (nådd) når de angitte kriteriene er nådd: Teknisk milepel: OO analyse er fullført når: Alle klassene og klassehierarkiet er definert og kontrollert. Attributtene og operasjonene for en klasse er definert og kontrollert. Klasserelasjoner er etablert og kontrollert. En modell for virkemåten er laget og kontrollert. Gjenbrukbare klasser er registrert. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 39 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper Oppfølging av fremdrift i et OO prosjekt Teknisk milepæl: OO konstruksjon er fullført når: Mengden av subsystem er definert og kontrollert. Klasser er tilordnet subsystem og kontrollert. Oppgavetildeling er etablert og kontrollert. Ansvarsforhold og samarbeid er identifisert. Attributtene og operasjonene er konstruert og kontrollert. Meldingsmodellen er laget og kontrollert Oppfølging av fremdrift i et OO prosjekt Teknisk milepæl: OO programmering er fullført når: Hver ny klasse er implementert (i kode) fra konstruksjonsmodellen. Utvalgte klasser fra biblioteket er integrert. En prototype eller et inkrement (ny versjon) er bygd. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 41 Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 42 7

8 Oppfølging av fremdrift i et OO prosjekt Teknisk milepæl: OO testing er fullført når: Det er kontrollert at OO analyse og konstruksjon er korrekt og komplett. Et klasse ansvars- og samarbeidsnettverk er utviklet og kontrollert. Testtilfeller er konstruert og klassenivå-tester er utført og kontrollert. Testtilfeller er konstruert og kluster-tester er utført, og klassene integrert. Systemnivå tester er fullført. Systemutvikling Kap.20 Objektorienterte begreper og prinsipper. 43 8

21. Objektorientert Analyse (OOA) Kap. 21 Objektorientert Analyse (OOA)

21. Objektorientert Analyse (OOA) Kap. 21 Objektorientert Analyse (OOA) 21. Objektorientert Analyse (OOA) Kap. 21 Objektorientert Analyse (OOA) Når vi skal lage en OO analysemodell, bruker vi 5 hovedprinsipper: 1. Lag en modell av informasjonsdomenet. 2. Beskriv modul-funksjonene

Detaljer

Kap. 2 Prosessen. Utviklingsmodeller -2. Utviklingsmodeller. Utviklingsmodeller -4. Utviklingsmodeller - 3. Software Engineering - definisjoner

Kap. 2 Prosessen. Utviklingsmodeller -2. Utviklingsmodeller. Utviklingsmodeller -4. Utviklingsmodeller - 3. Software Engineering - definisjoner Software Engineering - definisjoner Kap. 2 Prosessen Utviklingsprosessen Modeller for utvikling Bauer: Etablering og bruk av gode ingeniørmessige prinsipper for å fremskaffe økonomisk programvare som er

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

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

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

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

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop Læringsmål uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2018 uke 7 Siri Moe Jensen Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,

Detaljer

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

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2019 uke 7 Siri Moe Jensen Læringsmål uke 7 Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,

Detaljer

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10 Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 28 september 2017 Klokkeslett: 09-13 Sted: Teo-H3, 3218 Tillatte hjelpemidler: Type innføringsark (rute/linje): Antall sider inkl.

Detaljer

Hvorfor objektorientert programmering?

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon IN1000 Høst 2019 uke 7 Siri Moe Jensen Læringsmål uke 7 Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,

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

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF 5040 H2004 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare?! Innkapsling " naturlig tilnærming

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. 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

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF 5040 H2006 foreleser: Frank Eliassen INF5040 Frank Eliassen 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling

Detaljer

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF5040 foreleser: Olav Lysne Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 6. juni 2013 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

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

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

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering Etter uke 6 skal du Kjenne til motivasjonen for objektorientert programmering Introduksjon til objektorientert programmering INF1001 Høst 2016 Forstå hva en klasse er, og forskjellen på klasse og objekt

Detaljer

subsystem respons ibilities des ign mes s age des ign arkitekturkonstruksjon clas s and object des ign s ubs ys tem des ign

subsystem respons ibilities des ign mes s age des ign arkitekturkonstruksjon clas s and object des ign s ubs ys tem des ign Kap. 22 Objektorientert konstruksjon (OO, OOD) 22. Objektorientert Design (OOD) OO konstruksjon () overfører OO analysemodellen til en OODmodell. OOD har modularitet på flere nivå: Hovedkomponenter i systemet

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN

Detaljer

Transaksjonsstandard for virkesomsetningen i Norge. Transportoppdrag. Versjon 2.0. Desember 2007 SKOG-DATA AS

Transaksjonsstandard for virkesomsetningen i Norge. Transportoppdrag. Versjon 2.0. Desember 2007 SKOG-DATA AS Transaksjonsstandard for virkesomsetningen i Norge Versjon 2.0 Desember 2007 SKOG-DATA AS Innhold 1 Innledning 3 2 Dokumentasjon av 3 2.1 Oversikt 3 2.1.1 Meldinger 3 2.1.2 forretningsregler 3 2.1.3 Samhandling

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810 Eksamensdag: Fredag 5. juni 2015 Tid for eksamen: 14:30 (4 timer) Oppgavesettet er på 4 sider (ikke medregnet denne siden)

Detaljer

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

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell. Dagens forelesning. Fra krav til objekter 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

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer

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

Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP 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 å

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : IN 219 Store programsystemer Eksamensdag : Lørdag 13. desember 1997 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 3 sider

Detaljer

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG INF1050 V16 HVA ER EN SYSTEMUTVIKLINGSPROSESS? De aktivitetene som utføres for å utvikle et IT-system Eksempler på aktiviteter:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Tirsdag 12. juni 2012 Tid for eksamen: 9:00 15:00 Oppgavesettet er

Detaljer

Oppsummering. Thomas Lohne Aanes Thomas Amble

Oppsummering. Thomas Lohne Aanes Thomas Amble Oppsummering Thomas Lohne Aanes Thomas Amble 14.11.04 Kapittel 2: Data Modell Mål: Data som skal brukes av applikasjonen blir spesifisert på en formell og likevel intuitiv måte. Resultat: Vi får et konseptuelt

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

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

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal

Detaljer

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning Systemutviklingsarbeidet et overblikk DRI2001 forelesning 21. sept. 05 Informasjonssystem og datasystem Hva er systemutvikling (SU) Et enkelt eksempel å bygge et hus Rammer og perspektiver for SU-arbeidet

Detaljer

Eksamen. Objektorientert Programmering IGR 1372

Eksamen. Objektorientert Programmering IGR 1372 + JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV

Detaljer

Innhold. Innledning... 15. Del 1 En vei mot målet

Innhold. Innledning... 15. Del 1 En vei mot målet Innledning.............................................. 15 Del 1 En vei mot målet Kapittel 1 Utviklingsarbeidet.............................. 22 1.1 Systemutviklerens arbeid...............................

Detaljer

DRI2001 forelesning

DRI2001 forelesning Systemutviklingsarbeidet et overblikk DRI2001 forelesning 6.10.04 Hva er systemutvikling (SU) Et enkelt eksempel å bygge et hus Rammer for SU-arbeidet Ulike SU-metoder Perspektiver i SU-arbeidet SU er

Detaljer

INF2810: Funksjonell Programmering. Tilstand og verditilordning

INF2810: Funksjonell Programmering. Tilstand og verditilordning INF2810: Funksjonell Programmering Tilstand og verditilordning Stephan Oepen Universitetet i Oslo 2. mars 2017 Forrige gang 2 I dag 3 Vi blar om til kapittel 3 i SICP. Tilstand og verditilordning. Destruktive

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

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

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

Systemutviklingen er ferdig når et system er operativt. Med operativt menes når systemet blir brukt av brukerne på et faktisk arbeidssted. Presentasjon nummer 5 The changing system and the nature of maintenance Silde 1 Gruppen introduseres Slide 2 The changing system and the nature of maintenance The Changing system Systemutviklingen er ferdig

Detaljer

Gruppe 11. Frank Petter Larsen Vegard Dehlen

Gruppe 11. Frank Petter Larsen Vegard Dehlen qoskets Gruppe 11 Frank Petter Larsen Vegard Dehlen Problematikk Dagens mellomvare for objektbaserte distribuerte systemer har ikke innebygget støtte for å spesifisere, overvåke og kontrollere tjenestekvalitet

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

TransportoppdragBekreftelse

TransportoppdragBekreftelse Transaksjonsstandard for virkesomsetningen i Norge Versjon 2.0 Desember 2007 SKOG-DATA AS Innhold 1 Innledning 3 2 Dokumentasjon av 3 2.1 Oversikt 3 2.1.1 Meldingstyper 3 2.1.2 Transportoppdrag forretningsregler

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

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

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

Spesifikasjon av Lag emne. Kursregistrering g bruksmønstermodell. Dagens forelesning. Fra krav til objekter 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

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

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

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

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning Systemutviklingsarbeidet et overblikk DRI2001 forelesning 12. sept. 06 Forholdet mellom informasjonssystemet og virkeligheten Hva innebærer utvikling av et IS (systemutvikling: SU) Å utvikle et IS det

Detaljer

Forprosjekt bachelor-oppgave 2012

Forprosjekt bachelor-oppgave 2012 Forprosjekt bachelor-oppgave 2012 Oppgave nr. 4.- Styring av instrumenter. Skrevet av Jan Ingar Sethre. 1 Innhold 1. Mål og rammer... 3 1.1 Bakgrunn... 3 1.2 Mål for prosjektet... 3 1.3 Rammer og forutsetninger...

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

Tom Røise 26.02.2007. IMT2243 : Systemutvikling 1. IMT2243 Systemutvikling 26. februar 2007. Klassediagrammet. Klasse

Tom Røise 26.02.2007. IMT2243 : Systemutvikling 1. IMT2243 Systemutvikling 26. februar 2007. Klassediagrammet. Klasse IMT2243 Systemutvikling 26. februar 2007 Tema : Domenemodellering og Kravspeken - Repetisjon konseptuelle klassediagram - Eksempler - konseptuelle klassediagram (IHID løsningen og OL-Veiviseren) - Maler

Detaljer

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO DRI 2001 13.9 : Introduksjon til systemutvikling. Introduksjon til systemutvikling Systemutvikling og nettstedsutvikling Om ulike typer offentlige nettsteder Kvalitetskrav til offentlige nettsteder Litt

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

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

OptimalJ-kurs UIO Oppsummering av kurset. De ulike modellene egenskaper og formål

OptimalJ-kurs UIO Oppsummering av kurset. De ulike modellene egenskaper og formål OptimalJ-kurs UIO 2004 Agenda Time 1: Oppsummering av kurset Time 2: De ulike modellene egenskaper og formål Team Development med OptimalJ Domain Patterns Egenutviklede transformasjoner (krever Architect

Detaljer

Presentasjon 1, Requirement engineering process

Presentasjon 1, Requirement engineering process Presentasjon 1, Requirement ing process Prosessodeller Hvorfor bruke prosessmodeller? En prosessmodell er en forenklet beskrivelse av en prosess En prosessmodell er vanligvis lagd ut fra et bestemt perspektiv

Detaljer

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer

Akseptansetesten. Siste sjanse for godkjenning Etter Hans Schaefer Akseptansetesten Siste sjanse for godkjenning Etter Hans Schaefer Akseptansetesting Formell testing med hensyn til brukerbehov, krav, og forretningsprosesser som utføres for å avklare om et system oppfyller

Detaljer

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055 UKE 9 Prosesser og prosessmodeller inkludert smidige metoder Gruppetime INF1055 Hva skal vi i dag? Introduksjon til modul B - systemutvikling (kap. 1, 2 og 3) Prosesser og prosessmodeller + smidig utvikling

Detaljer

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Repitisjonskurs. Arv, Subklasser og Grensesnitt Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett

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

INF våren 2017

INF våren 2017 INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer

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

Transaksjonsstandard for virkesomsetningen i Norge. Transportert virke. Versjon 2.0. Desember 2007 SKOG-DATA AS

Transaksjonsstandard for virkesomsetningen i Norge. Transportert virke. Versjon 2.0. Desember 2007 SKOG-DATA AS Transaksjonsstandard for virkesomsetningen i Norge Transportert virke Versjon 2.0 Desember 2007 SKOG-DATA AS Innhold 1 INNLEDNING 3 2 DOKUMENTASJON AV MELDING OM TRANSPORTERT VIRKE 3 2.1 Oversikt 3 2.1.1

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5

Detaljer

IN våren 2019 Onsdag 16. januar

IN våren 2019 Onsdag 16. januar IN1010 - våren 2019 Onsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel

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

Dokument 1 - Sammendrag

Dokument 1 - Sammendrag Dokument 1 - Sammendrag Automatnett - Nytt CMS-verktøy for Uno-X Automat Fakultet for teknologi, kunst og design Høgskolen i Oslo og Akershus, 2013 Innholdsfortegnelse Sammendrag 1 1. Innledning 1 2. Om

Detaljer

IN våren 2018 Tirsdag 16. januar

IN våren 2018 Tirsdag 16. januar IN1010 - våren 2018 Tirsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810 Eksamensdag: 5. juni, 2014 Tid for eksamen: 14:30 (4 timer) Oppgavesettet er på 4 sider. Vedlegg: Ingen Tillatte hjelpemidler:

Detaljer

GJENNOMGANG UKESOPPGAVER 9 TESTING

GJENNOMGANG UKESOPPGAVER 9 TESTING GJENNOMGANG UKESOPPGAVER 9 TESTING INF1050 V16 KRISTIN BRÆNDEN 1 A) Testing viser feil som du oppdager under kjøring av testen. Forklar hvorfor testing ikke kan vise at det ikke er flere gjenstående feil.

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

Transaksjonsstandard for virkesomsetningen i Norge. Business Acknowledge. Versjon 2.0. Desember 2007 SKOG-DATA AS

Transaksjonsstandard for virkesomsetningen i Norge. Business Acknowledge. Versjon 2.0. Desember 2007 SKOG-DATA AS Transaksjonsstandard for virkesomsetningen i Norge Versjon 2.0 Desember 2007 SKOG-DATA AS Innhold 1 Innledning 3 2 Dokumentasjon av 3 2.1 Oversikt 3 2.1.1 Meldingstyper/funksjoner 3 2.1.2 BusinessAcknowledge

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

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer

Detaljer

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer

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

Brukerveiledning. Koblingsur. Varenr: 320 061

Brukerveiledning. Koblingsur. Varenr: 320 061 Brukerveiledning Koblingsur Varenr: 320 061 Innhold Hva er koblingsur... 3 Programmering... 3 Dato og klokkeslett:... 3 Innkoblingstid og utkoblingstid:... 4 Kontroll av innlagte program... 5 Slette et

Detaljer

Training module on. Grant Contract 517846-LLP-1-2011-1-DK-LEONARDO-LMP

Training module on. Grant Contract 517846-LLP-1-2011-1-DK-LEONARDO-LMP Training module on 2Fish project: Inclusion of secondary service professions within fishery to the normal VET system Grant Contract 517846-LLP-1-2011-1-DK-LEONARDO-LMP Kurs tittel: Kurs Type: Kvalifiserings

Detaljer

Kapittel 8: Programutvikling

Kapittel 8: Programutvikling Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 17. august 2012 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

Et større programeksempel. Hvordan løse et reelt problem med en objektorientert fremgangsmåte

Et større programeksempel. Hvordan løse et reelt problem med en objektorientert fremgangsmåte Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte Plan for forelesingen Beskrive en større problemstilling Planlegge programmet Skrive koden, én klasse om gangen

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

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

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

Lykke til! Eksamen i fag TDT4140 Systemutvikling 28.11.2012 9.00. NTNU Norges teknisk-naturvitenskapelige universitet Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Sensurfrist:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00

Detaljer

INF1510: Obligatorisk oppgave 2: prosjektforslag

INF1510: Obligatorisk oppgave 2: prosjektforslag INF1510: Obligatorisk oppgave 2: prosjektforslag Prosjektgruppe: G0Gr33n! Vi er fire jenter og to gutter som har forskjellig bakgrunn i forhold til erfaring og kunnskap. Vi forventer å lære mer om brukerorientert

Detaljer

Kravhåndtering. INF1050: Gjennomgang, uke 03

Kravhåndtering. INF1050: Gjennomgang, uke 03 Kravhåndtering INF1050: Gjennomgang, uke 03 Kompetansemål Kravhåndtering Anvende metoder og teknikker for å Innhente / Analysere / Spesifisere krav Ulike typer krav Funksjonelle krav Ikke-funksjonelle

Detaljer

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

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: NEI Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 25 september 2018 Klokkeslett: 09.00-13.00 Sted: Adm. Bygget K1.04 Tillatte hjelpemidler: Ingen Type innføringsark (rute/linje):

Detaljer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø rodsjo@stud.ntnu.no Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,

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

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

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens

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

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy Kapittel 13 Advanced Hypertext Implementation Martin Lie Ole Kristian Heggøy 08.11.04 Forbedring av arkitektur Problem med alt i ett -løsning: Spredning av forretningslogikk. Avhengighet mellom presentasjonssider

Detaljer

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens

Detaljer