180 likes | 427 Views
Sekvensdiagram. En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet viser hvem som har kontrollen til enhver tid Det spesifiserer nøyaktig hvordan samarbeidet foregår på en tidslinje. Grunnsymbolene. Objekt med tidslinje Melding Retur fra kontrollsekvens. Grunndiagrammet.
E N D
Sekvensdiagram En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet viser hvem som har kontrollen til enhver tid Det spesifiserer nøyaktig hvordan samarbeidet foregår på en tidslinje
Grunnsymbolene • Objekt med tidslinje • Melding • Retur fra kontrollsekvens
Grunndiagrammet • Eksemplet viser tre objekter med hver sin livslinje • På hver livslinje vises det en kontrollsekvens
Tid og navigering • Tiden vises med en livslinje • Livslinjen festes til objektet • Tiden vises alltid vertikalt, ovenfra og ned • Navigering vises nesten alltid fra venstre mot høyre
Kontrollsekvenser • En kontrollsekvens vises på objektets livslinje som en avlang boks • Boksen viser når objektet har kontroll i forhold til de andre objektene i diagrammet • Høyden på boksen tilsvarer ikke hvor lenge kontrollen varer • Høyden er blant annet bestemt av hvor mye det skal være plass til av ornamenter
Klasser, instanser og destruksjon • Diagrammet kan vise en aktør som en klasse, som et objekt, eller som begge deler • Objektnavnet kan skrives med understreking for å presisere instansen • Klassenavnet skrives med kolon foran • Transiente instanser starter lenger nede på livslinjen • Selvmeldinger setter i gang en ny kontrollsekvens i det samme objektet
http-eksempel • I nettverk og http sendes en request fra en klient • Dette starter en kontrollsekvens på en annen maskin • Responsen kan starte en ny kontrollsekvens på klienten
Meldingstyper • Synkrone meldinger overlater hele kontrollen til målobjektet • Asynkrone meldinger starter en kontrollsekvens hos målobjektet uten selv å miste kontrollen • Asynkrone meldinger med tidsforsinkelse starter kontrollsekvensen hos målobjektet først etter en merkbar tid
Tidsforsinkelser i nettverk • Tidsforsinkelser er vanlige i nettverk • Synkron melding over nettverk blokkerer klienten til det kommer svar • Klientbehandlere er ofte transiente objekter
MVC i sekvensmodell • MVC kan forklares med et sekvensdiagram • Objektene er her vist med stereotypier • Andre patterns (mønstre) forklares også ofte ved hjelp av sekvensdiagrammer
Kodeeksempel • Eksemplet i javakode[3].Temperaturprogram kan forklares med et sekvensdiagram • Statiske metoder er understreket, slik det også gjøres i klassesymboler
Bruk av OCL • Dette diagrammet bruker OCL i tilordningenssetningene
Kontrollsekvens i en konstruktør • Konstruktøren kan instansiere andre klasser • Koden kan bli vanskelig å gjennomskue, også i byggingen av GUI • Diagrammet kan bidra til oppklaring
Kommunikasjonsdiagram • UML brukes til å studere systemet fra ulike synsvinkler • Kommunikasjonsdiagrammet studerer objektene i sekvensdiagrammet fra en annen synsvinkel • Sekvensdiagrammet viser ”innmaten” • Kommunikasjonsdiagrammet viser ”overflaten”.
Fra sekvens til kommunikasjon • Et sekvensdiagram gjøres enkelt om til et kommunikasjonsdiagram. • Nummerseriene gir oversikt over sekvenser og undersekvenser
Studer en algoritme • Hvert spillefelt instansieres og knyttes til objektet med komposisjon
UML-ramme og iterasjoner • Iterasjonene i forrige diagram kan vises ved hjelp av UML-rammer • Rammen merkes med loop • Andre vanlige merker er sd, alt, par, region
Genererte sekvensdiagrammer • Diagrammer kan enkelt genereres fra kode • Ulike programmer kan lage ulike bilder fra samme kode • Utfør ”Sekvensdiagram” fra http://oo.hive.no/uml/veiledninger.html • (slutt)