Software development processes are becoming more collaborative, trying to integrate end-users as much as possible. The idea is to advance towards a community-driven process where all actors (both technical and non- technical) work together to ensure that the system-to-be will satisfy all expectations. This seems specially appropriate in the field of Domain-Specific Languages (DSLs) typically designed to facilitate the development of software for a particular domain. DSLs offer constructs closer to the vocabulary of the domain which simplifies the adoption of the DSL by end-users. Interestingly enough, the development of DSLs is not a collaborative process itself. In this sense, the goal of this paper is to propose a collaborative infrastructure for the development of DSLs where end-users have a direct and active participation in the evolution of the language. This infrastructure is based on Collaboro, a DSL to represent change proposals, possible solutions and comments arisen during the development and evolution of a language.
3. Collaboration in Software Engineering
In software development
Processes are increasingly becoming more collaborative, trying to engage
users in all development phases
Agile methodologies, development of Free Open Source Systems...
In Domain-Specific Language development
DSL development is usually centered on developers rather than the users
Even if a DSL is a language specific for a domain, domain experts have
very limited participation in its creation.
Why not making the development process for DSLs more collaborative?
The importance of the Community
c AtlanMod – atlanmod-contact@mines-nantes.fr 3/13
14. How to get it?
What do we need?
Infrastructure to deal with the collaborations arisen when developing/evolving a
language
What do we propose?
A new DSL, called Collaboro, to represent proposals, solutions and comments
which arise among the members of a language community.
What shall we get?
With Collaboro we can:
Justify and argument about changes in Ecore models (Eclipse)
Record the discussions and apply a voting mechanism
Track changes
Traceability of design decisions
c AtlanMod – atlanmod-contact@mines-nantes.fr 6/13
32. Example
What does Collaboro provide?
Justify and argument about changes in Ecore models (Eclipse)
Record the discussions and apply a voting mechanism
Track changes
Traceability of design decisions
c AtlanMod – atlanmod-contact@mines-nantes.fr 8/13
33. Example
What does Collaboro provide?
Justify and argument about changes in Ecore models (Eclipse)
Record the discussions and apply a voting mechanism
Track changes
Traceability of design decisions
c AtlanMod – atlanmod-contact@mines-nantes.fr 8/13
34. Example
What does Collaboro provide?
Justify and argument about changes in Ecore models (Eclipse)
Record the discussions and apply a voting mechanism
Track changes
Traceability of design decisions
c AtlanMod – atlanmod-contact@mines-nantes.fr 8/13
35. Example
What does Collaboro provide?
Justify and argument about changes in Ecore models (Eclipse)
Record the discussions and apply a voting mechanism
Track changes
Traceability of design decisions
c AtlanMod – atlanmod-contact@mines-nantes.fr 8/13
36. Example
What does Collaboro provide?
Justify and argument about changes in Ecore models (Eclipse)
Record the discussions and apply a voting mechanism
Track changes
Traceability of design decisions
c AtlanMod – atlanmod-contact@mines-nantes.fr 8/13
44. Conclusion and Future Work
What have we presented?
Collaboro, a brand new DSL which:
Allows representing change requests and solutions (and comments)
Promotes participation and tracking language changes
More work?
Support the collaborative development of concrete syntax
Enable Change by example
Complex decision algorithms
Generation of examples to control the evolution
Check it out!
http://code.google.com/a/eclipselabs.org/p/collaboro
c AtlanMod – atlanmod-contact@mines-nantes.fr 12/13