Figur 5-. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesseområdet Datamodellering med UML registrering påvirkning jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 Informasjonssystem Oppfatningen av interesseområdet Brukere dmuml- dmuml-2 Modellenes to formål The Unified Modeling Language - UML Interesseområdet Et sett med diagramteknikker, ubeidet av toneangivende grupperinger innen OO, standardisert av OMG Beskrivelse Oppfatningen av interesseområdet Usage Diagram type Use-Case diagram Class/object diagram Use- Case Logical Component Concurrency Deployment Sequence diagram Foreskrivelse Collaboration diagram State diagram Activity diagram Component diagram Informasjonssystem Brukere Deployment diagram dmuml-3 dmuml-4
Figur 4-6. En relasjonsdatabase med to tabeller Klassemodell fylkenr fylkenavn 0 Østfold 02 Akershus 03 Oslo Husholdningsavfall NOT NULL fylkenr kommunenr 0 00 0 004 NOT NULL Halden Moss avfallsmengde 0228 0423 NOT NULL 2647 25860 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 0 005 Sarpsborg 2600 46692 jfr. læreboka figur 5-9 dmuml-5 dmuml-6 Assosiasjon tolket som tabell Påkrevd rolle ligger-i 0: 00 0 : 004 005 0 0 En assosiasjon kan tolkes som en tabell med identifikatorverdiene som forekomster. Entydighetsskranke avledes fra maksimumsmultiplisiteten, påkrevd rolle fra minimumsmultiplisiteten Figur 6-2. Oversettelsestabell fra multiplisiteter til entydighetsskranker og påkrevde roller UML : 0: 0: tabell Merk presiseringen av dmuml-7 dmuml-8
En assosiasjon kan leses som en setning ligger-i 0: 00 0 : 004 005 0 0 med kommunenr 00 ligger i fylke med fylkenr 0 Diagrammet kan også leses den motsatte veien. Da må vi bruke korollen Jf. læreboka figur 6.3 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 005 0 0 dmuml-9 dmuml-0 Figur 5-2. Ogdens trekant Thoughts of Reference Begreper Bil Døgn Figur 6-4. Fra (nesten) vanlig norsk til et formalisert utsagn Begrep Representasjon Forekomst Rolle 8076543873 DF 2345 9. febr. 2003 2003-02-9 Symbol Lingvistiske elementer representasjoner Referent Fenomener i interesseområdet med kommunenr 00 er kommune i fylke med fylkenr 0 kommune 00 fylke Et begrep er en klasse uten vanlige attributter bare med en representasjon 0 dmuml- dmuml-2
Et eksempel - systemet Kari INF050 våren 2004 På INF050 våren 2004 går det 277 studenter, og kurset hovedlærere er G. Skagestein, T. Bratteteig og E. Arisholm Kari INF050 våren 2004 Ola INF050 våren 2004 Kari INF040 høsten 2003 systemet (forts.) På INF050 våren 2004 går det 277 studenter På INF00 våren 2004 går det 457 studenter Vi lager flere eksempler for å bli sikre på hva som er forekomster. Vi finner også implisitte setninger Anbefalte forkunnskaper for INF050 er INF000 og INF040 INF050 våren 2004 har hovedlærerne G. Skagestein, T. Bratteteig og E. Arisholm et INF050 våren 2004 er en gjennomføring av emnet INF050 Anbefalte forkunnskaper for INF050 er INF000 og INF040 Anbefalte forkunnskaper for INF00 er INF000 dmuml-3 dmuml-4 systemet (forts.) med navn Kari kurs med INF050 og semesterkode våren 2004 et INF050 våren 2004 er en gjennomføring av emnet INF050 systemet (forts.) gjennomføring hovedlærer [0:] Legg merke til at forekomstene ikke vises i diagrammet! hovedlærer [0:] Modell med repeterende attributt avviker fra krav i tabelldatabaser dmuml-5 dmuml-6
systemet (forts.) Fremmednøkkel vs. assosiasjon Repeterende attributt erstattet med assosiasjon til en ny klasse Hovedlærer : ligger-i 0: OBS! Fremmednøkkelen avledes fra assosiasjonen. Fremmednøkkelen settes inn i klassen motsatt maksimumskardinalitet. 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-7 dmuml-8 Fremmednøkkel NULL Fremmednøkkelen er redundant 0: : ligger-i 0: OBS! ligger-i 0: {null} Dersom motsatt minimumskardinalitet er 0, kan fremmednøkkelen være NULL. I klassediagrammet er fremmednøkkelen redundant og kan sløyfes dmuml-9 dmuml-20
systemet (forts.) Attributt eller assosiasjon til en klasse? Fremmednøkkelen er markert {fk}{id} Hovedlærer : ligger-i 0: {fk} ordfører ordfører Er ordfører et attributt til en kommune eller en rolle som spilles av en person? dmuml-2 dmuml-22 Modell med bare id og fk Modell med begreper fylkenavn {fk}{unique} navn fylke Klasse, stereotypet som begrep navn : fylke ligger-i 0: {fk} navn kommune : ligger-i 0: navn kommune Ingen vanlige attributter! Samme modell etter fjerning av fremmednøkler (som jo er redundante) dmuml-23 dmuml-24
systemet (forts.) Identifiserende assosiasjon : : {fk}{id} Hovedlærer ligger-i 0: ligger-i 0: kommunenr2s {id} 0: jfr. lærebokas figur 5-6 tosifret kommunenr dmuml-25 dmuml-26 systemet (forts.) Figur 5-5. Modell med generalisering Fremmednøkkelen er fjernet fra ligger-i fylkenavn Navn Hovedlærer 0: Skal rollene og fylkenavn være sammenliknbare, må de spilles av samme begrep! dmuml-27 dmuml-28
systemet (forts.) hovedlærer og Hovedlærer er generalisert til 0: Mange-til-mange-assosiasjon med assosiasjonsklasse jfr. lærebokas figur 5-7 og 5-8 Materialgjenvinning 0: gjenvunnet mengde gjenvunnet_materiale Mengde # tonn {id} Materiale material dmuml-29 dmuml-30 systemet (forts.) Figur 5-9. Assosiasjonsklassen erstattes med en vanlig klasse antall_ studenter Materialgjenvinning anbefalteforkunnskaper gjenvunnet_ materiale Materiale material Påmelding 0: Undervisning 0: gjenvunnet mengde Mengde # tonn {id} hovedlærer dmuml-3 dmuml-32
hoved lærer systemet (forts.) Undervisning Dermed er modellen ferdig dmuml-33 etterfølger {fk}{id} forgjenger {fk}{id} hoved lærer systemet (forts.) anbefalteforkunnskaper studenter antall_ Påmelding 0: anbefalteforkunnskaper Påmelding {fk}{id} semesterkode {fk}{id} student {fk}{id} Undervisning {fk}{id} semesterkode {fk}{id} hovedlærer {fk}{id} For å finne fram til tabellene i en tabelldatabase må vi først generere fremmednøklene {fk}{id} antall_stud{fk}{null} antall_ studenter 0: Unyttig klasse dmuml-34 systemet tabelldatabasen systemet tabelldatabasen IU IU IU IU etterfølger forgjenger etterfølger forgjenger UI INF00 INF040 INF050 INF050 INF000 INF040 semesterkode antall-stud navn UI INF050 INF00 INF000 Påmelding Undervisning UI UI semesterkode semesterkode student hovedlærer UI UI En tabell for hver klasse INF00 INF050 semesterkode vår2004 vår2004 antall-stud 457 277 Eksempler på forekomster dmuml-35 dmuml-36