Objektorienterte databasesystemer (OODBS)

Størrelse: px
Begynne med side:

Download "Objektorienterte databasesystemer (OODBS)"

Transkript

1 Objektorienterte databasesystemer (OODBS) Inneholder lysark laget av Arthur M. Keller, Vera Goebel, Pål Halvorsen og Ragnar Normann INF Ragnar Normann, Ifi, UiO Ark 1 av 43

2 Oversikt OO begreper og OODBS egenskaper objektidentitet/objektidentifikator (OID) objekter & verdier ekstensjon (forekomstene av en klasse) komplekse objekter og typekonstruktører operatorer programmeringsspråkkompatibilitet (sømløshet) innkapsling (information hiding) type/klassehierarkier, arv og polymorfisme INF Ragnar Normann, Ifi, UiO Ark 2 av 43

3 Datamodeller & databasesystemarkitekturer - Kronologisk Oversikt - Nettverksdatamodellen (1964) Den hierarkiske datamodellen (1968) Relasjonsdatamodellen (1970) Objektorienterte datamodeller (~ 1985) Objektrelasjonelle datamodeller (~ 1990) Semistrukturerte datamodeller (XML 1.0) (~ 1998) INF Ragnar Normann, Ifi, UiO Ark 3 av 43

4 OO-begreper og OODBS-egenskaper INF Ragnar Normann, Ifi, UiO Ark 4 av 43

