Model driven Software Development for Embedded Systems

Yakindu is an open-source-toolkit for the model-driven development of embedded systems. Through the systematic use of models, it aims at an integrated development process as well as an increase in quality and maintainability.

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.

Installation

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

http://updates.yakindu.org/sct/luna/releases/

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.

compare_example

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.

Bugfixes

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!

 

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:

http://updates.yakindu.org/sct/kepler/release

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.

ContentAssist1

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.

ContentAssist2

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.

 

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…

    SCT_subdiagram

    subdiagram preview

 

  • 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

    shrinking states with one click

  • 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

    Statechart with entry and exit nodes

  •  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 (https://groups.google.com/forum/?fromgroups#!forum/yakindu-user) for feedback, questions and discussions.

Installation

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

Test Driven Statechart Development with Yakindu SCT

SCTUnit is a unit testing framework for Yakindu Statechart Tools. It allows test driven development of statechart models on the semantic level of statecharts.

Check out this blog post for more information about test driven statechart development with Yakindu SCT.

 

 

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: http://updates.yakindu.com/juno/release or you can download a full Eclipse zip package. For details and installation instructions visit statecharts.org.

 

Yakindu SCT Release 2.0 published

Hooray – today we published Release 2.0.0 of the YAKINDU Statechart Tools.

Picture: NobbiP - Creative Commons Licence 3.0

Picture: NobbiP – Creative Commons Licence 3.0

In the last weeks we mainly worked on fixing bugs, polishing and everything else that is necessary to provide the appropriate quality. At this point many thanks to everybody who provided feedback on the forum or by reporting bugs.

With the release we also have a relaunch of our web site – visit www.yakindu.org.

Installation

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

Yakindu Statechart Tools Release Candidate 1 published

Today we published the first Release Candidate of the YAKINDU Statechart Tools. This is the last milestone release before our final release of version 2.0.0 that is scheduled for december the 14th. (hooray!)

First a short note on a special issue: there is a bug in GMF Runtime that broke our copy paste behavior in the last milestone release. Unfortunetely this bug was not fixed in eclipses first service release 3.8.1, so we had to provide a patch feature for GMF. If you update yakindu, be sure to install the ‘copy paste patch’ feature from our update site to get it working.

Again, we mainly worked on stuff ‘under the hood':

  1. The Validation Infrastructure as well as the Resource Implentation  were completely reworked with a significant performance improvement in large diagrams. LazyLinking is also supported by the resource implementation now.
  2. It is possible now to provide a Java class from the workspace in the run configuration to simulate Operations. The Interpreter will then load an instance of this class at runtime and execute the method with the matching signature. This is a really useful feature since it allows to access any arbitrary backend during simulation. For the final release, we will provide more documentation on this topic.
  3. … and of course a lot of bugs were fixed.

If you want to support our development, download the latest milestone release and provide us some feedback via our user group. We are really looking forward to your feedback!

 Installation & Update

It is available via our new Juno milestones update site: http://updates.yakindu.com/juno/milestones . For installation instructions visit our dowload page. For this release Eclipse Juno (4.2 or 3.8) is required..

Yakindu SCT is ready for Eclipse Juno – M15 milestone build published

Today we published a new milestone build (M15) that is ready to for Eclipse Juno release (4.2 and 3.8)!

We did not only worked on migrating to the new Eclipse release – what indeed was not such a big issue- but mainly worked on a lot of stuff ‘under the hood’.

  1. The Java and C code generators were completely reworked. We stripped off all generator features that were not really required in order to make the generator and generated code easier to use. The generated code now features a simpler and cleaner API.
  2. Operations declared in statechart interfaces are supported now. The simulator provides a first version of mock ups of operations that allows the specification of return types. are declared in the statecharts interface. The code generators provide a full support. Here operations are mapped to Java interfaces in the case of Java and to external functions in the case of C. These methods and functions have to be implemented by the client code.
  3. Fork and Join pseudo states (the synchronization bars) are now supported within the simulation and by the code generators.
  4. … and of course a bugs were fixed.
Installation & Update

It is available via our new Juno milestones update site: http://updates.yakindu.com/juno/milestones . For installation instructions visit our dowload page. For this release Eclipse Juno (4.2 or 3.8) is required..

Yakindu M14 new and noteworthy

We published a new preview (called M14) of the upcoming Statechart Tools (SCT) 2.0 today!

In this release, we implemented the following major features:

  • integrated user guide in code completion hover
  • example wizard for the java traffic light example
  • enhanced sgen editing captabilities
  • support for string literals
  • entry and exit actions for statecharts
  • and of course a lot of Bug Fixes and Test Case

Integrated user guide

All available features of the statechart expression language are documented in the user guide.  When selecting a keyword, the relevant  piece of information is displayed as text hover besides the proposal window.

 

Enhanced editing captabilities

The generator model (sgen) now provides proposal templates and quick fixes that makes creating a generator model very easy. Forall available generator features, the user documentation is integrated as tooltip hovers.

Example wizards

We ship the traffic light examples as example wizard.  Select Nnew /Examples / Yakindu Examples / Trafficlight example to create a new project containing the traffic light model, genmodel and a swt based UI that shows the integration of the generated java source code in detail.

Installation & Update

It is available via our milestones update site: http://updates.yakindu.com/indigo/milestones . Use this Eclipse update site link to install the statechart tools into your existing Eclipse Indigo (3.7.2). For a new installation choose Eclipse  menu Help/Install New Software … and  Help/Check for Updates if you have already installed a preview version of SCT

Yakindu M13 new and noteworthy

We published a new preview (called M13) of the upcoming Statechart Tools (SCT) 2.0 today!

The focus of this version was definitely on rounding the existing features off. So a lot of work was spent in Bug Fixing, writing Test Cases, as well as polishing  meta models and APIs. Nevertheless  the major feature in this release is the User Guide.

Of course it is integrated into the Eclipse help.

Installation & Update

It is available via our milestones update site: http://updates.yakindu.com/indigo/milestones . Use this Eclipse update site link to install the statechart tools into your existing Eclipse Indigo (3.7.2). For a new installation choose Eclipse  menu Help/Install New Software … and  Help/Check for Updates if you have already installed a preview version of SCT