Timed STAIRS tid for å ta steget til 3-event meldinger 1. april 2005 OMS-seminar 1. april 2005 / / Slide 1
Why timed sequence diagrams require three-event semantics I samarbeid med Øystein Haugen, Knut-Eilif Husa og Ketil Stølen Artikkel i "Scenarios: models, algorithms and tools (Dagstuhl post-seminar proceedings)", LNCS???? Teknisk rapport 309 OMS-seminar 1. april 2005 / / Slide 2
Timed STAIRS STAIRS: - Øystein Haugen, Ketil Stølen: STAIRS Steps To Analyze Interactions with Refinement Semantics. I Sixth International Conference on UML (UML'2003), LNCS 2863. - Metode for komposisjonell utvikling av sekvensdiagram - Skiller mellom potensiell og påbudt oppførsel Timed STAIRS-artikkelen: - Sekvensdiagram gis en denotasjonell trace-semantikk - Raffineringsrelasjonene i STAIRS defineres formelt - Utvider med tid og tre-event semantikk OMS-seminar 1. april 2005 / / Slide 3
Restaurant-eksempel Opprinnelig STAIRS trace-semantikk: <! main_dish_please,? main_dish_please,! main_dish:sirloin,? main_dish:sirloin > OMS-seminar 1. april 2005 / / Slide 4
Restaurant-eksempel (forts) Krav: Skal ikke ta mer enn 10 minutter å lage hovedretten. - Lokal restaurant-eier: Vi oppfyller kravet - Kontrollør/kunde: Det tar mye mer enn 10 minutter! Problemet: Skal tiden tas fra kjøkkenet får bestillingen, eller fra de begynner å arbeide med den? OMS-seminar 1. april 2005 / / Slide 5
To tolkninger Standard interpretasjon - Den tradisjonelle tolkningen av sekvensdiagram - Input-eventen representerer konsumpsjon - Kjøkkensjefens versjon Black-box interpretasjon - Vanlig innen formelle metoder - Input-eventen representerer mottak - Kontrollørens/kundens versjon OMS-seminar 1. april 2005 / / Slide 6
Generell løsning: tre-event meldinger! Ny Timed STAIRS trace-semantikk: <! main_dish_please, ~ main_dish_please,? main_dish_please,! main_dish:sirloin, ~ main_dish:sirloin,? main_dish:sirloin > OMS-seminar 1. april 2005 / / Slide 7
Timed STAIRS: Tid Hver event har en timetag som tilordnes et tidsstempel (et reelt tall) Eventene i en trace må ordnes med hensyn på tid - men to eventer kan forekomme på samme tidspunkt Hver lovlige trace må overholde de angitte tidsbetingelsene <! main_dish_please t1->r1, ~ main_dish_please t2->r2,? main_dish_please t3->r3,! main_dish:sirloin t4->r4, ~ main_dish:sirloin t5->r5,? main_dish:sirloin t6->r6 > OMS-seminar 1. april 2005 / / Slide 8
OMS-seminar 1. april 2005 / / Slide 9
STAIRS syntaks En melding er et trippel (signal, sender, mottaker) - sender og mottaker er livslinjer En event er et trippel (type, melding, timetag) - type er en av!, ~ eller? - timetag brukes for å angi tidsbetingelse Mengden av sekvensdiagram er definert induktivt ved at: - en event er et sekvensdiagram - neg d og assert d er sekvensdigram (for d et sekvensdigram) - loop N d er et sekvensdiagram (for d et sekvensdiagram, N en delmengde av de naturlige tall inkludert null + uendelig) - d1 alt d2, d1 seq d2, d1 par d2 er sekvensdiagram (for d1 og d2) sekvensdiagram - d tc C er et sekvensdiagram (for d et sekvensdiagram, C en tidsbetingelse) OMS-seminar 1. april 2005 / / Slide 10
STAIRS semantikk (enkelt tilfelle) Et sekvensdiagram spesifiserer en eller flere positive og/eller negative tracer Semantikken til et sekvensdiagram er et par (P,N) der P er et sett med positive tracer og N et sett med negative tracer Den samme tracen skal ikke være både positiv og negativ (da er diagrammet inkonsistent) Alle andre tracer (over det aktuelle alfabetet) kalles inconclusive OMS-seminar 1. april 2005 / / Slide 11
Raffinering STAIRS beskriver tre hovedtyper raffinering: - Supplementing: Kategoriserer tidligere inconclusive tracer som positiv eller negativ - Narrowing: Reduserer mengden positive tracer - Detaljering: Introduserer mer detaljerte beskrivelser uten å endre vesentlig på den eksternt observerbare oppførselen OMS-seminar 1. april 2005 / / Slide 12
Et litt større eksempel $!!"# "#!!"# OMS-seminar 1. april 2005 / / Slide 13
Detaljering: dekomposisjon! %! $!"# "#!!"# & OMS-seminar 1. april 2005 / / Slide 14
Supplementing + narrowing! ' * ( ) Har gjort gravy negativ (narrowing), og Beárnaise og ingen saus positiv (supplementing) ( OMS-seminar 1. april 2005 / / Slide 15
Raffinering mer formelt Et sekvensdiagram S2 = (P2,N2) raffinerer et sekvensdiagram S1 = (P1,N1) hvis: - hver negative trace i S1 er negativ i S2 N1 er en delmengde av eller lik N2 - hver positive trace i S1 er positiv eller negativ i S2 P1 er en delmengde av eller lik unionen av P2 og N2 Supplementing og narrowing blir spesialtilfeller av dette Detaljering: Tilsvarer black-box raffinering, dvs ser bare på deler av tracene OMS-seminar 1. april 2005 / / Slide 16
Potensiell vs påbudt oppførsel En kunde må kunne velge mellom både vegetar og kjøtt Kjøtt kan være enten biff eller svin, men en meny trenger ikke å ha begge OMS-seminar 1. april 2005 / / Slide 17
STAIRS semantikk (generelt tilfelle) Semantikken til et sekvensdiagram er et sett med par (interaksjons-obligasjoner) av trace-sett - { (P1,N1), (P2,N2),..., (Pm,Nm) } En korrekt implementasjon må kunne oppfylle hver obligasjon. OMS-seminar 1. april 2005 / / Slide 18
xalt vs alt La S og S' være sekvensdiagram med semantikk { (P,N) } og { (P',N') } S alt S' er definert som { (P union P', N union N') } S xalt S' er definert som { (P,N), (P',N') } OMS-seminar 1. april 2005 / / Slide 19
Potensiell vs påbudt oppførsel En kunde må kunne velge mellom både vegetar og kjøtt + ' ) ( ' ' ) Kjøtt kan være enten biff eller svin, men en meny trenger ikke å ha begge ( OMS-seminar 1. april 2005 / / Slide 20
Raffinering (generelt tilfelle) En interaksjons-obligasjon (P2,N2) er en raffinering av en interaksjons-obligasjon (P1,N1) hvis - N1 er en delmengde av eller lik N2 - P1 er en delmengde av eller lik P2 union N2 Et sekvensdiagram S' med semantikk O' er en raffinering av et sekvensdiagram S med semantikk O hvis det for hver interaksjonsobligasjon o i O finnes en obligasjon o' i O' slik at o' er en raffinering av o. OMS-seminar 1. april 2005 / / Slide 21
Oppsummering Timed STAIRS Potensiell (alt) og påbudt (xalt) oppførsel Glass-box og black-box raffinering Tre hovedtyper utviklingssteg: - Supplementing - Narrowing - Detaljering Tre-event semantikk Tid - Standard interpretasjon - Black-box interpretasjon OMS-seminar 1. april 2005 / / Slide 22