DZIEKAN i RADA WYDZIAŁU ELEKTROTECHNIKI, AUTOMATYKI, INFORMATYKI i INŻYNIERII BIOMEDYCZNEJ AKADEMII GÓRNICZO-HUTNICZEJ im. ST. STASZICA W KRAKOWIE | |
---|---|
zapraszają na publiczną dyskusję nad rozprawą doktorską mgr Krzysztofa Balickiego |
|
FORMALNY OPIS WIZUALNEJ ALGEBRY PROCESÓW XCCS | |
Termin: | 28 listopada 2013 roku o godz. 12:00 |
Miejsce: | pawilon B-1, sala 4 Al. Mickiewicza 30, 30-059 Kraków |
PROMOTOR: | Dr hab. Marcin Szpyrka, prof. nadzw. AGH - Akademia Górniczo-Hutnicza |
RECENZENCI: | Prof. dr hab. inż. Zbigniew Huzar – Politechnika Wrocławska |
Prof. dr hab. inż. Tomasz Szmuc - Akademia Górniczo-Hutnicza | |
Z rozprawą doktorską i opiniami recenzentów można się zapoznać w Czytelni Biblioteki Głównej AGH, al. Mickiewicza 30 |
Formalny opis wizualnej algebry procesów XCCS
mgr Krzysztof Balicki
Promotor: dr hab. Marcin Szpyrka, prof. nadzw. AGH
Dyscyplina: Informatyka
W rozprawie w sposób formalny zdefiniowany wizualną algebrę procesów XCCS (ang. eXtended Calculus of Concurent Systems). Modele wyrażone w algebrze XCCS mają postać diagramów, które składają się z dwóch warstw: graficznej i tekstowej. Warstwa graficzna reprezentuje sekwencyjne składowe systemu współbieżnego i możliwe interakcje między nimi. Natomiast warstwa tekstowa dostarcza opisu zachowania dla sekwencyjnych składowych systemu. Dla modeli opisanych z wykorzystaniem algebry XCCS można dokonać formalnej analizy z zastosowaniem metod i narzędzi właściwych dla algebr CCS lub metod bazujących na analizie etykietowanych systemów przejść (LTS).
Język XCCS można potraktować w dwojaki sposób jako:
Mając na uwadze pierwsze z zastosowań w pracy opisano algorytm konwersji diagramów XCCS do algebr CCS. Algorytm ten dokonuje automatycznego re-etykietowania nazw akcji w taki sposób, aby w wynikowych skrypcie CCS pojawiły się tylko te synchronizacje, które zostały określone w warstwie graficznej na diagramie XCCS. Na potrzeby algorytmu konwersji dla diagramów XCCS opracowano formalne definicje dla tzw. konfliktów i zaciemnień. Konflikty wskazują etykiety portów składowych sekwencyjnych, które muszą zostać poddane re-etykietowaniu, aby wyeliminować niepożądane synchronizacje w wynikowych skrypcie CCS. Zaciemniania wskazują natomiast etykiety portów składowych sekwencyjnych, które muszą zostać poddane re-etykietowaniu, aby w wynikowym skrypcie CCS nie pojawiły akcje niewykonywalne, które na diagramie XCCS są wykonywalne.
Mając na uwadze drugie z zastosowań w pracy zdefiniowano rozszerzenie algebry CCS o koncepcję tagów. Koncepcja ta rozszerza algebrę CCS o nowy mechanizm synchronizujący, który nie wymaga re-etykietowania nazw akcji. Koncepcja tagów w prosty sposób eliminuje problem z przestrzenią nazw akcji w algebrze CCS, co jest szczególnie istotne w przypadku, gdy tworzymy modele systemów na bazie opracowanych wcześniej modułów. Skrypty CCS z mechanizmem tagów w sposób ściśle równoważny reprezentują diagramy XCCS co pozwala na generowania grafów przejść i analizę diagramów XCCS przy pomocy klasycznych metod znanych z algebr procesów. Analiza diagramów XCCS jest również możliwa poprzez generowanie „równoważnych” im skryptów CCS, ale wymaga to zaimplementowania mechanizmu sprzężenia zwrotnego, gdyż wynikowe skrypty CCS mogą zawierać re-etykietowane nazwy akcji. Warto podkreślić, że algorytm konwersji diagramów XCCS do skryptów CCS z tagami, który podano w rozprawie, jest znacznie prostszy od algorytmu opisanego poprzednio. Koncepcja tagów została również wykorzystana do semi-graficznej symulacji diagramów XCCS i jest znacznie bardziej czytelna niż ma to miejsce w przypadku czysto tekstowej symulacji znanej z narzędzi właściwych dla algebr CCS (CWB).
Alternatywna metodą weryfikacji własności modeli z języku XCCS jest wykorzystanie technik weryfikacji modelowej i pakietu CADP. W tym celu dla modelu generowany jest etykietowany system przejść (graf LTS), a oczekiwane własności są specyfikowane z użyciem logiki modalnej μ. Weryfikacja spełnialności formuł jest w tym przypadku realizowana z użyciem pakietu CADP.
Ponadto, diagramy XCCS rozszerzono o mechanizm hermetyzacji znany z obiektowych języków programowania. Udział w synchronizacji mogą brać tylko te akcje składowych sekwencyjnych diagramu, które odpowiadają etykietom portów komunikacyjnych. Pozostałe akcje są wewnętrzne i nie mogą synchronizować.