...
Соображение первое:
Управление роботом - конечные автомат (граф переходов - приложении). Можно ли нарисовать схему на Драконе нагляднее? Может быть, но я не очень уверен. В КА четко показаны состояния системы. Но при этом еще придется повозиться, доказывая, что нарисованная схема окажется конечным автоматом. Кому интересно, можно попробовать.
Нарисовать в принципе можно. Причём если для системы переходов автомата выполняются требования непротиворечивости и полноты - вполне тривиально. См. этот пример:
http://grafit-basis.narod.ru/L3/part_vi ... Pril3-n111.
Ежели условия не выполняются - думаю да, надо доказывать после "неформального" программирования КА... либо изобрести процедуру доказательного вывода (и/или преобразования автоматной спецификации так, чтобы требования выполнялись для неё в целом или для какой-то части,большей, чем до преобразования). М.б. что-то такое уже есть (раз можно кодировать автоматные графы)...
Доказательно же саму автоматную программу делаем как ЦД. Причём если нас не устраивает силуэтная форма (язык без goto... или просто хотим показать логику структурно) - визуализируем как
дейкстрал (см. второй вариант в том же примере). И выводим, IMHO, не всегда с охраной состояний по их номерам - можно и по совокупному вектору величин состояния (как в этом примере:
http://drakonografika.narod.ru/L3/imper ... ml#del3114)... но это уже детали, на визуальные формы не влияющие...
Соображение второе.
Я цитирую "... автоматически создается XML-описание автоматов, которое
затем поступает на вход интерпретатора – одному из компонентов
инструментального средства UniMod". Т.е. из редактора создается XML, который интерпретируется (там есть еще и генерация Java-кода).
Если Вам не понравилась исполняющая среда, то с XML Вы разберетесь.
Вообще-то имеет смысл, чтобы ДРАКОН-инструмент с этим и разбирался...
Т.е. ретранслировал XML в ДРАКОН-Х-схему/модель. Опять же для языка Х (= Java или C++ в случае UniMod) нужно гибрид определить... Так ведь?
И последнее соображение,
Если Вам нужно решать реальную задачу, что Вы выберете, имея концепцию на Драконе и готовый и хорошо описанный продукт UniMod, на котором можно ее решить довольно быстро?
Продвигать нужно Дракон-технологии и использовать по возможности наработки других людей, наших, что радует. Ибо время бежит.
Кстати, видимо, поковырявшись в UniMod, можно и сделать совместимый Дракон-редактор.
Тут вопрос можно и иначе поставить - а зачем нам здесь ДРАКОН, если делаем точно по автоматной спецификации Х-программу? Вспомним правило Приклонского: "в исходный текст как результат трансляции исходного чертежа не лазим"...
Вот если не точно, т.е. процесс перевода КА в программу хотя бы в чём-то "информатически неформален" (нельзя предложить его алгоритм для машинного исполнения и соотвественно написать переводчик) - то да, м.б. нужно между КА-диаграммой и текстом программы добавить дракон-описание. Но и то с учётом опять же сказанного здесь:
viewtopic.php?p=70053#p70053.
Насчёт Унимода - те же
Шалыто с Поликарповой указывали, что это уже не свет в окошке...
Они делают свой такой же инструмент на Эйффеле - совместно с
Б. Мейером. Т.к. в выдержках из их книги про это нет - дублирую ссылку проекта:
http://code.google.com/p/eiffel-state. Правда, там непонятно, что же делается на сегодня...
Кстати, важный момент - их подход ценен тем, что явно специфицирует исполнителя (как "схемы связей автоматов") - см. п. 2.2.1 в
этой выдержке. Вероятно, и вопрос с "точностью перевода" как-то будет решаться...