Monday, April 27, 2015

Goodbye Google Code, hello GitHub!

Goodbye Google Code... 


As you may or may not have noticed, Google is shutting down its project hosting service google code. From August 2015, the site is going into read-only mode. For the reasons, you can read this blogpost from the google code team.

Thank you Google for providing this great service for our open source project over the last 5 years. You have served us well!

... hello GitHub!

Thanks to the google code GitHub exporter moving to GitHub was really easy. The source code (including 5 years of history) and even the issues from our google code issue tracker were migrated to GitHub automatically. Nevertheless, we decided to cut out some dead wood and didn't migrate old tags and branches to the new GitHub repository. Finally, we added a readme and some .gitignore files for generated artifacts and the migration was done. Our new repositories are located here: 

Happy cloning!

Wednesday, February 4, 2015

Autonomous driving with the Yakindu Smart Car

... admittedly you can't jump into this car - it is based on a 1:10 scale RC model. But it can drive autonomously and will be connected in the internet of things.  Our Yakindu Smart Car project aims to provide an experimental platform for autonomous driving and connectivity that is easy to handle so that everyone could build it's own.

As you can see in the video our smart car is already alive and driving. It addition to typical RC model parts like chassis, motor, and servos it is equipped with an STM32F4 ARM Cortex M4 micro controller, a bunch of sensors (ultrasonic, gyro, luminosity etc.), a signal-horn, and lights. Bluetooth and WLAN are used for connectivity. Based on this we implement different functions like a parking agent,  collision avoidance system, cruise control, indoor driving, smart lighting, also in combination with remote control and IoT integration. As an experimental platform it will be open for further functions and applications.

We assemble off the shelf mechanical and electronic components and mainly focus on the software part and we apply a model based development approach. This approach applies Franca IDL for interface definitions, Yakindu CoMo as a software component model, and Yakindu Statechart Tools (SCT) for reactive behavior together with manually written C code. Everything is nicely integrated into an Eclipse IDE. The current implementation uses ERIKA Enterprise - an open source OSEK/VDX compliant RTOS kernel. The choice of this RTOS is due to the smart cars relation to the automotive domain but support for alternative real time operating systems is also an option.

If you are interested in this project, then stay tuned! This is the first post introducing the Yakindu Smart Car project. Posts on various details will follow...   

Wednesday, November 26, 2014

Yakindu Statecharts enter Lego Mindstorms

Everyone who loves Lego Mindstorms now has another choice to program the bricks. Our new project SCT4NXT provides and easy way for programming NXT bricks by using graphical statecharts without the need for manually writing code.

You simply define the graphical statechart model, compile it into an executable, upload it to the brick, and then let it run...  it's easy, fast and fun to use - so simply try it. You'll find the downloads and a user guide on the  SCT4NXT page.

The software is free but not open source yet... it was developed as a '4+1' project by my workmate Roland Menznerowski.

Friday, October 31, 2014

Yakindu Statechart Tools 2.4.0 released

We released Yakindu Statechart Tools 2.4.0 today! It contains a lot of bugfixes and improvements as well as new features.


This release requires Eclipse Luna. You can install SCT 2.4.0 from our update site:

or you can download a full Eclipse zip package from our  dowload page.

New and Noteworthy

Here is a summary of the improvements worth mentioning:

1. Toggle documentation toolbar entry added

We added a toolbar menu item Menu-16 to the editors toolbar to toggle between documentation and formal expression language. This allows to toggle modes for the whole diagram.

2. C/C ++ generator feature for inner class function visibility added

innerFunctionVisibility (String, optional): This parameter is used to change the visibility of inner functions and variables. In default the „private” visibility is used. It can be changed to „protected” to allow function overriding for a class which inherits from the generated statemachine base class.

