Collaboro - Community-Driven Language Development

Post on 11-May-2015

1,170 views 0 download

Tags:

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

Community-Driven LanguageDevelopment

Javier Luis Canovas Izquierdo and Jordi Cabotjavier.canovas,jordi.cabot@inria.fr

June, 2012

Outline

Motivation

Our proposal

Example

Conclusion

c© AtlanMod – atlanmod-contact@mines-nantes.fr 2/13

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 – atlanmod-contact@mines-nantes.fr 3/13

Community?

c© AtlanMod – atlanmod-contact@mines-nantes.fr 4/13

Community?

c© AtlanMod – atlanmod-contact@mines-nantes.fr 4/13

Community?

c© AtlanMod – atlanmod-contact@mines-nantes.fr 4/13

Community?

c© AtlanMod – atlanmod-contact@mines-nantes.fr 4/13

Community?

c© AtlanMod – atlanmod-contact@mines-nantes.fr 4/13

Community?

c© AtlanMod – atlanmod-contact@mines-nantes.fr 4/13

Community-driven development

c© AtlanMod – atlanmod-contact@mines-nantes.fr 5/13

Community-driven development

c© AtlanMod – atlanmod-contact@mines-nantes.fr 5/13

Community-driven development

c© AtlanMod – atlanmod-contact@mines-nantes.fr 5/13

Community-driven development

c© AtlanMod – atlanmod-contact@mines-nantes.fr 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 – atlanmod-contact@mines-nantes.fr 6/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 7/13

Example

c© AtlanMod – atlanmod-contact@mines-nantes.fr 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 – atlanmod-contact@mines-nantes.fr 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 – atlanmod-contact@mines-nantes.fr 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 – atlanmod-contact@mines-nantes.fr 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 – atlanmod-contact@mines-nantes.fr 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 – atlanmod-contact@mines-nantes.fr 8/13

Collaboro Abstract Syntax

c© AtlanMod – atlanmod-contact@mines-nantes.fr 9/13

Collaboro Abstract Syntax

c© AtlanMod – atlanmod-contact@mines-nantes.fr 9/13

Collaboro Abstract Syntax

c© AtlanMod – atlanmod-contact@mines-nantes.fr 9/13

Collaboro Abstract Syntax

c© AtlanMod – atlanmod-contact@mines-nantes.fr 9/13

Collaboro Abstract Syntax

c© AtlanMod – atlanmod-contact@mines-nantes.fr 9/13

Decision engine

c© AtlanMod – atlanmod-contact@mines-nantes.fr 10/13

The tool

c© AtlanMod – atlanmod-contact@mines-nantes.fr 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 – atlanmod-contact@mines-nantes.fr 12/13

Thank you!

c© AtlanMod – atlanmod-contact@mines-nantes.fr 13/13