You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Klassediagrammer gir et statisk bilde av klassene i et program, mens objektdiagrammergir et statisk bilde av objektstrukturer ved kjøretid. Like viktig er det å kunne illustrere hva som skjer eller burde skje ved kjøretid, dvs. den dynamisk oppførselen til programmer.Sekvensdiagrammer er en diagramtype som viser hvordan objekter samhandler, dvs. i hvilken sekvens objekter utfører metodekall på hverandre.Dynamisk oppførsel handler om hva som skjer over tid, og sekvensdiagrammer har en implisitt tidslinje og viser hvordan aktører og komponenter i et system "samhandler" over tid ved å sende "meldinger".  Begrepene aktører, komponenter og meldinger kan gis ulike tolkninger, men hovedsaklig dreier det seg om to typer bruk:

  1. På et overordnet nivå: utveksling av informasjon mellom brukere, brukergrensesnitt (klienter) og tjenester (servere). Denne varianten brukes gjerne tidlig ved utvikling av system, for å få oversikt over hvordan brukeren ønsker å bruke et system og hvordan ulike deler av system støtter denne bruken.
  2. På et detaljert nivå: metodekall som utføres mellom objekter. Denne varianten brukes ved forut for og til hjelp ved koding, eller som dokumentasjon på virkemåten.

For begge typer bruk, er målet å illustrere av oppførsel i et tenkt tilfelle, ved bruk/kjøring av et system. For et mindre system, f.eks. et lite spill med få objekter, så smelter disse to typene bruk sammen. Under til venstre er et eksempel på variant 1 for et tenkt system som svarer på eksistensielle spørsmål:

BrukerBrukerKlientKlientTjenerTjener"Hva er meningen med livet?"meningenMedLivet42"Svaret er 42"OlaOla1.1: Hovedprogram1.1: Hovedprogram1.2: Logikk1.2: Logikk"Hva er meningen med livet?"meningenMedLivet()42"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.

  • No labels