Czym jest diagram czasowy#
Diagram czasowy (timing diagram) jest diagramem interakcji UML, który pokazuje, jak stany lub wartości zmieniają się w czasie. Jego głównym elementem jest jawna oś czasu, dzięki której można przedstawić kolejność zdarzeń oraz ograniczenia dotyczące chwili wystąpienia zdarzenia lub długości trwania stanu.
Użyj go, gdy kluczowe są deadline, opóźnienie, czas odpowiedzi, okres sygnału albo zależność czasowa między kilkoma uczestnikami. Przykłady obejmują systemy wbudowane, protokoły komunikacyjne, sterowniki urządzeń, kolejkę z limitem czasu i scenariusze biznesowe z określonym SLA.
Diagram sekwencji również porządkuje komunikaty od góry do dołu, lecz jego odstępy są zwykle schematyczne. Diagram czasowy pozwala jawnie opisać skalę lub warunki czasowe, które trzeba zweryfikować.
Linie życia i oś czasu#
Linia życia stanu przedstawia stany obiektu w kolejnych przedziałach. Zmiana stanu jest zaznaczona na osi czasu, a przedziały pokazują, jak długo obiekt pozostaje w danym stanie. Linia życia wartości pokazuje zmienną lub sygnał, którego wartość zmienia się w czasie, na przykład temperaturę, poziom napięcia lub licznik.
Oś pozioma reprezentuje upływ czasu, a jednostki trzeba dobrać do problemu: milisekundy, sekundy, cykle zegara lub inne miary. Kilka linii życia pozwala porównać zachowanie współpracujących elementów. Wykres powinien wskazywać wspólny punkt odniesienia, jeżeli porównanie chwili zdarzeń ma znaczenie.
Zdarzenia i ograniczenia czasowe#
Zdarzenie może wywołać zmianę stanu lub wartości. Opisz je przy właściwym punkcie osi, na przykład odebranoŻądanie albo timeout. Nie każde przejście musi wynikać z sygnału zewnętrznego; może być skutkiem upływu czasu lub spełnienia warunku.
Ograniczenie czasowe (time constraint) określa, kiedy zdarzenie ma wystąpić, np. odpowiedź ma nadejść nie później niż 200 ms po żądaniu. Ograniczenie czasu trwania (duration constraint) określa długość przedziału, np. stan Oczekiwanie może trwać najwyżej 200 ms. Zapis ograniczenia powinien jasno określać punkt początkowy, końcowy, jednostkę i to, czy granica jest włączna.
Diagram sam w sobie nie dowodzi, że implementacja spełnia wymaganie. Może precyzyjnie przedstawić warunek, który następnie trzeba sprawdzić analizą, testem lub pomiarem.
Przykład: odpowiedź sterownika#
Sterownik pozostaje w stanie gotowości do chwili otrzymania żądania. Po jego odebraniu oczekuje na odpowiedź. Jeśli odpowiedź nadejdzie w wyznaczonym oknie, wraca do gotowości; w przeciwnym razie przechodzi do błędu.
Przykład używa osi zdarzeń jako umownej skali i ilustruje dwie ścieżki. W rzeczywistym modelu dopisz jednostki i precyzyjne ograniczenie — na przykład odpowiedź musi wystąpić do 200 ms od żądania. Na diagramie zawierającym zarówno odpowiedź, jak i timeout trzeba określić warunek wyboru, by nie sugerować, że oba zdarzenia zachodzą w tym samym przebiegu.
Jak tworzyć diagram czasowy#
- Wybierz obiekt, sygnał lub wartość, której zachowanie w czasie ma znaczenie.
- Ustal jednostkę czasu, początek pomiaru i wspólny punkt odniesienia.
- Dodaj osobną linię życia dla każdego porównywanego stanu albo sygnału.
- Zaznacz istotne zdarzenia i zmiany stanów lub wartości.
- Zapisz limity czasu i czasu trwania wraz z jednostkami oraz punktami granicznymi.
- Oddziel alternatywne scenariusze, np. odpowiedź terminową i timeout.
- Sprawdź, czy odstępy na rysunku odpowiadają skali, jeśli diagram sugeruje wartości proporcjonalne.
- Zweryfikuj model testami lub wymaganiami, gdy ograniczenia mają skutki operacyjne.
Diagram czasowy a diagram sekwencji#
Diagram sekwencji skupia się na uczestnikach i kolejności komunikatów. Diagram czasowy skupia się na zmianach stanu lub wartości w jawnej skali czasu. Użyj sekwencji, gdy ważne są interakcje i odpowiedzialności; wybierz diagram czasowy, gdy trzeba ocenić długość przedziału, opóźnienie albo synchronizację.
Diagram czasowy a diagram maszyny stanów#
Diagram maszyny stanów opisuje możliwe stany obiektu i warunki przejść, ale zwykle nie pokazuje ich w skali czasu. Diagram czasowy może przedstawić konkretne przebiegi i czas trwania poszczególnych stanów. Diagramy uzupełniają się: maszyna stanów definiuje dopuszczalne zachowanie, a diagram czasowy prezentuje jego scenariusz czasowy.
Typowe błędy#
- Brak jednostek. Liczby bez milisekund, sekund lub cykli są niejednoznaczne.
- Niejasny początek pomiaru. Odbiorca nie wie, od którego zdarzenia liczyć limit.
- Udawana skala. Proporcjonalne odstępy sugerują dokładne czasy; opisz je albo przedstaw jako schematyczne.
- Mieszanie ścieżek. Odpowiedź i timeout nie zachodzą równocześnie w tym samym przebiegu, chyba że modelujesz konkurujące zdarzenia.
- Ograniczenie bez końców przedziału. Podaj, czego dotyczy pomiar i jak interpretować granice.
- Zbyt wiele linii życia. Zachowaj te, które są potrzebne do analizy synchronizacji.
- Mylenie czasu diagramu z dowodem poprawności. Model opisuje oczekiwanie; testy lub analiza muszą potwierdzić jego spełnienie.
- Dublowanie pełnej logiki stanu. Szczegółową maszynę stanów pokaż osobno, a tutaj skup się na osi czasu.
Co diagram czasowy pokazuje, a czego nie#
Diagram czasowy pokazuje zmiany stanów lub wartości w czasie, związki między liniami życia oraz ograniczenia czasowe istotne dla scenariusza. Ułatwia analizę odpowiedzi, opóźnień, synchronizacji i zachowania w systemach czasu rzeczywistego.
Nie zastępuje pełnej specyfikacji stanów, przepływu procesu ani dowodu spełnienia ograniczeń. Uzupełnij go diagramem maszyny stanów, sekwencji, aktywności, wymaganiami i wynikami testów — zależnie od pytania, na które dokumentacja ma odpowiedzieć.