Timing diagram - diagram časování

Základy

Diagram časování spolu se sekvenčním diagramem (sequence diagram), diagramem komunikací (communication diagram) a diagramem přehledu interakcí (interaction overview diagram) patří do skupiny interakčních diagramů (interaction diagrams).

Diagram časování se používá k zobrazení iterakcí, kde hlavním záměrem je zobrazit podrobnosti o času. Je to alternativní forma sekvenčního diagramu (sequence diagram), která explicitně zobrazuje změny stavu lifeline v čase (v určitých časových jednotkách). Může být užitečný pro modelování real-time aplikací. Tento diagram bude patrně velmi povědomý všem, kdo se zabývají časováním integrovaných obvodů.

Příklad diagramu časování

jednoduchý diagram časování, 11 kB
jednoduchý diagram časování (klikni pro otevření v novém okně)

Jedná se o jednoduchý diagram časování pro řízení motoru pračky. Časová osa je vodorovná (čas běží zleva doprava), na svislé ose jsou rozmístěny jednotlivé lifelines, tj. dveře (pračky), programátor (pro výběr programů pračky a samotné spuštění programu) a motor (ad lifeline : viz sekvenční diagram (sequence diagram))
U každé lifeline jsou uvedeny jednotlivé stavy (např. dveře jsou otevřeny nebo zavřeny) či jednotlivé testovatelné podmínky; pozice názvů těchto stavů pak určují pozice, na které přeskakuje čára lifeline pro zobrazení přechodů mezi stavy.
V diagramu je znázorněna tato sekvence :

  1. na začátku sekvence jsou dveře ve stavu otevřeny, programátor ve stavu nenastaveno a motor ve stavu zastaven
  2. v čase označeném osovou značkou 1 uživatel nastavil programátor pračky (tj. nastala změna stavu programátoru na nastaveno), což nemá vliv ani na dveře, ani na motor
  3. v čase označeném osovou značkou 2 uživatel spustil vykonávání nastaveného programu (např. zmáčknul tlačítko start), a programátor poslal zprávu (message) kontrola dveřím (pro provedení kontroly, zda jsou dveře zavřeny a lze tedy spustit prací cyklus dle spuštěného programu) a začal čekat na odpověď od dveří; motor pračky je stále zastaven
  4. v čase označeném značkou t uživatel zavřel dveře, tj. programátor se dozvěděl (pomocí zprávy zavřeno), že může spustit prací cyklus; motor pračky je však stále zastaven, neboť:
  5. mezi značkami t a 3 je uveden time constraint {t+5} značící, že mezi příjmem zprávy zavřeno (tj. mezi okamžikem označeným značkou t) a posláním zprávy spustit k motoru( tj. okamžikem označeným značkou 3) se musí počkat 5 sekund (pro jistotu : uživatel mohl chtít po zavření dveří ještě přeprogramovat, otevřít dvířka pro doplnění prádla apod. - tyto zvláštní varianty průběhu sekvence zde však nemáme zakresleny)
  6. v čase označeném 3 tedy programátor poslal motoru zprávu spustit a motor se začne točit : jeho stav se změní na spuštěn
  7. v nějakém (blíže nespecifikovaném) okamžiku může uživatel otevřít dveře : v tomto čase označeném značkou z tedy dveře poslaly motoru zprávu zastavit
  8. v čase označeném 4 se motor zastaví, tedy přejde do stavu zastaven; přitom mezi značkami z a 4 je uveden time constraint {z..z+0,7} značící, že mezi příjmem zprávy zastavit (tj. mezi okamžikem označeným značkou z) a přechodem stavu motoru do zastaven ( tj. okamžikem označeným značkou 4) musí uběhnout nejvýše 0,7 s dlouhá prodleva (pro ochranu uživatele : aby nesáhl do bubnu pračky, když se ještě točí - předpokládá se ovšem, že tam nestihne stčit ruce do 0,7 s :-)

Další podrobnosti

Diagram časování také obsahuje základní frame (rám) : význam a jmenovka jsou stejné, jako v sekvenčním diagramu.

Odlišnosti od klasické formy sekvenčního diagramu :

  • osy jsou obyčejně naopak : čas plyne zleva doprava
  • lifelines jsou ve zvláštních kompartmentech, řazené svisle
  • lifeline poskakuje nahoru a dolů, čímž se zobrazují změny stavu; pořadí stavů může nebo nemusí být důležité; je možná i alternativní forma, kdy lifeline osciluje kolem vodorovné přímky a změny stavů jsou vyznačeny přímo na ní (viz diagram níže)
  • může být měřící časová osa; osové značky pak indikují časové intervaly, někdy přímo diskrétní okamžiky, ve kterých nastávají změny
  • časy jsou synchronizovány pro všechny lifelines dohromady
  • může být zobrazena hodnota objektu

Příklad diagramu časování v alternativní formě

diagram časování v alternativní formě, 8 kB
diagram časování v alternativní formě(klikni pro otevření v novém okně)

Tento diagram vznikl odvozením od prvního diagramu (viz výše). Vidíme v něm v jiné formě všechny informace jako v prvním diagramu, s výjimkou zpráv.
Diagram může být i namixovaný z obou forem, tj. některé lifelines jsou ve formě jak je uvedeno v prvním diagramu, některé lifelines ve formě druhého diagramu.

Náměty na další studium

  • element message label : pro přerušení zprávy z důvodu zamezení křížení
  • element general ordering
  • element stop
  • time observation, duration observation, duration constraint
  • zpráva, jejíž přenos trvá dlouho
  • dále viz relevantní části a relevantní náměty v kapitole sekvenční diagram