Video part of the demonstration: http://www.metacase.com/webcasts/Multi-user.html.
Almost all software development activities require collaboration and language engineering is no exception. First, there is a need for collaboration among language engineers as it is not realistic to expect one man to master all. Second, there is a natural need for collaboration among language users. Finally, there is a need for collaboration among language engineers and language users: Not only when languages are originally designed but more importantly when they are maintained along with the work already created with them. Unfortunately too often tools ignore collaboration by unnecessarily splitting the work into separate formats, tools and roles. We describe and demonstrate collaborative tool capabilities implemented into MetaEdit+ tool and describe experiences on their use in practice.
2. 2
Content
Collaboration schemes
– 3 ways of collaboration in SLE
Demonstration
– Typical collaborations in SLE
Discussion
– + possibility to go into details afterwards, or download
MetaEdit+ from www.metacase.com/download
3. 3
Experts define languages
& generators
Team models with domain
concepts & generate code
MetaEdit+ is available as a single-user and as a
collaborative multi-user version
5. 5
In SLE collaboration occurs in
different ways
1. Among language engineers
– to specify and manage larger DSL or several integrated DSLs
– each focus on their particular area (abstract syntax, concrete
syntax, constraints, generators and transformations)
2. Among language users
– each focusing on different parts (with different DSLs?) of the
system
3. Among language engineers and language users
– to specify and improve the languages along with the work
already done
6. 6
Demo scenarios
1. Several language engineers create in collaboration a language
– Edit the same abstract syntax definition
– Some edit the abstract syntax, second language engineering the constraints, third
concrete syntax and fourth the generators
– Trace among shared language elements
– Trace among several integrated languages
2. Collaborative language use
– Several engineers use the language and edit the same model, and same diagram at the
same time
– Trace among model elements
– Trace and integration among models in different languages
– Change history and versioning
3. Language users join and give feedback on the language
– Language users test the language and give feedback
– Language engineer updates the metamodel and language users tries it out
– Existing work (models) are updated automatically when the language changes
8. 8
Collaborative Language Engineering
Language engineers
(A, B, C, D) can
modify different parts
of the language at the
same time
Integrated language
specification: changing
‘Name’ of
‘ComponentInstance’
reflects automatically
to constraints (in B),
notation (in C) and can
be traced to
generators (in D)
9. 9
Collaborative Language Engineering
and Language Use
Language engineering and use in the same environment
We can inspect how language is used and language users can
provide feedback
Automated DSL
version delivery
Scales well to
industry use with
model evolution
10. 10
Collaborative Language(s) Use
Language
users can
specify the
same system
(with different
DSLs) at the
same time
Model
elements can
be traced,
checked,
reused as a
whole
11. 11
Benefits of collaborative features for
SLE
Better quality languages
– Integrated DSL definitions among language engineers
Better acceptance as language users directly involved
– Early testing of metamodels
– Immediate feedback
– Avoid creating wrong language
Handle larger and more complex/integrated DSLs
– No single man can handle all
12. 12
Remarks
The collaborative features of MetaEdit+ are been
applied in industry
Repository approach scales well to large systems, large
teams and using several integrated languages
Tutorials, Case studies, User Guides and downloadable
evaluation version is available at: www.metacase.com