Upload
javier-canovas
View
1.170
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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.
Citation preview
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