Formalizacja i uwiarygodnianie Iteracyjny proces syntezy modeli na podstawie artykułu Jörga Desela „Formalization and Validation. An Iterative Process in Model Synthesis”
Plan prezentacji Wstęp i postawienie problemu Uwiarygodnianie modelu Rozwój systemu w oparciu o model Sposób modelowania Uwiarygodnianie wymagań Sieci Petriego Semantyka sekwencyjna i semantyka zależności Sieci procesów Lemat Przykładowy przebieg Rozszerzenia, doświadczenia, wnioski VIPtool
Postawienie problemu Chcemy uzyskać formalny model systemu kontrolowanego automatycznie na podstawie nieformalnego opisu części systemu mającej podlegać kontroli oraz wymagań dotyczących funkcjonowania całości Rozwój systemów komputerowych działających w określonym środowisku technicznym w oparciu o modele Specyfikacja wymagań dotyczących systemu Formalna specyfikacja Specyfikacja oparta o model
Uwiarygodnianie modelu (ang. model validation) Proces uwiarygodniania jest zwykle powiązany z samymi systemami Uwiarygodnianie – „Czy zbudowaliśmy właściwy system?” Weryfikacja – „Czy zbudowaliśmy system właściwie?” Ewaluacja – „Czy system jest użyteczny? Czy system spełni oczekiwania docelowych użytkowników?” system = model
Rozwój systemu w oparciu o model analiza i projektowanie świat rzeczywisty kodowanie system model abstrahuje od nieistotnych szczegółów abstrahuje od szczegółów implementacyjnych
Formalizacja i specyfikacja model świata rzeczywistego świat rzeczywisty świat rzeczywisty specyfikacja specyfikacja wymagań specyfikacja projektowa implementacja systemu wymagania systemu formalizacja specyfikacja formalizacja
Uwiarygodnianie, weryfikacja i ewaluacja model świata rzeczywistego świat rzeczywisty świat rzeczywisty weryfikacja specyfikacja wymagań specyfikacja projektowa implementacja systemu wymagania systemu uwiarygodnianie weryfikacja uwiarygodnianie
Sposób modelowania Modelowanie jest procesem kreatywnym. Założenia: dynamiczne zachowanie procesów, ekspert. Kolejne kroki formalizacji: model istniejącego środowiska uwiarygodnianie modelu środowiska poprzez symulację iteracyjna formalizacja i uwiarygodnianie kolejnych wymagań tworzonego systemu
Uwiarygodnianie wymagań wymaganie 1 model 1 symulacja zachowanie modelu 1 zachowanie z wymaganiem 1 filtr
Uwiarygodnianie wymagań wymaganie 1 model 1 wdrożenie model 2 wymaganie 2 symulacja zachowanie z wymaganiem 2 zachowanie modelu 2 filtr
Sieci Petriego
Sieci Petriego
Przykładowa sieć Petriego podgrzej wydaj włóż żeton odrzuć żeton akceptuj żeton ciepły zimny gotowy licznik włożony zaakceptowany
Opis zachowania sieci Petriego Dwie różne techniki opisu zachowania sieci Petriego. Przebieg może być opisany przez ciąg nazw przejść sieci (reprezentujący następujące po sobie zdarzenia) lub przez przyczynowy uporządkowany zbiór zdarzeń. Pierwsza technika opisywana przez ciągi wystąpień (ang. occurrence sequences) jest oparta o semantykę sekwencyjną sieci Petriego (ang. sequential semantics). Druga używa sieci procesów (ang. process nets) reprezentujących przyczynowe przebiegi (c-przebiegi, ang. causal runs) i jest oparta o semantykę zależności sieci Petriego (ang. causal semantics).
Semantyka sekwencyjna Jedną z głównych zalet jest prostota. Każdy z ciągów wystąpień może być postrzegany jako sekwencja stanów systemu i transformacji prowadząca od jednego stanu do innego. Formalnie stany nie występują w ciągu wystąpień (mamy jedynie nazwy przejść) Przykładowy ciąg wystąpień: włóż żeton, akceptuj żeton, podgrzej, wydaj, włóż żeton, akceptuj żeton, podgrzej, wydaj prowadzi do stanu różniącego się od wyjściowego jedynie liczbą żetonów w liczniku.
Semantyka zależności Jedną z głównych zalet jest wyraźna reprezentacja przyczynowej zależności zdarzeń. Zdarzenia zależne połączone są ścieżką w sieci procesów. Zdarzenia współbieżne nie mają połączenia.
Sieci procesów
Sieci procesów
Sieci procesów Warunek c reprezentuje pojawienie się pionka na miejscu α(c). Zdarzenie e reprezentuje wystąpienie przejścia β(c). W przebiegu, każdy pionek jest produkowany (pochłaniany) przez co najwyżej jedno wystąpienie przejścia. W związku z tym warunki w sieci procesów mają co najwyżej jedno wejście i jedno wyjście. Pre- i post-zbiory zdarzeń są zachowywane. W początkowym stanie tylko elementy minimalne zawierają pionki. Początkowy stan odpowiada początkowej konfiguracji.
Przykładowe sieci procesów gotowy ciepły włożony licznik zaakceptowany włóż żeton akceptuj wydaj podgrzej zimny zimny zimny gotowy ciepły zimny włożony licznik zaakceptowany włóż żeton akceptuj wydaj podgrzej
Lemat
Lemat
Przykładowy przebieg włóż żeton ciepły gotowy włożony licznik podgrzej wydaj odrzuć żeton zimny zaakceptowany akceptuj żeton akceptuj żeton akceptuj żeton licznik licznik wydaj wydaj gotowy włóż żeton włożony zaakceptowany gotowy włóż żeton włożony zaakceptowany gotowy ciepły ciepły ciepły zimny podgrzej zimny podgrzej zimny
Przykładowy przebieg włóż żeton ciepły gotowy włożony licznik podgrzej wydaj odrzuć żeton zimny zaakceptowany akceptuj żeton akceptuj żeton akceptuj żeton licznik licznik wydaj wydaj gotowy włóż żeton włożony zaakceptowany gotowy włóż żeton włożony zaakceptowany gotowy ciepły ciepły ciepły zimny podgrzej zimny podgrzej zimny
Przykładowy przebieg włóż żeton ciepły gotowy włożony licznik podgrzej wydaj odrzuć żeton zimny zaakceptowany akceptuj żeton akceptuj żeton akceptuj żeton licznik licznik wydaj wydaj gotowy włóż żeton włożony zaakceptowany gotowy włóż żeton włożony zaakceptowany gotowy ciepły ciepły ciepły zimny podgrzej zimny podgrzej zimny
Przykładowy przebieg włóż żeton ciepły gotowy włożony licznik podgrzej wydaj odrzuć żeton zimny zaakceptowany akceptuj żeton akceptuj żeton akceptuj żeton licznik licznik wydaj wydaj gotowy włóż żeton włożony zaakceptowany gotowy włóż żeton włożony zaakceptowany gotowy ciepły ciepły ciepły zimny podgrzej zimny podgrzej zimny
Przykładowy przebieg włóż żeton ciepły gotowy włożony licznik podgrzej wydaj odrzuć żeton zimny zaakceptowany akceptuj żeton akceptuj żeton akceptuj żeton licznik licznik wydaj wydaj gotowy włóż żeton włożony zaakceptowany gotowy włóż żeton włożony zaakceptowany gotowy ciepły ciepły ciepły zimny podgrzej zimny podgrzej zimny
Przykładowy przebieg włóż żeton ciepły gotowy włożony licznik podgrzej wydaj odrzuć żeton zimny zaakceptowany akceptuj żeton akceptuj żeton akceptuj żeton licznik licznik wydaj wydaj gotowy włóż żeton włożony zaakceptowany gotowy włóż żeton włożony zaakceptowany gotowy ciepły ciepły ciepły zimny podgrzej zimny podgrzej zimny
Przykładowy przebieg włóż żeton ciepły gotowy włożony licznik podgrzej wydaj odrzuć żeton zimny zaakceptowany akceptuj żeton akceptuj żeton akceptuj żeton licznik licznik wydaj wydaj gotowy włóż żeton włożony zaakceptowany gotowy włóż żeton włożony zaakceptowany gotowy ciepły ciepły ciepły zimny podgrzej zimny podgrzej zimny
Przykładowy przebieg włóż żeton ciepły gotowy włożony licznik podgrzej wydaj odrzuć żeton zimny zaakceptowany akceptuj żeton akceptuj żeton akceptuj żeton licznik licznik wydaj wydaj gotowy włóż żeton włożony zaakceptowany gotowy włóż żeton włożony zaakceptowany gotowy ciepły ciepły ciepły zimny podgrzej zimny podgrzej zimny
Przykładowy przebieg włóż żeton ciepły gotowy włożony licznik podgrzej wydaj odrzuć żeton zimny zaakceptowany akceptuj żeton akceptuj żeton akceptuj żeton licznik licznik wydaj wydaj gotowy włóż żeton włożony zaakceptowany gotowy włóż żeton włożony zaakceptowany gotowy ciepły ciepły ciepły zimny podgrzej zimny podgrzej zimny
Symulacja poprzez konstruowanie przebiegów Przez symulację rozumiemy generowanie przebiegów modelu. Uwiarygodnianie przez symulację wymaga kontrolowania całego procesu przez eksperta w danej dziedzinie. Graficzna reprezentacja przebiegów. Takie aspekty zachowania systemu jak przepływ sterowania, przepływ dóbr, możliwe współbieżne zachowania, itp. są widoczne w sieci procesów a zatracone w ciągach wystąpień. Liczba ciągów wystąpień odpowiadająca pojedynczej sieci procesów rośnie bardzo szybko wraz ze wzrostem możliwych współbieżnych zachowań systemu.
Cele i fakty Cel (ang. goal) – wystąpienie określonej sytuacji. Fakt (ang. fact) – własność zachodząca dla wszystkich osiągalnych stanów systemu. Opracowane są algorytmy, które w oparciu o sieci procesów badają czy określone cele mogą zostać osiągnięte lub czy fakty dotyczące projektowanego systemu są zawsze spełnione.
Rozszerzenia, doświadczenia, wnioski użycie kolorowanych sieci Petriego (ang. Colored Petri Nets) sygnały modularyzacja VIPtool (http://www.informatik.ku-eichstaett.de/projekte/vip/) Projekt dla Audi AG – zastosowanie przedstawionych metod w praktyce.