INF1010 UML. Marit Nybakken 26. januar 2004

Like dokumenter
INF1000: Forelesning 7. Konstruktører Static

INF1000: Forelesning 7

Klasser, objekter, pekere og UML. INF gruppe 13

INF Forelesning oppsummering forts. Et meget enkelt banksystem. Oppsummering om klasser, objekter, pekere og.

Objekter. Uke 8 - Objekter, klasser og pekere. Verden består av mange objekter, noen ganske like, noen ulike. Klasser og objekter i verden

INF1000 Metoder. Marit Nybakken 16. februar 2004

INF1000 HashMap. Marit Nybakken 2. november 2003

INF1010 Arv. Marit Nybakken 2. februar 2004

INF1000 Mer om objekter

INF1000: noen avsluttende ord

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

Uke 7 Mer om Objekter, klasser og pekere; 27. Sept og 4. okt. 2011, Arne Maus Inst. for informatikk, UiO

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

Fra problem til program

Et meget enkelt banksystem

Uke 7 Mer om Objekter, klasser og pekere; UML. 10. okt. 2013, Arne Maus Inst. for informatikk, UiO

INF1000: noen avsluttende ord

INF1000 Prøveeksamen Oppgave 7 og 9

Null, && og søppeltømmeren. INF Forelesning 9: Mer om objekter og klasser, tips til oblig 3. Eksempel Student med én konstruktør

Inf1000 (Uke 7) Objekter, klasser og pekere

Hva skal vi lære i dag? Inf1000 (Uke 9) UML og enda mer om klasser. Hvilke lesemetoder finnes? Filbehandling. Repetisjon om filbehandling UML

UNIVERSITETET I OSLO

Innhold. INF1000 Høst Hva skal evalueres? Fra kurssidene. Hvorfor har vi en lærebok? Uke 11: Repetisjon og pensumgjennomgang

UNIVERSITETET I OSLO

1 Kodegenerering fra Tau Suiten

Repetisjon INF 1000 våren 2006

Uke 7 Mer om Objekter, klasser og pekere;

Stringer er ordentlige objekter. Uke 8 - Mer om objekter og klasser. Tips Oblig3. Eksempel Student med en konstruktør

Uke 7 Mer om Objekter, klasser og pekere;

Løsningsforslag ukeoppg. 7: okt (INF Høst 2010)

INF1000 Forelesning 8. Litt repetisjon: Metoder og klasser Innkapsling av variable og metoder Hvordan gripe an et stort problem?

Hva er en metode? INF1000 Forelesning 8. Hva skjer når vi kaller en metode? Hvorfor bruke metoder?

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene.

Hva er en metode. Hva skjer når vi kaller en metode

Velkommen til. INF våren 2016

Mål for INF1000. Repetisjon INF 1000 våren Representasjon av data. Programvareutvikling - oversikt

Inf1000 (Uke 9) UML og enda mer om klasser

Hva skal vi lære i dag? Inf1000 (Uke 9) UML og enda mer om klasser. Hvilke lesemetoder finnes? Filbehandling

To måter å programmere på. Java 12. Programmering med objekter. Statisk programmering

Dagens tema Kapittel 8: Objekter og klasser

UNIVERSITETET I OSLO

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

Enkle generiske klasser i Java

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013

UNIVERSITETET I OSLO

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 Obligatorisk innlevering 7

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

Oblig 4Hybelhus litt mer tips enn i oppgaven

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Uke 7 - Objekter, klasser og pekere (+ litt først om args[])

Introduksjon til objektorientert programmering

INF Uke 10. Ukesoppgaver oktober 2012

Fra krav til objekter. INF1050: Gjennomgang, uke 05

UNIVERSITETET I OSLO

INF1000 Behandling av tekster

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

UNIVERSITETET I OSLO

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

Læreboken på 45 minutter

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Forelesning inf Java 5

Forelesning inf Java 5

Blokker og metoder INF1000 (Uke 6) Metoder

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

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

UNIVERSITETET I OSLO

Dagens forelesning. INF1010 Datastrukturer Lister og køer Pekerkjedelister Øvelser. Innhold i dette lysarksettet

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

s 678 * Hvordan designe og programmere objektorientert * Støtte til oppstart på Oblig 4: Jobbe frem eget forslag til datastruktur

INF 1000 høsten 2011 Uke 10: 25. november

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Spesifikasjon av Lag emne

Oblig 3 tips litt mer tips enn i oppgaven

26. Sept. 2012, Arne Maus Inst. for informatikk, UiO

UNIVERSITETET I OSLO

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

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

Innhold. INF1000 (Uke 11) Programmering. Rep: Metoder. Rep: Hva er en metode? Litt repetisjon. To måter å programmere på

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

UNIVERSITETET I OSLO

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Repetisjon. INF gruppe 13

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

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

