Today we present the last version of Collaboro, our approach for the collaborative development of Domain-Specific Languages. Previously, we have published the results of this work in these papers:
- Enabling the Collaborative Definition of DSMLs. CAiSE 2013: 272-287. Slides
- Community-driven language development. MiSE 2012: 29-35. Slides
In this blog post, we present a recap of the features and goals and include a summary coming from our latest publication on this topic, titled Collaboro: a collaborative (meta) modeling tool published in the PeerJ journal.
Collaboration between developers and end-users seems particularly fitting when developing Domain Specific Languages (DSLs) given the fact that DSLs target the experts of a domain. However, current DSL development processes are completely centered on the developers who still lead all phases of the DSL development, while end-users only participate in the very beginning, when the domain is analyzed, and they cannot see how their input was interpreted until the modeling environment for the new language is deployed. The validation is therefore performed at the end, which implies rebuilding the environment (a very costly process, even with current language workbenches) every time the end-user wants to change the language definition (e.g., to add new properties to a metaclass, change their type,…).
To improve this situation, we propose to make the development process for DSLs community-aware, meaning that all stakeholders (i.e., technical and end-users) have the chance to participate, discuss and comment during the DSL definition phase (at the moment, this process only covers the abstract syntax, i.e., the metamodel, part of the DSL, we plan to extend it to cover also the collaboration process for the concrete syntax). Moreover, we believe it’s important to track this discussion so that in the future we can justify the rationale behind each language design decision.
To make this collaborative development process feasible, it is important to facilitate as much as possible the collaboration between all people involved. Our solution is based on a new DSL, called Collaboro, to represent the collaborations which arise among the members of a language community. Collaboro has been implemented as an Eclipse-based tool and as a web-based solution that can be used by all kinds of users willing to have an active role in the evolution of their DSL. You can have a look at the project in this webpage.
The core of the abstract syntax of the language is shown in the following picture. As you can see, with Collaboro you can track all the change proposals, solutions (plus the set of changes to apply on the DSL to adopt the solution), comments or votes. The DSL element can represent both abstract (e.g., concepts and attributes) and concrete (e.g., notation symbol or keywords) elements of the DSL under development so that collaboration can arise on any element of the language.
To show how Collaboro works in practice, imagine a Transport DSL used by a transport company to represent its fleet and calculate the most efficient path between several points. The DSL therefore includes concepts such as Truck and Route to model the distribution maps (top part of the next Figure). Thanks to the fact that we are now following a collaborative development process, by looking at this initial version of the Transport metamodel, End-user 1 detects that Transport is missing the possibility of stating the traffic density of each Route concept and claims this is an important concept for the language. Since the rest agree, an initial solution is proposed and improved (after a comment suggesting a slightly different strategy which is voted and selected by the community).
As can be seen, both the collaboration and the decision processes are modelled. In this case we have applied a full agreement policy so the change proposal and the corresponding solution are marked as accepted only if every community member agrees.
While our first versions of Collaboro supported the collaborative development of textual DSMLs in an Eclipse-based environment, the last version offers:
- Better support for the collaborative development of graphical DSMLs;
- A new architecture which includes a web-based front-end, thus promoting usability and participation for end-users;
- A metric-based recommender system, which checks the DSMLs under development to spot possible issues according to quality metrics for both the domain and the notation (relying on Moody’s cognitive framework (Moody, 2009))
- The development of several cases studies, which have allowed us to improve the general expressiveness and usability of our approach
Additionally, we have also explored and described how our tool could be easily adapted to support collaborative modeling. Check the last paper for further details.
The following slides (from our CAiSE paper, not the journal summary one) may be also useful to get a quick view of the approach: