Oversikt over forelesningene. Fra analyse til objektdesign. Utfordringen i å lage OO-modeller. Metode for ansvarsdrevet OO. Uke 12: Ansvarsdrevet OO:

Like dokumenter
OO Design, del 2. Oversikt over forelesningene. Metode for ansvarsdrevet OO Hva er et objekt. Uke 12: Fra sekvensdiagram til klasser

Fra krav til objektdesign

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

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

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Spesifikasjon av Lag emne

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

Utvikling fra skallet og inn

Beskjed fra Skagestein

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

NB! Endring i undervisningsplanen

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

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

Metode for ansvarsdrevet OO med UML. Dagens forelesning. Hovedflyt for Meld på kurs. Delegering av ansvar i en trelagsarkitektur

Dagens forelesning. o Litt mer om design med UML sekvensdiagrammer. Sentralisert og delegert kontrollstil

Metode for ansvarsdrevet OO med UML. Dagens forelesning. Hovedflyt for Meld på kurs. Delegering g av ansvar i en trelagsarkitektur

o UML klassediagrammer

Oppsummering INF1050. Hovedtemaene i INF1050. Utviklingsverktøy og plattformer. Produksjon av informasjonssystemer

Dagens forelesning. o Litt mer om design med UML sekvensdiagrammer. Sentralisert og delegert kontrollstil

UML klassediagrammer

Instituttets krav om autentisitet og regler for obligatoriske oppgaver gjelder.

Europa ADR-program. Fordeler med ADR

Obligatorisk oppgave INF3221/4221

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

Samling av trådene. Persistens. Dagens forelesning. Normal hendelsesflyt for Meld på kurs. Erik Arisholm. o Kort repetisjon. o Design av persistens

Oppsummering INF1050. Hovedtemaene i INF1050. Utviklingsverktøy og plattformer. Produksjon av informasjonssystemer

Instituttets krav om autentisitet og regler for obligatoriske oppgaver gjelder.

UML-Unified Modeling Language

Løsningsforslag eksamen 4MX230UM2-K 5.desember 2013

UNIVERSITETET l OSLO Det matematisk-naturvitenskapelige fakultet

Personvernsreglene. Bruk og beskyttelse av personopplysninger. Vår Policy om Personvern

Invitasjon til dialogkonferanse. Tema: Ny rammeavtale på kundeinformasjonselementer til bruk i Jernbaneverkets infrastruktur.

STORM&KULING VARSEL FOR NOVEMBER & DESEMBER PIRATENE

- Info om prosjektet ønsker å få innspill fra bedriftene hva kan gjøres for å bedre deres vilkår? - Anonymisering

SELMERS BIM-PROTOKOLL EN VEILEDER

Informasjonsmøte. Matematikk 1P (Mat 1011) og 1T (Mat 1013)

SELMERS BIM-PROTOKOLL EN VEILEDER. Av: Johannes Meyer-Myklestad og Mads Fuglesang

Veileder til arbeid med årsplanen

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

Use Case-modellering. INF1050: Gjennomgang, uke 04

Sikkerhets- og samhandlingsarkitektur ved intern samhandling

Informasjonsmøte. Matematikk 1PY (Mat 1001)

Årsmøte må holdes før 1. mars hvert år. Det sendes innkalling minst 5 uker før årsmøtet. Oppgaver til årsmøtet, planer og rammer for neste år

Håndhygiene og fingerringer Norsk forening for Sterilforsyning Landsmøte Bergen 4. juni 2015

- Under Detaljer kan du finne eller redigere diverse informasjoner. Blant annet:

Strategidokument Fossum IF STRATEGI FOR Fossum IF

Ingeniørenes hverdag

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

Software Faults and Failure Testing Issues 8.1 / 8.2

Rapport fra kompetansenettverket Opplæring av ungdom med kort botid

Hvordan forebygge og løse konflikter - uten for høy kostnad. Grenland Næringsforening, 6. mars 2018

