Wprowadzenie do sieci Petriego Paweł Witas Wprowadzenie do sieci Petriego
Spełnione są warunki wejściowe Co to są sieci Petriego ? Sieci warunków i zdarzeń Każdy warunek jest reprezentowany przez okrąg. Każde zdarzenie jest reprezentowane przez kwadrat. Spełnienie jakiegoś warunku oznacza się umieszczając kropkę (znacznik) w odpowiadającym mu okręgu. Zbiór warunków spełnionych w pewnej konfiguracji systemu nazywamy przypadkiem. e warunki wejściowe warunki wyjściowe Spełnione są warunki wejściowe
Spełnione są warunki wejściowe Co to są sieci Petriego ? Sieci warunków i zdarzeń Każdy warunek jest reprezentowany przez okrąg. Każde zdarzenie jest reprezentowane przez kwadrat. Spełnienie jakiegoś warunku oznacza się umieszczając kropkę (znacznik) w odpowiadającym mu okręgu. Zbiór warunków spełnionych w pewnej konfiguracji systemu nazywamy przypadkiem. warunki wejściowe warunki wyjściowe e Spełnione są warunki wejściowe i wystąpiło zdarzenie „e”
Co to są sieci Petriego ? Sieci warunków i zdarzeń Każdy warunek jest reprezentowany przez okrąg. Każde zdarzenie jest reprezentowane przez kwadrat. Spełnienie jakiegoś warunku oznacza się umieszczając kropkę (znacznik) w odpowiadającym mu okręgu. Zbiór warunków spełnionych w pewnej konfiguracji systemu nazywamy przypadkiem. e warunki wejściowe warunki wyjściowe Spełnione są warunki wyjściowe
Przykładowa sieć warunków i zdarzeń Początek lata Wiosna Lato Zima lub wiosna Początek wiosny Początek jesieni Nie jesień Zima Jesień Początek zimy
Przykładowa sieć warunków i zdarzeń Początek lata Wiosna Lato Zima lub wiosna Początek wiosny Początek jesieni Nie jesień Zima Jesień Początek zimy
Przykładowa sieć warunków i zdarzeń Początek lata Wiosna Lato Zima lub wiosna Początek wiosny Początek jesieni Nie jesień Zima Jesień Początek zimy
Przykładowa sieć warunków i zdarzeń Początek lata Wiosna Lato Zima lub wiosna Początek wiosny Początek jesieni Nie jesień Zima Jesień Początek zimy
Przykładowa sieć warunków i zdarzeń Początek lata Wiosna Lato Zima lub wiosna Początek wiosny Początek jesieni Nie jesień Zima Jesień Początek zimy
Przykładowa sieć warunków i zdarzeń Początek lata Wiosna Lato Zima lub wiosna Początek wiosny Początek jesieni Nie jesień Zima Jesień Początek zimy
Przykładowa sieć warunków i zdarzeń Początek lata Wiosna Lato Zima lub wiosna Początek wiosny Początek jesieni Nie jesień Zima Jesień Początek zimy
Przykładowa sieć warunków i zdarzeń Początek lata Wiosna Lato Zima lub wiosna Początek wiosny Początek jesieni Nie jesień Zima Jesień Początek zimy
Przykładowa sieć warunków i zdarzeń Początek lata Wiosna Lato Zima lub wiosna Początek wiosny Początek jesieni Nie jesień Zima Jesień Początek zimy
Sieci miejsc i przejść (tranzycji) Każde miejsce jest reprezentowane przez okrąg i posiada określoną pojemność znaczników (ozn. przez K) Każde przejście jest reprezentowane przez kwadrat i jest aktywną składową systemu mogącą produkować, przesyłać i zmieniać obiekty (reprezentowane przez znaczniki). Łuki wskazują, które składowe systemu są ze sobą bezpo- średnio połączone i w których kierunkach obiekty mogą przepływać przez sieć. Każdy łuk sieci posiada wagę (liczbę naturalną różną od 0) Sieci składające się z miejsc i przejść modelują właściwo- ści systemu związane z liczbą, rozkładem i przepływem obiektów, których poszczególnych egzemplarzy się nie rozróżnia
Sieci miejsc i przejść Przejście się odpala, usuwając z każdego miejsca wejściowego ilość znaczników równą wadze odp. łuku i dodając do każdego miejsca wyjściowego ilość znaczników równą wadze odp. łuku. 4 1 miejsca wejściowe miejsca wyjściowe 2 2
Sieci miejsc i przejść Przejście się odpala, usuwając z każdego miejsca wejściowego ilość znaczników równą wadze odp. łuku i dodając do każdego miejsca wyjściowego ilość znaczników równą wadze odp. łuku. 4 1 miejsca wejściowe miejsca wyjściowe 2 2
Sieci miejsc i przejść Przejście się odpala, usuwając z każdego miejsca wejściowego ilość znaczników równą wadze odp. łuku i dodając do każdego miejsca wyjściowego ilość znaczników równą wadze odp. łuku. 4 1 miejsca wejściowe miejsca wyjściowe 2 2
Sieci miejsc i przejść Sytuacje, w których przejście nie jest gotowe do odpalenia K = 3 2 K = 2 2 K = 2
Sieci miejsc i przejść Sytuacje, w których przejście nie jest gotowe do odpalenia K = 4 2 K = 3 3 K = 3
Przykład sieci miejsc i przejść: System złożony z producenta i dwóch konsumentów - bufor może zawierać co najwyżej pięć znaczników - producent generuje w każdym kroku trzy znaczniki - co najwyżej jeden konsument ma w danej chwili dostęp do bufora - podczas dostępu do bufora każdy konsument usuwa dwa znaczniki - kroki produkcji są zliczane
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent rozpoczyna działanie w stanie S1 Konsumenci rozpoczynają działanie w stanie S6
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent wytwarza trzy znaczniki Jeden z konsumentów przechodzi na pocz. kolejki
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent przetwarza dane Konsument w S7 może pobrać dwa znaczniki
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent przetwarza dane Konsument pobiera dwa znaczniki z bufora
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent przetwarza dane Konsument przetwarza dane znajdując się w S5
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent przetwarza dane Drugi konsument przecho- dzi na początek kolejki
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent przetwarza dane Drugi konsument czeka na producenta
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent kończy przetwarzanie danych Drugi konsument czeka na producenta
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent może wytworzyć trzy znaczniki. Drugi konsument czeka na producenta
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent wytwarza trzy znaczniki Drugi konsument czeka na producenta
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent przetwarza dane Drugi konsument może pobrać dwa znaczniki
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent przetwarza dane Drugi konsument pobiera dwa znaczniki z bufora
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent przetwarza dane Konsumenci przetwarzają dane
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent kończy przetwarzanie danych Konsumenci przetwarzają dane
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent może wytworzyć trzy znaczniki. Konsumenci przetwarzają dane
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent wytwarza trzy znaczniki Jeden z konsumentów kończy przetwarzać dane
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent przetwarza dane Pierwszy konsument przeszedł na koniec kolejki
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent kończy przetwarzanie danych Konsumenci przesuwają się w kolejce FIFO
s3 s1 s7 s6 s4 s2 s5 Przykład sieci miejsc i przejść: t5 t1 t2 t3 t4 System złożony z producenta i dwóch konsumentów Licznik K= ¥ K=1 K=1 s3 s1 K=5 s7 t5 t1 t2 t3 s6 K=2 3 2 K=1 K=2 s4 Bufor s2 s5 t4 Producent czeka na opróżnienie bufora Konsument w S7 może pobrać dwa znaczniki
Żywotność sieci miejsc i przejść Istnieją różne kryteria żywotności sieci. Znakowanie możemy nazwać żywym jeżeli: - dla każdego znakowania następniczego istnieje pewne przejście aktywne (przygotowane do odpalenia), - każde przejście może czasami stawać się aktywne, - przy każdym znakowaniu każde przejście może stać się aktywne Sieć można nazwać żywą, jeżeli przyjmując dowolne z powyższych pojęć żywotności, możemy otrzymać znakowanie żywe.
Ta sieć miejsc i przejść jest żywa Pojemność znaczników każdego miejsca wynosi 1
Ta sieć miejsc i przejść jest żywa Pojemność znaczników każdego miejsca wynosi 1
Ta sieć miejsc i przejść jest żywa Pojemność znaczników każdego miejsca wynosi 1
Ta sieć miejsc i przejść jest żywa Pojemność znaczników każdego miejsca wynosi 1
Ta sieć miejsc i przejść jest żywa Pojemność znaczników każdego miejsca wynosi 1
Ta sieć miejsc i przejść jest żywa Pojemność znaczników każdego miejsca wynosi 1
Ta sieć miejsc i przejść jest żywa Pojemność znaczników każdego miejsca wynosi 1
Ta sieć miejsc i przejść jest żywa Pojemność znaczników każdego miejsca wynosi 1
Ta sieć miejsc i przejść jest żywa Pojemność znaczników każdego miejsca wynosi 1
Ta sieć miejsc i przejść nie jest żywa Pojemność znaczników każdego miejsca wynosi 1
Czasowe sieci Petriego Czasową sieć Petriego możemy przedstawić jako zbiór (P, T, B, F, H, M0, SIM), gdzie: P = {p1,...,pm} - zbiór miejsc, T = {t1,...,tn} - zbiór przejść (z ang. tranzycji), B: P ´ T ® N - funkcja wagi łuku (przypisująca łukowi liczbę) z miejsca do przejścia F: T ´ P ® N - funkcja wagi łuku z przejścia do miejsca H: T ´ P ®1 - funkcja wagi łuku hamującego M0: P ® N - funkcja inicjująca znakowanie początkowe SIM: T ® Q+ ´ (Q+ È ¥) jest funkcją przyporządkowującą przejściu statyczny przedział czasu odpaleń. (Q+ jest zbiorem liczb rzeczywistych nieujemnych). Zatem do każdego przejścia ti zostaną przypisane dwie liczby takie, że: oraz
Czasowe sieci Petriego Przejście t i jest przygotowane (ze względu na znakowanie) do odpalenia wtw gdy spełnione są warunki: Zatem, wtedy gdy w każdym miejscu, z którego prowadzi łuk do przejścia t i znajduje się co najmniej taka liczba znaczników jaka jest waga łuku, oraz gdy w każdym miejscu, do którego prowadzi łuk hamujący, nie ma znaczników.
Czasowe sieci Petriego Przejście t i jest przygotowane (ze względu na czas) do odpalenia wtw gdy spełniony jest warunek: gdzie: q - względny czas odpalania, t k - przejście przygotowane do odpalenia ze względu na znakowanie Przejście jest przygotowane do odpalenia, jeżeli jest przygotowane do odpalenia ze względu na czas i znakowanie. Odpalenie przejścia t i polega na usunięciu znaczników z każdego miejsca, z którego prowadzi łuk do przejścia t i oraz na dodaniu znaczników do każdego miejsca, do którego prowadzi łuk z przejścia t i . Ilość usuniętych i dodanych znaczników jest równa wadze łuku.
Paweł Witas Specyfikacja i projektowanie oprogramowania czasu rzeczywistego wspomagane przez sieci Petriego.
Dlaczego należy stosować metody formalne przy projektowaniu systemów czasu rzeczywistego ? Testowanie i śledzenie wykonania („odpluskwianie”) systemu czasu rzeczywistego jest trudne i czasochłonne. Awarie systemów czasu rzeczywistego są bardziej niebezpieczne i kosztowne, niż awarie innych systemów. Zachodzi konieczność zapewnienia niezawodności systemu Niektóre sytuacje powodujące awarię: - niezachowanie kryteriów żywotności (zastój, zagłodzenie) - przekroczenie maksymalnego czasu reakcji - brak reakcji na zaistniałe zdarzenie - usługa dostarczana przez system jest różna od wymaganej
Fazy realizacji systemu czasu rzeczywistego Analiza wymagań Wdrożenie systemu 1 Specyfikacja Ocena i akceptacja Projektowanie Testowanie systemu 2 Programowanie Testowanie modułów Integracja oprogramowania ze sprzętem 1 - Interakcja z klientem 2 - Brak interakcji z klientem
Analiza wymagań Analiza wymagań jest procesem iteracyjnym, który kończy się sformułowaniem wymagań. Niezrozumienie wymagań może prowadzić do utworzenia systemu innego niż wymagany przez klienta. Analiza wymagań składa się z następujących etapów: 1. Analiza dziedzinowa polegająca na określeniu słownika (pojęć używanych w dziedzinie (branży) klienta) oraz relacji między elementami słownika 2. Zrozumienie i opis koncepcji operacyjnej łącznie z podaniem ograniczeń czasowych. 3. Sformułowanie wymagań w postaci dokumentu, który jest zrozumiały dla klienta.
Etap 1: Analiza dziedzinowa Pierwszy etap analizy wymagań polega na zrozumieniu otoczenia i celu konstruowanego systemu. Tworzony jest słownik ułatwiający zrozumienie terminologii używanej przez klienta. Słownik ten składa się zazwyczaj z szeregu definicji opisanych z zastosowaniem języka naturalnego. Podstawowe obiekty definiowane w słowniku są połączone przez relacje. Charakter tych relacji zależy od stosowanego podejścia. - w podejściu strukturalnym używa się diagramów przepływu danych (DFD). - w podejściu obiektowym używa się diagramów związków encji (ERD) opisujących relacje między danymi.
Etap 2: Zrozumienie i opis koncepcji operacyjnej łącznie z podaniem ograniczeń czasowych W pierwszym podetapie opisuje się zdarzenia i żądania generowane przez otoczenie. Jest to zazwyczaj realizowane w postaci Tablicy Zdarzeń .
Etap 2: Zrozumienie i opis koncepcji operacyjnej łącznie z podaniem ograniczeń czasowych Każda odpowiedź systemu ma podobną postać jak zdarzenie, stąd zbiór wszystkich odpowiedzi systemu może być zebrany również w postaci Tablicy Odpowiedzi .
Etap 2: Zrozumienie i opis koncepcji operacyjnej łącznie z podaniem ograniczeń czasowych W drugim podetapie statyczny opis z pierwszego podetapu uzupełnia się przez podanie scenariuszy opisujących interakcję między otoczeniem a systemem. System jest traktowany jako czarna skrzynka produkująca odpowiedzi na zdarzenia występujące w otoczeniu. Scenariusze są bliskie sekwencjom testującym używanym fazie testowania systemu, gdzie bada się odpowiedzi (reakcje) systemu na generowane zdarzenia. Scenariusze mogą być więc wykorzystane przy planowaniu tych sekwencji w fazie testowania systemu.
Specyfikacja Specyfikacja jest dokumentem, na podstawie którego wykonana będzie ocena i odbiór wykonanego systemu. Powinna ona bardzo precyzyjnie określać działanie tworzonego systemu wewnątrz globalnego systemu, oraz zawierać opis sekwencji testujących. Specyfikacja musi zostać zatwierdzona przez klienta przed rozpoczęciem projektowania. Faza specyfikacji jest niezwykle istotna, gdyż błędy w specyfikacji kosztują niewspółmiernie dużo, jeśli zostaną wykryte dopiero w następnych fazach realizacji. Faza specyfikacji składa się zazwyczaj z dwóch etapów, gdzie w pierwszym etapie definiuje się interfejs między systemem a otoczeniem, natomiast w drugim etapie opisywane jest zachowanie systemu.
Etap 1: Interfejs między systemem a otoczeniem Zdefiniowane w fazie analizy wymagań tablice zdarzeń i odpowiedzi są dobrymi danymi wejściowymi do opisu interfejsu między systemem a otoczeniem. Interfejs może być określony przez diagram składający się z bloków specyfikujących moduły otoczenia (czujniki, przyciski, wyświetlacze, urządzenia wykonawcze) oraz ze strzałek łączących bloki. Wyróżnia się strzałki pojedyncze ® reprezentujące przepływ sygnałów oraz podwójne Þ specyfikujące przepływ danych. Diagram ten może być uszczegółowiony przez informacje zawarte w odpowiednich tablicach. Każdy wiersz tablicy opisuje wówczas jeden przepływ i jego atrybuty, np. źródło i adres docelowy, typ danych (ciągłe, binarne,dyskretne o zadanym zakresie) i własności dynamiczne (czas życia).
Etap 2: Zachowanie systemu W tym etapie specyfikacji definiuje się oczekiwane zachowanie systemu przy pomocy czasowych sieci Petriego. K = 1 K = 2 sygnał z otoczenia część buforowa K = n bufor akcja wykonana przez system (uproszczenie) K = 1 K = 1 obsługa
Etap 2: Zachowanie systemu W tym etapie specyfikacji definiuje się oczekiwane zachowanie systemu przy pomocy czasowych sieci Petriego. K = 1 K = 2 sygnał z otoczenia część buforowa K = n bufor akcja wykonana przez system (uproszczenie) K = 1 K = 1 obsługa
Etap 2: Zachowanie systemu W tym etapie specyfikacji definiuje się oczekiwane zachowanie systemu przy pomocy czasowych sieci Petriego. K = 1 K = 2 sygnał z otoczenia część buforowa K = n bufor akcja wykonana przez system (uproszczenie) K = 1 K = 1 obsługa
Etap 2: Zachowanie systemu W tym etapie specyfikacji definiuje się oczekiwane zachowanie systemu przy pomocy czasowych sieci Petriego. K = 1 K = 2 sygnał z otoczenia część buforowa K = n bufor akcja wykonana przez system (uproszczenie) K = 1 K = 1 obsługa
Etap 2: Zachowanie systemu W tym etapie specyfikacji definiuje się oczekiwane zachowanie systemu przy pomocy czasowych sieci Petriego. K = 1 K = 2 sygnał z otoczenia część buforowa K = n bufor akcja wykonana przez system (uproszczenie) K = 1 K = 1 obsługa
Etap 2: Zachowanie systemu W tym etapie specyfikacji definiuje się oczekiwane zachowanie systemu przy pomocy czasowych sieci Petriego. K = 1 K = 2 sygnał z otoczenia część buforowa K = n bufor akcja wykonana przez system (uproszczenie) K = 1 K = 1 obsługa
Etap 2: Zachowanie systemu W tym etapie specyfikacji definiuje się oczekiwane zachowanie systemu przy pomocy czasowych sieci Petriego. K = 1 K = 2 sygnał z otoczenia część buforowa K = n bufor akcja wykonana przez system (uproszczenie) K = 1 K = 1 obsługa
Etap 2: Zachowanie systemu W tym etapie specyfikacji definiuje się oczekiwane zachowanie systemu przy pomocy czasowych sieci Petriego. K = 1 K = 2 sygnał z otoczenia część buforowa K = n bufor akcja wykonana przez system (uproszczenie) K = 1 K = 1 obsługa
Reguły dotyczące konstrukcji sieci Petriego opisującej zachowanie systemu: 1. Przypisz strzałkę wejściową do każdego przejścia, którego wykonanie (firing) zależy od odpowiednich sygnałów/danych generowanych przez otoczenie. 2. Przypisz strzałkę wyjściową do każdego przejścia, którego wykonanie stanowi zakończenie akcji (obsługi) oraz odpowiednie sygnały/dane są wysyłane do otoczenia. 3. Sprawdź, czy porządek akcji definiowany przez sieć Petriego jest zgodny z odpowiadającymi mu sekwencjami określonymi w scenariuszach (w fazie analizy wymagań). 4. Sprawdź zachowanie dostępności systemu dla sygnałów wejściowych, gdy system jest zajęty przetwarzaniem danych. 5. Zweryfikuj kompletność sygnałów we/wy, które są użyte w sieci Petriego - porównaj z definicją interfejsu. 6. Sprawdź kompletność akcji (obsług) opisanych przez sieć Petriego w porównaniu do określonych w scenariuszach.
Projektowanie wstępne Celem projektowania wstępnego jest podział systemu na zadania i zdefiniowanie interfejsu między zadaniami. Projektowanie wstępne może być traktowane jako przejście od zewnętrznego opisu systemu (specyfikacja) do opisu uwzględniającego wewnętrzną współbieżność procesów. Wynik podziału systemu na zadania może być zapisany w postaci diagramu, gdzie poszczególne bloki odpowiadają zadaniom, pojedyncze strzałki opisują przepływ sygnałów synchronizacyjnych, a podwójne opisują przepływ danych.
Zestaw reguł podziału systemu na zadania: 1. Dla każdej pary zdarzeń (zdarzenie_i, zdarzenie_j) zbadaj, czy odpowiadające im akcje powinny być realizowane w porządku sekwencyjnym, czy współbieżnie. Jeżeli wymagane jest, aby po obsłudze zdarzenia_i obowiązkowo nastąpiła obsługa zdarzenia_j, (lub odwrotnie), to obsługi tych zdarzeń powinny zostać zawarte w jednym zadaniu. W przeciwnym wypadku (współbieżność) obsługi tych zdarzeń należy umieścić w odrębnych zadaniach. 2. Dla każdej pary (zdarzenie_i, akcja_j) zbadaj, czy obsługa zdarzenia_i implikuje sekwencyjne wykonanie akcji_j. Jeśli występuje taka sekwencyjna zależność, to obsługę zdarzenia_i oraz akcję_j należy umieścić w jednym zadaniu, w przeciwnym przypadku należy zdefiniować dwa zadania: jedno dla obsługi zdarzenia_i, drugie dla obsługi akcji_j.
Zestaw reguł podziału systemu na zadania: 3. Dla każdej pary (akcja_i, akcja_j) zbadaj, czy żądane jest ich sekwencyjne wykonanie. Jeśli tak, to należy je umieścić w jednym zadaniu, w przeciwnym przypadku należy utworzyć dwa zadania: oddzielne dla akcji_i oraz oddzielne dla akcji_j.
Projektowanie szczegółowe Celem projektowania szczegółowego jest określenie struktury wewnętrznej każdego z zadań. Sieć Petriego jest konstruowana dla każdego zadania określonego w etapie projektowania wstępnego. Postępowanie jest tu podobne jak w przypadku specyfikacji, ale przedmiot rozważań jest inny (dotyczy wewnętrznej struktury zadań). Projektowanie stanowi kolejny krok w kierunku rozwiązania problemu, zatem struktura zadań powinna uwzględniać nie tylko zagadnienia synchronizacji i komunikacji, lecz również strukturę odpowiednich algorytmów.
Reguły dotyczące konstruowania sieci Petriego: 1. Przypisz strzałkę wejściową do każdego przejścia, którego wykonanie zależy od odebrania sygnału synchronizacyjnego lub danych z innego zadania. 2. Przypisz strzałkę wyjściową do każdego przejścia, którego wykonanie kończy realizację akcji/obsługi i wysyła sygnał lub dane do innego zadania. 3. Sprawdź kompletność przepływów wejściowych i wyjściowych w sieci Petriego względem odpowiednich przepływów opisanych w fazie projektowania wstępnego
Reguły dotyczące konstruowania sieci Petriego: 4. Sprawdź dokładnie każdy przypadek, gdy zadanie oczekuje na sygnał lub dane z innego zadania i spróbuj stosować konstrukcję, która nie blokuje zadania oczekującego. Można uniknąć zawieszenia zadania przez przełączenie zadania na inny rodzaj działań. żądanie obsługi żądanie obsługi obsługa dostarczona obsługa zakończona Zadanie oczekujące na obsługę Zadanie wykonujące obsługę
Reguły dotyczące konstruowania sieci Petriego: 5. Przeprowadź adaptację struktury zadania, tak aby uwzględnić elementy i konstrukcje docelowego języka programowania, np.. struktura loop-select when ci => accept ei dla języka Ada. e1 e2 en c1 c2 cn . . .
Weryfikacja poprawności Systematyczne uwzględnianie poprawności w każdym kroku tworzenia oprogramowania, jest cechą charaktery- styczną zaproponowanego podejścia. Wyróżnia się dwa uzupełniające się sposoby postępowania: Tworzenie systemu na podstawie opisu z faz poprzednich z zastosowaniem reguł zapewniających spójność tworzenia. Sprawdzanie poprawności jako odpowiedniości opisów w bieżącej fazie w porównaniu do poprzedniej.
Weryfikacja poprawności Zastosowanie sieci Petriego umożliwia komputerowe wspomaganie analizy poprawności w fazie specyfikacji i projektowania systemu (przy pomocy edytora sieci Petriego, wyposażonego w moduł do badania własności sieci). 1. W fazie specyfikacji możliwe jest sprawdzenie czy specyfikacja została prawidłowo skonstruowana. Analiza dotyczy wówczas zarówno własności bezpieczeństwa, tzn. sprawdzenia, czy niepożądane (złe) stany (blokada, zakleszczenie) nigdy nie wystąpią (dowód niewprost), jak również własności żywotności, polegającej na sprawdzeniu, czy wybrane (dobre) stany (odpowiedź na zdarzenie, dostęp do zasobu) zostaną osiągnięte.
Weryfikacja poprawności 2. W fazie projektowania analiza może być prowadzona dwoma sposobami: Sprawdzenie, czy analogiczne własności, jak w przypadku specyfikacji są spełnione. Analiza ta dotyczy innego opisu systemu tj. systemu reprezentowanego przez zbiór współbieżnych zadań. Jest to związane z zachowaniem spójności tworzonego systemu. Analiza nowych własności, wynikających z dokładniej- szego opisu w danym etapie. Dotyczy to osiągalności ważniejszych ścieżek, stanów i współpracy między zadaniami.
Podsumowanie Zastosowanie sieci Petriego umożliwia systematyczne rozwijanie systemu z uwzględnieniem analizy poprawności. Formalny charakter tego narzędzia czyni proces tworzenia oprogramowania bardziej deterministycznym i uporządkowa- nym. W szczególności istotnie zwiększyły się możliwości systematycznej analizy poprawności i sterowania procesem wytwarzania oprogramowania. Sieci Petriego są aktualnie coraz powszechniej stosowane jako narzędzie do opisu i analizy własności ze względu na następujące cechy: przejrzysta i widoczna reprezentacja współbieżności; możliwości hierarchizacji (sieci kolorowane); komputerowe wspomaganie analizy własności; wyrażanie czasu i zależności czasowych.
Bibliografia Gilles Motet, Tomasz Szmuc „Specyfikacja i projektowanie oprogramowania czasu rzeczywistego wspomagane przez sieci Petriego” Wolfgang Reisig „Sieci Petriego”