Community-Driven LanguageDevelopment
Javier Luis Canovas Izquierdo and Jordi Cabotjavier.canovas,[email protected]
June, 2012
Collaboration in Software Engineering
In software development
I Processes are increasingly becoming more collaborative, trying to engageusers in all development phases
I Agile methodologies, development of Free Open Source Systems...
In Domain-Specific Language development
I DSL development is usually centered on developers rather than the users
I Even if a DSL is a language specific for a domain, domain experts havevery limited participation in its creation.
I Why not making the development process for DSLs more collaborative?
The importance of the Community
c© AtlanMod – [email protected] 3/13
Community?
c© AtlanMod – [email protected] 4/13
Community?
c© AtlanMod – [email protected] 4/13
Community?
c© AtlanMod – [email protected] 4/13
Community?
c© AtlanMod – [email protected] 4/13
Community?
c© AtlanMod – [email protected] 4/13
Community?
c© AtlanMod – [email protected] 4/13
Community-driven development
c© AtlanMod – [email protected] 5/13
Community-driven development
c© AtlanMod – [email protected] 5/13
Community-driven development
c© AtlanMod – [email protected] 5/13
Community-driven development
c© AtlanMod – [email protected] 5/13
How to get it?
What do we need?
Infrastructure to deal with the collaborations arisen when developing/evolving alanguage
What do we propose?
A new DSL, called Collaboro, to represent proposals, solutions and commentswhich arise among the members of a language community.
What shall we get?
With Collaboro we can:
I Justify and argument about changes in Ecore models (Eclipse)
I Record the discussions and apply a voting mechanism
I Track changes
I Traceability of design decisions
c© AtlanMod – [email protected] 6/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
c© AtlanMod – [email protected] 7/13
Example
What does Collaboro provide?
I Justify and argument about changes in Ecore models (Eclipse)
I Record the discussions and apply a voting mechanism
I Track changes
I Traceability of design decisions
c© AtlanMod – [email protected] 8/13
Example
What does Collaboro provide?
I Justify and argument about changes in Ecore models (Eclipse)
I Record the discussions and apply a voting mechanism
I Track changes
I Traceability of design decisions
c© AtlanMod – [email protected] 8/13
Example
What does Collaboro provide?
I Justify and argument about changes in Ecore models (Eclipse)
I Record the discussions and apply a voting mechanism
I Track changes
I Traceability of design decisions
c© AtlanMod – [email protected] 8/13
Example
What does Collaboro provide?
I Justify and argument about changes in Ecore models (Eclipse)
I Record the discussions and apply a voting mechanism
I Track changes
I Traceability of design decisions
c© AtlanMod – [email protected] 8/13
Example
What does Collaboro provide?
I Justify and argument about changes in Ecore models (Eclipse)
I Record the discussions and apply a voting mechanism
I Track changes
I Traceability of design decisions
c© AtlanMod – [email protected] 8/13
Collaboro Abstract Syntax
c© AtlanMod – [email protected] 9/13
Collaboro Abstract Syntax
c© AtlanMod – [email protected] 9/13
Collaboro Abstract Syntax
c© AtlanMod – [email protected] 9/13
Collaboro Abstract Syntax
c© AtlanMod – [email protected] 9/13
Collaboro Abstract Syntax
c© AtlanMod – [email protected] 9/13
Decision engine
c© AtlanMod – [email protected] 10/13
The tool
c© AtlanMod – [email protected] 11/13
Conclusion and Future Work
What have we presented?
Collaboro, a brand new DSL which:
I Allows representing change requests and solutions (and comments)
I Promotes participation and tracking language changes
More work?
I Support the collaborative development of concrete syntax
I Enable Change by example
I Complex decision algorithms
I Generation of examples to control the evolution
Check it out!http://code.google.com/a/eclipselabs.org/p/collaboro
c© AtlanMod – [email protected] 12/13
Thank you!
c© AtlanMod – [email protected] 13/13