Datamodellering med UML

Like dokumenter
Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

The Unified Modeling Language - UML

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

Datamodellering med UML (forts.)

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

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

Datamodellering med ORM

INF1050 Klasseromsoppgave Uke 6

Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn.

Intermesso. Visjonen... samling av trådene. Veivalget. Et bedre bilde av visjonen?

Skranker og avledninger

Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn.

Utvikling fra skallet og inn

Utvikling fra kjernen og ut

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

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

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

Utvikling fra kjernen og ut

Språk for dataorientert modellering

Dagsorden. Hovedtemaene i INF102. Fra kjernen og ut. Produksjon av informasjonssystemer. Produksjon av informasjonssystemer

Kart og andre umodne objekter

Utvikling fra kjernen og ut

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

IN2090 Databaser og datamodellering ORM 1

Dataorientert modellering

UNIVERSITETET I OSLO Institutt for informatikk. Masteroppgave 60 Studiepoeng. Et verktøy for å editere datamodeller i flere views.

Beskjed fra Skagestein

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

NB! Endring i undervisningsplanen

Kravspesifikasjon med UML use case modellering. Erik Arisholm

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen Verdiskranker Mengdeskranker

Systemutvikling fra kjernen og ut, fra skallet og inn

INF1000: Forelesning 7. Konstruktører Static

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Skranker og avledninger

Kap3: Klassemodellering

INF1000: Forelesning 7

INF 1050 BRUK AV MODELLERINGSVERKTØYET RATIONAL ROSE

1. Designe ER-modeller med MS Visio

UNIVERSITETET I OSLO

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

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Fra krav til objekter. INF1050: Gjennomgang, uke 05

Grafisk editor for automatisk gruppering og degruppering av dataorienterte klassediagrammer. Masteroppgave. Øyvind Stegard

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Databaser: Relasjonsmodellen, del I

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Dataorientert modellering

Klasser, objekter, pekere og UML. INF gruppe 13

Unified Modeling Language (UML) Kravspesifikasjon med UML use case modellering. UML diagrammer. Notasjon som støtter opp under modellbasert

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

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

Datamodellering 101 En tenkt høgskoledatabase

UML 1. Use case drevet analyse og design Kirsten Ribu

Fra krav til modellering av objekter

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

INF1300 Introduksjon til databaser

Informasjonsbærende representasjoner

INF1300 Introduksjon til databaser

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

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

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

IN2090 Introduksjon til databaser

Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid

Spesifikasjon av Lag emne

Persistens. Erik Arisholm. Institutt for informatikk Erik Arisholm INF1050-persistens-1

INF1300 Introduksjon til databaser

UML-Unified Modeling Language

UKE 11 UML modellering og use case. Gruppetime INF1055

IN2090 Introduksjon til databaser

INF1300 Introduksjon til databaser

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

INF212 - Databaseteori. Kursinnhold

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

1. Relasjonsmodellen Kommentarer til læreboka

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller

A Study of Industrial, Component-Based Development, Ericsson

INF1300 Introduksjon til databaser

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

1. Datamodellering Kommentarer til læreboka

INF Introduksjon til databaser ORM I

Transkript:

Datamodellering med UML jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 (og litt fra kapittel 6 og 7) dmuml-1

Figur 5-1. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesseområdet registrering påvirkning Oppfatningen av interesseområdet Informasjonssystem Brukere dmuml-2

Modellenes to formål Interesseområdet Beskrivelse Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem Brukere dmuml-3

The Unified Modeling Language - UML Et sett med diagramteknikker, utarbeidet av toneangivende grupperinger innen OO, standardisert av OMG Usage Diagram type Use- Case view Logical view Component view Concurrency view Deployment view Use-Case diagram Class/object diagram Sequence diagram Collaboration diagram State diagram Activity diagram Component diagram Deployment diagram dmuml-4

Figur 4-6. En relasjonsdatabase med to tabeller Fylke fylkenr fylkenavn 01 Østfold 02 Akershus 03 Oslo Kommune NOT NULL NOT NULL NOT NULL fylkenr kommunenr kommunenavn avfallsmengde innbyggertall 01 0101 Halden 10228 26417 01 0104 Moss 10423 25860 01 0105 Sarpsborg 12600 46692 dmuml-5

Klasse Attributt Assosiasjon Rolle jfr. læreboka figur 5-15 Klassemodell Fylke fylkenr {id} fylkenavn {unique} omfatter 1..1 Fylkestilhørighet ligger-i 0.. Kommune fylkenr {fk} kommunenr {id} kommunenavn avfallsmengde {null} innbyggertall Identifikator: En entydig representasjon for et begrep Multiplisiteter (min..maks) To kortformer: 1 = 1..1 = 0.. {id} inngår i identifikator {unique} ikke like verdier {null} NULL tillatt {fk} fremmednøkkel vilkårlig mange dmuml-6

