playlist1 --> yesterday : songs
playlist1 --> letitbe : songs
object "~#1:Playlist" as playlist2 {
name = "Beatles ballades"
songs = {~#yesterday, ~#42}
}
note top: compact form |
|
PlantUML Macro |
---|
| object "~#p1:Person" as p1 {
name = "Hallvard Trætteberg"
dateOfBirth = "1966.11.16"
}
object "~#2:Date" as date1 {
day = 16
month = 11
year = 1966
}
p1 --> date1: dateOfBirth
object "~#p1:Person" as p2 {
name = "Hallvard Trætteberg"
dateOfBirth = "1966.11.16"
}
note top: compact form |
|
Figuren over viser tre objekter, en instans av Playlist-klassen og to av Song-klassen. Playlist-objektet har et name-attributt med verdien "Beatles ballades", og de to Song-objektene har begge name- og playLength-attributter med sine spesifikke verdier. Playlist-objektet har dessuten to songs-koblinger (eng: link), en til hver av de to Song-objektene.
Komponenter i et objektdiagram
- Objekter/instanser: Objekter vises som bokser, med en identifikasjonsdel og en innholdsdel. Identifikasjonsdelen viser identiteten og typen, på formen
#identity:type
.
Identiteten er ikke påkrevd, men er nyttig for å kunne referere til objektet uten å bruke piler og evt. fra tekst. Identiteten er som regel et tall uten annen mening enn at den er unik for diagrammet, men kan godt være en kombinasjon av bokstaver og tall, f.eks. playlist1, hvis det gjør diagrammet enklere å lese. Selv om en ikke har med identifikasjonsdelen så skal kolonet stå foran typenavnet, for å gjøre det enklere å skille mellom objekter/objektdiagrammer og klasser/klassediagrammer.
PlantUML Macro |
---|
|
object "~#identity:type" as id{
attribute = attributeValue
multipleValuedAttribute = {value1, value2, value3}
}
note top of id: Identifikasjonsdel
note bottom of id: Innholdsdel
object "~#p1:Person" as p1{
name = "Ola Nordmann"
}
note top of p1: Med identitet
object ":Person" as p2{
name = "Ola Nordmann"
}
note top: Uten identitet |
- Attributter: Attributtene med tilhørende verdier vises i innholdsdelen under identitetsdelen, med ett attributt-/verdi-par pr. linje.
Attributt-/verdi-par-notasjonen kan brukes til både enkle verdier og til objekt-referanser (koblinger), så lenge verdiene/objektene kan representeres med en passende tekst. F.eks. kan en angi en referanse til en dato som en tekst, selv om datoen egentlig er et eget objekt med egne attributt/verdi-par (se Dato-eksempelet). Merk at en slik tekstlig notasjonen for objekt-referanser gjør det umulig å vise at samme objekt har flere referanser til seg, så det bør bare brukes for objekter som oppfører seg som enkle verdier.
Dersom objektet ikke har en passende tekstlig representasjon, så kan en bruke identiteten. (Se Playlist-eksempelet og kompakt form for songs-attributtet.)
Hvis attributtet har flere verdier (mange-multiplisitet), som f.eks. songs
i Playlist-eksempelet, så skrives verdiene etter hverandre i krøllparenteser.
- Referanser: En referanse/kobling (eng: link) vises som en pil (strek med pilhode) fra (kanten av) boksen/objektet som eier referanser til kanten av boksen/objektet som det refereres til. Navnet på referansen vises ved eller oppå streken, slik at en vet hvilket underliggende attributt som har referansen(e) som verdi.
En mer kompakt notasjon er å bruke attributt-notasjonen med navn og identitet(er) som attributt/verdi-par.
Hvordan objektdiagrammer skiller seg fra klassediagrammer
Objektdiagrammer:
- Har ikke med metodene til klassen/objektet
- Har ikke med klasser det ikke lages objekt av
- Har kolon (og evt. id) foran klassenavnet
- Har med verdier for attributtene
I tillegg viser klassediagrammer klasser, mens objektdiagrammer viser instanser av klasser, dvs. objekter.