Abstrakt modell (UML)

Byggeklosser i UML klassediagram
Denne figuren angir ei pakke, hvor objekttyper skal grupperes under. Den har et navn som stå
inne i firekanten. Mange pakker kan benyttes sammen i en "applikasjon", og stiplede piler viser
hvilke pakker som benytter hvilke andre pakker.
Dette er en boks som angir en objekttype. Den er (vanligvis) delt horrisontalt i tre deler.
Den har et navn som står i øverste del. I den midterste delen står alle egenskapene.
Eventuelle operasjoner som objekttypen kan gjøre står i nederste del.
Kommentarer kan skrives i slike bokser, og kobles til ulike andre elementer via stiplede linjer.
Objekttyper som henger under slike "trekanter" er "subtyper av", og arver alle
egenskaper, relasjoner og operasjoner fra den "supertype"-objekttypen som er over trekanten.
STATENS KARTVERK
Forbindelser mellom byggeklossene
Objekttyper kan ha relasjoner til andre objekttyper. De angis med en strek mellom de
to impliserte objekttypene. En relasjon kan ha et relasjonsnavn (verb) som skal stå midt på
forbindels-streken. Men oftest er relasjonens "rolle-navn" viktigere. Objektets rolle mot den
andre objekttypen angir hva det betyr for det andre objektet gjennom denne relasjonen.
Ei pil i den ene enden angir at navigering kun er mulig i pilas retning.
En fylt "diamant" angir at objekter av objekttypen på "diamant-siden" har, eller eier objekter
av objekttypen på "strek-siden" som komponenter. De eide objektenes oppretting og eksistens
følger eier-objektets eksistens.
En åpen "diamant" angir en åpen aggregering, hvor objekttypen på "diamant-siden" består av, og
eksisterer i kraft av sine "medlemmer". Objekter kan således være medlemmer eller bestanddeler
av flere slike helheter/åpne aggregeringer samtidig.
1..*
Ved enden av relasjoner og aggregeringer, og etter egenskaper, kan en angi hvor
mange instanser som er lovlige. Det kan benyttes en verdi, et sett verdier skilt med komma,
eller et spenn skilt med to prikker imellom. Stjerne betyr "mange".
STATENS KARTVERK
Eksempel på bruk av UML klassediagram
Eksempel på noen av de viktigste hovedelementene
i en UML objekttype-modell.
<<Abstract>>
Kjøretøy
Forening
formål[1..3] : String
fastMøteDag : Ukedag
passasjerer : Integer
fabrikat : Produsent
*
Start()
2..*
Eier >
Person +eier
+eiendel
vekt : Real
1..*
Tog
Bil
0..*
3..*
NOTE: Må være oppført i
kjøretøy-registeret.
Hjul
Objekttyper:
Interresseområdet kan deles inn i objekttyper som har samme egenskaper,
relasjoner og oppførsel. Forening, Person, Bil, Tog, Hjul ...
Egenskaper:
En Forening kan ha minst en, og intil tre (av egenskapen) formål.
Foreningen har en fast møtedag, som er tatt ifra en lukket liste.
En Person kan ha en angitt egenskapsverdi for sin vekt.
Et Kjøretøy kan ta et antall passasjerer.
Et kjøretøy kan ha et fabrikat, med verdi tatt ifra en åpen liste.
Åpen aggregering:
En Forening består av medlemmer som er Personer.
Foreninger må ha minst to medlemmer. (2..*)
En Person kan være medlem av flere Foreninger.
Vanlig relasjon:
Personer kan Eie Biler. Eierskapet kan ha en note om en beskrankning.
En Person kan ha som eiendel null eller flere Biler. (0..*)
En Bil må ha minst en Person. (1..*) som eier.
Komposisjon:
En Bil har (som komponenter) minimum tre Hjul.
<<Enumeration>>
Ukedag
mandag
tirsdag
onsdag
torsdag
fredag
lørdag
søndag
<<CodeList>>
Produsent
Volkswagen
Ford
Fiat
Renault
Subtyping:
Bil er en subtype av Kjøretøy. (Arver egenskaper, relasjoner og operasjoner.)
Kjøretøy er supertype til Bil og Tog.
Oppførsel:
Et Kjøretøy kan utføre en opereasjon Start().
Lukket liste - Enumeration
Ukedag en lukket liste hvor ingen nye verdier kan legges inn.
Åpen liste - CodeList
Produsent er ei liste over kjente produsenter, åpen for nye produsenter.
STATENS KARTVERK
Objekttypene tilhører "UML-pakker"
Objekttypene i UML må defineres i en pakke,
men kan benyttes i flere andre pakker.
Objekttyper fra generelle eller assosierte fagområder kan
benyttes av hoved-pakken.
Applikasjonsmodell
Personrelatert
Alle aktuelle objekttyper for det aktuelle fagområdet skal
definers i, eller refereres til fra en hoved-pakke.
NOTE:
Bil, Hjul
Samferdsel
En kan i en NOTE angi presist hvilke objekttyper som
benyttes fra en annen pakke.
Samlinger av ofte benyttede objekttyper børlages som egne
pakker, slik at de kan gjenbrukes som moduler.
STATENS KARTVERK
Beskrivelser er ikke del av UML
Beskrivelsesteksten til de ulike konseptene må lagres utenfor den grafiske modellen.
Ulike modelleringsverktøy kan ofte ta vare på slike beskrivelser, og vise dem i egne vinduer.
En bedre måte kan være å lage en ekstern tabell over nøytral kode, begrepstype, begrepsnavn og beskrivelse.
En slik løsning vil også dekke behovet for en koblingsnøkkel til oversettelser og annen semantisk mapping.
Kode:
------511
17112
19003
11011
511
17112
19003
11011
Begrepstype:
---------------Produkt
Objekttype
Egenskap
Kodeverdi
Product
Object type
Attribute
CodeValue
Navn:
------Samferdsel
Bil
vekt
fredag
Transport
Car
weight
Friday
Beskrivelse:
--------------Vegnettsdata for alle offentlige og private veger lengre enn 50 meter.
Kjøretøy til bruk på veger til frakt av personer eller gods.
Massen av et objekt.
Ukedag nummer 5.
Transport network for persons and goods on all important routs.
Vehicle for use on roads for carrying passengers or goods.
Measured or estimated mass of an object.
Weekday number seven.
STATENS KARTVERK
Eksempel på UML modell for et
spesielt
fagområde
H avo m rå d e r
K y s t _ O b je k t t y p e r
G e n e re lle _ O b je k t t y p e r
N O TE :
K u rve G e o m e t ri
S O S I_ G e o m e t rit y p e r
Hovedpakken er "Havområder" hvor flateobjektene er definert.
I pakken "Kyst_Objekter" er linjeobjektene definert.
Pakken men "Generelle_Objekttyper" er en en generel modul som inneholder avgrensingslinjer
o.l.
Alle disse pakkene benytter pakken "SOSI_Geometrityper"
STATENS KARTVERK