Fremmednøkkel vs. assosiasjon Fylke fylkenr {id} fylkenavn {unique} 1..1 omfatter ligger-i 0.. Kommune fylkenr {fk} kommunenr {id} kommunenavn avfallsmengde {null} innbyggertall OBS! Fremmednøkkelen avledes fra assosiasjonen. Fremmednøkkelen settes inn i klassen motsatt maksimumskardinalitet 1. Fremmednøkkelen kalles opp etter det identifiserende attributtet i den assosierte klassen, eller etter rollen denne klassen spiller I en tabelldatabase brukes fremmednøkkelen til å representere en assosiasjon dmuml-7

Fremmednøkkel NULL Fylke fylkenr {id} fylkenavn {unique} omfatter 0..1 ligger-i 0.. OBS! Kommune fylkenr {fk} {null} kommunenr {id} kommunenavn avfallsmengde {null} innbyggertall Dersom motsatt minimumskardinalitet er 0, kan fremmednøkkelen være NULL. dmuml-8

Fremmednøkkelen er redundant Fylke fylkenr {id} fylkenavn {unique} omfatter 1..1 ligger-i 0.. Kommune kommunenr {id} kommunenavn avfallsmengde {null} innbyggertall I klassediagrammet er fremmednøkkelen redundant og kan sløyfes dmuml-9

Attributt eller assosiasjon til en klasse? Fylke fylkenr {id} fylkenavn {unique} omfatter 1 ligger-i Kommune kommunenr {id} kommunenavn ordfører {fk} 1 ordfører navn {id} Person Er ordfører et attributt til en kommune eller en rolle som spilles av en person? dmuml-10

Attributtene erstattes med assosiasjoner Fylke 1 1 Fylkenavn fylkenr {id} fylkenavn {fk} omfatter 1..1 Fylkestilhørighet fylkenavn {id} Jfr. lærebokas figur 5-15a ligger-i 0.. Kommune 1 Kommunenavn fylkenr {fk} kommunenavn {id} kommunenr {id} kommunenavn {fk} avfallsmengde {fk} {null} 0..1 Mengde innbyggertall {fk} avfallsmengde # tonn {id} 1 Antall Ingen vanlige attributter! innbyggertall # {id} dmuml-11

Ugruppert modell uten fremmednøkler Jfr. lærebokas figur 5-3 fylkenr {id} omfatter Fylke 1..1 ligger-i 0.. Kommune kommunenr {id} Fylkestilhørighet 1 1 Klasse, stereotypet som begrep 1 0..1 avfallsmengde innbyggertall Et begrep er en klasse uten vanlige attributter bare med en identifiserende representasjon 1 Fylkenavn fylkenavn {id} Kommunenavn kommunenavn {id} Mengde # tonn {id} Antall # {id} dmuml-12

Figur 5-2. Ogdens trekant Thoughts of Reference Begreper Person Bil Døgn 18076543873 DF 12345 7. febr. 2007 2007-02-7 Symbol Lingvistiske elementer representasjoner Referent Fenomener i interesseområdet dmuml-13

Generalisering av begreper Jfr. lærebokas figur 5-5 Fylke fylkenr {id} 1 1 fylkenavn Navn navn {id} omfatter 1..1 1 Fylkestilhørighet ligger-i 0.. Kommune kommunenr {id} kommunenavn Skal rollene kommunenavn og fylkenavn være sammenlignbare, må de spilles av samme begrep! 0..1 avfallsmengde innbyggertall 1 Mengde # tonn {id} Antall # {id} dmuml-14

Identifiserende assosiasjon Jfr. lærebokas figur 5-6 Fylke fylkenr {id} 1 1 fylkenavn Navn navn {id} omfatter 1..1 1 «identifying» Fylkestilhørighet ligger-i 0.. Kommune kommunenavn kommunenr2s {id} tosifret kommunenr 0..1 avfallsmengde # tonn {id} Mengde innbyggertall 1 Antall # {id} dmuml-15

Figur 5-17. Relasjonsdatabasen Fylke fylkenr fylkenavn {subset} Navn navn Mengde antall_tonn {subset} Kommune Antall antall {subset} {subset} {subset} NOT NULL NOT NULL fylkenr kommunenr2s kommunenavn avfallsmengde innbyggertall dmuml-16

Assosiasjon tolket som tabell Kommune fylkenr {fk} kommunenr {id} kommunenavn avfallsmengde {null} innbyggertall ligger-i 0.. omfatter 1..1 Fylke fylkenr {id} fylkenavn {unique} ligger-i omfatter Påkrevd rolle 0101 01 jfr. læreboka figur 6-1, 6-3 og 7-8 0104 01 0105 01 En assosiasjon kan tolkes som en tabell med identifikatorverdiene som forekomster. Entydighetsskranke avledes fra maksimumsmultiplisiteten, påkrevd rolle fra minimumsmultiplisiteten dmuml-17

Figur 7-9. Oversettelsestabell fra multiplisiteter til tabellskranker multiplisiteter 0..1 tabellskranker 1 1.. 0..1 Merk presiseringen av dmuml-18

