Everyone loves open source modeling tools, especially those which are based on Eclipse Modeling. However, there are also a number of commercial modeling solutions, which play important roles in several industries. Some of these are based on open source frameworks and are also extensible like Eclipse itself – which makes them very interesting to technology providers who are looking for opportunities to find new audience and commercialize their solutions. In this talk, we would like to explore this old-new territory, from the point-of-view of an Eclipse Modeling solution provider, and report on the lessons learned from building hybrid (part open source, part commercial) solutions.
One such commercial platform is MagicDraw, which is one of the leading systems engineering tools based on UML/SysML. It provides its own plug-in mechanism, a customizable and component-oriented UI, and an Eclipse Modeling Framework compliant data representation API. This platform has already attracted a small number of third-party developers in the past, however, recently MagicDraw has started to use OSGi as its core extensibility mechanism. This change makes way for a smoother interoperability between Eclipse Modeling technologies and MagicDraw plug-ins.
In this talk, we summarize the lessons we have learned during the MagicDraw adaptation of VIATRA, Eclipse’s open source framework for scalable reactive model transformations. We have built V4MD, an open source extension for MagicDraw that others can freely reuse and build on, and IncQuery for MagicDraw, a commercial add-on that provides powerful yet user-friendly querying and validation capabilities.
The highlights of the talk are:
- OSGi and EMF in MagicDraw. We summarize our experience regarding dependency management for developing MagicDraw add-ons using Eclipse as an IDE, and Eclipse Modeling technologies as runtime components. We also overview MagicDraw’s EMF-compatible interfaces, with some slight and some deeper differences in implementation compared to standard EMF-based tools.
- Using Xtext and the Language Server Protocol in a commercial platform. MagicDraw provides an extensible Swing-based UI component library, which lacks high-end textual editor components. Therefore, we experimented with various technologies to integrate Xtext-based editors, and report on our experiences.
- Gradle to the rescue. We summarize our findings in configuring an automated build process (both Gradle and Maven) that supports the non-standard dependency format of MagicDraw plug-ins and allows compiling from Xtext based textual languages (Xtend and VQL).
- The open source ecosystem around MagicDraw. There are some open source projects that provide MagicDraw plug-ins, in particular the OpenMBEE workbench developed among others by NASA JPL. We will overview how these plug-ins provide an invaluable library of reusable assets.