5 Objektorienterte begreper Modeller interesseområdet (miniverdenen, Universe of Discourse, UoD) som en samling av samarbeidende enheter, kalt objekter Abstraksjon og autonomi: objekt: <verdi, {operatorer> (operatorene implementeres som metoder) verdi: datastruktur innkapsling (skjuling av informasjon) krav om oppførsel fra andre objekter Klassifikasjon: felles beskrivelse (intensjon) samling av likeartede objekter (ekstensjon, klasse) Taksonomi: super-/subklasser arv av egenskaper polymorfisme INF Ragnar Normann, Ifi, UiO Ark 5 av 43

6 Hensikten med OO-datamodell UoD og OODB data model database? record oriented data model 1:N object oriented data model 1:1 database database INF Ragnar Normann, Ifi, UiO Ark 6 av 43

7 Fordeler med OO-datamodellering UoD objektorientert datamodell 1:1 database Naturlighet (sammenlignet med tradisjonelle datamodeller) meningsfull abstraksjon / høy modularitet kontroll med kompleksitet separasjon av grensesnitt og implementasjon Evolusjonær systemdesign inkrementell programmering gjenbrukbarhet INF Ragnar Normann, Ifi, UiO Ark 7 av 43

8 Objektorienterte databasesystemer OODBS = DBS med OO-datamodell OO-database = samling av objekter Objekt = <OID, verdi, {operatorer> Hvert objekt har sine egne spesifikke egenskaper INF Ragnar Normann, Ifi, UiO Ark 8 av 43

9 OODBS og objektverdier Objekt = <OID, verdi, {operatorer> Eksempel på verdi: class athlete { text name; integer salary; V1 = tuple of (name: Solskjær, salary: ) V2 = tuple of (name: Berg, salary: ) V3 = tuple of (name: Dæhli, salary: ) O1 = <, V1, > O2 = <, V2, > O3 = <, V3, > INF Ragnar Normann, Ifi, UiO Ark 9 av 43

10 OODBS og objektoperatorer Objekt = <OID, verdi, {operatorer> Verdioperatorer: Prosessering av hele objekter - avhengig av aktuell struktur Endring av verdier Generiske operatorer: Prosessering av individuelle objektnivåer - struktur er irrelevant Ett-nivå / multi-nivå operatorer (sammensate objekter) Også: seleksjon, navigasjon,... INF Ragnar Normann, Ifi, UiO Ark 10 av 43

11 Egenskaper i et OODBS Må ha: objektidentitet komplekse (sammensatte) objekter typer/klasser brukerdefinerte typer språkkompletthet innkapsling arv: type/klassehierarkier polymorfismer: overlasting/redefinisjon/ sen binding... alt ortogonalt Bør ha: objektversjoner spesifikk realisering (implementasjon) av begreper distribusjon (klient/server arkitekturer) visse prosesseringsaspekter, f.eks. nye transaksjonsmekanismer regel-baserte mekanismer (aktive/deduktive muligheter)... og mye mer INF Ragnar Normann, Ifi, UiO Ark 11 av 43

12 Objektidentifikatorer (OID) Objekter eksisterer uavhengig av sine (nåværende) verdier enhver modifikasjons resulterer i samme objekt ingen misvisende referanser til objekter identitet =/= likhet (begge må kunne uttrykkes) OIDer kan ikke baseres (pålitelig) på ordinære verdier skaffet til veie av applikasjonen (verdiorientering)... men på surrogater: OIDer er (system-vidt) entydige uforanderlige i hele objektets levetid ikke brukt om igjen etter sletting vanligvis generert og håndtert av systemet generiske objektoperatorer: sammenligning av objekter gjenfinning av objekter... basert på OID INF Ragnar Normann, Ifi, UiO Ark 12 av 43

13 Komplekse (sammensatte) Objekter Vi har to typer komplekse objekter: Ustrukturerte: lange felt (BLOBer - binary large objects) Strukturerte: INF Ragnar Normann, Ifi, UiO Ark 13 av 43

14 Typer / klasser Intensjon (felles beskrivelse av likedanne objekter) Klasse Op1 Op2 Opprettelse av instanser instansiering Ekstensjon (mengde av eksisterende instanser) Brukerne kan selv definere sine egne typer objekt_1 objekt_2 objekt_3 Op1, Op2 Op1, Op2 Op1, Op2 INF Ragnar Normann, Ifi, UiO Ark 14 av 43 instansiering

15 Innkapsling Synlig for brukerne av klassen Definisjon av operatorenes grensesnitt Skjult for brukerne av klassen Definisjon av verdityper (datastruktur for objekttilstanden) Implementasjon av operatorene INF Ragnar Normann, Ifi, UiO Ark 15 av 43

16 Arv: Type/klassehierarkier Objekttyper er ikke alltid uavhengig av hverandre: generalisering/spesialisering subtyper/supertyper Instanser av subtyper arver egenskaper fra supertyper Former: enkel arv (typehierarki), multippel arv (typelattice) Fordeler ved arveprinsippet: gjenbruk av kode reusability (når operatorer arves) representasjon av tilleggssemantikk designdisiplin (stegvis forfining) INF Ragnar Normann, Ifi, UiO Ark 16 av 43

17 Polymorfisme: Overlasting, redefinisjon, sen binding Overlasting: bruk av samme navn for forskjellige operatorer (i forskjellige typer) Redefinisjon: reimplementasjon av operatorer på et lavere nivå i typehierarkiet Sen binding: bind et operatornavn til en assossiert implementasjon senere, dvs. individuelt for hvert objekt ved run-time print_geometric_object (o: g_obj) (implementert for sirkler, rektangler, triangler osv) for all x do print_geometric_object(x); vs. for all x do case x is circle: print_circle(x); x is rectangle: print_rectangle(x); x is triangle: print_triangle(x); otherwise exception handling); INF Ragnar Normann, Ifi, UiO Ark 17 av 43

18 ODL (Object Description Language) INF Ragnar Normann, Ifi, UiO Ark 18 av 43

19 Oversikt ODL (Object Definition Language) klasser attributter relasjoner metoder typesystemer ekstensjoner nøkler arv INF Ragnar Normann, Ifi, UiO Ark 19 av 43

20 Objektorientert DBMS standardisering ODMG: Object Data Management Group en OO standard for databaser ODL: Object Description Language design i OO-stil OQL: Object Query Language SQL-likt spørrespråk mot OO-databaser med et ODL-schema INF Ragnar Normann, Ifi, UiO Ark 20 av 43

21 ODL klassedeklarasjoner Klassedeklarasjoner omfatter: Navn på klassen Key deklarasjon av nøkler, ikke påkrevd Extent navn på mengden som til enhver tid består av de eksisterende objektene av klassen Element deklarasjon(er): et element er et attributt, en relasjon, eller en metode Syntaks: class <name> { <elements = attributes, relationships, methods> INF Ragnar Normann, Ifi, UiO Ark 21 av 43

22 Attributter: ODL Elementdeklarasjoner: Syntaks: attribute <type> <name>; Eksempel: name addr license Bars Attributter - I involverer ikke-objektverdier som heltall og tekststrenger class Bars { attribute string name; attribute Struct addr { string street, string city address; attribute Enum lic { full, beer, none licensetype; INF Ragnar Normann, Ifi, UiO Ark 22 av 43

23 ODL Elementdeklarasjoner: Attributter - II Strukturerte typer har navn og en liste av felt-type par attribute Struct addr {string street, string city address; Enumerte type har navn og en liste med verdier attribute Enum lic {full, beer, none licensetype; Hvorfor navngir vi strukturer og enumerasjoner? name addr license name addr Bars Frequents Drinkers class Drinkers { attribute string name; attribute Struct Bars::addr address; NOTE 1: Reuse of the Struct addr attribute in the class Bars NOTE 2: Elements from another class is indicated by <class>::<name> INF Ragnar Normann, Ifi, UiO Ark 23 av 43

24 ODL Elementdeklarasjoner: Relasjoner - I Relasjoner forbinder objekter; de er referanser Syntaks: relationship <type> <name>; Eksempler: relationship Set<Person> haskids; relationship Person haswife; relationship Set<Car> owncars; INF Ragnar Normann, Ifi, UiO Ark 24 av 43

25 ODL Elementdeklarasjoner: Relasjoner - II Relasjoner kommer i inverse par Eksempel: Serves mellom Beers og Bars er representert av en relasjon i Bars som angir hvilke ølmerker som selges, og en relasjon i Beers som angir hvilke barer som selger det. Bars Serves Beers class Bars { relationship Set<Beers> serves inverse Beers::servedAt; class Beers { relationship Set<Bars> servedat inverse Bars::serves; INF Ragnar Normann, Ifi, UiO Ark 25 av 43

26 ODL Elementdeklarasjoner: price Prices Relasjoner - III Bare binære relasjoner er støttet: Flerveis relasjoner krever en egen forbindelsesklasse BBP Bars Serves Beers NOTE 1: Inverses for thebar, thebeer must be added to Bars, Beers The- Bar The- Beer The- Price Bars Beers Price class Prices { attribute real price; relationship Set<BBP> tobbp inverse BBP::thePrice; class BBP { /*beers-bars-prices*/ NOTE 2: relationship Bars thebar inverse... might in this case use only relationship Beers thebeer inverse... attribute price attribute relationship float Price price; theprice inverse Prices::toBBP; INF Ragnar Normann, Ifi, UiO Ark 26 av 43

27 ODL Elementdeklarasjoner: Relasjoner - IV Mange-til-mange relasjoner har en set-type i hver retning Bars Serves Beers class Bars { relationship Set<Beers> serves inverse Beers::servedAt; class Beers { relationship Set<Bars> servedat inverse Bars::serves; INF Ragnar Normann, Ifi, UiO Ark 27 av 43

28 ODL Elementdeklarasjoner: Relasjoner - V Mange-til-en relasjoner har en set-type for en-siden og et klassenavn for mange-siden Manufacturer made by Beers class Manufacturer { relationship Set<Beers> producebeers inverse...; class Beers { relationship Manufacturer producedby inverse...; INF Ragnar Normann, Ifi, UiO Ark 28 av 43

29 ODL Elementdeklarasjoner: Relasjoner - VI En-til-en relasjoner har klassenavn for begge Manufacturer Bestseller Beers class Manufacturer { relationship Beers isbestsellingbeer inverse...; class Beers { relationship Manufacturer hasbestsellingbeer inverse...; INF Ragnar Normann, Ifi, UiO Ark 29 av 43

30 ODL Elementdeklarasjoner: Metoder Et stykke eksekverbar kode som kan brukes av objektene i klassen Parametrene kan være av typene: in, out og inout Objektet er selv en skjult parameter Metoden kan returnere en verdi Metoden kan kreve unntaksbehandling (raise exceptions) Bare signaturene blir definert i ODL-klassene; koden skrives i et vertsspråk og er ikke en del av ODL Eksempel: class Bars {... void availablebeers(out Set<Beers>);... INF Ragnar Normann, Ifi, UiO Ark 30 av 43

31 ODLs typesystem Basistyper: integer, real, float, character, string, enumerated types, boolean, m.fl. Typekonstruktører: Struct en struktur, dvs. en liste av type navn -par Samlingstyper (Collection types): Set<T> uordnet mengde av (forskjellige) objekter av type T Bag<T> uordnet samling objekter av type T; duplikater er tillatt List<T> ordnet samling objekter av type T; duplikater er tillatt Array<T> ordnet, indeksert samling objekter av type T; duplikater er tillatt Dictionary<S,T> mengde av objektpar av type S,T En type i en relasjon kan bare være en klasse eller en samling av en klasse INF Ragnar Normann, Ifi, UiO Ark 31 av 43

32 ODL-nøkler I ODL trenger ikke klasser å ha nøkler. OID-en skiller mellom objekter som har samme verdier i sine elementer Nøkler angis med key (eller keys) og en liste av attributter som utgjør nøkkelen Flere lister kan angis for å definere flere alternative nøkler Parenteser brukes for å gruppere medlemmene i flerverdi-nøkler: key(a 1,a 2,, a n ) = en nøkkel med n attributte keys a 1,a 2,, a n = hver a i er en nøkkel, og hver av dem kan være en flerverdinøkkel, dvs. at a i =(b 1,b 2,, b k ) Eksempel: en enkeltverdinøkkel: class Beers (key name) { attribute string name; Eksempel: to to-verdi nøkler: class Courses (key (dept, number), (room, hours)) {... Når vi har skrevet og sagt attributter ovenfor, er det egentlig feil; både relasjoner og metoder kan inngå i nøkler INF Ragnar Normann, Ifi, UiO Ark 32 av 43

33 Instansierbare klasser og ekstenssjoner i ODL Det er forskjell mellom klassedefinisjonen og mengden av eksisterende objekter (ekstensjonen) av en klasse I OQL angir vi ekstensjonen med kodeordet extent etterfulgt av et navn på mengden av objekter En klasse kan bare instansieres, dvs. at man kan lage objekter av klassen, hvis den er definert med kodeordet class Eksempel: class Student (extent students key SSN){... INF Ragnar Normann, Ifi, UiO Ark 33 av 43

34 ODL signaturklasser ODL gir støtte for signaturklasser, som essensielt er klasser uten egne objekter Nyttig når vi har flere klasser med forskjellig ekstensjon men felles egenskaper; eksempelvis er både studenter og lærere personer Signaturklasser defineres med nøkkelordet interface Signaturklasser kan ikke instansieres og brukes bare som en hjelp til å definere andre klasser. Derfor er det meningsløst å bruke nøkkelordene extent og key i klassedefinisjonen til en signaturklasse Eksempel: interface Person { attribute integer SSN; class Student : Person (extent students key SSN){... class Teacher : Person (extent teachers key SSN){... INF Ragnar Normann, Ifi, UiO Ark 34 av 43

35 ODL subklasser og arv - I En subklasse arver alle egenskapene fra sin superklasse, f.eks. får objektene i klassen Ales alle attributter og relasjoner til klassen Beers Superklasser angis ved å prefikse med: colon (:) for signaturklasser nøkkelordet extends for instansierbare klasser Eksempel: Ales er øl med farge class Ales extends Beers { attribute string color; name Beers isa Ales color manf Signaturklasser kan bare arve fra andre signaturklasser INF Ragnar Normann, Ifi, UiO Ark 35 av 43

36 ODL subklasser og arv - II Multippel arv: color manf Angis med nøkkelordet extends og en liste av klasser separert med kolon (:). Eksempel: class Amphibian extends car:boat {... Navnekonflikter er ikke tillatt, og det er brukerens ansvar å unngå dem INF Ragnar Normann, Ifi, UiO Ark 36 av 43 car isa color amphibian Alle klasser kan arve fra vilkårlig mange signaturklasser, men en (instansierbar) klasse kan bare arve fra en instansierbar klasse, så en klasse kan ikke være ekstensjon av mer enn én klasse boat isa manf

37 ODL Eksempel - I name number money hours controls Project works on SSN name Person addr manages isa Department works for Employee name number addr salary INF Ragnar Normann, Ifi, UiO Ark 37 av 43

38 ODL Eksempel - II name number money hours SSN name addr controls Project works on Person manages Department Employee works name number addr for salary isa interface Person { attribute integer SSN; attribute string name; attribute Struct address { string street, string city addr; NB: Signaturklasse (interface) ingen extent eller key INF Ragnar Normann, Ifi, UiO Ark 38 av 43

39 ODL Eksempel - III name number money hours SSN name addr controls Project works on Person manages Department Employee works name number addr for salary isa NOTE 1: Arver alle egenskaper fra signaturklassen Person NOTE 2: Relasjoner defineres som inverse par NOTE 3: Mange-siden i en relasjon er en set-type NOTE 4: En-siden er ikke en set-type class Employee : Person (extent employees key SSN) { attribute integer salary; relationship Department works_for inverse Department::has_Emp; relationship Department manages inverse Department::manager; relationship Set<Project> works_on inverse Project::members; INF Ragnar Normann, Ifi, UiO Ark 39 av 43

40 ODL Eksempel - IV name number money hours SSN name addr controls Project works on Person name Department number addr manages works for Employee salary class Department (extent departments key number) { attribute integer number; attribute string name; attribute Struct Person::address addr; relationship Employee manager inverse Employee::manages; relationship Employee has_emp inverse Employee::works_for; relationship Set<Project> controls inverse Project::contr_by: INF Ragnar Normann, Ifi, UiO Ark 40 av 43 isa MERK gjenbruk av address fra klassen Person

41 ODL Eksempel - V name number money hours SSN name addr controls Project works on Person manages Department Employee works name number addr for salary isa class Project (extent projects key number) { attribute integer number; attribute string name; attribute integer money; relationship Department contr_by inverse Department::controls; relationship Set<Employee> members inverse Employee::works_on; INF Ragnar Normann, Ifi, UiO Ark 41 av 43

42 ODL Eksempel - VI name number money hours SSN name addr controls Project works on Person Department manages works name number addr for salary NOTE 1: Bare binære relasjoner er tillatt Employee NOTE 2: Inverse må legges til i Project og Employee the project Project class WorkingHours { attribute integer hours; relationship Project theproject inverse Project::emp_hours; relationship Employee theemployee inverse Employee::proj_hours; INF Ragnar Normann, Ifi, UiO Ark 42 av 43 isa Working Hours hours the employee Employee

43 Oppsummering OO konsepter og OODBS egenskaper støttet av ODL: klasser: signatur- og instansierbare klasser superklasser/subklasser arv relasjoner typesystem ekstensjoner nøkler INF Ragnar Normann, Ifi, UiO Ark 43 av 43

UNIVERSITETET I OSLO. Objektdatabaser. ODMGs objektmodell og ODL (Object Definition Language)

UNIVERSITETET I OSLO. Objektdatabaser. ODMGs objektmodell og ODL (Object Definition Language) UNIVERSITETET I OSLO Objektdatabaser ODMGs objektmodell og ODL (Object Definition Language) INF3100 19.2.2008 Ragnar Normann Institutt for Informatikk 1 Databaser vs objektorientering Det er en inherent

Detaljer

Objektdatabaser. ODMGs objektmodell og ODL (Object Definition Language) g Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Objektdatabaser. ODMGs objektmodell og ODL (Object Definition Language) g Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET IOSLO Objektdatabaser ODMGs objektmodell og ODL (Object Definition Language) g Institutt for Informatikk INF3100 24.2.2009 Ellen Munthe-Kaas 1 Databaser vs objektorientering Det er en inherent

Detaljer

Et objektorientert spørrespr. rrespråk: Object Query Language (OQL)

Et objektorientert spørrespr. rrespråk: Object Query Language (OQL) INF3100 Databasesystemer Et objektorientert spørrespr rrespråk: Object Query Language (OQL) Inneholder lysark laget av Arthur M. Keller, Vera Goebel, Pål Halvorsen, Ragnar Normann Oversikt OQL Spørringer

Detaljer

OQL Object Query Language

OQL Object Query Language UNIVERSITETET I OSLO OQL Object Query Language ODMGs spørrespråk INF3100 25.2.2008 Ragnar Normann Institutt for Informatikk 1 Hva OQL er OQL er spørrespråket i ODMG-standarden OQL utvider objektorienterte

Detaljer

Databaser & objektorientering.

Databaser & objektorientering. Databaser & objektorientering. Noen grunnbegreper innen objektorientering. Klasser og forekomster klasser beskriver strukturen for noe. Beskrivelsen inneholder: et navn attributter /egenskaper / tilstander

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

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 INF 5040 H2004 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare?! Innkapsling " naturlig tilnærming

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

UNIVERSITETET SQL-99. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET SQL-99. Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET IOSLO Objektrelasjonelle DBMSer. SQL-99 Institutt for Informatikk INF3100 2.3.2009 Ellen Munthe-Kaas 1 Objektrelasjonelle DBMSer ORDBMS = Object-Relational Database Management System Motivasjon:

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

Modeller for design av Web-Applikasjoner

Modeller for design av Web-Applikasjoner Modeller for design av Web-Applikasjoner Kapittel 2: Data Modell Kapittel 3: Hypertekst Modell Av Eskil Saatvedt og Arianna Kyriacou. http://www.ii.uib.no/~eskil/fag/ http://www.ii.uib.no/~arianna/fag/

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

objektrelasjonelle j databaser. SQL:1999

objektrelasjonelle j databaser. SQL:1999 UNIVERSITETET IOSLO Objektdatabaser og objektrelasjonelle j databaser. SQL:1999 Institutt for Informatikk INF3100 21.3.2011 Ellen Munthe-Kaas 1 Databaser vs objektorientering Det er en inherent (iboende)

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

Kapittel 7: Mer om arv

Kapittel 7: Mer om arv Kapittel 7: Mer om arv 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 Forlag,

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

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00 Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I FAG

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

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

Tillatte hjelpemidler: alle skrevne og trykte. Antall sider: 2 (+ 1 side vedlegg, bakerst). Oppgave 1 [25%] Bokmål Det Matematisk-naturvitenskapelege fakultet UNIVERSITETET I BERGEN Eksamen i emnet INF101/INF101F Programmering II Tirsdag 28. september 2010, kl. 09-12. Tillatte hjelpemidler: alle skrevne og trykte.

Detaljer

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007. Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser Data (transiente, persistente) DBMS databser informasjon interesseområdet informasjonsmodeller informasjonssystemer Transiente og persistente data Når vi programmerer,

Detaljer

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1 UNIVERSITETET I OSLO SQL Structured Query Language (The intergalactic dataspeak) Institutt for Informatikk INF3100 1.2.2005 Ragnar Normann 1 SQL SQL Structured Query Language er et deklarativt språk for

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser databaser data (transiente, persistente) informasjon interesseområdet

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

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

Informasjonssystemer, DBMSer og databaser

Informasjonssystemer, DBMSer og databaser UNIVERSITETET I OSLO Informasjonssystemer, DBMSer og databaser Institutt for Informatikk INF3100-21.1.2008 Ellen Munthe-Kaas 1 Interesseområdet (UoD = Universe of Discourse) Interesseområdet er en del

Detaljer

Databasesystemer, oversikt

Databasesystemer, oversikt Databasesystemer, oversikt Evgenij Thorstensen V18 Evgenij Thorstensen Databasesystemer, oversikt V18 1 / 23 Kurset Databasesystemer og databaser. Databaser er abstrakte objekter (datastrukturer, spørrespråk).

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

INF212 - Databaseteori. Kursinnhold

INF212 - Databaseteori. Kursinnhold INF212 - Databaseteori Forelesere: Naci Akkök Ellen Munthe-Kaas Mål: Kjennskap til databasesystemer Virkemåte Implementasjon Teoretiske og praktiske problemer INF212 v2003 1 Kursinnhold Databasedesign

Detaljer

INF1000: Forelesning 7. Konstruktører Static

INF1000: Forelesning 7. Konstruktører Static INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter

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 Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220

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

Databaser: Relasjonsmodellen, del I

Databaser: Relasjonsmodellen, del I LC238D http://www.aitel.hist.no/fag/_dmdb/ Databaser: Relasjonsmodellen, del I En relasjon er en matematisk mengde side 2 Egenskaper ved relasjoner side 3 Entitetsintegritet side 4-5 Referanseintegritet

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

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Stein Krogdahl INF-5110, 27 april 2006 Temaer: Hva er generiske mekanismer, og hvorfor har vi dem? Hovedtyper av generiske mekanismer Hovedstrategier

Detaljer

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

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) Neste uke: ML Ark 1 av 16 Forelesning 16.10.2000 Parameteroverføring

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 9. juni 2008 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 5 sider. Vedlegg: Tillatte hjelpemidler: INF3100 Databasesystemer

Detaljer

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.

Detaljer

INF1000: Forelesning 7

INF1000: Forelesning 7 INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en

Detaljer

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4» < T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar

Detaljer

INF Notater. Veronika Heimsbakk 10. juni 2012

INF Notater. Veronika Heimsbakk 10. juni 2012 INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N

Detaljer

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13.

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13. BOKMÅL Side 1 av 5 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTERINGSEKSAMEN

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Stein Krogdahl INF-5110, 28 april 2005 Temaer: Hva er generiske mekanismer, og hvorfor har vi dem? Hovedtyper av generiske mekanismer Hovedstrategier

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

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

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3110/4110 Programmeringsspråk Eksamensdag: 3. desember 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8 sider. Vedlegg:

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

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke

Detaljer

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i INF3110/INF4110, 1. desember 2005 Side 1 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF3110/4110 - Programmeringsspråk Eksamensdag: 1. desember 2005 Tid for eksamen:

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk INF5110 April, 2009

Generiske mekanismer i statisk typede programmeringsspråk INF5110 April, 2009 Generiske mekanismer i statisk typede programmeringsspråk INF5110 April, 2009 Torsdag 30. april (skattedagen!): Mer om generering av maskinkode (Ferdig oppkopiert hefte deles ut) Tirsdag 5. mai: Mer av

Detaljer

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3 Relational Algebra 1 Unit 3.3 Unit 3.3 - Relational Algebra 1 1 Relational Algebra Relational Algebra is : the formal description of how a relational database operates the mathematics which underpin SQL

Detaljer

Semantisk Analyse del III

Semantisk Analyse del III Semantisk Analyse del III Typesjekking Kapittel 6.4 08.03.2013 1 Datatyper og typesjekking Om typer generelt Hva er typer? Statisk og dynamisk typing Hvordan beskrive typer syntaktisk? Hvordan lagre dem

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på

Detaljer

INF2810: Funksjonell Programmering. Lokale variabler. Og trær.

INF2810: Funksjonell Programmering. Lokale variabler. Og trær. INF2810: Funksjonell Programmering Lokale variabler. Og trær. Erik Velldal Universitetet i Oslo 11. september 2019 Tema forrige uke 2 Lister som datastruktur quote Rekursjon på lister Høyereordens prosedyrer

Detaljer

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten Interface, Abstract Class... i-120 : H-98 2a. Abstraksjon i JAVA: 1 Det finnes ingenting som kan gjøres med interface i-120 : H-98 2a. Abstraksjon i JAVA: 2 som kan gjøres med bruk av unntak i-120 : H-98

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Data, databaser og databasehånteringssystemer Data versus informasjon Beskrivelse av interesseområdet 100%-prinsippet og det begrepsmessige

Detaljer

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

Detaljer

CORBA Objektmodell (Java RMI)

CORBA Objektmodell (Java RMI) CORBA Objektmodell (Java RMI) IN-ODP høst 2002 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 OMG & CORBA Object Mangement Group (OMG): non-profit organisasjon med over 800 medlemsorganisasjoner

Detaljer

Runtimesystemer - II. Funksjoner som parametere. Virtuelle metoder

Runtimesystemer - II. Funksjoner som parametere. Virtuelle metoder Runtimesystemer - II Funksjoner som parametere Virtuelle metoder Parameteroverføring Call by value Call by reference Call by value-result Call by name 04/04/14 1 FUNKSJONER SOM PARAMETERE 04/04/14 2 Eksempel

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

Historisk tidslinje. Resource Description Framework (RDF) Web Ontology Language (OWL) Object-Role Modeling (ORM) Entity Relationship Model (ER)

Historisk tidslinje. Resource Description Framework (RDF) Web Ontology Language (OWL) Object-Role Modeling (ORM) Entity Relationship Model (ER) Historisk tidslinje Natural Language Information Analysis Method (NIAM) 1960 1970 Object-Role Modeling (ORM) Entity Relationship Model (ER) 1980 Unified Modeling Language (UML) 1990 Resource Description

Detaljer

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Emneoversikt subklasser INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Stein Gjessing Institutt for informatikk Mange flere eksempler på fellesøvelsene og neste forelesning 1 Generalisering - spesialisering

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:

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

INF2810: Funksjonell Programmering. Lokale variabler. Og trær.

INF2810: Funksjonell Programmering. Lokale variabler. Og trær. INF2810: Funksjonell Programmering Lokale variabler. Og trær. Erik Velldal Universitetet i Oslo 11. september 2019 Tema forrige uke 2 Lister som datastruktur quote Rekursjon på lister Høyereordens prosedyrer

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Mandag 6. august 2012, kl. 15:00-19:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Rune Sætre. Kontaktperson under

Detaljer

CORBA Component Model (CCM)

CORBA Component Model (CCM) CORBA Component Model (CCM) INF5040 Høst 2005 Erlend Birkedal Jan Erik Johnsen Tore Ottersen Løkkeberg Denne presentasjonen CORBA Svakheter ved CORBA Object Model Komponenter CORBA Component Model Hva

Detaljer

GraphQL. Hva, hvorfor, hvordan

GraphQL. Hva, hvorfor, hvordan GraphQL Hva, hvorfor, hvordan Dag Olav Prestegarden BouvetOne Nord, 4. mai 2017 Ikke dette Eller dette Men dette Noen problemer med web-apier i dag GraphQL som løsning Features ved GraphQL Agenda Skjemadefinisjon

Detaljer

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter DCOM Distributed Component Object Model Almir Delkic og Frank Jensen Institutt for Informatikk, Universitetet i Oslo, oktober 2003 Introduksjon Utvikling av distribuerte applikasjoner Utvidelse av COM

Detaljer

INF3100 Databasesystemer

INF3100 Databasesystemer INF3100 Databasesystemer Forelesere: Naci Akkök Ragnar Normann Mål: Kjennskap til databasesystemer Oppgaver og moduler Virkemåte Implementasjon Teoretiske og praktiske problemer INF3100-19-20.1.2004 -

Detaljer

Model Driven Architecture (MDA) Interpretasjon og kritikk

Model Driven Architecture (MDA) Interpretasjon og kritikk Model Driven Architecture (MDA) Interpretasjon og kritikk Ragnhild Kobro Runde (Ifi, UiO) Veileder: Ketil Stølen (Ifi/SINTEF) Stuntlunsj SINTEF Oversikt Bakgrunn/utgangspunkt for presentasjonen MDA stuntlunsj

Detaljer

DBS18 - Strategier for Query-prosessering

DBS18 - Strategier for Query-prosessering Side 1 for Databaser DBS18 - Strategier for Query-prosessering søndag 22. mai 2016 13.03 Pensum 18.1-18.4, side 655-674, unntatt 18.4.4 og 18.4.5 En spørring som blir skrevet i et høynivå-språk, må bli

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

Obligatorisk oppgave 4: Lege/Resept

Obligatorisk oppgave 4: Lege/Resept Obligatorisk oppgave 4: Lege/Resept INF1010 Frist: mandag 27. mars 2017 kl. 12:00 Versjon 1.0 (111c894 ) Innhold 1 Innledning 1 1.1 Begreper................................ 2 2 Pasienter 2 3 Leger og lister

Detaljer

IN1010 våren 2018 Tirsdag 15. mai. Repetisjon av subklasser og tråder. Stein Gjessing Institutt for informatikk Universitetet i Oslo

IN1010 våren 2018 Tirsdag 15. mai. Repetisjon av subklasser og tråder. Stein Gjessing Institutt for informatikk Universitetet i Oslo IN1010 våren 2018 Tirsdag 15. mai Repetisjon av subklasser og tråder Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Klassehierarki: Personbil Bil Klasser - Subklasser class Bil {

Detaljer

INF2810: Funksjonell Programmering. Dataabstraksjon og Trerekursjon

INF2810: Funksjonell Programmering. Dataabstraksjon og Trerekursjon INF2810: Funksjonell Programmering Dataabstraksjon og Trerekursjon Stephan Oepen & Erik Velldal Universitetet i Oslo 15. februar, 2013 Tema 2 Forrige uke Høyere-ordens prosedyrer: Prosedyrer som argumenter

Detaljer

I objektorientering er det mange elementer som inngår og et av problemene er mangelen på et formelt fundament. Det finnes ingen omforent og formell mo

I objektorientering er det mange elementer som inngår og et av problemene er mangelen på et formelt fundament. Det finnes ingen omforent og formell mo Objektorienterte databaser Trond Aalberg 1 Introduksjon Dette essayet tar for seg objektorienterte databaser. Innledningsvis gies en beskrivelse av objektorientering generelt (kap. 2), og deretter diskuteres

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Data, databaser og databasehåndteringssystemer Data versus informasjon Beskrivelse av interesseområdet Begreper og representasjon av

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

Gjennomgang av eksamen H99

Gjennomgang av eksamen H99 Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares

Detaljer

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

Detaljer

Integritetsregler i SQL

Integritetsregler i SQL UNIVERSITETET I OSLO Integritetsregler i SQL INF3100 8.2.2005 Ragnar Normann 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler

Detaljer

Typer. 1 Type: boolean. 2 Verdimengde: {true, false} 3 Operatorer: NOT, AND, OR... 1/19. Forelesning Forelesning

Typer. 1 Type: boolean. 2 Verdimengde: {true, false} 3 Operatorer: NOT, AND, OR... 1/19. Forelesning Forelesning Dagens tema Typer (Kapittel 3 frem til 331) Innføring i ML (Kapittel 743 & ML-kompendiet) Typer En (data-)type består av: en mengde verdier en mengde operasjoner man kan anvende på disse verdiene Eksempel:

Detaljer

INF3110 Programmeringsspråk. Dagens tema. Typer (Kapittel 3 frem til ) Innføring i ML (Kapittel & ML-kompendiet.) 1/19

INF3110 Programmeringsspråk. Dagens tema. Typer (Kapittel 3 frem til ) Innføring i ML (Kapittel & ML-kompendiet.) 1/19 Dagens tema Typer (Kapittel 3 frem til 3.3.1.) Innføring i ML (Kapittel 7.4.3 & ML-kompendiet.) 1/19 Forelesning 2 27.8.2003 Typer En (data-)type består av: en mengde verdier en mengde operasjoner man

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

Detaljer

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer) Sensorveiledning for IN2090 og INF1300 6. desember 2018 14:30 18:30 (4 timer) 1. Eksterne skranker (5%) I modellene nedenfor (ORM2) skal du anta at alle begreper har en unik representasjon. Er plasseringen

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

Detaljer

INF1010 våren Arv og subklasser del 1

INF1010 våren Arv og subklasser del 1 INF1010 våren 2015 Torsdag 12. februar Arv og subklasser del 1 Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du programmere med: Første uke: Spesialisering

Detaljer