=Paper= {{Paper |id=Vol-1290/paper1 |storemode=property |title=On Developing Open Source MDE Tools: Our Eclipse Stories and Lessons Learned |pdfUrl=https://ceur-ws.org/Vol-1290/paper1.pdf |volume=Vol-1290 |dblpUrl=https://dblp.org/rec/conf/models/BruneliereC14 }} ==On Developing Open Source MDE Tools: Our Eclipse Stories and Lessons Learned== https://ceur-ws.org/Vol-1290/paper1.pdf
    On Developing Open Source MDE Tools: our
        Eclipse Stories and Lessons Learned

                        Hugo Bruneliere and Jordi Cabot

                   AtlanMod Team (Inria, Mines Nantes, LINA)
       Ecole des Mines de Nantes, 4 rue Alfred Kastler, 44307 Nantes, France
                    {hugo.bruneliere,jordi.cabot}inria.fr
                      http://www.emn.fr/z-info/atlanmod



      Abstract. Tool development has always been a fundamental activity
      of Software Engineering. Nowadays, open source is changing the way
      this is done in many organizations. Traditional ways of doing things are
      progressively enhanced or even sometimes replaced by new organizational
      schemes, benefiting as much as possible from the properties of open source
      (OS). This is especially true in innovative areas such as Model Driven
      Engineering (MDE) in which new tools are constantly created, developed
      and disseminated, many of them coming from research teams. This poses
      some hard questions: What is the actual impact of OS in terms of tool
      development? How to best take advantage of OS communities? And what
      are the opportunities for research teams in this context? Capitalizing on
      experiences in developing MDE OS tools on top of the Eclipse platform
      and its license model, we try to give some insights on these questions in
      this paper.

      Keywords: MDE, Tool, Development, Industrialization, Open Source,
      Eclipse, Lessons Learned


1   Introduction

The world is full of open source prototypes or tools that are globally ignored,
even sometimes by their own creator(s) that do not have the time/resources or
simply the wish to continue supporting them. They may have been developed
as proofs-of-concepts to experiment on innovative ideas (and publish the corre-
sponding research papers) or as formal deliverables within collaborative projects,
and forgotten not so long after. This finding is particularly true in the context
of relatively new or emerging fields, such as Model Driven Engineering (MDE).
    We think we can all agree this is an unfortunate situation. The benefits of
transferring such pieces of technology from innovation labs to the real (software)
industry being numerous and well-known [4], it may seem strange that many
of the available open source (MDE) tools are not more largely integrated and
used by practitioners. The main argument generally mentioned is their poor
maturity level according to the industry criteria. In fact, except for a few pure
“innovators” [14], technical innovation is only one of the factors that influence
company decisions regarding the adoption of new solutions. Many other aspects
such as usability, robustness, performance, documentation, long-term support,
pricing or general policies are usually regarded as (much) more important.
    One of the main reasons for this lack of maturity in many cases is that creators
too often attempt to simply release their prototype/tool as open source software
hoping the “community” will jump in and naturally take care of carrying out
the main development, maintenance and upgrade tasks. In practice, doing this
alone appears to be most of the time insufficient. Many open source projects
quickly get out of funding or finally fail to attract any real interest from com-
munity members, developers or potential users [10]. Therefore, we believe more
elaborated and structured development and industrialization processes should
be strongly encouraged.
    In this paper we present our past and present experiences (more or less
successful depending on the cases) in initiating and developing/promoting open
source MDE tools, the main issues we have faced (until today), as well as some of
the interesting lessons learned in the process. Note that most of our experience
concerns the well-known Eclipse open source community and its Eclipse Public
License (EPL) [18].
    The paper is structured as followed. Section 2 first introduces our “free”
experiments, i.e. prototypes that have been developed based on individual ini-
tiatives in the team without any particular external support, and how they have
evolved with time. Then section 3 presents another set of prototypes, developed
in a more structured and “funded” context (i.e. industrial and/or research col-
laborative projects), and the impact it has on them. Section 4 reports on our
main success stories and how the corresponding tools become sustainable thanks
to the “industrialization triangle” we have been able to set up in those cases.
Finally Section 5 summarizes the main lessons learned notably regarding the use
of open source (and related communities such as Eclipse) as a good medium (if
used correctly) to develop and industrialize such MDE prototypes/tools, before
Section 6 concludes the paper.


2   The Free Way: Developing tools on our own

Within the context of our research team, some model-based prototypes/tools
have been initiated and developed mostly on an individual basis, meaning that
they were mainly the outcome of personal initiatives not directly supported by
any particular funded project or collaboration (either industrial- or research-
based). For these tools, results have been very contrasted. While one of these
tools ends up being later on really successful (but mostly because we changed its
development model, see the case of ATL in Section 4), others had a much more
limited impact or have been simply “given” to the community some months
after their launching. The next paragraphs introduce examples that did manage
to raise some real interest but never actually made it as widely used tools or
commercial solutions.
    EMF2CSP [8] is a tool providing support for the automated verification of
EMF models (i.e. UML or Ecore ones), notably checking several correctness
properties such as satisfiability or OCL constraints validity. This tool is the
continuation of UML2CSP and has been developed in the context of a PhD
thesis. In both cases, the design and developments were realized outside of any
particular project or collaboration. While both tools are highly cited in the
research community on model verification, the tool and approach themselves
have raised a relatively low interest at the industrial level.
    Another example is the EMF-Rest tool [1] that has been developed within
the context of a Master thesis. It provides basic support for generating REST-
ful APIs from EMF models, allowing these models to be used on the Web via
JSON objects. Started as a simple prototype, the first obtained results were very
promising in terms of new capabilities and potential applications. Also, we re-
ceived encouraging feedback from the industry while introducing the tool at an
Eclipse community event. However the creator of the tool left our team and, with-
out other available resources at that time, we decided to ask the community for
help in developing if further. This tool is currently still available as open source,
including its full source code, documentation, examples, etc. Unfortunately, no-
body has really strongly committed so far to continue its development.
    Based on these examples (and others we cannot detail here due to space lim-
itations, e.g. the Collaboro tool [6] for the collaborative development of DSLs),
the main benefit of this way of developing tools is obviously the complete liberty
that you have to explore different problems, experiment with several conceptual
and technical solutions, etc. Not directly depending on any particular funded
project or collaboration gives a lot of autonomy in terms of architectural de-
cisions, technological choices and of course (research) directions to be taken.
However, this freedom comes with a usually high price. The most important
limitation relates to the available resources and the degree of commitment you
can expect from the involved people. This is particularly true when the creators
of such tools have temporal positions, and therefore frequently leave the team
or just change topics. As another side effect, working somehow isolated can con-
siderably reduce the potential visibility of the work as well as the relevance of
the obtained results.


3   The Funded Way: Developing tools as part of
    collaborative projects

As most of research teams, our activity is largely funded by collaborative actions
or projects with other academics and industrials. In this context, there is room
for thinking on MDE innovations and creating corresponding model-based pro-
totypes that meet (some of) the objectives or requirements of the projects. Once
again, the results obtained with these tools have been very varied. While one of
these tools is actually a main success for us (cf. the case of MoDisco in Section
4), others are still in development and have no guarantee of being sustainable
in a more or less near future. The next paragraphs present examples of such
prototypes.


    Neo4EMF [2] is a tool linking EMF with the Neo4j graph database manage-
ment system. The main objective of this tool is to offer Neo4j-specific EMF code
generation facilities that allow EMF models to be loaded, queried and stored in
graph databases, benefiting from fast storage and on-demand loading/unloading
capabilities. It has been started as part of a French collaborative project (ITM
Factory) and is also developed in the context of a PhD thesis directly funded by
an European collaborative project (MONDO). This work has already resulted
in a scientific publication and been presented to Eclipse community events, re-
ceiving a generally positive feedback in both cases. The MONDO project is still
going on today, but so far there is still no well-defined path/vision for the tool’s
future after the project ends.


    A similar story can be told for the EMF Views tool [16]. EMF Views is a
solution for building so-called model “views” by linking several (potentially large
and heterogeneous) EMF models. Relying on a virtualization mechanism at both
metamodel and model levels, such views can then be considered and handled
(read-only) as regular EMF models by users or other EMF-based tools. The
current tool is an extended version of the Virtual EMF prototype as originally
created within the CESAR European project. The developments have then been
continued as part of the TEAP French project, and are still going on today.
However, in this particular case, the funding will end in the coming months and
decisions will have to be taken regarding the next steps for this tool. A possible
option is the reuse and extension of the tool in the context of another French
project (MoNoGe) started more recently, which will postpone hard decisions on
the tool’s future for a couple of more years.


    Compared to the “free” way presented earlier, the main benefit of the funded
approach is the security in terms of allocated resources and time: funds are ex-
plicitly distributed and guaranteed at least during the whole duration of the
project or collaboration. Another important advantage is the collaborative as-
pect, notably if involving one or several industrial partners. This allows ensuring
more easily that the addressed problems or targeted applications correspond to
real needs from the industry. However, some limitations can be sometimes en-
countered. As an example the environment can be quite constrained by the
(industrial) partners’ requirements, e.g. in terms of challenges to be tackled,
technical basis to be used, legal or administrative issues. Moreover, exploitable
results generally have to be proposed at the end, making the expectations (much)
higher for the developed solutions. This can be somehow contradictory with the
research activity which implies more uncertain results by nature.
4     The Sustainable Way: Developing tools in an
      industrialization triangle
Being a research team, it is very difficult (and not really our goal) to lead the
process of making our tools industrial/commercial-ready (i.e. mature enough in
terms of tests, documentation, interface, etc. to be used as is within companies).
    Next section proposes a possible industrialization schema that could enable
research teams end up with mature tools while focusing on the things they do
best (research and innovation).

4.1   A General Industrialization (Business) Model
Our model can be represented by a virtuous triangle (see Figure 1) with the
following actors as vertices:
 – research labs (innovation providers),
 – end-users / communities (e.g. big companies),
 – SMEs (technology providers).
In this schema, the SME has a very important role to play as taking care of
actually “industrializing” the prototype proposed by the research lab according
to the needs from the end-users. Of course, there also exists models of direct col-
laboration between a research lab and a big company [13] but we do believe the
introduction of such an SME in the process can bring additional benefits (e.g.
allowing them to delegate some tasks). From the SME side, the main challenge
resides in identifying and setting a valuable business model [12], notably consid-
ering open source as a key element [11]. However, both the research labs and the
partner companies (i.e. the users) are also concerned and can actually support
the SMEs in this (e.g. by participating actively to dissemination actions).
    During all that process, the tool remains available in open source. In our
experience but also others [3], it largely facilitates the communication and agree-
ments between all partners (e.g. via open bug tracking systems, source reposi-
tories, emailing lists, etc.) while ensuring sufficient individual benefits for all of
them. Moreover, the fact of working openly helps accelerating the creation and
progressive growth of a relevant user base, even when the protoype/tool is still
under active development.
    The relationship between the actors in the triangle can be described as a
six-step process that can be iterated over several times for a same tool, possibly
involving different and/or new partners in the loop:
 – Problem description from the end-users. End-users are providers of
   real problems to solve in their industrial context. In this sense, the indus-
   trialization triangle forces a problem-driven research approach where the
   user base must be large enough to represent a potential market sufficiently
   attractive for a SME.
 – Evaluation of research challenges. The lab filters the list of problems,
   according to the state-of-the-art in the domain, and identifies those possibly
   implying relevant research questions.
                   Fig. 1. A virtuous industrialization triangle


 – Research work. The lab performs the activities required to solve the se-
   lected problems and builds proof-of-concept(s) validating the research re-
   sults. At this point, obtained results are mature enough to be published but
   the prototype implementation is not yet ready to be used in an industrial
   environment.
 – Identification of a suitable SME. Once the real potential of the tool is
   validated, the research lab looks for a technology provider. For instance, it
   can be a SME which has already collaborated with the research lab in the
   past (in the context of a funded research project or collaboration).
 – Industrialization of the research tool. The lab and the SME collaborate
   to transform the prototype into a commercial tool. The SME takes over
   traditional software development and maintenance tasks, in exchange for
   gaining visibility in the community and proposing specialized services around
   the tool, while the lab provides its scientific expertise.
 – Official release of the industrialized version. The final tool is made
   freely available to the community. Thus, all partners can extend the tool
   (e.g., the lab to implement some advanced features only relevant for its
   research context, the SME to provide a commercial adaptation to a specific
   customer) which will be adopted or not by the rest of the users.


4.2   Two Success Stories and Some Feedback

We have been able to successfully apply this triangle twice. We briefly de-
scribe these two experiences and, based on them, summarize the main advan-
tages/drawbacks of this model.
    The most successful tools of our team, not only in terms of research publi-
cations but also in terms of industrial applications and acceptance, are ATL (a
tool dedicated to model transformation) [9] and MoDisco (a framework for imple-
menting model driven reverse engineering solutions) [5]. We initiated these two
tools as part of European research projects (respectively MOTOR/CARROLL
and MODELPLEX ), cf. other examples from Section 3. To be more accurate,
the real genesis of ATL was even a bit before within the context of a Master the-
sis based on the exploratory work from a previous PhD thesis, cf. other examples
from Section 2. Quickly after their inception, both tools were proposed to and
integrated by the Eclipse Foundation as part of the Eclipse “Modeling” project,
under the open source Eclipse Public License (EPL) (cf. next Section 5). This
largely contributed to the development of significant user communities. Some big
companies were already experimenting with the tools, but the lack of industrial
support at the time was preventing them to deploy the developed solutions in
their actual production environments. In each case a local technology/solution
provider joined the project, respectively Obeo and Mia-Software (Sodifrance).
    In the case of ATL, Obeo agreed to be in charge of the maintenance of the
stable version and the general improvement of the tooling (e.g. by integrating
some of the innovations we proposed). In the case of MoDisco, Mia-Software
has been taking care of maintaining the existing integration framework and
developing new high-quality components for improving the overall solution. In
exchange, both companies have complemented their product suites, as well as ex-
tended their service offer by selling dedicated support and training when needed.
Moreover they have also gained visibility, hence creating new opportunities for
business and further participation in collaborative projects. The two tools pro-
gressively grew up reaching a sufficient maturity level to officially become parts
of the yearly Eclipse Simultaneous Releases. In parallel, active user communities
have been developed and effectively contributed to a larger dissemination of the
projects and their results.
    Compared to the two previously described ways of developing tools, this
sustainable triangle offers many advantages. Among them, we can notably cite
the fact of working on real industrial challenges to be solved, having an easier
access to real testing scenarios (from end users), benefiting from highly qualified
professional and technical support, gaining more visibility from the community
(dissemination in open source), etc. However a limitation of this approach is
its difficulty to be set, and more particularly the complexity to find the right
technology provider (e.g. an innovative SME). Also, such an approach requires
a clean structuring and concrete applicable results which are not always easy to
obtain in a research environment.


5   Some (other) lessons learnt

There are many factors to have in mind when selecting a proper development
strategy promoting a Software prototype to a tool. For instance, from a research
perspective, the culture of entrepreneurship of the host organization [15] or other
parameters such as the internal policy/management and external ecosystem [7]
are some general aspects to be considered. Beyond choosing the right devel-
opment strategy for you (among the main models presented above and possible
combinations of them), there are several elements that we believe research teams
should pay particularly attention to when developing open source tools expected
to become widely adopted as industrial/commercial solutions at some point:

 – Using the right open source license. Open source is a common factor
   between the three strategies for tool development we have presented. Inde-
   pendently from the chosen (business) model, we believe relying on an open
   source license is a must as it simplifies a lot all common actions between
   the partners, notably concerning legal aspects (e.g. intellectual property)
   or results exploitation and dissemination (especially for the research team).
   However, all open source licenses and related communities do not offer the
   same opportunities. When selecting an open source license, we recommend
   choosing one that allows commercial adaptations and redistributions. Thus,
   in our cases, the use of the Eclipse Public License (EPL) [18] creates a win-
   win situation for both academics and industrials.
 – Integrating a widely recognized community. Open source is not enough
   per se to attract new users as many open source projects are half-dead, of
   relatively poor quality or not really adopted. Instead, being part of a lively
   ecosystem and having an official project in a recognized community (e.g.
   Eclipse) gives a lot more visibility. It helps attract both collaborators (that
   would like to see their name linked to that community) and users (that will
   perceive it as a guarantee of high-quality). We recommend identifying such
   a community in its domain to really benefit from the visibility and interac-
   tions with its members. However this is a bidirectional effort: the research
   team itself also needs to invest on the community (e.g. in our case we attend
   the Eclipse conferences or use other Eclipse projects beyond the ones we
   develop).
 – Following structured development processes. Building a real tool re-
   quires a well-defined development process (milestones, bug tracking, version
   control, tests, coding guidelines, etc.). We were not following all these best
   practices at the beginning, but the growing complexity and increasing num-
   ber of users encouraged us to adopt them. Being part of a community with
   its open procedures (e.g. the Eclipse Development Process [17]) really helps
   in this matter. In addition, planned release cycles (e.g. yearly Eclipse Simul-
   taneous Releases) force the project teams to release and update tool versions
   (and related documentation) on a regular basis. But deploying such a process
   can be quite heavy and so cannot be supported by a research group alone
   (e.g. which may not have the required experience), making the partnership
   with a company even more important.
 – Relying on a reference framework. For a tool to be stable and reliable,
   it must be built on solid ground. Thus reusing/extending an already well-
   established and recognized base framework is a guarantee of a certain quality
   level, and also helps targeting a more widespread audience. In the context
   of our tools, we naturally decided to use EMF as the reference open source
   modeling framework in the Eclipse community. However, while capitalizing
   on the numerous benefits brought by such a reference framework, we also
   inherit from its drawbacks that should not be underestimated. For instance,
   EMF has some scalability issues when dealing with very big models and these
   are interesting open spaces for research and experiments. As an answer to
   this, we do collaborate with one of our partner SMEs (namely Mia-Software)
   to propose solutions improving the current situation (cf. Neo4EMF as intro-
   duced in section 3).
 – Being supported and appreciated by the research team’s host lab
   for the transfer/industrialization effort It is necessary to benefit from
   dedicated resources/structures, offered by the hosting institution, in order
   to help the research team during such an industrialization process. Indeed,
   this process requires significant (and non-core research) additional effort and
   knowledge in legal, financial, logistic or commercial aspects, which are not
   competences always found in research. As an example in our case, Inria
   and Mines Nantes are providing support to their different research teams
   via dedicated “Innovation / Technology Transfer” entities. However, despite
   of this, the required extra effort is not always rewarded at its real value
   by the hosting research institution, highlighting the more global problem of
   current evaluation criteria in research organizations. Consequently (mostly
   due to resource limitation) many research teams voluntarily ignore this part
   of what should also be part of their normal working activity.

6   Conclusion
There is no silver bullet when it comes to create, develop and promote successful
MDE tools. All along the paper, we have presented three different (and some-
times complementary) possible approaches applied (more or less successfully) in
various cases depending on a given context or area of application. All of them
have in common the fact that open source is considered as a key element in
the process, more particularly when it comes to development, dissemination and
business purposes.
    From a public research perspective, and independently from the finally se-
lected model, the main challenge is finding the right balance between the funda-
mental nature of research activity and the expected (and evaluated) results in
terms of scientific publications, innovative conceptual solutions, corresponding
prototypes, etc. In the short-term, spending a lot of effort on such tool develop-
ment may seem counterproductive compared to the more immediate results that
can be obtained if focusing only on publishing scientific papers. However, in the
medium- or long-term, a successful open source tool may be one of the biggest
assets a research team may produce, which is particularly true in an engineer-
ing domain such as Software Engineering. Later on, this can notably translate
in many benefits for the team like getting more interesting contacts, collabora-
tion opportunities (projects/contracts) and so potential available resources for
continuously exploring different research lines.
Acknowledgments. We would like to thank all the past and present AtlanMod
team members as well as collaborators from partner companies that have been
working on these various open source projects/initiatives within the last years.


References
1. Alvarez C., Canovas, J., Cabot, J., Bruneliere, H.: EMF Rest: EMF models as REST
   APIs. In: EclipseCon Europe 2013 - Modeling Symposium, Germany, October 2013.
2. Benelallam, A., Gomez, A., Sunye, G., Tisi, M., Launay,D.: Neo4EMF, a scalable
   persistence layer for EMF models. In: Proceedings of ECMFA 2014. UK, 2014.
3. Bordeleau, F.: Open Source Modeling: The Key Importance of the Community and
   the Impact on Business Models. In: EclipseCon France 2014, June 19, 2014.
4. Bozeman, B.: Technology Transfer and Public Policy: a Review of Research and
   Theory. In: Research Policy, vol. 29, issues 4-5, pp. 627-655. Elsevier (2000).
5. Bruneliere, H., Cabot, J., Dupe, G., Madiot, F.: MoDisco: a Model Driven Reverse
   Engineering Framework. In: Information and Software Technology, vol. 56, issue 8,
   doi: http://dx.doi.org/10.1016/j.infsof.2014.04.007, pp. 1012-1032. Elsevier (2014).
6. Canovas Izquierdo, J.L., Cabot, J.: Community-driven language development. In:
   Proceedings of MISE Workshop at ICSE 2012, pp. 29-35, Switzerland. IEEE (2012).
7. Friedman, J., Silberman, J.: University Technology Transfer: Do Incentives, Man-
   agement, and Location Matter? In: Journal of Technology Transfer, vol. 28, num.
   1, pp. 17-30. Springer (2003)
8. Gonzalez, C.A., Buttner, F., Clariso, R., Cabot, J.: EMFtoCSP: A tool for the
   lightweight verification of EMF models. In: Proceedings of FormSERA 2012, pp.
   44-50. Zurich, Switzerland, IEEE (2012).
9. Jouault, F., Allilaire, F., Bezivin, J., Kurtev, I.: ATL: a Model Transforma-
   tion Tool. In: Science of Computer Programming, vol. 72, issues 1-2, doi:
   http://dx.doi.org/10.1016/j.scico.2007.08.002, pp. 31-39. Elsevier (2008).
10. Krishnamurthy, S.: Cave or Community?: An Empirical Examination of 100 Ma-
   ture Open Source Projects. In: First Monday, vol. 7, num. 6. (2002).
11. Lindman, J., Rossi, M., Puustell, A.: Matching Open Source Software Licenses
   with Corresponding Business Models. In: IEEE Software, vol. 28, num. 4, pp. 31-35.
   IEEE (2011).
12. Popp, K.M.: Software Industry Business Models. IEEE Software, vol 28, num. 4,
   pp. 26-30. IEEE (2011).
13. Sandberg, A., Pareto, L., ARTS, T.: Agile Collaborative Research: Action Princi-
   ples for Industry-Academia Collaboration. In: IEEE Software, vol. 28, num. 4, pp.
   74-83. IEEE (2011).
14. Rogers, E. M.: Diffusion of Innovations (5th Edition). The Free Press (2003).
15. Wright, M., Birley, S., Mosey, S.: Entrepreneurship and University Technology
   Transfer. In: Journal of Technology Transfer, vol. 29, num. 3-4, pp. 235-246. Springer
   (2004)
16. Villa Calle, J.D., Bruneliere, H.: EMF Views: Dealing with several interrelated
   EMF models. In: EclipseCon North America 2014 - Modeling Symposium, San Fran-
   cisco, California, U.S.A., March 19, 2014.
17. Eclipse Development Process, http://www.eclipse.org/projects/dev_process/
   development_process.php
18. Eclipse Public License (EPL), http://www.eclipse.org/legal/epl-v10.html