[Для PDF-версии этого ответа рисунки или диаграммы являются интерактивными и динамичными.]
Сетевые элементы и аннотации: универсальный язык визуального программирования
Я использую графику для организации программ JavaScript ™, использующих API Acrobat® / JavaScript. Каждый графический объект представляет элемент сети Петри (место, переход, ввод или вывод) или представляет более одного элемента сети Петри. Каждый графический объект на самом деле является аннотацией соответствующего сетевого элемента. Однако, если каждый графический объект отображается на один и только один сетевой элемент, он может использоваться для создания сетевого элемента. И если графический объект отображается более чем на один сетевой элемент, и отображение четко определено, то его также можно использовать для создания сетевых элементов. Стандартные элементы сети Петри представлены определенными типами графики: круг - это место, квадрат или прямоугольник или линия - это переход, стрелка из круга в квадрат - это ввод, а стрелка из квадрата в круг - это выход. Более того,
[Типы аннотаций в «Стандартной сети Петри» можно найти в PDF-версии этого ответа.]
Карл Адам Петри описал большинство этих идей (включая типы аннотаций в «Стандартной сети Петри» в своей докторской диссертации (Петри, 1966). Он также применил элементы сети и аннотации для описания нескольких логических схем, таких как рисунок 6.
Преимущества и проблемы
Визуальный язык программирования может помочь программисту разрабатывать компьютерные программы (Menzies, 2002).
У меня есть как минимум три причины, почему я считаю полезными сетевые элементы и аннотации (преимущества?).
Первая причина. Логика процесса может быть создана по одному элементу за раз. Это означает, что сеть может быть расширена путем добавления элементов в существующую сеть (Петри, 1966). Например, модель контроллера может быть разделена на внутренние и внешние компоненты. Внутренний компонент регулирует систему. Внешний компонент взаимодействует со средой, принимая входные данные из среды. Рисунок 1 - модель внутреннего компонента Петри Нет. Можно добавить модель внешнего компонента сети Петри к модели внутреннего компонента сети Петри, добавив соответствующие места и переход (рис. 2).
Рисунок 1. Модель сети Петри внутреннего компонента контроллера (Halloway, Krogh and Giua, 1997)
Рисунок 2. Модель сети Петри внутренних и внешних компонентов контроллера (Halloway, Krogh and Giua, 1997)
Вторая причина Коды, связанные с каждым элементом сети, могут быть получены из нескольких «языков программирования» (Петри, 1973). Они могут быть из компьютерного языка, такого как JavaScript, COBOL, ADA и ассемблера. Они могут прийти из математического языка, такого как алгебраические символы. Они могут быть из прозы, закодированной на английском, немецком, французском, греческом, тагальском, китайском и т. Д. Таким образом, она может использоваться в качестве основы для общения и совместной работы на протяжении всего жизненного цикла разработки программного обеспечения или системы; и среди различных пользователей, разработчиков и заинтересованных сторон (Петри, 1973).
Третья причина. Можно сфокусироваться на определенных графических объектах в сети и выписать код или логические аннотации для связанных графических объектов. Рассмотрим модель сети Петри для карточной игры на рисунке 3. Если стрелка для входа P7 T4 представляет собой стандартную графику для входа в Place / Transition Net и если m_7 - метка для места P7, то логическая аннотация для обновление отметки места ввода - это m_7 = m_7-1. Если s_9 ^ - это состояние входа, то логическая аннотация для обновления состояния входа будет s_9 ^ - = ((m_7 <1)? False: true).
Рисунок 3. Модель карточной игры Петри Нет.
У меня есть по крайней мере три причины, почему я считаю применение сетей Петри сложным (недостатки?)
Если графических объектов слишком много, будет трудно создать или прочитать сеть. Сложность может быть уменьшена, если взять подмножество графики и представить их, используя один, два или три графических символа (Noe, 1973; Petri, 1966). Например, если модель сетевой карты Петри в карточной игре на рис. 3 имеет слишком много графических объектов на диаграмме, можно объединить некоторые графические объекты и при этом сохранить достаточно информации, чтобы отобразить диаграмму в компьютерной программе. Рассмотрим рисунок 4, модель Petri Net той же игры, что и на рисунке 3, с графикой высокого уровня (Chionglo, 2016a).
Рисунок 4. Модель сети Петри для карточной игры с использованием графики высокого уровня (Chionglo, 2016a)
В другом примере внешние компоненты контроллера на рисунке 2 могут быть объединены для создания более краткого графического представления, как показано на рисунке 5.
Рисунок 5. Модель контроллера Петри с высокоуровневой графикой для внешних компонентов.
Наконец, взаимоисключающий набор мест или взаимоисключающий набор переходов также может быть представлен с использованием графического объекта высокого уровня (Chionglo, 2015).
Вторая причина Даже со стандартной графикой может быть сложно рисовать и позиционировать графику, особенно если ожидается, что окончательная диаграмма будет удобной для пользователя или читателя. Некоторые решения для создания удобной для пользователя или читателя диаграммы включают в себя: правильное расположение графических объектов, соответствующие размеры холста и фигур, кривизну стрелок, тип наконечников стрелок, размер и шрифт текста, и выбор цветов для графики и текста.
Третья причина. Аннотации сетевых элементов легко создавать упорядоченным образом, поскольку каждая аннотация прямо или косвенно связана с сетевым элементом. Однако отображение каждой аннотации вместе с графикой каждого элемента сети может быть не очень хорошей идеей, поскольку на диаграмме может быть слишком много информации. Например, рассмотрим диаграмму модели Петри Сети логической схемы, которая включает ссылки на все свойства и логические аннотации (рисунок 6). [Первоначальная модель включала в себя условие проверки состояния для каждого выхода (рисунок 31 на стр. 78 (Петри, 1966)); условие теста здесь опущено, потому что оно эквивалентно исходной модели для данной начальной маркировки. Таким образом, каждый вывод имеет одну логическую аннотацию для вычисления отметки места вывода.]
Рисунок 6 Место / Сеть переходов с аннотациями - основано на рисунке 31 на стр. 78 английского перевода диссертации Петри (1966)
Одним из способов смягчения этой проблемы может быть определение типов аннотаций, используемых в модели, и определение графических объектов, которые включают аннотации этих типов (Petri, 1966). Таким образом, когда диаграмма сети Петри состоит из графических объектов из определений, интерпретация этих объектов должна включать «невидимые» аннотации. Рисунок 7 следует интерпретировать как стандартную сеть Петри (определения см. В примечаниях к стандартной сети Петри); следовательно, логическая аннотация может быть опущена на диаграмме.
Рисунок 7 Место / Сеть перехода - на основе рисунка 31 стр. 78 английского перевода диссертации Петри (1966)
Другим способом смягчения этой проблемы было бы использование представлений формы аннотаций для дополнения или дополнения диаграммы (диаграмм) (Chionglo, 2016b; 2014). Представления могут быть далее разделены на меньшие представления, и каждый вид может быть отображен и скрыт.
Ссылки
Чионгло, JF (2016a). Ответ на вопрос «Как спроектировать поток состояний для игры с карточкой реагирования / редукса?» В Stack Overflow. Доступно по адресу https://www.academia.edu/34059934/A_Reply_to_How_to_design_a_state_flow_for_a_react_redux_flashcard_game_at_Stack_Overflow .
Чионгло, JF (2016b). Два вида формы сети Петри. Доступно по адресу: http://www.aespen.ca/AEnswers/CAPDissF31P78-form.pdf .
Чионгло, JF (2015). Сокращение количества графических элементов в диаграмме Петри с использованием высокоуровневой графики. Доступно по адресу http://www.aespen.ca/AEnswers/WjTpY1429533268 .
Чионгло, JF (2014). Сетевые элементы и аннотации для компьютерного программирования: вычисления и взаимодействия в PDF. Доступно по адресу https://www.academia.edu/26906314/Net_Elements_and_Annotations_for_Computer_Programming_Computations_and_Interactions_in_PDF .
Halloway, LE; Крог Б.Х. и Джуа А. (1997). Обзор методов Петри Нет для управляемых систем дискретных событий [электронная версия]. Динамические системы дискретных событий: теория и приложения. 7. Бостон: Kluwer Academic Publishers, стр. 151 - 190.
Мензис, Т. (2002). Вопросы оценки для визуальных языков программирования. В СК Чанг (ред.). Справочник по программной инженерии и инженерии знаний, вып. 2 Новые технологии. Всемирная научная издательская компания Рядовой ООО, стр. 93 - 101.
Noe, JD и Nutt, GJ (1973). «Макро-сети для представления параллельных систем», IEEE Transactions on Computers, вып. С-22, № 8, август 1973 г., стр. 718 - 727.
Петри, Калифорния (1973). Концепции Теории Сети. В математических основах информатики: Учеб. Симпозиума и Летней школы, Высокие Татры, 3–8 сентября 1973 г., стр. 137–146. Матем. Текущий месяц Словацкой акад. наук, 1973.
Петри, Калифорния (1966). Связь с Automota [пер. CF Грин младший]. Дополнение I к Техническому отчету RADC-TR-65-377 (Том I). База ВВС Griffiss, Нью-Йорк: Римский центр развития авиации, Научно-технический отдел, Командование ВВС, База ВВС Griffiss. Получено 31 августа 2011 г. с сайта http://www.informatik.uni-hamburg.de/TGI/mitarbeiter/profs/petri/doc/Petri-diss-engl.pdf .