Analyse av problemområdet

Like dokumenter
OOA & D. Analyse av problemområde klasser, klassediagram struktur atferd. 14 mars Tone Bratteteig

OOA & D. Rike bilder. Systemdefinisjon FACTOR. Analyse av problemområde klasser, klassediagram struktur atferd. Tone Bratteteig

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

Kap3: Klassemodellering

UML-Unified Modeling Language

Modellering av data. Magnus Karge, Kartverket

Use Case-modellering. INF1050: Gjennomgang, uke 04

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

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

UKE 11 UML modellering og use case. Gruppetime INF1055

UML 1. Use case drevet analyse og design Kirsten Ribu

VEDLEGG 7 INFORMASJONSMODELL

19. januar 2012 Noen punkter fra i går

Utvikling fra skallet og inn

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

Fra krav til objekter. INF1050: Gjennomgang, uke 05

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

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

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

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

Spesifikasjon av Lag emne

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

Kapittel 7: Mer om arv

Kapittel 7 & 8. Kravspesifikasjoner & Data design. Thomas Tjøstheim og Thomas Edvinsen. 20 September Kapittel 7 & 8 p.1/20

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Objektorientering og UML. INF1050: Gjennomgang, uke 06

Produktrapport Gruppe 9

Eksamen Bilisten

Introduksjon til objektorientert programmering

GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML

Use case drevet design med UML

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

AlgDat 12. Forelesning 2. Gunnar Misund

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

GJENNOMGANG UKESOPPGAVER 9 TESTING

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

INF1000: Forelesning 6. Klasser og objekter del 1

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

Kravspesifikasjon. Leserveiledning Kravspesifikasjonen består av følgende deler: Presentasjon Om bedriften

Språk, abstraksjonsmekanismer og perspektiver i konseptuell modellering

INF1000: Forelesning 7. Konstruktører Static

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

! SÆRSKILTE VILKÅR - KJØP AV VEKSEL OG TELLESENTRAL TJENESTER -

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

IN2001: Kravhåndtering, modellering, design

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

GJENNOMGANG UKESOPPGAVER 4 USE CASE MODELLERING HELGA NYRUD & KRISTIN BRÆNDEN

Pensum: fra boken (H-03)+ forelesninger

Prisliste. Banken tar forbehold om endring av priser og betingelser

UNIVERSITETET I OSLO

Beskjed fra Skagestein

UNIVERSITETET I OSLO

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

INNSKUDDSBETINGELSER. BSU 3,80 % BSU 2 3,80 % Ett tillegg til vanlig BSU - Inntil kr ,- i året, maks sparebeløp kr.

INF1000: Forelesning 7

Kunnskapsbasert Engineering (KBE) med Common Lisp

Tittel Objektorientert systemutvikling 2

Vi som skal undervise. MAT1030 Diskret matematikk. Hva er diskret matematikk? Hva er innholdet i MAT1030?

Prøveeksamen INF1050: Gjennomgang, uke 15

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

Prisliste Bank tjenester

Gjennomgang av prøveeksamen. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Oppgave 1: Multiple choice (20 %)

Statisk semantisk analyse - Kap. 6

IN2000:&Kravhåndtering,&modellering,&design

Model Driven Architecture (MDA) Interpretasjon og kritikk

Fra krav til modellering av objekter

Tidlig gresk naturfilosofi

Oppsummering. Thomas Lohne Aanes Thomas Amble

Modernisering av folkeregisteret i helse- og omsorgssektoren. Melding om dødsfall og dødsårsak generell presentasjon

Firmakort i Business Online

Prisliste. Banken tar forbehold om endring av priser og betingelser

Kirsten Ribu - Høgskolen i Oslo

Prisliste Bank tjenester

(MVC - Model, View, Control)

Betingelser. Avtale om kjøp av produkter og tjenester

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

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

Datamodellering med E/R

Endelig!! WEB påmelding og betaling i DogWeb-Arra, utstilling!

Dataorientert modellering

Objekt med Java. Harald Yndestad Høgskolen i Ålesund

Modellenes to formål. Datamodellering med UML (forts.) Ugrupperte og grupperte modeller. Figur 5-2. Ogdens trekant

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

Bransjer: Timekiosk PC Kasse egner seg meget godt for en rekke bransjer og benyttes i dag blant annet av:

Transkript:

Analyse av problemområdet Objektorientert modell En sammenhengende, eksplisitt og dynamisk modell av et objektsystem som brukes både under analyse og design Klasser av objekter (kap. 3) Struktur mellom klasser og objekter (kap 4) Dynamikk: hendelser som endrer objekter (kap. 5) 1 Modellering i analysen Utgangspunkt: Problemområdet slik det framkommer i systemdefinisjonen Problemområdet beskrives slik kommende brukere vil se det Objekter er byggeklosser Fokusér på struktur og dynamikk Prioritér overblikk framfor detaljer Objektsystem EDB-system Problemområde Anvendelsesområde 2

