Инструмент визуального программирования для моделирования диаграмм состояний, представляющих мультимодальные пользовательские интерфейсы
Существует ли какой-либо инструмент визуального программирования для моделирования диаграмм состояний, представляющих мультимодальные пользовательские интерфейсы? Я хочу создать приложение для Android и Windows Metro, которое получает ввод от прикосновения и голоса. Приложение направляет пользователя через вопросник, который будет использоваться для скрининга в сценарии здравоохранения. Пользователь может вводить текст в текстовое поле или генерировать событие, касаясь кнопки или говоря.
Я обнаружил, что диаграммы состояний используются для моделирования поведения реактивных систем, таких как системы авионики, которые первоначально использовались его создателем Дэвидом Харелом со сложной задачей разработки программного обеспечения для истребителя LAVI, созданного Israel Aircraft Industries; IAI, чтобы четко и точно указать поведение управления самолетом. Он хотел указать поведение интуитивно понятным и математически строгим образом. С тех пор диаграммы состояний превратились из простого языка спецификации в исполняемый, компилируемый и анализируемый.
Поскольку приложение, которое я хочу создать, имеет сложную логику здравоохранения и состоит из иерархии потоков экранов, которые изменяются на входе от взаимодействующего пользователя, отправляют действия на внешние веб-сервисы и получают асинхронные события от внешних веб-сервисов - все это поддерживает отзывчивость в пользовательском интерфейсе Я подумал о моделировании логики приложения с помощью диаграмм состояний. Однако я не смог найти инструментов программирования, которые позволили бы мне отдельно создавать бизнес-логику приложения и пользовательский интерфейс (а не только компоненты экранного интерфейса) отдельно. Например, если я хочу представить элементы интерфейса html5 / mxml и бизнес-логику в scxml.
Я нашел несколько инструментов, но ни один из них не соответствует требованиям приложения. В основном, нет примера разработки такого приложения с четким разделением поведения в диаграммах состояний и представлением пользовательского интерфейса в той или иной форме языка разметки. Мои выводы:
- IBM Rational Statemate - это инструмент для графического проектирования, моделирования и создания прототипов для быстрой разработки сложных встроенных систем.
- IBM Rational Rhapsody - среда моделирования на основе UML, это среда визуальной разработки для системных инженеров и с диаграммами состояний UML
- Apache scxml editor: проект Gsoc только для моделирования scxml
- Qt State Machine Framework, но не имеет разделения диаграмм состояний для поведения и пользовательского интерфейса
- В мультимодальной архитектуре W3C также было несколько дизайнерских идей с scxml+xhtml
1 ответ
Вы действительно должны взглянуть на http://www.statecharts.org/. Он поставляется с редактором, валидациями, несколькими генераторами для разных целевых языков и приятной рабочей средой моделирования.
Семантика близка к теоретической работе Дэвида Харела и является открытым исходным кодом.
Некоторое время назад, основываясь на версии 1 YAKINDU SCT (текущая версия 2.6.2), я защитил кандидатскую диссертацию на аналогичную тему. Найдите следующее введение диссертации: https://vimeo.com/13440814
Далее вы найдете следующее видео о YAKINDU SCT версии 2 для обзора функций: https://www.youtube.com/watch?v=uO6MASCBPrg Далее вы найдете обширный набор учебных пособий для YouTube: https://www.youtube.com/watch?v=bhru1n3ZsFo&list=PLmHMvhX5wK_aohX5sOeAMogFDwlc3gJYR
Недостатком с вашей точки зрения может быть то, что SCT в настоящее время не поддерживает SCXML и использует свой собственный формат. Но так как он с открытым исходным кодом и основан на технологиях моделирования затмений (EMF), замена сериализации и сохранение его в формате SCXML может не представлять особой проблемы.