- •Введение
- •1 Описание предметной области
- •Общие понятия о верификации
- •Верификатор spin
- •Синтаксис языка Promela
- •Модель Крипке
- •Язык ltl
- •Автомат Бюхи
- •Концепция mvc
- •Постановка задачи
- •2 Описание методов решения
- •2.1 Выбор языка программирования
- •2.2 Архитектура приложения в фреймворке Yii2
- •3 Описание программной системы
- •3.1 Структура программного обеспечения
- •3.2 Описание основных разработанных классов
- •3.3 Модель данных
- •3.4 Системные требования к программному обеспечению
- •Заключение
- •Список использованных источников
Постановка задачи
Цель работы – разработать веб-приложение для автоматической верификации программ. С точки зрения пользователя, приложение должно иметь возможность работать в сети Интернет без предварительной установки каких-либо дополнительных программ помимо браузера. Пользователь должен иметь возможность создавать, сохранять редактировать и удалять проекты. Также должен иметься удобный инструмент для проектирования модели и генерирования кода.
Для этого необходимо решить следующие задачи:
Обеспечить регистрацию пользователей в приложении;
Обеспечить хранение проектов в базе для каждого пользователя;
Разработать инструмент для проектирования автоматной модели;
Разработать методику записи автоматной модели на языке Promela;
Разработать способ преобразования автоматной модели в код на языке Promela.
Система должна по спроектированной автоматной модели сгенерировать промежуточный код на языке Promela, пригодный в дальнейшем для верификации с использованием верификатора SPIN.
2 Описание методов решения
2.1 Выбор языка программирования
Программное обеспечение реализовано с использованием языков PHP, JavaScript/JQuery. Также в разработке был задействован PHP-фреймворк Yii2.
PHP – основной язык при разработке веб-приложений. Можно отметить следующие достоинства:
Традиционность. Многие конструкции языка позаимствованы из C и Perl. Код PHP очень похож очень похож на код того же C или Pascal. PHP – язык, вобравший в себя достоинства C и Perl, нацеленный на работу в интернете, язык с простым, понятным и универсальным синтаксисом.
Эффективность. PHP построен по принципу транслирующего интерпретатора. Это позволяет ему обрабатывать скрипты с достаточно высокой скоростью. Производительность PHP достаточна для разработки серьезных веб-приложений.
Простота. При разработке на PHP отсутствует необходимость подгрузки дополнительных библиотек или настраивать компиляцию. PHP выполняет код от открывающей экранирующей последовательности (<?) до закрывающей экранирующей последовательности (?>). Если код имеет верный синтаксис, он будет выполнен. Также есть возможность встраивать части PHP кода непосредственно в html-код страниц, и они будут корректно обрабатываться PHP-интерпретатором. Наличие множества встроенных функций избавляет от написания многих пользовательских скриптов.
Безопасность. PHP имеет 2 типа средств безопасности: системного уровня и уровня приложения. Присутствует безопасный режим (safe mode), который ограничивает использование языка по нескольким параметрам. Также есть такая функция как шифрование и возможность интеграции с защищенными технологиями электронной коммерции. Важной особенностью является то, что код PHP нельзя посмотреть напрямую в браузере – сценарий компилируется до его отправки пользователю.
Гибкость. Отличная гибкость достигается за счет встраиваемости языка. PHP отлично интегрируется с множеством языков, такими как JavaScript, HTML, XML и другими. Приложения, написанные на PHP, обладают хорошей расширяемостью. Отсутствует зависимость от браузеров, так как скрипты полностью компилируются на стороне сервера. Также отсутствует привязка о каком-то конкретному веб-серверу.
Бесплатность. Выбрана стратегия распространения Open Source, исходные коды PHP находятся в свободном доступе, что благотворно сказалось на развитии языка.
Трудно представить современное веб-приложение, написанное без использования JavaScript/JQuery.
JQuery – это кроссплатформенная библиотека, упрощающее взаимодействие между JavaScript и HTML. JavaScript довольно неудобен и сложен для понимания. JQuery упрощает использование JavaScript настолько, насколько это возможно, а также делает программирование на нем приятнее и легче. Фреймворком JQuery пользуются в своих проектах признанные мировые компании, как Microsoft, Google, и многие российские, такие как Яндекс.
