Существует ли инструмент DSL Harel Statechart для Java? - PullRequest
6 голосов
/ 12 декабря 2011

Я ищу инструмент, который понимает DSL, в котором я могу определить свою диаграмму состояний, которая генерирует код Java, или где диаграмма состояний в DSL работает как есть.Этот инструмент в идеале должен быть написан на Java и должен поддерживать суперсостояния и ортогональные области по определению диаграмм состояний Харела (или эквивалентно UML 2 State Machines).В качестве альтернативы, с какой библиотекой или инструментом лучше всего написать такой DSL?

Ответы [ 4 ]

5 голосов
/ 10 апреля 2012

Якинду выглядит хорошо: http://www.statecharts.org

  • Диаграммы состояний Harel
  • Визуальный язык
  • Текстовый DSL
  • Генерирует Java
  • Генерирует C
  • Генерирует C ++
  • Генерация настраивается / настраивается
  • На основе Eclipse
  • Открытый исходный код
  • Симуляция
  • История и глубокая история
3 голосов
/ 16 декабря 2011

Существует DSL Harel Statechart, написанный на Pharo Smalltalk и опубликованный в ОБЪЕКТСпектруме:
http://www.sigs -datacom.de / fileadmin / user_upload / zeitschriften / OS / 2011/04 / krasemann_brauer_crasemann_OS_04_11.pdf
Увы, это по-немецки. Тем не менее, код на английском языке:
www.squeaksource.com/AuDSL3.html

Реализация этого DSL может быть легко портирована на Scala комбинаторы синтаксического анализа, Это означает, что он станет доступным для Java.

Если вы хотите сделать порт, мы с радостью поможем (krasemann@acm.org).
Мы просто еще этого не сделали.

* добавлено 2012-03-17 * Порт Скала уже готов. Он поставляется как Scala Trait и, следовательно, может быть легко унаследован вашим классом scala, который может использоваться вашей Java-программой. Вы найдете это здесь: http://dl.dropbox.com/u/4548797/AuDSLinScala-src.zip

1 голос
/ 14 января 2016

ThingML - это текстовый DSL, который позволяет моделировать конечные автоматы, подобные UML (включая составные состояния, параллельные области и т. Д.).Из спецификации ThingML можно сгенерировать Java, C или JavaScript.Набор учебных пособий доступен здесь

1 голос
/ 09 января 2012

Я разработал библиотеку, которую я использую для отслеживания состояний и перемещения между состояниями в приложении, которая называется JavaKI. Это основано на KI-фреймворке, который теперь является частью JavaScript-фреймворка SproutCore. Оба основаны на диаграммах Хареля.

В настоящее время JavaKI не поддерживает хронологические состояния, но вы можете реализовать эту функцию, если вам это нужно. JavaKI основан на Java и лицензируется по лицензии MIT.

https://github.com/joachimhs/JavaKI

С помощью JavaKI вы определили свои состояния и диаграмму состояний в «Обычной старой Java».

...