Objekter Et objekt er en abstraksjon over et konkret fenomen i det problemområdet som edb-systemet skal brukes til å administrere, styre eller overvåke Identitet Må kunne finnes / gjenfinnes Tilstand Statiske egenskaper og verdier Atferd Hendelser som påføres eller utføres av objektet, bl.a. felles hendelser Objekter klassifiseres primært etter sine hendelser 3 Klasser Klasse: En beskrivelse av en mengde objekter med samme struktur, atferdsdmønster og attributter Primært objektmengde, mens i fleste OO-språk fokuserer på klasser som representasjon av begreper Fenomener Ting Personer og roller Organisasjoner Steder Begreper Ressurser Systemer Abstrakter Klasser Bil, vare, emballasje, materiale Ansatt forelder, kunde, medlem Virksomhet, avdeling, gruppe, prosjekt Hylle, parkeringsplass, tomt, by Firkant, valuta, kvalitetsparameter, gebyr Penger, tid, energi, informasjon Gateregister, kassaterminal, alarmsystem Avtale, spesifikasjon, forestilling, ekteskap 4

Hendelser Hendelse: En øyeblikkelig begivenhet Involverer ett eller flere objekter Atomistisk (udelelig) Observerbare Identifiserbare Eksempler Skrotet, forflyttet, fusjonert, besatt, forstørret, betaling, gate innført, forlenget Valg av hendelser Ut fra hva som er relevant i forhold til systemdefinisjonen Hendelser som bare skjer i datasystemet beskrives ikke Kontoutskrift foretatt er ingen hendelse 5 Identifisering av hendelser Byråkratier registrerer hendelser Det ankommer dokumenter Flyttemelding til folkeregisteret, eksamensresultat til studieadministrasjonen, faktura til regnskapskontoret Egen observasjon Kontroll Genererer hendelser Fjerner medlemmer som ikke har betalt, sender forespørsel til likningsvesenet Maskinell observasjon Trykknapper, mus, lysstråler som brytes, strekkodeleser, magnetstripeleser, temperaturføler, radioavlesning 6

Klassifisering Bakgrunn Systemdefinisjon Hverdagslige begreper Spesielle begreper for problemområdet Objekter i problemområdet Hendelsesgruppering Liten frihet i valg av hendelser Hva initierer hendelsen? Objekt? Hva blir berørt av hendelsen? Objekter? Daglig aktivitet, ofte ubevisst Ulike oppfatninger av hva et begrep betyr Ulike problemområder Ulike anvendelsesområder Ulike erfaringer Eks Tog 7 Ogdens trekant Betydning, begrep, denotasjon+konnotasjon (Subjective meaning, sense, understanding, intension) uttrykker Betegnelse (Expression) Klassenavnet Hund refererer til handler om Omfang (Extension) Objektene 8

Blomsterbutikken Blåveis Betingelser: Kundene oppgir navn og høytidsdager Anvendelsesområde: Bestilling og klargjøring av buketter Teknologi: PC og web Objektsystem: Kunder, blomster og bestillinger Funksjonalitet: Kunderegistrering, bestilling, leveranse Filosofi: Støtte til kundetilhørighet og økt salg 9 Problemområdet 10

Mulige hendelser og objekter Bestille blomst Hendelse, men ikke formulert som øyeblikkelig Angår objekt Potteplanter Flertall klasse Avskårne blomster visner Tar tid Forslag til kunden om levering av blomster Objekt eller hendelse? 11 Hendelsestabell Objekter Avskåret blomst Bukett Potteplante Oppsats Kunde Begivenhet Bukett bestilt Oppsats bestilt Hendelser Avskårede blomster visnet Bukett laget Forslag om bukett sendt til kunde Bestilt bukett hentet 12

Valg av objekter og hendelser Bankens system for kundekonti: Objekter med hendelser Konto Opprett, sett inn, ta ut, avslutt? Kunde Opprett konto, sett inn, ta ut, avslutt konto, avslutt kundeforhold? Kasserer Opprett konto, ta ut, sett inn, avslutt konto? Uttak Identifisér kunde, identifisér konto, utbetal beløp? Overføring Identifisér konti, ta ut, sett inn? Minibank Identifisér konto, motta forespørsel, kontrollér kontobeholdning, ta ut I problem- eller anvendelsesområdet? Hendelser atomære og øyeblikkelige? 13 Generalisering En struktur hvor en generell klasse beskriver egenskaper og atferdsmønstre som er felles for et antall spesielle klasser Egenskapene og atferdsmønstrene nedarves til de spesielle klassene Avdeling Parallellogram Produksjons avdeling Service avdeling Rektangel Rombe Kvadrat 14