Example configuration:
feature GeneratorOptions {
 innerFunctionVisibility =  "protected"

3. C/C++ generator feature to change operation callback generation behavior added

staticOperationCallback (Boolean, optional): If set to ‚true’ the callback function declaration for statechart operations is static and the functions are called by the statemachine code statically.

Example configuration:
feature GeneratorOptions {
 staticOperationCallback = true

4. Model and Diagram compare feature

This release contains the beta version of a diff/merge viewer for statechart diagrams.  It integrated seamlessly into the Eclipse Team API to allow diffing and merging of different revisions as well as comparing models with the local history.


Note that this feature is still beta. There are currently two known problems (this and this) with the editor that will be fixed for the next release.


We also fixed a bunch of bugs reported via our User Group:

Toggle subregion alignment does not work
Transition into substate does not recognize parents history context
Model can not be simulated if operations in named interfaces are used
C++ generator can generates allways actions with a lower-case letter in source file
CoreFunction methods for long types incomplete
Operations of other Statecharts (in the same folder) are in scope
Class cast exception if java provided custom operation is not executable
Simulating Operations With Custom Java Code is not working as intended
Diagram corrurpted when moving transition label

Thanks to all bug reporters!

Friday, July 26, 2013

Yakindu Statechart Tools ready for Kepler

The new release 2.1.1 of the YAKINDU Statechart Tools for Eclipse Kepler (4.3) is available!

You can install SCT 2.1.1 from our new Kepler update site:

or you can download a full Eclipse bundle. For details and installation instructions visit our dowload page.

2.1.1 is mainly a maintenance release that provides compatibility with Eclipse 4.3 as well as bug fixes. But it also includes a cool new  (still beta state) editing feature - model assist on the graphical parts of the model.

You already know content assist from the textual parts of SCT statecharts and of course from JDT, CDT etc.. Model assist follows the same idea and works in a comparable way - select a state and press Ctl-Space and you get proposals for high level editing operations.


Currently we support model assist on states for adding a subregion, adding a successor state, and the refactoring operations that SCT provides. So if you e.g. select 'insert subdiagram' a region with initial entry and a connected empty child state will be added.


So it will save you a lot of mouse click work. This feature is still not final, we will have to improve key handling, layout ,etc. . But feel free to try this feature and we will appreciate any feedback on it. If you are interested in the technical details, see this blog post.

Tuesday, April 30, 2013

YAKINDU SCT Release 2.1 published

The new release 2.1 of the YAKINDU Statechart Tools is available!

It includes a lot of maintenance stuff like new bug fixes polishing a various places but also some great new features that makes working with the statechart tools event more efficient. The main points are:

  • Subdiagrams - states now can be refined using subdiagrams.  This enables you to split a hierarchical statechart into several diagrams in order to keep visual complexity low. If a state is refined by a subdiagram then this is indicated by an icon in the lower right corner  of the state. When moving the mouse over this  icon a subdiagram preview will be shown. The subdiagram is entered by simply clicking on the icon...

  • Improved diagram editing - we don't use scroll bars in the regions compartments anymore.  It tended to be annoying for different reasons. First resizing the hierarchy of regions and states in order to make place for some new element was a lot of  mouse-work. Second scrollable areas tend to hide important information, And finally the scrollbar were - lets say -  not nice. So regions and states always get the size they require. Therefore we introduced some smart resizing and relocation strategy for statechart elements. Just move around a state in its region - if you come close to the right and bottom border then the parent region will be resized and the neighbor elements will be moved in order to make place. If you the element fast or across the top and left border then you can move them to another region. Try it - its fun ...
    Another bit of usability is provided by the new 'shrink' handle that allows you to shrink a state to a minimum size with just one click. You can find left to the bottom-right resize handle of states or top level region.

    Bildschirmfoto 2013-04-30 um 16.56.31

  • Refactorings - we now support various refactorings like renaming, extract and inline subdiagrams, fold incoming and outgoing transition actions, unfold exit and entry actions, an group states into composite state. You can find a more in Andreas blog post on refactorings. At this point - many thanks to Thomas Kutz who did large parts of the refactoring implementation.

  • Entry and exit points - we now fully support entry and exit points that will be described in more detail in a separate blog post...

    Bildschirmfoto 2013-04-30 um 17.17.31

  •  Documentation - The Statechart Tools support a documentation mode now. It is possible to add plain text in addition to the expression language to States, Statechart and Transitions. The documentation can be provided via the elements property view. This is especially useful in in the early state of statechart development, when the integrated expression language might be too formal. For each element, the documentation / expression can be toggled via its context menu.Documentation

We hope that you'll like the new release. As always any feedback is appreciated. Simply use our google group (!forum/yakindu-user) for feedback, questions and discussions.


This release requires Eclipse Juno (4.2 or 3.8). You can install SCT 2.1.0 from our update site: or you can download a full Eclipse zip package. For details and installation instructions visit our dowload page.

Tuesday, January 29, 2013

Yakindu SCT Bugfix Version 2.0.1 released

Today we published the bugfix version 2.0.1 of the Yakindu Statechart Tools.

The following bugs were fixed with this release:

1. C code generator does not escape quotes in strings
2. Java code generator does not escape quotes in strings
3. Execution of custom code during simulation fails when using operations within named interfaces
4. Synchronisation-Join leads to double entry action call
5. TypeInferrer Bug in valueOf expression
6. Simulation fails when using States with empty regions

Thanks to all bug reporters!

This release requires Eclipse Juno (4.2 or 3.8). You can install SCT 2.0.1 from our update site: or you can download a full Eclipse zip package. For details and installation instructions visit