Statens lånekasse for utdanning. Brukerhåndbok Arbeidsflate for lærestedene

Svar på spørreundersøkelse om nettilknytning og anleggsbidrag

- Under Detaljer kan du finne eller redigere diverse informasjoner. Blant annet:

Dagens situasjon... 1 Hano Systemet inneholder følgende funksjonalitet: Problemer:... 4 Fixit... 4

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

UKE 11 UML modellering og use case. Gruppetime INF1055

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

Fjerne prosess og produkt rapport som overskrift. Ha det som bunntekst.

«Et godt midlertidig hjem» Kompetanseutviklingsprogram i mottak for enslige mindreårige asylsøkere

ReadIT. Sluttrapport

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

behovetfor vil være på 430 per år. Vedlegg

«FRISKUS» FRISKE BARN I SUNNE BARNEHAGER

Eksamenssystemet Inspera finner du som ansatt fra Interne sider eller på nettadressen: hihm.inspera.no/admin

Uttalelse til planprogram og hovedutfordringer for vannregion Agder

Temperatur, saltholdighet og næringssalter i Barentshavet

PLAN FOR FORVALTNINGSREVISJON Skaun kommmune. Vedtatt i sak 23/15

Page 1 of 16. APM GUI Bruksanvisning for IP adresse verktøy

TILLITSVALGTE: Intervjuguide

Dokumentasjon TDC Invoice Online Ver. August

Dato. Alle skrevne og trykte. kalkulator som ikke kan kommunisere med andre.

Klar for fremtiden? 1.Amanuensis Rita Jakobsen Lovisenberg diakonale høgskole. Ålesund

Planlegging og dokumentasjon

Brukerveiledning for kalkulasjonsmalen for EVU-tilbud (EVU-malen)

Arbeidsrutiner for klassekontakter Vedtatt i FAU-møte den...

LÆRINGS- og GJENNOMFØRINGSPLAN

Innledning:

Oppgave 1: Multiple choice (20 %)

Gjerpen vår menighet!

Eksamenssystemet Inspera finner du som ansatt fra Interne sider eller på nettadressen: hihm.inspera.no/admin

3 De yngste på tur. Kristen samling Jesus drar opp til himmelen. 10 Kristen samling Jesus drar opp til himmelen

PROSJEKTET SPoR VESTFOLD SAMHANDLING RUS OG PSYKIATRI

~ høgskolen i oslo. Emne. Kalkulator. Økonomi og ledelse ,_august ~ I forsiden): Tillatte hjelpemidler:

LOKAL ÅRSPLAN FOR SKOGLUND BARNEHAGE

Veiledning for rapportering av tekniske data for nettanlegg til NVE

Introduksjon til Retrievers nye analyseverktøy

Årsplan for Institutt for sosiologi og samfunnsgeografi 2007 Vedtatt på møte i instituttstyret den 27. februar 2007

Brukermanual. Oppgavebasert versjon, for montører. Gjennomgår de vanligste gjøremålene for en montør!

Ikke aktuelt å oppnevne egne vararepresentanter for rådmennene i utredningsgruppa

Eierskapskontroll 2013 Chrisfestivalen AS. RAPPORT OM EIERSKAPSKONTROLL Chrisfestivalen AS. Kontrollør: KONTROLLUTVALGAN IS, Sissel Mietinen Side 1

Norsk forening for farlig avfall

FREMTID for Seniornett Norge. et bakgrunnsnotat for diskusjonen

Krav til pilot Magasinmodul. MUSIT Ny IT-arkitektur, planleggingsfasen

Mamut Enterprise Helpdesk Produkt og Kundeservice

Kravspesifikasjon Leie av lokaler for ikt backup-løsning

Produktrapport Gruppe 9

ÅS KOMMUNE PERIODEPLAN FRYDENHAUG BARNEHAGE AVD. EIKA

Transkript:

