Today the YAKINDU Team released YAKINDU Statechart Tools Professional Edition 3.0. This release is the first new major release of the Professional Edition that was built on top of the new Standard Edition we released 2 weeks ago.
Thus, all the new features available in the Standard Edition, like our testing framework SCTUnit, are also available in the Professional Edition. In addition to that, the Professional Edition provides a tight integration of statecharts with C code as well as the possibility to use breakpoints and snapshots for debugging your state machine.
With this release we mainly focused on the deep C integration as well as overall improvements in performance and user experience of the tool.
The Professional Edition comes with
- C system headers can be imported using the deep C integration
- very large header file support (also deep C integration)
- statechart unit testing support - a widely requested feature (BETA)
- support for declarative execution semantics
- usability improvements
- code generator improvements
and of course a set of bug fixes.
System Header Imports
Besides fixing several smaller issues, we took our time in reworking some internals of the deep C integration, especially when it comes to handling header imports. The most notable difference for the user is the possibility to include systems headers in your statechart model.
As you may have noticed the import syntax slightly changed. The preferred way now is to use a string literal to import a header file. However, the old syntax is still supported, but deprecated.
Very Large Header File Support
YAKINDU Statechart Tools are used in many different application domains with different project sizes. Especially in the automotive domain, when dealing with large AUTOSAR models, it is not uncommon to have thousands of source files with sizes up to several MBs with hundreds of thousand of declarations. In order to provide a very good user experience while editing statecharts and also for the code generators, we reworked our indexing infrastructure which is now remarkably faster while using less memory.
SCTUnit: The Testing Framework for State Machines
With this release, we introduce a beta version of our testing framework SCTUnit. SCTUnit allows test-driven development of YAKINDU Statechart Models. These tests can be executed directly within your IDE to check if the model behaves as expected. It also generates unit tests for Java, C and C++.
- Execute tests directly in your IDE
- Code generators for C/C++ (GTest & GMock) and Java (JUnit & Mockito),
- Mocking operation return values
- Verifying operation calls and their parameters
- Virtual Time - easy testing of time triggers
Statechart Execution Semantics
Users now specify the concrete variant of execution semantics in the statechart itself. In previous versions you specified cycle based or event driven semantics using run configurations. Now this is specified using so called annotations. Annotations are also used to specify if the execution order in a hierarchical statechart chart should be parents-first or child-first.
Filter for Generator Models
In some cases it might be inconvenient to execute all generator models during a project build, especially if you have different generator models for different use-cases, for example, headless execution. To provide a more fine-grained control of which ones should be executed, it is now possible to exclude particular generator models or entire folders from the automatic build execution in the project’s properties.
Deep C Integration Improvements
- Support for variadic functions (variable length argument lists)
- Simulation of C statecharts only shows used elements in simulation view
- Choice nodes can now be resized with a fix aspect ratio (#1241, #432)
- Perspective switches back to modeling view when simulation terminates (#1279)
- Note attachments can be deleted now (#335)
- In simulation view, operations have a distinctive icon now (#723)
- In generator model creation wizard, the order of statechart models is aligned with the one in project explorer (#796)
- Fading time for snap-to-grid support lines is reduced for better user experience (#804)
- Warning for sgen files that do not contain any entries (#1402)
- It is now possible to use binary literals like '0b01011' as integer values (#1385)
- Hint for content assist in definition section (#1417)
- Double click drag tracker added for notes (#1421)
- Color of active states in simulation is changed to yellow now (#1277)
- Disabled auto reveal on selection (#1393)
Code Generation Improvements
- Removed magic numbers in generated C code (#1336)
- Fixed isActive() method to return correct values for inactive state machines (#1391)
- For C++ code generation, StatemachineInterface.h is placed into library target folder (#1406, #1331)
- Fix display of error markers (#1340, #1339)
- Fix TODO and FIXME markers (#1429)
- Bug in AbstractTypeSystem.remove(Type) (#1477)
YAKINDU SCT 3.0 Standard Edition
With release 3.0 we introduce the Standard Edition as the little brother of the Professional Edition.