Sekvens Diagram

Informationen er fra (Side 431 i PDF, Side 221 i Bogen kap. 15) og IBM's hjemmeside (https://www.ibm.com/developerworks/rational/library/3101.html)

Sekvens diagrammer illustrerer interaktionerne mellem objecter og klasser.

Her er de forskellige dele af et Sekvensdiagram:

### Object Lifeline

Viser hvor længe et object lever, og hvornår det bliver created. I boksen på en Lifeline skrives der navnet på klassen og navnet på instancen, sådan her - Instance:Class. På Lifeline bliver der påsat Activation. Lifelines er bokse med en nedadgående stiplet linje fra midten af boksen. Billedet er Figur 3, fra IBM's hjemmeside.

### Activation

Activation viser det øjeblik et objekt arbejder. Detter bliver illustreret ved at have en boks på objektets Lifeline. Denne boks viser hvornår objektet bliver aktiveret, og hvornår det er færdigt.

*John siger at vi selv bestemmer om man vil holde en konstant boks på linjen, eller om man splitter den op, så den kun viser præcis hvornår objektet er aktiveret.*

### Create

Når et objekt opretter et nyt objekt igennem en metode anvender man Create illustrationen. Dette bliver illustreret med en stiplet linje, men et solidt pilehoved direkte hen på objektet, og ikke objektet's Lifeline. Dette objekt skal ikke starte ud med sin kasse i toppen, da det først bliver oprettet senere i forløbet. Eksemplet er figur 15.3 side 224 Bogen, side 447 PDF.

### Destroy

Hvis et objekt bliver slettet/fjernet igennem et forløb, så kan det illustreres med Destroy. Her placeres et stort X over objektets Lifeline, som viser at det bliver slettet. Dette bliver anvendt mindre i Java, da der er en automatisk garbage collector, som ikke findes i f.eks. C++. Eksemplet er figur 15.11 side 230 Bogen, side 448 PDF.

### Message

En Message er en besked mellem objekter. For at vise at et objekt sender en besked til et andet objekt laver du en linje til modtager objektet, med et solid pilehoved. Beskeden/Metodens navn står skrevet lige over linjen. Eksemplet er figur 4 fra IBM's hjemmeside.

#### Return Message

I samme eksempel som over vises der Return Messages. Return Messages vises med en stiplet linje og et åbent pilehoved. Det der sendes tilbage skrives over den stiplede linje. Return messages er ikke altid nødvendige, da det ikke er altid der bliver returneret noget. Eksemplet er figur 5 fra IBM's hjemmeside.

#### Self Message

Hvis et objekt sender en besked til sig selv, kan de illustreres med en Self Message. For at tegne en Self Message tegner man en message som man normalt gør, men pilen ender med at pege tilbage til afsender objektet.

### Overordnet Eksempel

    Figur 15.1 (side 434 PDF, 222 bog) i bogen viser os et grundliggende eksempel på et Sekvensdiagram. Diagrammet viser at klasse *A* har en metode kaldet *doOne* og en attribut af type *B*.

Klasse *B* har en to metoder kaldet *doTwo* og *doThree*.

Diagrammet viser at klasse *A* arbejder sammen med klasse *B* via de to metoder.

### Konkret eksempel

Figur 15.3 (side 437 PDF, 224 bog) viser et sekvens diagram over en betaling, og bliver læst som følgende:

1. En besked kaldet *makePayment* bliver sendt til en instans af *Register*. Afsenderen er ikke specificeret.
2. *Register* instansen sender *makePayment* beskeden til en *Sale* instans.
3. *Sale* instansen opretter en instans af *Payment*.