Uke 12: Oversikt ver frelesningene Fra analyse til bjektdesign Onsdag 12/3: Kravspesifikasjn g bjektrientert analyse Hva skal systemet gjøre? Hva er krav? Hvem g hva påvirker krav? Ansvarsdrevet OO: CRC g UML Sekvensdiagrammer UML: Bruksmønstermdeller Fredag 14/3: Ansvarsdrevet OO (Inf102 metden) Hvrdan skal systemet fungere? UML: Sekvensdiagrammer CRC: Hvrdan finne gde bjekter? Hva er Objekt-Orientert Analyse g Design? INF102-ansvar-1 INF102-ansvar-2 Metde fr ansvarsdrevet OO Utfrdringen i å lage OO-mdeller Inf102 metden (Iterativ): Analyse (1) Identifiser aktører g deres mål (2) Lag et høynivå bruksmønsterdiagram (3) Spesifiser hvert bruksmønster tekstlig med nrmal hendelsesflyt g variasjner Design (ansvarsfrdeling) (4) Identifiser bjekter g frdel ansvar mellm dem (CRC) (5) Lag sekvensdiagram fr viktige bruksmønstre (6) Klassediagram på bruksmønsternivå Finne bjekter g frdele ansvar mellm dem på en slik måte at mgivelsenes frventninger blir ppfylt (7) Klassediagram på systemnivå INF102-ansvar-3 INF102-ansvar-4

Hvrdan finne bjekter? Figur 10-1. CRC-krt Ta først utgangspunkt i språket til dmenet (prblemmrådet): F.eks. prdukt, ingrediens, kunde, student, knt, innskudd Bruk bruksmønster spesifikasjnene Du kan gså bruke språket til prgrammerere: F.eks. register, transaksjn, liste, vindu, meny Men det er fte viktigst i neste iterasjn av designet Lag CRC-krt fr bjektene Lag sekvensdiagram fr bjektene Navn på bjektet Ansvar: Hva bjektet må vite Hva bjektet skal gjøre Liste ver samarbeidende bjekter (bjekter sm kan delegeres ppgaver) INF102-ansvar-5 INF102-ansvar-6 Design med sekvensdiagrammer Figur 10-3. Eksempel på sekvensdiagram Et UML sekvensdiagram viser en interaksjn mellm bjekter i systemet fr et bruksmønster Fkuserer på hvrdan bjektene samarbeider fr å løse en bestemt ppgave Objekt:Klasse attributter metder( ) Objekt:Klasse attributter metder( ) Er fte nyttig fr å identifisere metdene til bjektene i systemet Men hvrdan finner man bjektene?? T hvedtyper: returverdi := melding (parametre) Objektet må ha en metde sm kan ta hånd m meldingen Objektets aktive peride Design av nrmal hendelsesflyt i et bruksmønster Design av en bestemt variasjn i et bruksmønster Returmelding. Vises vanligvis ikke i diagrammet Objektet fjernes det trengs ikke lenger INF102-ansvar-7 INF102-ansvar-8

Sammenheng mellm bruksmønster g sekvensdiagram Eks.: Design av (del)system fr kursregistrering Fr hvert bruksmønster lager du (i de aller fleste tilfeller) et sekvensdiagram fr nrmal hendelsesflyt Fr hver variasjn kan du velge å lage et nytt sekvensdiagram. Meld på kurs Lag kursbeskrivelse K ursadm inistra tr Det er viktig å lage sekvensdiagram fr variasjner sm har str innvirkning på designet Intrduserer variasjnen nye bjekter? B etal semesteravgift Behandle dispensasjnssøknad Intrduserer variasjnen nye metder? INF102-ansvar-9 INF102-ansvar-10 Aktør: Spesifikasjn av Meld på kurs Trigger: ønsker å melde seg på et kurs Pre-betingelse: har betalt semesteravgift g er lgget inn på systemet Pst-betingelse: er meldt på kurset eller student har sendt søknad m dispensasjn Nrmal Hendelsesflyt: 1. en gir pplysinger m kurs 2. Systemet sjekker m det er ledig plass på kurset 3. Systemet sjekker at studenten kvalifiserer til å ta kurset 4. Systemet registrerer studenten på kurset g ppdaterer antall ppmeldte på kurset Spesifikasjn av Meld på kurs (frts.) Variasjner: 1a. Ugyldig kurs: 1. en prøver igjen 2a. et er fullt: 1. Systemet avslutter registreringen 3a. et frutsetter andre kurs: 1. Systemet sjekker m studenten har tatt kursene 1a. en har tatt kursene sm frutsettes: 1. Systemet frtsetter registreringen 1b. en har IKKE tatt kursene sm frutsettes 1. Systemet spør m studenten ønsker å søke m dispensasjn 2. INF102-ansvar-11 INF102-ansvar-12

