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.

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!

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:

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.

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...

    SCT_subdiagram
  • 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 (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.

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

Wednesday, December 19, 2012

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

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.

Tuesday, November 20, 2012

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..