Сравнение аналогов - Разработка программы для реализации редактора временных графов синхронизации

Поскольку конечной целью работы был редактор сетей Петри, интегрированный с внешней библиотекой алгебраических вычислений, было рациональным рассмотреть существующие редакторы сетей Петри, пригодные для модификаций и дополнения недостающим функционалом.

Некоторые варианты отклонялись сразу же, по причине недоступности исходного кода или из-за использованного стека технологий -- например, .NET, Java, в сочетании с неудобными интерфейсами. Если в случае. NET о кроссплатформенности не может идти и речи, то в случае с Java трудности могут возникнуть при интеграции библиотеки libminmaxgd[10, 16], реализованной на C++. Особенно, если учитывать качество исполнения этих существующих решений. Фактически, проблемы у всех одни и те же, но некоторые программы можно выделить как более-менее пригодные к использованию, хотя, к сожалению, миссии данной работы они посодействовать никак не смогут.

Petri Net Toolbox.

Популярное расширениедля MATLAB, обладает хорошим набором функционала, поддерживаются разные типы (т. е. наборы правил) сетей Петри, имеется интеграция с алгебраическим аппаратом max-plus, что приближает это решение к целям данной работы. Но плагин является платным, исходный код недоступен. Сам MATLAB также является платным и довольно большим комплексом программ, что отметает данный вариант. Во-вторых, использовать данный плагин без модификаций невозможно, скриншот программы представлен на рис. 9.

petri net toolbox

Рисунок 9. Petri Net Toolbox

PIPE v4.3.

Пожалуй, самое проработанное решение из доступных, разрабатывалось с 2003 по 2011 год разными специалистами из разных университетов, некоторые интегрируют это решение с MATLAB. Данный редактор выполнен качественно, большинство опций интерфейса (рис. 10) работают, сама программа стабильна -- установка и запуск прошли гладко, работе ничего не мешает. К недостаткам данного приложения можно отнести:

Интерфейс и управление слишком перегружены, а редактирование сети осуществляется исключительно при помощи мыши. На 10 позиций, 10 дуг и 10 переходов пришлось 120 нажатий мыши. При этом скопировать уже созданную структуру невозможно.

Слишком общий подход. Нельзя выбрать конкретный набор правил организации сети, то есть система автоматически предлагает подкрутить вес дуги, разрешает делать позициям несколько входящих дуг и так далее.

В то же время, некоторые опции оказываются недоступными или проработаны недостаточно хорошо -- каждый элемент автоматически снабжается видимой подписью, хотя в большинстве случаев важна именно маркировка, а не имя. Позициям нельзя назначать временную задержку.

Навигация по полотну затруднена, полотно ограничено слева-сверху, значит сеть при росте может упереться в край и нужно будет сдвигать;

У программы проседает производительность даже на относительно небольших сетях, что при наличии процессора Intel i5 (1.7GHz) ставит под сомнение оптимальность реализации;

При желании, список можно было бы продолжить, но ключевая цель программы -- облегчить пользователю работу с алгебраическими инструментами, выполнена по всем признакам недостаточно хорошо.

pipe в действии

Рисунок 10. PIPE в действии

Romeo.

Еще одно популярное решение для построения и верификации сетей Петри. К программе написано несколько инструментов для интеграции с другими проектами, но сама программа обладает недостаточным качеством исполнения, устаревшим подходом к разработке графического интерфейса (используются Tcl/Tk). Более того, в отличие от предыдущего решения функционала здесь меньше, но стабильность программы страдает -- при осуществлении бытовых операций иногда возникают неприятные внутренние ошибки (рис. 11 и 12). Кстати, код написан частично на французском, поэтому модифицировать его для своих нужд де-факто не удастся. Положительным моментом является наличие возможности копировать отдельные участки сети, идея хорошая.

romeo в действии

Рисунок 11. Romeo в действии

или нет

Рисунок 12. Или нет

После рассмотрения как и отрицательных, так и положительных сторон у существующих решений, а также после согласования требований научным руководителем, был составлен список функциональных требований, которым должна удовлетворять создаваемая программа.

Графическое задание временной сети Петри. Возможность добавлять элементы сети, соединять дугами, устанавливать начальную маркировку позиций с указанием задержки и фишек, снабжать элементы сети именами/комментариями. Полотно должно быть условно-бесконечным без ограничения перемещения в любую из 4х сторон, должно обладать возможностью масштабировать отдельно взятые участки относительно произвольного центра. Поддержка формирования и расформирования изолированных групп элементов, с целью скрыть детали реализации участков сети и для создания множества участков сети с единой конфигурацией. Поддержка копирования участков сети и групп с сохранением настроек дуг (контрольные точки для кривых) и настроек внешнего вида элементов (комментарии, ориентация, и т. д.). Должна иметься возможность снятия скриншота как минимум видимой области с последующим сохранением в файл. Возможность сохранять созданную сеть в файл и загружать из файла.

Редактор информации о входящем потоке событий. Как в графическом режиме (расстановка конусов на плоскости), так и при помощи символьного описания элементов. Добавление точек, выделение точек, перемещение точек, применения замыкания Клини к выделенной коллекции точек, отображение информации для каждого перехода (входы системы) в отдельном слое. Этот же редактор в режиме read-only должен обеспечивать просмотр информации о событиях на выходе системы.

Интеграция с библиотекой символьных вычислений в диоидной алгебре и разработка с учетом необходимости подключения дополнительных модулей в дальнейшем.

Похожие статьи




Сравнение аналогов - Разработка программы для реализации редактора временных графов синхронизации

Предыдущая | Следующая