Modellering av data Magnus Karge, Kartverket 02.05.2018
Modellering av data Innhold Sentrale elementer i klassediagrammer Sentrale elementer i pakkediagrammer Relevante standarder Internasjonalt: ISO 19103 Conceptual Schema Language ISO 19109 Rules for application schema ISO 19505-2 OMG Unified Modeling Language Part 2: Superstructure Nasjonalt: SOSI Regler for UML-modellering 5.0
Modellering av data Hvor i løypa befinner vi oss? Business Process Lage produktspesifikasjon Kartverket Matrikkel- og stedsnavnavdeling Ny produktspesifikasjon skal lages Nei Lage UML-modell Lage produktspesifikasjonsdokument Generere realiseringer Teste eksempeldata mot realiseringsresultater Er testres og h produkts UML-modell administrative enheter Produktspesifikasjon SOSI-Kontrollfil PostGIS-DDL-fil GML-applikasjonsskjema
Definisjoner Unified Modeling Language (UML) Konseptuelt skjemaspråk Grafisk språk for objektorientert modellering Hovedformål er kommunikasjon Mellom mennesker Mellom mennesker og maskiner Applikasjonsskjema Modell over en del av den virkelige verden med objekttyper, egenskaper og forhold beskrevet med et konseptuelt modelleringsspråk, for eksempel UML Ofte betegnet som informasjonsmodell
Diagramtyper & modellelementer Klassediagram Pakkediagram
Klassediagram Hensikt: Vise klasser og assosiasjoner mellom disse. Klassediagram viser også klassenes navn og egenskaper.
Klassediagram Komité + fastmøtedag: Ukedag + formål: CharacterString [1..3] + postboks: Adresse +komité 0..* «datatype» Adresse + gate: CharacterString + husnummer: Integer + postnr: Integer + poststed: CharacterString Kjøretøy + merke: Produsent + passasjerer: Integer + posisjon: GM_Point [0..1] + start(): void Organiserer> +medlem 2..* Person + bosted: Adresse + vekt: Real + bolig: Bygning +eier 1..* Eier> +eiendel 0..* Bil constraints {EU-godkjent} 0..1 Tog «enumeration» Ukedag «CodeList» Produsent mandag tirsdag onsdag torsdag fredag lørdag søndag Bygning + grunnriss: GM_Curve + form: GM_Solid [0..1] +bilkomponent 3..* Hjul + bredde: Real + Fiat + Volkswagen + Lada + Skoda
Klassediagram elementer Klasser er firkantede bokser med felt for:
Klassediagram elementer Klasser er firkantede bokser med felt for: Navn Egenskapsliste Multiplisitet angir minimumsog maksimumsgrense. Hvor ofte en egenskap opptrer i en instans av klassen. Operasjoner Restriksjoner (Constraints)
Klassediagram Komité + fastmøtedag: Ukedag + formål: CharacterString [1..3] + postboks: Adresse +komité 0..* «datatype» Adresse + gate: CharacterString + husnummer: Integer + postnr: Integer + poststed: CharacterString Kjøretøy + merke: Produsent + passasjerer: Integer + posisjon: GM_Point [0..1] + start(): void Organiserer> +medlem 2..* Person + bosted: Adresse + vekt: Real + bolig: Bygning +eier 1..* Eier> +eiendel 0..* Bil constraints {EU-godkjent} 0..1 Tog «enumeration» Ukedag «CodeList» Produsent mandag tirsdag onsdag torsdag fredag lørdag søndag Bygning + grunnriss: GM_Curve + form: GM_Solid [0..1] +bilkomponent 3..* Hjul + bredde: Real + Fiat + Volkswagen + Lada + Skoda
Klassediagram elementer Stereotyper står rett foran navnet på klassen med rundt. brukes for klasser som er abstraksjoner av objekter eller fenomener i den virkelige verden. De har sin egen identitet og representerer ofte geografiske objekttyper, men er ikke begrenset til det. -klassene kan ha egenskaper med geometritype, eller andre geografiske tilknytninger (for eksempel topologiske forhold eller lineær posisjon).
Klassediagram elementer Stereotyper står rett foran navnet på klassen med rundt. «datatype» er identitetsløse samlinger av egenskaper som kun kan oppstå som egenskapstyper eller komponenter i andre klasser.
Klassediagram elementer Stereotyper står rett foran navnet på klassen med rundt. «datatype» er identitetsløse samlinger av egenskaper som kun kan oppstå som egenskapstyper eller komponenter i andre klasser.
Klassediagram elementer Stereotyper står rett foran navnet på klassen med rundt. Klasser med stereotypen «enumeration» er lukkede lister av navnede koder.
Klassediagram elementer Stereotyper står rett foran navnet på klassen med rundt. Klasser med stereotypen «CodeList» er utvidbare lister av navnede koder.
Klassediagram Komité + fastmøtedag: Ukedag + formål: CharacterString [1..3] + postboks: Adresse +komité 0..* «datatype» Adresse + gate: CharacterString + husnummer: Integer + postnr: Integer + poststed: CharacterString Kjøretøy + merke: Produsent + passasjerer: Integer + posisjon: GM_Point [0..1] + start(): void Organiserer> +medlem 2..* Person + bosted: Adresse + vekt: Real + bolig: Bygning +eier 1..* Eier> +eiendel 0..* Bil constraints {EU-godkjent} 0..1 Tog «enumeration» Ukedag «CodeList» Produsent mandag tirsdag onsdag torsdag fredag lørdag søndag Bygning + grunnriss: GM_Curve + form: GM_Solid [0..1] +bilkomponent 3..* Hjul + bredde: Real + Fiat + Volkswagen + Lada + Skoda
Klassediagram elementer Assosiasjoner mellom klasser vises som streker mellom de firkantede boksene. De kan ha egne assosiasjonsnavn, og kan angi hvilken retning navnet indikerer.
Klassediagram elementer Assosiasjoner mellom klasser vises som streker mellom de firkantede boksene. De kan ha egne assosiasjonsnavn, og kan angi hvilken retning navnet indikerer. Assosiasjonsender med pil betyr at assosiasjonen er navigerbar i pilens retningen. Alle navigerbare ender skal ha rollenavn og multiplisitet ([min..maks]).
Klassediagram Komité + fastmøtedag: Ukedag + formål: CharacterString [1..3] + postboks: Adresse +komité 0..* «datatype» Adresse + gate: CharacterString + husnummer: Integer + postnr: Integer + poststed: CharacterString Kjøretøy + merke: Produsent + passasjerer: Integer + posisjon: GM_Point [0..1] + start(): void Organiserer> +medlem 2..* Person + bosted: Adresse + vekt: Real + bolig: Bygning +eier 1..* Eier> +eiendel 0..* Bil constraints {EU-godkjent} 0..1 Tog «enumeration» Ukedag «CodeList» Produsent mandag tirsdag onsdag torsdag fredag lørdag søndag Bygning + grunnriss: GM_Curve + form: GM_Solid [0..1] +bilkomponent 3..* Hjul + bredde: Real + Fiat + Volkswagen + Lada + Skoda
Klassediagram elementer Aggregering Assosiasjoner med åpen diamant viser at dette er en samling av selvstendige deler. Dette kalles aggregering i UML.
Klassediagram elementer Komposisjon Assosiasjoner med fylt diamant viser at instanser av klassen på diamantsiden eier komponentene sine. Dette kalles komposisjon i UML.
Klassediagram elementer Arv Arv mellom klasser vises som streker med åpen trekant mot klassen det arves fra.
Klassediagram Komité + fastmøtedag: Ukedag + formål: CharacterString [1..3] + postboks: Adresse +komité 0..* «datatype» Adresse + gate: CharacterString + husnummer: Integer + postnr: Integer + poststed: CharacterString Kjøretøy + merke: Produsent + passasjerer: Integer + posisjon: GM_Point [0..1] + start(): void Organiserer> +medlem 2..* Person + bosted: Adresse + vekt: Real + bolig: Bygning +eier 1..* Eier> +eiendel 0..* Bil constraints {EU-godkjent} 0..1 Tog «enumeration» Ukedag «CodeList» Produsent mandag tirsdag onsdag torsdag fredag lørdag søndag Bygning + grunnriss: GM_Curve + form: GM_Solid [0..1] +bilkomponent 3..* Hjul + bredde: Real + Fiat + Volkswagen + Lada + Skoda
Klassediagram elementer Abstrakte klasser Klasser som har navnet i kursiv er abstrakte klasser og kan ikke instansieres.
Pakkediagram Hensikt: Vise pakker og forhold mellom disse.
Pakkediagram - elementer Pakker - inneholder modellelementer (pakker med stereotypen «ApplicationSchema» inneholder geografiske objekttyper) Pakkeavhengighet - viser at noen klasser i en pakke trenger klasser fra en annen pakke
Informasjon, krav, flere modellelementer i SOSI generell del Regler for UML-modellering 5.0: https://kartverket.no/globalassets/standard/sosi-standarden-del- 1-og-2/sosi-standard-del-1/5.0/regler_for_umlmodellering_5.0.pdf Opplæringsvideoer (bruk av UML i Enterprise Architect): http://sosi.geonorge.no/kurs/