Datamodellering med UML jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 Modellenes to formål Interesseområdet Beskrivelse Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem Brukere dmuml- dmuml-3 Figur 5-. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesseområdet registrering påvirkning Oppfatningen av interesseområdet Brukere dmuml-2 The Unified Modeling Language - UML Et sett med diagramteknikker, utarbeidet av toneangivende grupperinger innen OO, standardisert av OMG Usage Diagram type Use-Case diagram Class/object diagram Sequence diagram Collaboration diagram State diagram Activity diagram Component diagram Deployment diagram Informasjonssystem Use- Case Logical Component Concurrency Deployment dmuml-4
Figur 4-6. En relasjonsdatabase med to tabeller fylkenr fylkenavn 0 Østfold 02 Akershus 03 Oslo Husholdningsavfall NOT NULL NOT NULL NOT NULL fylkenr kommunenr avfallsmengde 0 00 Halden 0228 2647 0 004 Moss 0423 25860 0 005 Sarpsborg 2600 46692 dmuml-5 Assosiasjon tolket som tabell Påkrevd rolle ligger-i 0: 00 0 : 004 0 005 0 En assosiasjon kan tolkes som en tabell med identifikatorverdiene som forekomster. Entydighetsskranke avledes fra maksimumsmultiplisiteten, påkrevd rolle fra minimumsmultiplisiteten dmuml-7 Klassemodell Klasse Attributt Assosiasjon Rolle : ligger-i 0: Multiplisiteter (min:maks) = : = 0: {id} identifikator {unique} ikke like verdier {null} NULL tillatt {fk} fremmednøkkel vilkårlig mange jfr. læreboka figur 5-9 dmuml-6 Figur 6-2. Oversettelsestabell fra multiplisiteter til entydighetsskranker og påkrevde roller UML tabell 0: : 0: Merk presiseringen av dmuml-8
En assosiasjon kan leses som en setning ligger-i 0: 00 0 : 004 005 0 0 Jf. læreboka figur 6.3 med kommunenr 00 ligger i fylke med fylkenr 0 Diagrammet kan også leses den motsatte veien. Da må vi bruke korollen dmuml-9 Figur 5-2. Ogdens trekant Thoughts of Reference Begreper Person Døgn Bil 8076543873 DF 2345 9. febr. 2003 2003-02-9 Symbol Lingvistiske elementer representasjoner Referent Fenomener i interesseområdet dmuml- Verbaler eller substantiv som roller? Verbaler (se forrige lysark) gir en mer direkte overgang mellom naturlig språk og tabell Substantiv gjør senere navngiving av attributter noe enklere Substantivformen kommer fram ved å svare på spørsmålet: Hvilken rolle spiller begrepet i setningen? med kommunenr 00 er kommune i fylke med fylkenr 0 kommune fylke 0: 00 0 : 004 0 005 0 dmuml-0 Figur 6-4. Fra (nesten) vanlig norsk til et formalisert utsagn Begrep Representasjon Forekomst Rolle med kommunenr 00 er kommune i fylke med fylkenr 0 kommune fylke 00 0 Et begrep er en klasse uten vanlige attributter bare med en representasjon dmuml-2
Et eksempel - systemet Kari tar INF050 våren 2004 På INF050 våren 2005 går det 350 studenter, og kurset hovedlærere er G. Skagestein, O. Hanseth og E. Arisholm Anbefalte forkunnskaper for INF050 er INF000 og INF040 dmuml-3 systemet (forts.) med navn Kari tar kurs med emnekode INF050 og semesterkode våren 2005 et INF050 våren 2005 er en gjennomføring av emnet INF050 gjennomføring hovedlærer [0:] Legg merke til at forekomstene ikke vises i diagrammet! dmuml-5 systemet (forts.) Kari tar INF050 våren 2005 Ola tar INF050 våren 2005 Kari tar INF040 høsten 2004 Vi lager flere eksempler for å bli sikre på hva som er forekomster. Vi finner også implisitte setninger På INF050 våren 2005 går det 350 studenter På INF00 våren 2005 går det 457 studenter INF050 våren 2005 har hovedlærerne G. Skagestein, O. Hanseth og E. Arisholm et INF050 våren 2005 er en gjennomføring av emnet INF050 Anbefalte forkunnskaper for INF050 er INF000 og INF040 Anbefalte forkunnskaper for INF00 er INF000 dmuml-4 systemet (forts.) hovedlærer [0:] Modell med repeterende attributt avviker fra krav i tabelldatabaser dmuml-6
systemet (forts.) Repeterende attributt erstattet med assosiasjon til en ny klasse Hovedlærer dmuml-7 Fremmednøkkel NULL 0: ligger-i 0: OBS! {null} Dersom motsatt minimumskardinalitet er 0, kan fremmednøkkelen være NULL. dmuml-9 Fremmednøkkel vs. assosiasjon : Fremmednøkkelen avledes fra assosiasjonen. Fremmednøkkelen settes inn i klassen motsatt maksimumskardinalitet. ligger-i 0: OBS! Fremmednøkkelen kalles opp etter identifikatoren til den assosierte klassen, eller etter rollen den spiller Fremmednøkkelen er representasjonen av assosiasjonen i en tabelldatabase dmuml-8 Fremmednøkkelen er redundant : ligger-i 0: I klassediagrammet er fremmednøkkelen redundant og kan sløyfes dmuml-20
systemet (forts.) Fremmednøkkelen er markert emnekode {fk}{id} Hovedlærer dmuml-2 Modell med bare id og fk fylkenavn {fk}{unique} navn fylke : ligger-i 0: {fk} navn kommune Ingen vanlige attributter! dmuml-23 Attributt eller assosiasjon til en klasse? : ligger-i 0: ordfører {fk} ordfører Person Er ordfører et attributt til en kommune eller en rolle som spilles av en person? dmuml-22 Modell med begreper ( ugruppert modell ) Klasse, stereotypet som begrep navn fylke : ligger-i 0: navn kommune Samme modell etter fjerning av fremmednøkler (som jo er redundante) dmuml-24
systemet (forts.) emnekode {fk}{id} Hovedlærer 0: Antall # {id} dmuml-25 systemet (forts.) «identifying» Fremmednøkkelen emnekode er fjernet fra Hovedlærer 0: Antall # {id} dmuml-27 Identifiserende assosiasjon : : «identifying» ligger-i 0: ligger-i 0: kommunenr2s {id} tosifret kommunenr jfr. lærebokas figur 5-6 dmuml-26 Figur 5-5. Modell med generalisering fylkenavn Navn ligger-i Skal rollene og fylkenavn være sammenliknbare, må de spilles av samme begrep! dmuml-28
systemet (forts.) «identifying» og Hovedlærer er generalisert til Person Person hovedlærer 0: Antall # {id} dmuml-29