Indikatorer ved overveielse om generalisering For Begrepshierarki Type - subtype: er-en (is-a), er en type, Mengde - delmengde: omfatter alle og Mot Typeattributt Endring av klassetilhørighet, typeevolusjon Multippel nedarving Virveldyr Person Fisk Krypdyr Fugl Pattedyr Kvinne Mann Person Kunde Ansatt Ansatt-kunde 15 Klynger En samling klasser som er innbyrdes forbundne Personer Person Organisasjonsenhet Avdeling Kunde Ansatt Maskin Produkt 16

Indikasjoner for klynger (UML package) Oppdeling av problemområdet Klasser i klynger er typisk forbundet med generalisering Objekter med aggregering Relasjoner mellom klynger er typisk assosiasjoner 17 Relasjoner mellom objekter Tegnes også på klassediagram Fastlegger kardinalitet (dansk: mangfoldighet) Assosiering En struktur hvor et antall sideordnede objekter knyttes til hverandre En bil har null eller flere eiere, en eier har én eller flere biler Bil 0: 1: Eier 18

Aggregering En struktur hvor et overordnet objekt (helheten) består av et antall underordnede objekter (delene) Uttrykker at et objekt er en del av et annet, inneholdt i et annet, medlem i et annet Har-en, inngår-i, (has-a, part-of) Helhet-del, sammensetning Genser 1 2 Erme 1 1 Bol 1 0:1 Hals 19 Oversikt over komplisert fenomen Problem n klasser n 2 /2 mulige relasjoner 60 klasser 1800 mulige relasjoner. Umulig å kontrollere Klynger Relasjoner mellom klynger bør ha felles egenskaper Begrepstro Oversett relasjoner til naturlig språk La brukere teste Hendelser er ikke objekter Utelates fra strukturdiagrammer Bare nødvendige relasjoner tas med 20

Hendelser og deres sammenheng Hendelsesforløp (event trace) En konkret sekvens av hendelser som et objekt er involvert i gjennom et bestemt tidsrom Atferdsmønster (behavioural pattern) Et abstrakt mønster av hendelser som fastlegger de mulige hendelsesforløpene for alle objekter av en klasse Struktureres som en algoritme eller et tilstandsdiagram 21 Regulære uttrykk Sekvens i atferdsmønstre Hendelse 1 + Hendelse 2 + Hendelse 3 +... +Hendelse n Tilstandsdiagrammer Fødsel + Dødsfall Hendelse 1 Tilstand 1 Hendelse 2 Tilstand 2 Hendelse 3 Fødsel Levende Dødsfall Død. Hendelse n Tilstand 2 22

Regulære uttrykk Seleksjon valg, if Hendelse 1 Hendelse 2 Hendelse 3... Hendelse n Tilstandsdiagrammer Landet Styrtet Tilstand 1 I lufta Hendelse 1 Hendelse 2 Hendelse 3 Hendelse n Landet Styrtet 23 Iterasjon løkke, gjentagelse, while Regulære uttrykk Hendelse 1 (Hendelse 1 + Hendelse 2) Tilstandsdiagrammer Tilstand 1 Passasjer gått ombord (Lettet + Landet) Ombordstigning tillat Hendelse 1 Passasjer gått ombord Tilstand 1 Hendelse 1 Hendelse 2 Tilstand 2 I lufta Lettet Landet På bakken 24

Tilstandsdiagram - fly Tas ut av trafikk I lufta Landet Lettet Avstigning tillat Siste passasjer forlatt flyet Avgangstid Ombordstigning tillat Stengt Passasjer forlater flyet Passasjer gått ombord Settes inn i trafikk 25 Tilstandsdiagram - passasjer Kjøpt billett Tatt med bagasje Passasjer Fly Bagasje sjekket inn Venter på innsjekking Kjøpt billett Reiser uten bagasje Bagasje sjekket inn Ombordstigningstid Passasjer gått ombord Landet Passasjer forlatt flyet Settes inn i trafikk Avgangstid Landet Venter på fly Ombordstigningstid Ombordstigning tillat Passasjer gått ombord Ombord Landet Passasjer forlatt flyet Avstigning tillat 26

Arv av atferdsmønstre Subklassen arver unionen av alle hendelser som superklassene omfatter Ved multippel arv, hvis samme hendelse arves fra flere superklasser, skal atferdsmønstret for subklassen overholde alle restriksjoner som fastlegges av superklassene Hvis restriksjonene ikke lar seg forene, må strukturen eller superklassene endres 27 Statiske og dynamiske strukturer Hvis to objekter har felles hendelser, bør de ha assosiasjon eller aggregeringsrelasjon mellom seg Hvis to objekter ar en assosiasjon eller aggregeringsrelasjon mellom seg, bør de muligvis også ha felles hendelser Start- og stopphendelser for deler er ofte delhendelser i helheten Hvis samme hendelser opptrer i to klasser, bør en generaliseringsstruktur som innbefatter klassene overveies 28