Modelowanie systemów typu RT z wykorzystaniem UML

Transkrypt

Modelowanie systemów typu RT z wykorzystaniem UML
AGH, EAIE, Informatyka
Modelowanie systemów
typu RT z wykorzystaniem
UML
Systemy czasu rzeczywistego
Miroslaw Jedynak, Adam Łączyński
Spis treści
1
2
Wstęp .............................................................................................................................................. 3
1.1
Architektura systemów Real-time ........................................................................................... 3
1.2
Modelowanie systemów RT .................................................................................................... 5
Struktura .......................................................................................................................................... 6
2.1
2.1.1
Typu „Relay” .................................................................................................................... 7
2.1.2
Typu „End”....................................................................................................................... 7
2.1.3
Modelowanie................................................................................................................... 7
2.2
Konektor .................................................................................................................................. 8
2.2.1
Konektor a protokół ........................................................................................................ 8
2.2.2
Modelowanie................................................................................................................... 8
2.3
3
Porty ........................................................................................................................................ 7
Kapsuły .................................................................................................................................... 9
2.3.1
Pluginy ............................................................................................................................. 9
2.3.2
Maszyna stanowa ............................................................................................................ 9
2.3.3
Modelowanie................................................................................................................. 10
Zachowanie.................................................................................................................................... 11
3.1
Modelowanie czasu ............................................................................................................... 11
3.1.1
Funkcja zysku ................................................................................................................. 11
3.1.2
Upływ czasu na diagramie UML .................................................................................... 11
3.1.3
Usługa upływu czasu ..................................................................................................... 12
3.1.4
Timed Transition Net ..................................................................................................... 12
3.2
Protokoły ............................................................................................................................... 13
3.2.1
3.3
Modelowanie................................................................................................................. 13
Maszyny stanowe .................................................................................................................. 14
3.3.1
Modelowanie................................................................................................................. 14
3.3.2
Hierarchia ...................................................................................................................... 14
3.3.3
Modelowanie zawierania .............................................................................................. 15
4
Podsumowanie .............................................................................................................................. 15
5
Bibliografia..................................................................................................................................... 16
2
1 Wstęp
Najbardziej popularna definicją systemu czasu rzeczywistego jest:"System czasu rzeczywistego to
taki, w którym wynik przetwarzania nie zależy tylko i wyłącznie od jego logicznej poprawności, ale
również od czasu, w jakim został osiągnięty. Jeśli nie są spełnione ograniczenia czasowe, mówi się, że
nastąpił błąd systemu."[1]. Ograniczenia czasowe są koniecznością, której niespełnienie prowadzi w
najgorszym przypadku do nieodwracalnych i tragicznych skutków oraz tych, w których czas
wykonania nie jest tak krytyczny i dopuszcza się pewne odstępstwa. Najczęściej systemy czasu
rzeczywistego dzieli się na dwie grupy:
•
•
Rygorystyczne (twarde, ang. Hard real - time systems) - gwarantują terminowe wypełnianie
krytycznych zadań.
Łagodne(miękkie, ang. Soft real - time systems) - są mniej wymagające. W nich krytyczne
zadanie do obsługi w czasie rzeczywistym otrzymuje pierwszeństwo przed innymi zadaniami i
zachowuje je aż do swojego zakończenia. [6]
Systemy czasu rzeczywistego obejmują swoim zastosowaniem takie dziedziny jak telekomunikacja,
lotnictwo, systemy militarne, które często są duże oraz bardzo złożone. Krytycznym wymaganiem dla
tych systemów jest przemyślana architektura. Dobra architektura nie tylko upraszcza konstrukcje
początkowego systemu, ale także, co jest nawet ważniejsze, umożliwia w łatwy sposób
wprowadzanie zmian wynikających z ciągle napływających nowych wymagań.
Referat ten ma za zadanie przedstawić możliwe rozwiązanie tego problemu oparte na wykorzystaniu
UML’a do modelowania systemów czasu rzeczywistego. W dużej mierze opierać się będziemy na
standardzie ROOM – Real-time object oriented modelling. W szczególności pokażemy jak konstrukcje
w tym języku zostały utworzone na podstawie mechanizmu rozszerzeń do UML’a.[5]
1.1 Architektura systemów Real-time
Zazwyczaj architektura tego typu systemów wygląda jak na Rysunek 1. System jest podzielony na
część wewnętrzną (czerwoną), która zawiera logikę przetwarzania oraz na część zewnętrzną
(niebieską), która jest odpowiedzialna za generowanie i odbieranie sygnałów do/z części zawierającej
logikę- sensory i efetktory.[3]
3
Rysunek 1 Ogólna struktura systemów czasu rzeczywistego
W poniższych rozdziałach zostaną omówione konstrukcje używane do reprezentowanie system czasu
rzeczywistego. Konstrukcje te zostały podzielone na dwie grupy:
•
Struktura – elementy statyczne systemu
Rysunek 2 Modelowanie struktury
4
•
Zachowanie – modelowanie części systemu, które się zmieniają
Rysunek 3 Modelowanie zachowania
1.2 Modelowanie systemów RT
Modelowanie systemu składa się z dwóch faz przedstawionych na diagramie poniżej (Rysunek 4):
•
•
Modelowanie – specyfikacja graficzna systemu
Generowanie – generacja kodu (np. c++) na podstawie modelu systemu
Rysunek 4 Modelowanie systemu RT
5
2 Struktura
Za strukturę systemu przyjęło się uważać encje, które są modelowane oraz relacje pomiędzy nimi
(takie jak komunikacja). UML dostarcza dwóch komplementarnych typów diagramów do
modelowanie logicznej struktury
•
•
Diagramy klas
Diagramy kolaboracji
Diagramy klas przedstawiają ogólne relacje między klasami – relacje różnego typu, które istnieją
pomiędzy instancjami danych klas. Diagramy kolaboracji rozróżniają użycie dwóch instancji tej samej
klasy, na podstawie tzw. roli w jakiej dana instancja występuje na diagramie.
W systemach czasu rzeczywistego większy nacisk kładzie się na diagramy kolaboracji, ponieważ
można z ich pomocą wyrazić powiązania między klasami (role) oraz zależności czasowe, na których
opiera się całe modelowanie oparte na restrykcyjnych wymogach czasu wykonania. Diagramy
sekwencji można wygenerować na podstawie pełnego diagramu kolaboracji, jednak wtedy tracimy
przejrzystość zależności pomiędzy poszczególnymi klasami. Nie zmienia to jednak faktu, że kompletna
specyfikacja architektury opiera się przynajmniej na dwóch typach diagramów: modelującym
strukturę (klas) i jednym z diagramów modelujących zachowanie.[11][7]
Do przedstawiania elementów strukturalnych używa się 3 podstawowych elementów:
•
•
•
Kapsuł
Portów
Konektorów
Kapsuły odpowiadają koncepcji aktorów z tradycyjnego podejścia z wykorzystaniem UML’a. Są to
złożone, fizyczne i często rozproszone obiekty, które komunikują się ze sobą wykorzystując koncepcje
portów. Port jest to implementacja części kapsuły, która jest odpowiedzialna za komunikację ze
światem zewnętrznym przez ściśle określony interfejs – odpowiada pojęciu interfejsów
specyfikujących usługi w tradycyjnym podejściu. Każdy port definiuje specyficzną role w jakiej
występuje dana kapsuła przy komunikacji z inną. W celu usystematyzowania często złożonej
semantyki komunikacji wprowadzone zostało pojęcie protokołu, który specyfikuje poprawność
przepływu informacji (sygnałów) pomiędzy kapsułami. Przez wymuszenie na kapsułach komunikacji
wyłącznie przez porty zyskuję się silną niezależności i duża reużywalność poszczególnych
komponentów systemu.
Konektory odpowiadają pojęciu bindingu w tradycyjnym podejściu- są abstrakcją definiującą
powiązania między poszczególnymi portami. Na diagramach kolaboracji przedstawione są jako
połączenie pomiędzy portami, które występują w danej roli. Przedstawiana zależność jest istotna z
punktu widzenia architekta systemu, ponieważ te i tylko te obiektu mogą na siebie wpływać, które są
połączone za pomocą konektora.
Kapsuły są realizowane za pomocą maszyny stanowej. W przypadku bardziej złożonych kapsuł mogą
się one składać z podkapsuł połączonych wewnętrznie konektorami. Poszczególne podkaspuły mogą
być rekurencyjnie dekomponowane na mniejsze elementy – takie podejście umożliwia projektowanie
6
nawet bardzo złożonych systemów wykorzystująca różne abstrakcje na różnym poziomie
modelowania.
2.1 Porty
Porty są obiektami, których zadaniem jest zachowywać się jak obiekty brzegowe dla danej instancji
kapsuły. Porty należą do kapsuły tzn. są przez nią tworzone i usuwane. Każdy port posiada
identyfikator i stan, dlatego może być traktowany jako osobny obiekt, którego czas życia jest
powiązany z czasem życia kapsuły. Mimo że porty zachowują się jak interfejsy dla danej kapsuły nie
mogą być w UML mapowane do tradycyjnych interfejsów, ponieważ posiadają swój stan.
Każdy port odgrywa konkretną rolę w ramach danego protokołu (np. jeden pełni rolę nadawy, a drugi
odbiorcy). Porty są obiektami brzegowymi, dlatego w przeciwieństwie do konektorów i wnętrza
kapsuły mogą być one widziane zarówno z zewnątrz jak i z wnętrza kapsuły.
2.1.1 Typu „Relay”
Porty typu „relay” są portami, które przepuszczają wszystkie sygnały bez ingerencji – pełnią rolę
prostego udostępnienia jakieś funkcjonalności, która jest np. zaimplementowana w podkapsule.
Porty typu relay umożliwiają natychmiastowe przesłanie (delegację) sygnału na dalej bez potrzeby
uruchamiania maszyny stanowej danej kapsuły – brak opóźnienia.
2.1.2 Typu „End”
Porty typu „End” w przeciwieństwie do portów typu „relay” posiadają implementację obsługi danego
sygnału. Nadejście sygnału na porcie typu „end” wymusza uruchomienia maszyny stanowej danej
kapsuły. Z wykorzystaniem portów „końcowych” maszyna stanowa może wygenerować zdarzenie,
które spowoduje wysłanie sygnału przez dany port.
Wysyłanie i odbieranie sygnałów odbywa się asynchronicznie, dlatego porty tego typu muszą
posiadać implementację bufora sygnałów.
2.1.3 Modelowanie
Port jest modelowany z wykorzystaniem stereotypu „port”, który jest nakładany na klasę. Ponieważ
port jest klasą abstrakcyjną dopiero jego użycie definiuje czy jest to port typu „End” czy „Relay”.
Konkretna klasa definiującą port jest również implementacją roli w danym protokole, w którym jest
użyta.
Rysunek 5 Przedstawienie idei portów na diagramie UML
Powyższy diagram (Rysunek 5) przestawia taką strukturę. Klasa PortClassX oznaczona stereotypem
„port” przestawia idee portu w modelowaniu RT. Przedstawiony port pełni rolę maste (stereotyp
protocol role) w protokole ProtocolA (stereotyp protocol). Zaś sam port należy do kapsuły
7
CapsuleClassA. Niektóre pojęcia z tego diagramu zostaną przestawione w późniejszych rozdziałach:
2.3 Kapsuły i 3.2 Protokoły.
Rysunek 6 Przedstawienie na diagramie klas widoczności poszczególnych portów oraz ich krotności.
Na diagramie klas (Rysunek 7) można również przedstawić dodatkowe informacje: krotność (nawiasy
[]) ,widoczność (private/public.protected) oraz rolę (tutaj ::master). Podobnie rolę można
przedstawić na diagramie kolaboracji – wtedy czytelnej pokazane są powiązania (Rysunek 7)..
Rysunek 7 Porty i protokóły na diagramie kolaboracji
2.2 Konektor
Konektory reprezentują kanał komunikacyjny, który wspiera transmisję z wykorzystaniem protokółu
opartego na sygnałach. Należy zauważyć, że konektor umożliwia łączenie tylko takich portów, które
implementują odpowiadające sobie końcówki protokołu. W szczególności porty nie muszą należeć do
tego samego protokołu, ale ich implementacja musi być zgodna ze specyfikacją wykorzystywanego
protokołu.
2.2.1 Konektor a protokół
Podobieństwo między pojęciem konektora a protokołem może sugerować, że są one równoważne.
Różnica pomiędzy nimi polega na tym, że protokół jest abstrakcyjnym pojęciem definiującym
zachowanie, natomiast konektor jest konkretną implementacją protokołu- może się zdarzyć, że
konektor implementuje specyfikację kilku protokołów jednocześnie.
Zazwyczaj konektory zachowują się jak pasywne medium, niewpływające na przesyłane komunikaty,
jednak czasami, konektory mogą być wykorzystywane do bardziej zaawansowanego modelowania:
mogą porzucać niektóre komunikaty, zmieniać ich kolejność, duplikować wiadomości itp..
2.2.2 Modelowanie
W UML’u konektory modelowane są jako skojarzenie i są deklarowane jako rola danego skojarzenia
na diagramie kolaboracji. Skojarzenie istnienie pomiędzy przynajmniej dwoma portami
odpowiadających sobie klas. W niektórych przypadkach koniecznie jest zamodelowanie konektora
jako klasy, ponieważ posiada swój stan, który wpływa na jego zachowanie.
Modelowanie na diagramie nie wymaga użycia specjalnego stereotypu, dlatego też nie ma
konieczności wprowadzanie rozszerzenia języka UML. Na diagramie klas konektor jest powiązaniem
(association) lub osobną klasą; konektory z więcej niż dwoma końcówkami są modelowane jako romb
8
(tak samo jak wielokrotne powiązania). Na diagramie kolaboracji konektor jest pokazywany w
połączeniu z klasą, która z niego korzysta.
Rysunek 8 Konektory na diagramie kolaboracji
2.3 Kapsuły
Kapsuły są z punktu widzenia tego podejścia architektonicznego centralną jednostką. Odpowiedzialne
są za reprezentowanie centralnych części systemu, które typowo komunikują się z innymi kapsułami
poprzez porty. Jak zostało wcześniej wspomniane kapsuła może zawierać w sobie podkapsuły, które
komunikują się ze środowiskiem poprzez porty nadrzędnej kapsuły. [7]
Kapsuła może zawierać w sobie implementacje maszyny stanowej, która może wysyłać i odbierać
sygnały – sposób implementacji tej maszyny odzwierciedla zachowanie kapsuły widzianej jako część
systemu przez pozostałe kapsuły.
Budowa wewnętrzna kapsuły może być w całości przedstawiona na diagramie kolaboracji, który
zawiera:
•
•
•
•
Podkapsuły
Porty
Konektory
Maszyna stanowa
Porty i podkapsuły nie mogą istnieć w oderwaniu od nadrzędnej kapsuły – ich cykl życia jest
kontrolowany. Podkapsuły mogą być tworzone w dowolnym momecie po utworzeniu nadrzędnej
kapsuły, a usuwane mogą być w dowolnym momencie przed jej usunięciem. Takie podejście pokrywa
się pojęciem kompozycji w UML’u.
2.3.1 Pluginy
Struktura kapsuły może zawierać w sobie plug-iny. Są to miejsca, w których podkaspuły mogą być
ładowane dynamicznie. Istnienie pluginów jest wymagane, ponieważ implementacja konkretnej
kapsuły może pozostać nieznana w czasie kompilacji – wybór może zależeć od konkretnego stany
maszyny w czasie uruchomienia. Połączenie do tej dynamicznie ładowanej kapsuły jest nawiązywane
przez konektor, który jest powiązany z danym pluginem.
2.3.2 Maszyna stanowa
Jedną z części kapsuły może być maszyna stanowa. Wyróżnia się ona od innych składowych tym, że:
•
•
•
•
Nie może być złożona z podkapsuł, ale może być dekomponowana na prostsze pod maszyny
stanowe.
Tylko jedna maszyna stanowa może istnieć w ramach danej kapsuły.
Odbiera sygnały od wszystkich portów typu „end” w kapsule
Może wysyłać sygnały przez wszystkie porty kapsuły, do której należy.
9
•
Tylko maszyna stanowa ma dostęp do wewnętrznej struktury kapsuły- może tworzyć
dynamicznie podkapsuły.
Rysunek 9 Maszyna stanowa w kapsule
2.3.3 Modelowanie
Na diagramach UML kapsuła jest przedstawiana jako klasa ze stereotypem „capsule”. Kapsuła jest
powiązana relacją kompozycji z portami i swoimi podkapsułami i wewnętrznymi konektorami.
Wszystkie części kapsuły z wyjątkiem portów publicznych mają dostęp typu „protected”.
Podkapsuły na diagramie kolaboracji również przedstawiane są w postaci klasy, z którymi
współpracuje nadrzędna kapsuła. Rozróżnienie czy dany obiekt przedstawia kapsułę czy plugin
odbywa się na podstawie wartości pola typu true/false, którego wartość jest ustalana dla danej
kapsuły.
Rysunek 10 Kapsuły i podkapsuły na diagramie kolaboracji
W przypadku zwykłych podkapsuł asocjacja z nadrzędną kapsułą przedstawiana jest jako kompozycja.
W przypadku pluginów może być również przedstawiana jako agregacja. Kapsuły pełniące rolę
pluginów mogą występować ze stereotypem „plugin”, zaś maszyny stanowe przedstawiane są jako
owal. Czarne kwadraty to porty (publiczne lub chronione – o widoczności typu protected).
10
Rysunek 11 Kapsuły
uły i podkapsuły na diagramie klas.
klas CapsuleClassB jest tutaj pluginem
3 Zachowanie
3.1 Modelowanie czasu
3.1.1 Funkcja zysku
Dla teorii i praktyki systemów czasu rzeczywistego przydatne jest pojęcie funkcji zysku.
zysku Funkcja zysku
jest funkcją zależną przede wszystkim od czasu i określa korzyść ze zrealizowania zadania przez
system. Źródłem ograniczeń czasowych są zazwyczaj zjawiska fizyczne zachodzące w świecie
rzeczywistym.
Zadanie zostało przez system zrealizowane poprawnie, jeśli z chwilą zakończenia tego zadania
wartość
ość funkcji zysku jest większa od zera.
zera Dla systemów czasu rzeczywistego charakterystyczne są
trzy funkcje zysku (t0 to chwila zlecenia zadania systemowi, uznawana za początek realizacji tego
zadania, tT to najpóźniejsza chwila, w której przetwarzanie może zostać zakończone (ang. deadline))
[5]:
Z tych trzech funkcji wyprowadza się często
c
podział systemów czasu rzeczywistego na "hard"(1.),
"firm"(2.) i "soft"(3.).
3.1.2 Upływ czasu na diagramie UML
Przedstawiony poniżej (Rysunek
Rysunek 12)) diagram pokazuje w jaki sposób można modelować ograniczenia
czasowe nakładane na poszczególne elementy systemu. Ograniczenia te zazwyczaj są górnymi tzn.
ważne jest, aby system odpowiedział „nie później niż”. Wcześniejsza odpowiedź jest zazwyczaj
dopuszczalna. Jeśli konieczna jest odpowiedź systemu w dokładnie określonej chwili czasu korzysta
się z usługi czasowej w opisanej w rozdziale 3.1.3. [8]
11
Rysunek 12 Zależności czasowe na diagramie sekwencji
3.1.3 Usługa upływu czasu
W systemach czasu rzeczywistego najważniejszym ograniczeniem jest czas. Zależności jakie mogą być
modelowane to:
•
•
Wyzwalanie zdarzenia w określonym momencie w czasie
Wyzwalanie zdarzenie po upływie określonego czasu
Zazwyczaj do modelowanie upływu czasu używa się centralnej usługi informującej o upływie czasu.
Powyższa usługa jest dostępna przez zwykły port, gdzie czas żądany interwał czasu konwertowany
jest na zdarzenie. W ten sposób maszyna stanowa może być informowana o upływie zadanego czasu
lub o nadejściu określonego momentu w czasie. [9]
3.1.3.1 Modelowanie
Nie jest konieczne wprowadzanie dodatkowych rozszerzeń do UML’a – usługa czasowa może być
modelowana jako port typu „end”.
3.1.4 Timed Transition Net
Innym sposobem przedstawienia upływu czasu jest reprezentacja w postaci sieci przejść. Ten sposób
modelowania składa się z dwóch etapów [4]:
1. Określenie minimalnego i maksymalnego przedziału czasu jaki może zająć operacja w ramach
przejścia pomiędzy dwoma stanami (Rysunek 13)
Rysunek 13 Czas trwania podstawowej operacji
2. Określenie maksymalnego i minimalnego czasu odpowiedzi całego systemu na podstawia
analizy możliwych zmian stanów maszyny stanowej.
12
Rysunek 14 Zależności czasowe zachodzące przy zmiane stanu
3.2 Protokoły
Protokół jest to specyfikacja pożądanego zachowanie, które może mieć miejsce w przypadku użycia
konektora – rodzaj uzgodnienia pomiędzy uczestnikami. Na protokół składają się uczestnicy, którzy
pełnią określone role. Każda rola jest określona przez unikatową nazwę i zestaw sygnałów, które są
odbierane i które mogą być wysyłane przez końcówkę połączenia. Na protokół może się również
składać zdefiniowane stany i przejścia między nimi.
Szczególnym, ale najbardziej powszechnym przykładem protokołów są protokoły binarne, w których
występuje tylko dwóch uczestników.
3.2.1 Modelowanie
W UML’u rola w protokole jest modelowane za pomocą stereotypu „protocolRole”. Na rolę w
protokole składają się:
•
•
•
Zestaw sygnałów wejściowych
Zestaw sygnałów wyjściowych
Maszyna stanowa
Rysunek 15 Rola w protokole na diagramie klas
W UML’u protokół jest modelowany poprzez użycie stereotypu „protocol” na klasie, która jest w
relacji kompozycji z rolami danego protokołu. Kolejne protokóły mogą powstawać poprzez
dziedziczenie z już istniejących.
13
Rysunek 16 Protokół binarny na diagramie klas (tylko 2 rodzaje sygnałów)
3.3 Maszyny stanowe
Maszyny stanowe mogą występować jako część nadrzędnej kapsuły albo jako specyfikacja
dozwolonych przejść ramach protokołu.
Często zachodzi sytuacja, kiedy w ramach jednej kapsuły dwa porty pełnią tą samą rolę w tym samym
rodzaju protokółu, dlatego konieczne jest wprowadzenie mechanizmu rozróżniania źródła danego
sygnału, który dociera do maszyny stanowej. Takie zachowanie określane jest jako „port based
triggering”, czyli wyzwalanie oparte na portach (a nie na sygnałach) – może to być modelowane na
UML’u jako strażnicy. [9]
3.3.1 Modelowanie
Na diagramach UML’a maszyny stanowe są przedstawiane przy wykorzystaniu standardowego
zapisu- nie jest konieczne wprowadzanie rozszerzeń na potrzeby modelowania systemów czasu
rzeczywistego.
3.3.2 Hierarchia
Istotną w czasie projektowania złożonych systemów czas rzeczywistego może być abstrakcja w czasie
tworzenia maszyn stanowych. Polega ona na tym, że bardziej szczegółowe maszyny stanowe mogą
się zawierać w węzłach bardziej ogólnych maszyn (Rysunek 17).
Rysunek 17 Zawieranie się maszyn stanowych w sobie
14
3.3.3
Modelowanie zawierania
Rysunek 18 Maszyna stanowa na wysokim poziomie abstrakcji w UML'u
Jak przedstawia poniższy rysunek wewnętrzna maszyna stanowa może być modelowana na różne
sposoby. Bardziej ogólna maszyna jest nieświadoma szczegółów implementacji maszyny
wewnętrznej, dzięki czemu zmiany w tej wewnętrznej nie powodują konieczności zmiany maszyny
zewnętrznej.
Rysunek 19 Dwie różnie możliwe implementacji szczegółowej maszyny stanowej
4 Podsumowanie
Używanie UML’a do modelowania systemów czasu rzeczywistego ma wiele zalet m.in.:
•
•
UML jest znanym i szeroko wspieranym standardem, dlatego używanie jego rozszerzeń z
wykorzystaniem dostępnych narzędzi przyspiesza proces nauki i projektowania.
Oczekiwana złożoność systemów czasu rzeczywistego powoduje konieczność wprowadzanie
specyficznego do tego celu sposobu modelowania aplikacji
Modelowanie struktury z wykorzystaniem UML również przynosi wymierne korzyści:
•
•
Modelowanie graficzne struktury powoduje jej łatwiejsze zrozumienie i zazwyczaj przyczynia
się do uniknięcia wielu prostych błędów
Wprowadza abstrakcję na wysokim poziomie
o Protokołów
o Współbieżnie uruchamianych obiektów – kapsuł
15
o
Dynamicznych struktur – pluginów
Modelowanie zachowania podobnie jak modelowanie struktury:
•
•
•
Pozwala na graficzne modelowanie
Umożliwia przedstawianie hierarchicznie maszyn stanowych, co powoduje zmniejszenie
złożoność oraz zwiększenie czytelności projektu
Ułatwia przedstawianie upływu czasu – usługa czasowa
5 Bibliografia
[1] www.ieee.org
[2] Selic, B., Gullekson, G., and Ward, P., “Real-Time Object-Oriented Modeling,”
[3] Z. Gu and K. G. Shin, “Synthesis of Real-Time Implementation from UML-RT Models”
[4] Jyhjong Lin, David Chenho Kung, and Pei Hsia “Towards A Real-Time Object-Oriented Modeling
Approach”
[5] http://en.wikipedia.org/wiki/Real-time_computing
[6] www.kik.pcz.pl
[7] Bran Selic, Jim Rumbaugh, “UML for Modeling Complex Real-Time Systems”
[8] Susanne Graf, Ileana Ober and Iulian Ober “A real-time profile for UML”
[9] www.google.com
[10] www.books.google.com
[11] Robert C Martin “Agile Principles, Patterns, and Practices”
16