November 23, 2007

MetaEdit+

MetaEdit+ is a commercial tool for both the design and use of (domain-specific) modeling languages (a meta-CASE-tool).

The underlying metamodeling language in MetaEdit+ is called GOPPRR and is very simple. There are just Properties and Non-Properties (which in turn can have Properties again). Non-Property-Types are Graph, Object, Port, Role and Relationship, and for each of these types there is a creation wizzard/form.

A feature that distinguishes MetaEdit+ from other tools is its symbol editor. You do not have to specify the concrete syntax by hand. Rather you just draw the component in a WYSIWYG-style which makes the object creation process very simple. In particular it is not necessary to define the mapping between abstract and concrete syntax explicitly like in GMF (to be discussed in a later post).

The relationships are specified by providing a so-called binding that tells the system which object types may be linked together and in which roles. The graph tool finally lets you draw the instances of your metamodel, your diagrams. As the name of this tool already suggests MetaEdit+ is best-suited for graph-like languages. Languages that make heavy use of spatial relations (like VEX, NSD and others) are difficult to create in MetaCASE. However, a lot of practically relevant languages have a graph structure.

Some advantages of MetaEdit+:

  • great support, I even got a personal web demonstration with special emphasis on my specific questions

  • easy to install and use

  • feature-rich, e.g. nice editor for components

  • lots of examples and documentation

  • highly integrated

  • Model2Code transformation possible



And some little disadvantages:

  • no explicit support for spatial relations

  • closed source, expensive (its a commercial tool after all, evaluation is free and they also provide an academic license, though)

  • no free-hand editing like e.g. in DiaGen/DiaMeta (to be described later)

  • version control not so good (but possible, some best practices are suggested)


Conclusion: This tool is definitely worth a try. It is well suited for the rapid development of CASE tools for all kinds of graph-like visual languages.

Further reading:

1 comment:

Steven Kelly said...

Thanks for the kind words! I only just saw this, but thought it would be fun to show that MetaEdit+ can easily support languages like VEX that use spatial relations / visual containment. See the results in my blog entry on Spatial relations in MetaEdit+. Since you were pleased with the Symbol Editor, you might like the slightly updated symbols I used in place of VEX's black and white circles: hopefully an improvement in both ergonomics and aesthetics. If you want the MetaEdit+ metamodel to play with, just drop me a line.