Collaborative modeling and metamodeling in MetaEdit+

  • View
    2.951

  • Download
    0

  • Category

    Software

Preview:

Citation preview

Juha-Pekka Tolvanen jpt@metacase.com

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 (jpt@metacase.com) Company: info@metacase.com

Thank you!

Recommended