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

задач логического управления

Кубасов С.В.
аспирант, б/с, б/з
ЯрГУ,
kubasovsv@uniyar.ac.ru, Ярославль

Введение

Задача логического управления длительное время служит объектом научных исследований. Интерес к ней не ослабевает и в настоящее время. Область интересов профессора Шалыто А.А. связана с разработкой формализованных методов аппаратной и программной реализации алгоритмов логического управления. Для решения задач указанного класса им была предложена switch-технология [-1].

В упрощенном виде систему логического управления можно представить как черный ящик, имеющий входные и выходные сигналы. Задача состоит в разработке системы, которая будет генерировать определенные выходные сигналы в зависимости от входных сигналов и предыстории. Все сигналы бинарные, т.е. они могут принимать значения 0 и 1.

 

рис. 1 Система логического управления

Главная идея switch-технологии состоит в применении теории автоматов в процессе алгоритмизации. Центральным понятием является «состояние».

Автоматное программирование (другое название switch-технологии) имеет много достоинств, однако технология не определяет четкой формальной модели. Без формальной модели невозможна верификация автоматных программ, что является очень важным для задач данного класса.

Для поддержки АП развивается среда UniMod. К сожалению, она не вполне подходит для применения оригинальной технологии. Она ориентирована на построение объектно-ориентированных автоматных программ, это вариант АП, имеющий важные отличия от исходной switch-технологии. К тому же формальная модель UniMod еще менее четкая, чем она была изначально. Таким образом, возникает потребность в специальной среде разработки.

Система разработки в целом

Для решения указанного класса задач (системы логического управления) предлагается система разработки синхронно-автоматных программ. В ее основу положена синхронно-автоматное программирование – вариация автоматного программирования. Разработка программы выполняется визуально с использованием элементов языка UML. Стандартные элементы языка стериотипизированы для описания модели программы. В качестве среды разработки был выбран UML-редактор MagicDraw компании No Magic, Inc.®

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

рис. 2 MagicDraw с открытой диаграммой автомата

Преобразование модели в программу

Набор диаграмм UML описывает модель программы. Для получения самой программы нужно выполнить ряд преобразований.

 

рис. 3 Процесс преобразования модели

Шаг 1.

Преобразование диаграмм UML в описание автоматной модели. Отсекается вся несущественная для модели информация, в частности разметка. Выполняется частичная проверка модели. Результат сохраняется в  файле в XML формате.

Шаг 2.

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

Шаг 3.

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

Дополнительный шаг.

Верификация программы. Выполняется набором инструментов esterel. Требуется ручное написание esterel-кода для задания проверяемых свойств.

Особенности синхронно-автоматной модели

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

рис. 4. Блок из одного автомата

рис. 5 Композиция блоков

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

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

Заключение

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

Литература

1.       Шалыто, А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. – СПб: Наука, 1998. – 628 с.

2.       The foundations of Esterel / Gerard Berry // Proof, Language, and Interaction: Essays in honour of Robin Milner / edited by Gordon Plotkin, Colin Stirling and Mads Tofte. – MIT Press,2000. – P. 425–454.