Figur 10-2. CRC-krt fr Meld på kurs (freløpig) Nrmal hendelsesflyt fr Meld på kurs Registrerings- Vindu Ta i mt g frmidle meldinger fra aktør g system Registrering Registrering Hlde styr på hendelsesfrløpet (krdinerer mellm kantbjektet g frretningsbjekt er) Registrerings- Vindu Register Påmelding Register Vet hvilke kurs sm finnes : : RegistreringsVindu 1: "Angi kurs" 2: MeldPå(student, kurs) : Registrering kurstilbudet : 3: Gyldig(kurs) kurset : 4: [gyldigkurs=true] EretFullt() Vet når g hvr et kurs hldes Vet maks antall påmeldinger g antall påmeldt Vet mitt navn g kursbeskrivelse Vet hvilke kurs sm frutsettes Påmelding Vet hvilket kurstilbud en bestemt student er påmeldt på Vet navn, sv. Vet hvilke kurs jeg har tatt Påmelding 10: "en er påmeldt" 9: MeldPå=true 5: [EretFullt = false] Frutsetter() : Påmelding 6: SmFrutsettes 7: [Frutsetter=false] new(student, kurset) 8: ØkAntallPåmeldt() INF102-ansvar-13 INF102-ansvar-14 Variasjn 3a.1.1a: frutsetter andre kurs Tre typer bjekter : RegistreringsVindu : Registrering kurstilbudet : : 1: "Angi kurs" 2: MeldPå(student, kurs) kurset : : Kantbjekter (grensesnittbjekter, interface bjects ) Aktiveres uten kjente stimuli (stimuli er utenfr systemet) Et bruksmønster bruker minst ett kantbjekt 3: Gyldig(kurs) Kntrllbjekter ( cntrl bjects ) 4: [gyldigkurs=true] EretFullt() 5: [EretFullt=false] Frutsetter() 6: SmFrutsettes Representerer ne sm gjøres i virksmheten. En kntrllbjekt lever vanligvis ikke lenger enn det handlingsfrløpet det inngår i I Inf102 lager vi ett kntrllbjekt pr. bruksmønster. 7: [Frutsetter=true] HarDu(SmFrutsettes) 8: [HarDu=true] new(student, kurset) : Påmelding Frretningsbjekter ( business bjects, entity bjects ) 10: MeldPå=true 11: "en er påmeldt" 9: ØkAntallPåmeldt() Representerer de tingene virksmheten håndterer, så sm vare, tilbud, rdre, kunde sv. En frekmst av et frretningsbjekt kan leve lenge - kanskje like lenge sm virksmheten! INF102-ansvar-15 INF102-ansvar-16

