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
© Copyright 2024