Figur 6-1. En tabell-linje kan leses som en setning med Kommune kommunenr {id} 0.. 1..1 ligger_i omfatter med Fylke fylkenr {id} ligger_i omfatter 0101 01 0104 01 0105 01 Kommune med kommunenr 0101 ligger_i fylke med fylkenr 01 Diagrammet kan også leses den motsatte veien. Da må vi bruke korollen omfatter dmuml-19

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? Kommune med kommunenr 0101 er kommune i fylke med fylkenr 01 med Kommune kommunenr {id} 0.. 1..1 ligger_i omfatter med Fylke fylkenr {id} kommune fylke 0101 01 0104 01 0105 01 dmuml-20

Figur 6-2. Fra (nesten) vanlig norsk til datamodell Begrep Representasjon Forekomst Rolle Kommune med kommunenr 0101 ligger_i fylke med fylkenr 01 Kommune kommunenr {id} 0.. 1..1 ligger_i fylkenr {id} Fylke ligger_i omfatter 0101 01 dmuml-21

Et eksempel - Kurssystemet Kari tar INF1050 våren 2007 På INF1050 våren 2007 går det 252 studenter, og kursets hovedlærere er E. Arisholm, O. Hanseth og G. Skagestein Anbefalte forkunnskaper for INF1050 er INF1000 og INF1040 dmuml-22

Kurssystemet (forts.) Kari tar INF1050 våren 2007 Ola tar INF1050 våren 2007 Kari tar INF1040 høsten 2006 Vi lager flere eksempler for å bli sikre på hva som er forekomster. Vi finner også implisitte setninger På INF1050 våren 2007 går det 252 studenter På INF1010 våren 2007 går det 368 studenter INF1050 våren 2007 har hovedlærerne E. Arisholm, O. Hanseth og G. Skagestein Kurset INF1050 våren 2007 er en gjennomføring av emnet INF1050 Anbefalte forkunnskaper for INF1050 er INF1000 og INF1040 Anbefalte forkunnskaper for INF1010 er INF1000 dmuml-23

Kurssystemet (forts.) Student med navn Kari tar kurs med emnekode INF1050 og semesterkode våren 2007 Kurset INF1050 våren 2007 er en gjennomføring av emnet INF1050 Emne emnekode {id} 1 gjennomføring Student navn {id} tar tas-av Kurs emnekode {id} semesterkode {id} Legg merke til at forekomstene ikke vises i diagrammet! antall_studenter hovedlærer [0..] dmuml-24

Kurssystemet (forts.) Emne emnekode {id} 1 anbefalte-forkunnskaper Student tar tas-av Kurs navn {id} emnekode {id} semesterkode {id} antall_studenter hovedlærer [0..] Modell med repeterende attributt avviker fra krav i tabelldatabaser dmuml-25

Kurssystemet (forts.) Emne emnekode {id} Repeterende attributt erstattet med assosiasjon til en ny klasse anbefalte-forkunnskaper 1 Student tar tas-av Kurs Hovedlærer navn {id} emnekode {id} semesterkode {id} navn {id} antall_studenter dmuml-26

Kurssystemet (forts.) Fremmednøkkelen er markert Emne emnekode {id} anbefalte-forkunnskaper 1 Student tar tas-av Kurs Hovedlærer navn {id} emnekode {fk}{id} semesterkode {id} navn {id} antall_studenter dmuml-27

Kurssystemet (forts.) Emne emnekode {id} anbefalte-forkunnskaper 1 Student navn {id} tar tas-av Kurs emnekode {fk}{id} semesterkode {id} Hovedlærer navn {id} antall_studenter 0..1 Antall # {id} dmuml-28

Kurssystemet (forts.) Emne emnekode {id} Fremmednøkkelen emnekode er fjernet fra Kurs anbefalte-forkunnskaper 1 «identifying» Student navn {id} tar tas-av Kurs semesterkode {id} Hovedlærer navn {id} antall_studenter 0..1 # {id} Antall dmuml-29

Kurssystemet (forts.) Emne emnekode {id} Student og Hovedlærer er generalisert til Person anbefalte-forkunnskaper 1 «identifying» Person navn {id} tar tas-av Kurs semesterkode {id} hovedlærer antall_studenter 0..1 # {id} Antall dmuml-30

Oppsummering En datamodell beskriver en statisk oppfatning av interesseområdet En datamodell kan brukes til å foreskrive en databasestruktur Ugrupperte modeller bygges opp av begreper med identifiserende attributter og assosiasjoner mellom disse begrepene. Attributter som ikke inngår i en identifikator skal ikke forekomme de skal erstattes av assosiasjoner til egnede begreper. Å tolke en assosiasjon med tilhørende begreper som en setning i vanlig språk gir en god kontroll av at assosiasjonen er meningsfylt. En identifikator er en entydig representasjon for et begrep. Identifikatorer kan settes sammen av identifiserende attributter og identifiserende assosiasjoner. I grupperte modeller erstattes begrepene med klasser som kan ha vanlige attributter. Når vi grupperer i samsvar med kravene til en tabelldatabasestruktur, genererer vi en fremmednøkkel der maksimumsmultiplisiteten er 1 på motsatt side av assosiasjonen. Hvis denne assosiasjonen er identifiserende, inngår den genererte fremmednøkkelen i identifikatoren. dmuml-31