collaborative modeling and metamodeling in metaedit+
TRANSCRIPT
Juha-Pekka Tolvanen [email protected]
Collaborative modeling and metamodeling
Agenda
Collaborative metamodeling
Collaborative modeling
Q&A
Experts define languages & generators
Team models with domain concepts & generate code
Integrated language definition
No programming needed
Language evolution
Several integrated languages
Collaborative language engineering (metamodeling)
Models update on any change
Scalable to large models (4 billion)
Fast generators
Interfaces to various IDEs (VS, Eclipse)
Collaborative modeling
Context for collaboration: MetaEdit+
Why collaboration on language engineering?
A language definition has several parts: abstract syntax, constraints, notation & semantic rules
– Single person is often not master of them all
Language definition need to be consistent, complete and correct
– If not: see UML standard containing hundreds of errors1 in abstract syntax and their related constraints
Single language is not enough, we use several (integrated) languages
– Multiple persons almost always involved
361 errors in UML 2.0: Bauerdick et al, in Procs of UML 2004, LNCS 3273, Springer, 2004; 320 errors in UML 2.3: Wilke & Demuth, 2010, journal.ub.tu-berlin.de/eceasst/article/download/669/682
Collaborative metamodeling (example: TDL by ETSI)
A) Concepts (Abstract syntax)
B) Constraints (Static semantics)
C) Notation (Concrete syntax)
D) Generators (Semantics)
Demonstration:
Benefits of collaborative metamodeling
Leads to better quality languages
– Languages can be checked early while being defined
– Users may immediately test the language, incl. validation
– When defined in smaller increments the risk of creating the wrong language constructs is reduced
Development of languages and generators is faster:
– Parallel effort
– Work shared based on expertise
Language adoption and acceptance improves since language users are directly involved
Why collaborative modeling?
Collaboration means working together with the same model - even at the same time
– Even in the same diagram (not typical, but possible)
– Partly with the same model elements (typical)
Known and proven technology to enable collaboration: Repository with concurrency control
– Conflicts detected and handled at the modeling time
• Trace to users
– No need to diff
– No need to merge
– Scales to large models
Collaborative modeling (example: automotive system)
A) Hardware
B) Functions
C) Allocation
D) Behavior
+ 16 other
– Safety
– Errors
– Timing
– ...
Demonstration:
Benefits of collaborative modeling
Team can work in the same design space in parallel
– E.g. If feedback is needed from colleagues they all can see the same model (or model element) and update it
No time and effort is needed to handle conflicts
Development is faster as all model information is available as needed
Work from multiple views – often based on different languages – can be integrated at model level
Trace is available among views and model elements
Models can be checked and verified early – not based on one diagram only but on larger model which may be based on different languages
Cases, tutorial, videos, manuals and evaluation version available
at: www.metacase.com
Contact: Juha-Pekka Tolvanen ([email protected]) Company: [email protected]
Thank you!