Comparing tools?
Automating development with domain-specific modeling involves evaluating existing tools and their features, related costs and availability of supporting services. The criteria below aim to help you in comparing MetaEdit+ with alternative tools that you may have in mind.
Feel free to copy this for making your comparison. Let us know if we missed any relevant features!
Tool features |
MetaEdit+ |
Other tool |
Language development |
||
| Several integrated modeling languages | ||
| Multiple simultaneous metamodelers | ||
| Language definition tools (metamodeling) | ||
| Integrated metamodeling and modeling (test the language while defining it simultaneously) |
|
|
| Automated language deployment to modelers | ||
| Metamodel coverage for rules and constraints of the language | + generator-based constraints and regular expressions |
|
| Metamodel checking during language definition | ||
| Traceability between elements of a metamodel | ||
| Metamodel evolution | ||
| A metamodel specifies one language or multiple languages | |
|
| Automatic models-updating upon metamodel change | ||
| Support for old language versions | ||
| A repository to handle various metamodels | ||
| Import and export of metamodels | ||
| Library of metamodels | ||
| Extend UML with stereotypes, tagged values and constraints | |
|
Symbol and representation definition |
||
| Specifying notation for the language | ||
| Rich notation (more than just an icon for nodes and a line for arcs) | ||
| Symbols can change based on model data | ||
| Library of symbols available | ||
| Import (and export) symbols | ||
| Access and modify notation with any programming language/platform | ||
| Modeling tool development automated | ||
Generator definition |
||
| Generator and metamodel are integrated | ||
| Supports straight model-to-code transformations | ||
| Support for templates, visitor pattern, crawlers and multiple streams | ||
| Syntax highlighting and output filtering | ||
| Generator debugging | ||
| Generated and hand-written code can be separated | ||
| Protected blocks can be defined into the generated result | ||
| Many to many mappings from models to files | ||
| Read and parse external files | ||
Modeling with your language |
||
| Support for different kind of editors | ||
| Support for modeling operations (copy/paste, reuse, replace, group, layout, grids, zooms, model hierarchies etc) | ||
| Support for multiple concurrent modelers | ||
| Automatic validation of models based on the metamodel | ||
| Constraints can be checked at modeling time or when wanted | ||
| Link and reuse among models | ||
| Models update automatically if a new language version is available | ||
| Models can be saved and stored using the older language version | ||
| Model browsing tools | ||
| Document generation | ||
| Metrics and model checking | ||
| Traceability between model elements | ||
| Import and export of models | ||
| Model-to-model transformation | ||
| Access and modify models with any programming language/platform | ||
| Reverse engineering | ||
| Trace back from generated code to models | ||
| Animate models during program execution (in IDE, emulator or in real target) |
||
| UML support | ||
Other |
||
| Can be integrated with other tools (IDE, versioning, emulator, etc). |
||
| Easy to use and learn | ||
| Other technologies required | ||
| Runs on different platforms | ||
| Manuals available | ||
Supporting services |
MetaEdit+ |
Other tool |
| Maintenance | ||
| Support and helpdesk | ||
| Training services | - DSM creation for experts - DSM use for modelers - Organizational change for Q&A, process, management |
|
| Consulting services |


