Collaboro - Community-Driven Language Development

45
Community-Driven Language Development Javier Luis C´ anovas Izquierdo and Jordi Cabot javier.canovas,[email protected] June, 2012

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.

Transcript of Collaboro - Community-Driven Language Development

Page 1: Collaboro - Community-Driven Language Development

Community-Driven LanguageDevelopment

Javier Luis Canovas Izquierdo and Jordi Cabotjavier.canovas,[email protected]

June, 2012

Page 2: Collaboro - Community-Driven Language Development

Outline

Motivation

Our proposal

Example

Conclusion

c© AtlanMod – [email protected] 2/13

Page 3: Collaboro - Community-Driven Language Development

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

Page 4: Collaboro - Community-Driven Language Development

Community?

c© AtlanMod – [email protected] 4/13

Page 5: Collaboro - Community-Driven Language Development

Community?

c© AtlanMod – [email protected] 4/13

Page 6: Collaboro - Community-Driven Language Development

Community?

c© AtlanMod – [email protected] 4/13

Page 7: Collaboro - Community-Driven Language Development

Community?

c© AtlanMod – [email protected] 4/13

Page 8: Collaboro - Community-Driven Language Development

Community?

c© AtlanMod – [email protected] 4/13

Page 9: Collaboro - Community-Driven Language Development

Community?

c© AtlanMod – [email protected] 4/13

Page 10: Collaboro - Community-Driven Language Development

Community-driven development

c© AtlanMod – [email protected] 5/13

Page 11: Collaboro - Community-Driven Language Development

Community-driven development

c© AtlanMod – [email protected] 5/13

Page 12: Collaboro - Community-Driven Language Development

Community-driven development

c© AtlanMod – [email protected] 5/13

Page 13: Collaboro - Community-Driven Language Development

Community-driven development

c© AtlanMod – [email protected] 5/13

Page 14: Collaboro - Community-Driven Language Development

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

Page 15: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 16: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 17: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 18: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 19: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 20: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 21: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 22: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 23: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 24: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 25: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 26: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 27: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 28: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 29: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 30: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 31: Collaboro - Community-Driven Language Development

Example

c© AtlanMod – [email protected] 7/13

Page 32: Collaboro - Community-Driven Language Development

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

Page 33: Collaboro - Community-Driven Language Development

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

Page 34: Collaboro - Community-Driven Language Development

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

Page 35: Collaboro - Community-Driven Language Development

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

Page 36: Collaboro - Community-Driven Language Development

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

Page 37: Collaboro - Community-Driven Language Development

Collaboro Abstract Syntax

c© AtlanMod – [email protected] 9/13

Page 38: Collaboro - Community-Driven Language Development

Collaboro Abstract Syntax

c© AtlanMod – [email protected] 9/13

Page 39: Collaboro - Community-Driven Language Development

Collaboro Abstract Syntax

c© AtlanMod – [email protected] 9/13

Page 40: Collaboro - Community-Driven Language Development

Collaboro Abstract Syntax

c© AtlanMod – [email protected] 9/13

Page 41: Collaboro - Community-Driven Language Development

Collaboro Abstract Syntax

c© AtlanMod – [email protected] 9/13

Page 42: Collaboro - Community-Driven Language Development

Decision engine

c© AtlanMod – [email protected] 10/13

Page 43: Collaboro - Community-Driven Language Development

The tool

c© AtlanMod – [email protected] 11/13

Page 44: Collaboro - Community-Driven Language Development

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

Page 45: Collaboro - Community-Driven Language Development

Thank you!

c© AtlanMod – [email protected] 13/13