Появился очередной материал,
посвященной автоматному
программированию. В этот раз
представлены практические
результаты работы Туккеля Н.И.,
Шалыто А.А., Ваганова С.А. : ИСПОЛЬЗОВАНИЕ
SWITCH-ТЕХНОЛОГИИ ПРИ РАЗРАБОТКЕ
ПРОГРАММ В СРЕДЕ "FLORA/C+"
(МОДЕЛЬ ТЕХНОЛОГИЧЕСКОГО
ПРОЦЕССА В ЦЕХЕ ХОЛОДНОЙ ПРОКАТКИ).
Это пример того, как можно начать
"облагораживать"
теоретические и практические
результаты, если добавить к ним
пользовательский интерфейс. При
этом разработка пользовательского
интерфейса не велась с нуля. Была
использована объектно-ориентированная
среда "Flora/C+",
что позволило ускорить процесс
получения результата. Думаю, что
она может представлять интерес для
многих разработчиков.
В программе использован подход,
повышающий централизацию
управления. Функциональные
алгоритмы вынесены в отдельную,
системонезависимую часть
программы, а локальные задачи
управления решаются в
системозависимой части (зависящей
от используемых инструментальных
средств). В исходном примере
использовалось традиционное для
объектно-ориентированного
программирования управление,
распределенное по значительному
количеству объектов, применение
которого делает поведение
программы априори непредсказуемым,
так как резко затрудняет целостное
понимание функциональных
алгоритмов.
Функциональные алгоритмы
разработаны и реализованы с
использованием SWITCH-технологии,
базирующейся на применении
конечных автоматов. Это позволило,
в частности, автоматически
получать протоколы работы
программы в терминах автоматов,
обеспечивая наглядность ее
функционирования. Эти алгоритмы
реализованы системой из четырех
взаимосвязанных автоматов,
взаимодействующих по вложенности и
обмену номерами состояний.
Головной автомат отвечает за
включение/отключение модели, а
остальные автоматы вложены в него и
управляют различными составными
частями модели. Взаимодействие
этих автоматов осуществляется
путем обмена номерами состояний.
На сайте представлено краткое
описание системы, а также вид
пользовательского интерфейса.
Можно скачать и более подробную
информацию в формате pdf.