OO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0

INF januar 2015 Stein Michael Storleer (michael) Lenkelister

Oblig 3 tips litt mer tips enn i oppgaven

INF1000 Klasser og objekter

Inf1000 uke 5 18.sept. 2007

INF1010 Sortering. Marit Nybakken 1. mars 2004

UNIVERSITETET I OSLO

Studieaktiviteter i INF1010

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

Transkript:

INF1010 UML Marit Nybakken marnybak@ifi.uio.no 26. januar 2004 Liten tolkning av UML-kapittelet i læreboka. 1 UML-diagrammer Det finnes mange forskjellige typer UML-diagrammer for å dokumentere og planlegge programmer og datasystemer. I dette kurset bruker vi to, klassediagrammer og objektdiagrammer. I boka kan det se ut som om det er fjorten forskjellige diagrammer å velge mellom, men det er faktisk bare to. Det ser ut som om det er flere fordi det gis ulike nivåer av informasjon i diagrammene. Noen ganger ønsker man å vise alle metoder og variable en klasse inneholder, andre ganger er det bare navnet på klassen og forholdet mellom den og andre klasser som er viktig. Klassediagrammer Uten variable og metoder Ønsker vi kun å vise hvilke klasser som er med og hvilke forhold det er mellom dem (en bananfarm har mange banantrær, et banantre har mange bananer), 1

Figur 1: Klassediagram, kun relasjoner kan vi bruke et enkelt klassediagram som viser relasjoner, som i figur 1. Her tegner vi en boks for hver klasse med navnet på klassen inni. For hvert par av klasser der vi har et en-til-en, en-til-mange eller mange-til-mange-forhold tegner vi en linje mellom boksene og angir forholdene. Disse kan angis slik: 1 : en * : mange (kan også være 0) 1..* : mange (minst 1) 3..* : mange (minst 3) 1,2,3 : 1, 2 eller 3 Med variable og metoder Ønsker vi å dokumentere nærmere innholdet i de forskjellige klassene, kan vi også ta med variable og metoder, slik som i figur 2. Vi kan fremdeles angi relasjonene mellom klassene. Slik tegner man inn variable og metoder i klassediagrammene: Variable Bare klasse- og objektvariable skal tegnes inn. Klassevariable (statiske variable) skal ha strek under seg. For hver variabel sier vi 2

Figur 2: Klassediagram, full pakke om variabelen er public (+), private (-) eller protected (#). navnet til variabelen hvilken type variabelen er antall verdier variabelen referer til. For arrayer og hashmaps blir dette flere. For vanlige variable blir det bare 1, og da kan man droppe å si noe om det hvis man vil. [+ - #] variabelnavn[antall] : type Eksempler: - navn[1] : String - ID[1] : String - kurs [1..*] : Kurs Har klassen en array eller HashMap med Kurs-objekter, forteller vi altså ikke dette, vi angir bare at variabelen kurs peker på en mengde av Kurs-objekter ved å la antall være 1..*. Vi tegner altså aldri inn HashMaps og arrayer i klassediagrammer. 3

Figur 3: Objektdiagram, kun relasjoner Metoder Vi tar som oftest bare med de metodene som er public. Her må vi også ta med navn, og vi kan si hva slags returverdi metoden har. Parametre angis ikke. [+ - #] metodenavn() : returverdi Eksempler + meldpåkurs() : void + lunsjtid() : boolean + taenturpåpuben() : void Objektdiagrammer Et objektdiagram er et snapshot av programmets tilstand en eller annen gang under kjøring når vi har laget alle objektene. Objektdiagrammer skiller seg fra klassediagrammer ved at vi ikke tar med metodene 4

ikke tar med klasser det ikke lages objekt av tegner inn eventuelle arrayer og HashMaps setter kolon foran og strek under klassenavnet kan gi eksempler på hva variablene kan inneholde Å tegne inn arrayer og HashMaps er så vidt jeg vet ikke ekte UML, men det brukes i dette kurset. Uten variable Vi kan lage objektdiagrammer der kun objektene, pekerne og eventuelle arrayer og hashmaps er med, men der vi sløyfer variablene. Da viser vi hvordan objektene er knyttet til hverandre under kjøring (hvem peker på hvem og med hvilke pekere). Se figur 3. Har vi flere objekter av samme klasse, kan vi tegne et multiobjekt. Det gjøres ved å tegne ett objekt bak det andre objektet, som for Student og Lunsjobjektene. Med variable Vi kan ta med variable i objektdiagrammer også. Da forteller vi ikke hvilken type og modifikator de har, men vi kan gi eksempler på hva de kan inneholde. Se figur 4. variabelnavn = en mulig verdi antstudenter = 34 sangtittel = Jeg gikk en tur på stien pi = 3 5

Figur 4: Objektdiagram, full pakke 6