: Eks.: Meld på kurs Kntrllbjekt : RegistreringsVindu : Registrering kurstilbudet : 1: "Angi kurs" 2: MeldPå(student, kurs) kurset : Frretnings -bjekt ReCycle bruksmønsterdiagram Definer prdukt Kmpner prdukt "Prdukt" brukes sm synnym fr sykkel eller sykkeldel 3: Gyldig(kurs) Prdusent Dekmpner prdukt 4: [gyldigkurs=true] EretFullt() Definer bruker Kantbjekt 5: [EretFullt = false] Frutsetter() 6: SmFrutsettes : Påmelding Sjekk bestillinger Legg prdukt ut fr salg Administratr 7: [Frutsetter=false] new(student, kurset) 8: ØkAntallPåmeldt() Depner prdukt 9: MeldPå=true 10: "en er påmeldt" Kjøp prdukt Betalingssystem Frbruker INF102-ansvar-17 INF102-ansvar-18 Spesifikasjn av dekmpner prdukt Aktør: Gjenvinner Trigger: Aktør ønsker å splitte pp (dekmpnere) et prduktindivid i dets bestanddeler. Det kan fr eksempel skyldes at en bruker har lagt inn en bestilling på en del sm et bestemt prduktindivid på lageret består av. Gjenvinner ønsker derfr å dekmpnere slik at bestanddelen sm er bestilt deretter fr eksempel kan legges ut fr salg. Figur 10-2. CRC-krt fr Dekmpner Prdukt (freløpig) BrukerGrensesnitt Ta i mt g frmidle meldinger fra aktør g system Dekmpner- Prdukt DekmpnerPrdukt Hlde styr på hendelsesfrløpet (krdinerer mellm kantbjektet g frretningsbjekter) Brukergrensesnitt Nrmal Hendelsesflyt: 1. Systemet lager liste ver definerte prdukter 2. Gjenvinner angir prdukt 3. Systemet returnerer liste ver de prduktindividene sm finnes på lageret 4. velger det prduktindividet sm skal dekmpneres 5. Systemet lager et nytt prduktindivid fr alle bestanddelene til det pprinnelige prduktindividet g registrerer at hvert delprduktindivid nå finnes tilgjengelig hs Gjenvinner 6. Systemet fjerner det pprinnelige prduktindividet Variasjner: <Ingen viktige. Utsatt spesifikasjn til neste iterasjn> Prdukt Vet hvilke bestanddeler jeg har Prdukt PrduktIndivid Vet hva slags prdukt jeg er Vet min kvalitet Prdukt Vet hvilke prduktindivider sm finnes på lager Prdukt- Individ INF102-ansvar-19 INF102-ansvar-20

Objektmdell før dekmpner acera_1 Sekvensdiagram fr dekmpner acera_1 kntrllbjektet : DekmpnerPrdukt acera : Prdukt acera_1 : PrduktIndivid per : acera_1 : Prduktindivid wf_6500 : Prdukt br88 : Prdukt wt_6500 : Prdukt "dekmpner" velger acera VisPrdukter per : acera : Prdukt wb_6500 : Prdukt pindivider:= FinnPrduktIndivider(acera) VisPrduktIndivider(pIndivider) acera_2 : Prduktindivid fr88x : Prdukt velger acera_1 DekmpnerMeg() lagdelprdukterfr(per) gf88x : Prdukt st88x : Prdukt lagprduktindivid(wf_6500) lagprduktindivid(wb_6500) lagprduktindivid(fr88x) lagprduktindivid(gf88x) lagprduktindivid(st88x) wf_6500_1 : PrduktIndivid wb_6500_1 : PrduktIndivid fr88x_1 : PrduktIndivid gf88x_1 : PrduktIndivid st88x_1 : PrduktIndivid INF102-ansvar-21 INF102-ansvar-22 Objektmdell etter dekmpner acera_1 wf_6500_1 : Prduktindivid wb_6500_1 : Prduktindivid wf_6500 : Prdukt wb_6500 : Prdukt br88 : Prdukt wt_6500 : Prdukt fr88x_1 : Prduktindivid fr88x : Prdukt per : gf88x_1 : Prduktindivid gf88x : Prdukt st88x_1 : Prduktindivid st88x : Prdukt acera_2 : Prduktindivid acera : Prdukt INF102-ansvar-23