Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


PlantUML Macro
border1
actor Bruker
Bruker -> Klient: "Hva er meningen med livet?"
Klient -> Tjener: meningenMedLivet
Tjener --> Klient: 42
Klient --> Bruker: "Svaret er 42"



PlantUML Macro
border1
actor Ola
Ola -> "#1: Hovedprogram"
participant "~#1: Hovedprogram" as hovedprogram
participant "~#2: Logikk" as logikk
Ola -> hovedprogram: "Hva er meningen med livet?"
"#1: Hovedprogram"
hovedprogram -> 
"#2
logikk: 
Logikk":
meningenMedLivet()
"#2: Logikk"
logikk --> 
"#1: Hovedprogram"
hovedprogram: 42
"#1: Hovedprogram"
hovedprogram --> Ola: "Svaret er 42"


Strekmannen øverst representerer en person/bruker, mens boksene representerer systemkomponenter. Strekene nedover er tidslinjer, mens strekene på tvers er meldingsflyt. Akkurat hva slags melding det dreier seg om og hvordan den formidles, f.eks. noe brukeren skriver inn, XML som sendes over nettet eller enkle metodekall, er ikke viktig. Det viktige er informasjonsinnholdet og sekvensen. I tillegg er det vanlig å vise om noe regnes som svar (eng: response) på et spørsmål (eng: request), ved å bruke stiplet linje.

Den andre varianten ser egentlig helt lik ut, men da tolkes boksene øverst som objekter, meldingene som metodekall og evt. svar-streker som returverdier. Siden diagrammet illustrerer faktisk kjøring, så har gjerne boksene øverst konkrete navn eller id'er og teksten på meldingsstrekene er konkrete metodekall med argumentverdier eller returverdier. Dersom en av objektene øverst også opptrer som argumenter og/eller returverdier, så brukes navnet eller id'en.


Grunnleggende elementer i et sekvensdiagram

Et sekvensdiagram består ofte av følgende:

...

Når man tegner for hånd unnlater man ofte å tegne de nederste rektanglene og aktør-symbolene. Dvs. at disse bare tegnes på toppen.


Eksempel på et litt større sekvensdiagram

PlantUML Macro
actor MedicalReceptionist
MedicalReceptionist -> "P : PatientInfo": viewInfo(PID)
"P : PatientInfo" -> "D : Database": report(Info, PID, UID)
"D : Database" -> "AS : Authorization": authorize(Info, UID)
"AS : Authorization" --> "D : Database": authorization
alt Authorization OK
	"D : Database" --> "P : PatientInfo": patientInfo
else Authorization Fail
	"D : Database" --> "P : PatientInfo": Error(No Access)
end

...