hide all comments


When did tools start to apply metamodels for language specification?

March 20, 2009 16:41:14 +0200 (EET)

Thomas Kühne is editing a special issue for SoSyM (the Journal on Software and Systems Modeling) on metamodeling. Thomas contacted me asking when the first tools were developed that actually used metamodels to define languages (rather than grammars).

I thought the tool history - as far as I know about it - would interest others too so decided to reply in my blog too. Please note that the metamodel based tools have (had) different names, such as language workbench, DSL tool, metaCASE tool, CAME tools (Computer Aided Method Engineering), CASE shells (notice the analogy to AI expert system shell) and metasystems.

To my knowledge ISDOS project (Information System Design and Optimization System) at the university of Michigan reported first about the metamodel-structure in a tool at the 70's, namely D. Teichrow and E. Hershey:PSL/PSA: a computer aided technique for structured documentation and analysis of information processing systems, IEEE Trans. on SE , 3(1), (1977), pp.41-48. They focused on developing languages suitable for tools and focused on requirements engineering side. Luckily the project and its results have started to appear in Internet.

Another tool that deserves a special notice is QuickSpec. It used an explicit (meta)metamodel, called OPRR, created to overcome the problems of binary and relational models. There is a very good paper that discusses this topic at DSMForum - with a little explanation of how some of the terms used then differ from those that the industry is using now. The paper is quite topical again as people are looking repository support for models (and metamodels) instead of having them in separate files.

The first graphical metamodeling tool was MetaEdit (not the current product which is MetaEdit+) and it used OPRR to specify languages for other metamodel-based tools, like to Swedish Ramatica and naturally for itself too. Reference is Smolander, K., Tahvanainen, V.-P., Lyytinen, K., Marttiin, P., (1991) MetaEdit - a flexible graphical environment for methodology modeling. In: Advanced Information Systems Engineering (eds. R. Andersen, J. Bubenko, A. Sølvberg), Berlin, Germany, Springer-Verlag, pp. 168-193.

It’s architecture was quite similar to what most metamodeling tools have today, but it showed us how badly that architecture supports DSL design and use. For example, as models and metamodels where stored to individual files - and there was separate tools running for language design and for language use - things got complicated for anything real: In a small project at the university diff, merge, grep helped to keep things going but obviously that approach would not scale to anything bigger. Also after the metamodel changed it could be that the models already made would not necessarily open anymore... aaaargh. Well, that was 18 years ago. We naturally changed the architecture so that in MetaEdit+ models update automatically if the metamodel changes and naturally models always open.

The SoSyM issue on metamodeling should appear July 2009.