YAKINDU, Statecharts, english, Software Development

Statechart modeling for Java development

In this blog post I want to give you a short teaser for an upcoming feature of YAKINDU Statechart Tools: The deep Java integration. This extension allows you to directly access Java APIs in your statechart and it hence simplifies an incorporation of state machine modeling in your Java development process.

If you haven't downloaded YAKINDU Statechart Tools yet, just click this link. You'll be able to test our tool 30 days free of charge.

Indeed, as YAKINDU Statechart Tools itself is written in Java, this direct integration with Java APIs allows us to express parts of our software with its own state machines. The implementation is based on the concept of domains and works similar to what we have already done for C/C++ development or the state machine description language SCXML.

Deep Java integration is currently work in progress. A first beta version will be released in January 2019 and will contain the following features:

  • Importing Java classes, interfaces and enums into your statechart
  • Creating variables of imported Java classes/enums
  • Accessing public members, like variables and methods
  • Calling Java APIs during simulation
  • Generating Java code

However, since a video shows more than a thousand words, please see here what is currently possible with the Java domain:


The example you see in the video is taken from our “coding kumite”, a variation of a coding dojo in which participants team up and compete against each other by solving coding tasks.

The aim was to develop an autonomous agent that is able to survive as long as possible by either shooting or dodging the incoming asteroids and enemy ships. The ship in the video is fully controlled by the statechart on the right!

Want to play around with YAKINDU Statechart Tools and deep Java integration on your own? If you are interested in becoming a beta tester for our new deep Java integration feature, just get in contact:

Become a beta tester for the deep Java integration

   
About Thomas Kutz

Thomas Kutz works as a software engineer at itemis in Lünen. Holding a master's degree in computer science and artificial intelligence, his main interest is in developing tools that make software development more efficient and enjoyable.