[W wersji PDF tej odpowiedzi liczby lub diagramy są interaktywne i dynamiczne.]
Elementy sieciowe i adnotacje: wizualny język programowania ogólnego przeznaczenia
Używam grafiki do organizowania programów JavaScript ™, które używają interfejsu Acrobat® / JavaScript API. Każdy obiekt graficzny reprezentuje element sieci Petriego (miejsce, przejście, wejście lub wyjście) lub reprezentuje więcej niż jeden element sieci Petriego. Każdy obiekt graficzny jest w rzeczywistości adnotacją odpowiedniego elementu sieci. Jeśli jednak każdy obiekt graficzny jest odwzorowany na jeden i tylko jeden element sieci, można go użyć do wygenerowania elementu sieci. A jeśli obiekt graficzny odwzorowuje na więcej niż jeden element sieci, a odwzorowanie jest dobrze zdefiniowane, można go również użyć do wygenerowania elementów sieci. Standardowe elementy siatki Petriego są reprezentowane przez pewne typy grafiki: okrąg jest miejscem, kwadrat lub prostokąt lub linia jest przejściem, strzałka z koła do kwadratu jest wejściem, a strzałka z kwadratu do koła jest wydajność. Ponadto,
[Rodzaje adnotacji w „Standardowej sieci Petriego” można znaleźć w wersji PDF tej odpowiedzi.]
Carl Adam Petri opisał większość tych pomysłów (w tym rodzaje adnotacji w „Standardowej sieci Petriego” w swojej rozprawie doktorskiej (Petri, 1966). Zastosował również elementy sieciowe i adnotacje do opisu kilku obwodów logicznych, takich jak rysunek 6.
Korzyści i wyzwania
Wizualny język programowania może pomóc programistom opracować programy komputerowe (Menzies, 2002).
Mam co najmniej trzy powody, dla których uważam elementy sieciowe i adnotacje za przydatne (zalety?).
Pierwszy powód. Logikę procesu można utworzyć pojedynczo. Oznacza to, że sieć może zostać przedłużona poprzez dodanie elementów do istniejącej sieci (Petri, 1966). Na przykład model kontrolera można podzielić na komponenty wewnętrzne i zewnętrzne. Wewnętrzny element reguluje system. Komponent zewnętrzny łączy się ze środowiskiem, akceptując dane wejściowe ze środowiska. Ryc. 1 to model sieci wewnętrznej Petriego. Możliwe jest dodanie modelu Petri Net komponentu zewnętrznego do modelu Petri Net komponentu wewnętrznego poprzez dodanie odpowiednich miejsc i przejścia (rysunek 2).
Ryc. 1 Model sieci Petriego elementu wewnętrznego kontrolera (Halloway, Krogh i Giua, 1997)
Ryc. 2 Model sieci Petriego wewnętrznych i zewnętrznych elementów kontrolera (Halloway, Krogh i Giua, 1997)
Drugi powód Kody powiązane z każdym elementem sieci mogą pochodzić z więcej niż jednego „języka programowania” (Petri, 1973). Mogą pochodzić z języka komputerowego, takiego jak JavaScript, COBOL, ADA i język asemblera. Mogą pochodzić z języka matematycznego, takiego jak symbole algebraiczne. Mogą pochodzić z prozy zakodowanej w języku angielskim, niemieckim, francuskim, greckim, tagalog, chińskim itp. W ten sposób można ją wykorzystać jako podstawę komunikacji i współpracy w całym cyklu życia oprogramowania lub systemu; oraz wśród różnych użytkowników, programistów i interesariuszy (Petri, 1973).
Trzeci powód Możliwe jest skupienie się na określonych obiektach graficznych w sieci i napisanie adnotacji kodu lub logiki dla powiązanych obiektów graficznych. Rozważ model gry karcianej Petri Net na rycinie 3. Jeśli strzałka dla wejścia P7 T4 jest standardową grafiką dla wejścia w siatkę miejsca / przejścia i jeśli m_7 jest znakiem dla miejsca P7, to adnotacja logiczna dla aktualizacja znaku miejsca wejściowego to m_7 = m_7-1. Jeśli s_9 ^ - jest statusem wejścia, wówczas adnotacja logiczna do aktualizacji statusu wejścia to s_9 ^ - = ((m_7 <1)? False: true).
Rycina 3 Model gry karcianej Petri Net
Mam co najmniej trzy powody, dla których uważam stosowanie sieci Petriego za trudne (wady?)
Jeśli jest zbyt wiele obiektów graficznych, trudno byłoby utworzyć lub odczytać sieć. Trudność można złagodzić, biorąc podzbiór grafiki i przedstawiając je za pomocą jednego, dwóch lub trzech symboli graficznych (Noe, 1973; Petri, 1966). Na przykład, jeśli uważa się, że model gry karcianej Petri Net na rycinie 3 zawiera zbyt wiele obiektów graficznych na schemacie, możliwe jest połączenie niektórych elementów graficznych i utrzymanie wystarczającej ilości informacji, aby zmapować schemat do programu komputerowego. Rozważmy rysunek 4, model Petri Net tej samej gry znaleziony na rysunku 3 z grafiką wysokiego poziomu (Chionglo, 2016a).
Rysunek 4 Model sieci Petriego w grze karcianej wykorzystującej grafikę wysokiego poziomu (Chionglo, 2016a)
W innym przykładzie zewnętrzne elementy kontrolera na ryc. 2 można połączyć, aby uzyskać bardziej zwięzłą graficzną reprezentację, jak pokazano na ryc. 5.
Rysunek 5 Model sieci Petriego sterownika z grafiką wysokiego poziomu dla komponentów zewnętrznych
Wreszcie wzajemnie wykluczający się zestaw miejsc lub wzajemnie wykluczający się zestaw przejść można również przedstawić za pomocą obiektu graficznego wysokiego poziomu (Chionglo, 2015).
Drugi powód Nawet przy standardowej grafice rysowanie i pozycjonowanie grafiki może być trudne, szczególnie jeśli oczekuje się, że końcowy schemat będzie przyjazny dla użytkownika lub czytelnika. Niektóre decyzje dotyczące tworzenia diagramu przyjaznego dla użytkownika lub czytelnika obejmują: odpowiedni układ obiektów graficznych, odpowiednie wymiary płótna i kształtów, krzywiznę strzałek, rodzaj główek strzałek, rozmiar i czcionkę tekstu, oraz wybór kolorów grafiki i tekstu.
Trzeci powód Łatwo jest tworzyć adnotacje w elementach sieci w uporządkowany sposób, ponieważ każda adnotacja jest bezpośrednio lub pośrednio związana z elementem sieci. Jednak wyświetlanie każdej adnotacji wraz z grafiką każdego elementu sieci może nie być dobrym pomysłem, ponieważ na diagramie może być za dużo informacji. Rozważmy na przykład schemat modelu sieci logicznej Petri Net, który zawiera odniesienia do wszystkich właściwości i adnotacji logicznych (rysunek 6). [Oryginalny model zawiera warunek testowy dla statusu każdego wyjścia (ryc. 31 na stronie 78 (Petri, 1966)); warunek testu został tutaj pominięty, ponieważ jest on równoważny oryginalnemu modelowi dla danego początkowego oznakowania. Zatem każde wyjście ma jedną adnotację logiczną do obliczenia znaku miejsca wyjściowego.]
Ryc. 6 Siatka miejsca / przejścia z adnotacjami - na podstawie ryc. 31 str. 78 angielskiego tłumaczenia rozprawy Petri (1966)
Jednym ze sposobów złagodzenia tego wyzwania byłoby zidentyfikowanie rodzajów adnotacji używanych w modelu i zdefiniowanie obiektów graficznych zawierających adnotacje tych typów (Petri, 1966). Dlatego gdy diagram Petri Net składa się z obiektów graficznych z definicji, interpretacja tych obiektów powinna zawierać adnotacje „niewidoczne”. Ryc. 7 należy interpretować jako standardową sieć Petriego (definicje patrz Adnotacje do standardowej sieci Petriego); dlatego adnotację logiczną można pominąć na schemacie.
Ryc. 7 Siatka miejsca / przejścia - na podstawie ryc. 31 strona 78 angielskiego tłumaczenia rozprawy Petri (1966)
Innym sposobem na złagodzenie tego wyzwania byłoby użycie widoków formularzy adnotacji w celu uzupełnienia lub uzupełnienia diagramu (Chionglo, 2016b; 2014). Widoki można dalej podzielić na mniejsze widoki, a każdy widok można wyświetlić i ukryć.
Referencje
Chionglo, JF (2016a). Odpowiedź na „Jak zaprojektować przepływ stanu dla gry z kartami reagowania / redukcji?” Na Stack Overflow. Dostępne na https://www.academia.edu/34059934/A_Reply_to_How_to_design_a_state_flow_for_a_react_redux_flashcard_game_at_Stack_Overflow .
Chionglo, JF (2016b). Dwie formy widoku sieci Petriego. Dostępne na stronie http://www.aespen.ca/AEnswers/CAPDissF31P78-form.pdf .
Chionglo, JF (2015). Zmniejszenie liczby grafik elementów sieciowych na diagramie sieci Petriego za pomocą grafiki wysokiego poziomu. Dostępne na stronie http://www.aespen.ca/AEnswers/WjTpY1429533268 .
Chionglo, JF (2014). Elementy sieciowe i adnotacje do programowania komputerowego: obliczenia i interakcje w formacie PDF. Dostępne na https://www.academia.edu/26906314/Net_Elements_and_Annotations_for_Computer_Programming_Computations_and_Interactions_in_PDF .
Halloway, LE; Krogh, BH i Giua, A. (1997). Przegląd metod Petri Net dla kontrolowanych systemów zdarzeń dyskretnych [wersja elektroniczna]. Układy dynamiczne zdarzeń dyskretnych: teoria i zastosowania, tom. 7. Boston: Kluwer Academic Publishers, s. 151–190.
Menzies, T. (2002). Problemy z oceną wizualnych języków programowania. W SK Chang (Ed). Podręcznik inżynierii oprogramowania i inżynierii wiedzy, tom. 2 powstające technologie. World Scientific Publishing co. Pte. Ltd., ss. 93–101.
Noe, JD i Nutt, GJ (1973). „Makro-sieci elektroniczne do reprezentacji systemów równoległych”, IEEE Transactions on Computers, vol. C-22, nr 8, 19 sierpnia 1973, s. 718–727.
Petri, CA (1973). Koncepcje teorii sieci. W Matematycznych podstawach informatyki: Proc. Sympozjum i Letnia Szkoła, Wysokie Tatry, 3–8 września 1973 r., strony 137–146. Matematyka. Inst. słowackiego Acada. of Sciences, 1973.
Petri, CA (1966). Komunikacja z Automotą [przeł. CF Greene, Jr.]. Suplement I do sprawozdania technicznego RADC-TR-65-377 (tom I). Baza sił powietrznych Griffiss, Nowy Jork: Rzymskie Centrum Rozwoju Lotnictwa, Dział Badań i Technologii, Dowództwo Systemów Sił Powietrznych, Baza Sił Powietrznych Griffiss. Pobrano 31 sierpnia 2011 r. Z http://www.informatik.uni-hamburg.de/TGI/mitarbeiter/profs/petri/doc/Petri-diss-engl.pdf .