Eclipse 4diac 2.0.0

2.0.0

Description

The goals for this release are:

  • 4diac IDE
    • Improve usabilty and editing efficiency of all editors
    • Improve stability of STRUCT_MUX and STRUCT_DEMUX blocks and introduce monitoring for Structured Datatypes
    • Introduce editing history during undo/redo
    • Improve layouting results
    • Improve error messages and validation in the textual algorithm editors
    • Introduce error markers to handle broken projects more gracefully
    • Improve code quality
    • Introduce support for interpreting models
  • 4diac FORTE
    • Mainly bug fixes and stabilizing 4diac FORTE
API Certification

The project leadership certifies that the APIs in this release are "Eclipse Quality".

Architectural Issues

The project team uses Sonarcloud to continuously improve the quality of the code. Currently, sonarcloud lists no security vulnerabilities. Sonarcloud lists one bug and three security hotspots at the moment.

4diac IDE is split to several features and is composed of over 60 plug-ins, thus demonstrating the extensible nature of the project. Isolated components such as the model execution framework, the deployment integration for 4diac FORTE, or the integration of the Eclipse Layouting Kernel are separated in own plug-ins.

4diac IDE follows the model/view/controller-pattern of GEF3. As a result, the model (generated from EMF metamodel) is separated from the logic for manipulating the model elements. Automated tests are currently provided for many commands editing the model, but not all of them. Automated tests from a user perspective are not available.

4diac IDE nowadays uses a pom-less build, which has significantly improved the maintainability of the build, especially when any developer needs to create additional plug-ins. While the project team has been working on stabilizing the API of the project, only little documentation of the API is hitherto available.

4diac IDE is ragularly updated to the include the most modern Eclipse platform. Because of some issue not yet resolved for the 2.0.0 this will Eclipse 2021-06.

4diac FORTE is based on a core providing the main functiality. A hardware and operating system abstraction layer ensures that 4diac FORTE can be easily ported to different divices and operating systems. Currently 4diac FORTE builds and has been tested on: eCos, freeRTOS, Linux (ppc, amd64, arm), MacOS, pikeos, vxWorks, rcX, ThreadX, and Windows,

4diac FORTE features an extensible communication architecture allowing to easily intergrate different communication protocols. Currently 4diac FORTE provides already HTTP, Modbus TCP, OPC classic, OPC UA, EthernetPOWERLINK, ROS, TSN, and XQuery.

In order to be adaptable to the needs of different applications 4diac FORTE's build system features a module system where users can select which modules should be included in a specific 4diac FORTE. Such modules are typically IEC 61499 function block libraries or IO support of different devices.

Security Issues

Based on the lists of vulnerabilities in Bugzilla, the project team is not aware of any vulnerabilities that affect Eclipse 4diac.

Non-Code Aspects

Documentation is available on the website and covers several topics, including:

  • the standard IEC 61499,
  • a step-by-step tutorial for novice users of 4diac FORTE and 4diac IDE,
  • how to build 4diac FORTE or 4diac IDE on various platforms, and
  • how to contribute.

This documentation is regularly updated to cover new releases.

Usability Details

4diac IDE provides views and editors as plug-ins to the Eclipse platform. The UI/UX guidelines are considered during development. Nevertheless, the following known exceptions to the conformance of these guidelines are present in 4diac IDE:

  • Many icons follow the guidelines, however, a large number of icons is needed to identify each element of the visual language. As a result, users had difficulties to distinguish these icons. The color palette was extended and not all icons have a color gradient.
  • Wizards do not have banner graphics.
  • Many commands available in the editor are displayed in the window menu bar, but not all of them.
  • The outline view does not have a context menu.
  • Menus do not consistently follow the order provided in the guidelines. To reduce the number of elements in the context menu, which was difficult to navigate, many items are set invisible, not only disabled.
  • Link with editor does not currently work in the graphical editor.
  • Editing models in 4diac IDE requires both a mouse and a keyboard. Keyboard-only navigation is currently not supported.
  • The rules on Capitalization are not consistently implemented.

4diac FORTE does not have a graphical user interface. It is a runtime that can be executed on common operating systems and additionally on embedded devices. In order to allow end-users to use the runtime and to compile a version that is suitable for their application, the project Eclipse 4diac provides detailed documentation on its webpage here. As common embedded platforms such as Raspberry Pi are supported, 4diac FORTE has a high utility for the use cases of its target group.

 

Standards

Eclipse 4diac implements an environment for the IEC 61499. This standard is currently in a maintenance phase. Eclipse 4diac serves here also as an incubator to evaluate new features for the upcoming IEC 61499 edition.

For 4diac FORTE, we are on the move to C++ 11 and with this release, a C++11 compiler will be required.

Communities

Users of Eclipse 4diac can be found both in the academic and industrial environment. Questions from users have reached the project team via a variety of platforms, including Twitter, the Linkedin group, the developer mailing list, the 4diac forum and our Mattermost channel. These channels are advertised in the footer of our web-page as well as in a dedicated support sub-page.

Eclipse 4diac is used in a range of publications, especially in the domain of industrial automation, which is the main focus of the project. The project team aims at gathering these publications on the project team and a request for author permissions is currently ongoing. This should increase the visibility of Eclipse 4diac and the variety of use cases to which Eclipse 4diac has contributed. Academic works are known from presentations at the IEEE ICPS, IEEE ETFA, IEEE INDIN, and ACM/IEEE MODELS conference, as well as several journal publications.

Adopters provide feedback and requests for certain API features. In 2019, around 30 developers, committers and users have met to exchange ideas in the event 4days of 4diac held in Linz, Austria. Earlier community meetings involved workshops at the IEEE ETFA conference held already between 2010 and 2016.

The project lead and some committers offer trainings in IEC 61499 and Eclipse 4diac for interested organizations to potentially grow the number of users and adopters. These trainings furthermore help to expand the knowledge about IEC 61499 in the industrial environment.

Eclipse 4diac was presented at industry conferences in 2020 at MESCONF2020 and ASE2020 as well as at the International Summerschool for Industrial Agents 2021.

Eclipse 4diac currently has eight committers from various organizations, mostly from an academic environment. Furthermore, developers engaging in Eclipse 4diac are spanning both universities and industrial users. The contribution activity over the last 12 months has been stable, on average 60 commits were published per month. Over the past three months, 12 developers have contributed to Eclipse 4diac, mainly 4diac IDE. Committers have engaged in the EclipseCon, including a full talk given by the project lead ("How to gain control over your industrial IoT hardware zoo"). At EclipseCon 2020, a short introduction to Eclipse 4diac was presented in the Eclipse IoT Community Day in order to get to know other related projects. A proposal for a full talk was also submitted to the EclipseCon 2021. Developers are actively seeking feedback from users and adopters. For instance, two user studies have been conducted, published at the ACM/IEEE MODELS conference. Based on their feedback, the usability and usefulness especially of the 4diac IDE could be improved.