Abstract:With the popularity of UML (unified modeling language) and MDA (model driven architecture), models are becoming the core artifacts of software development and maintenance. As a result, modeling languages and meta-models which are used to define modeling languages, become more and more important. Software development may cover quite a few domains, and different domains may require different modeling languages and their supporting modeling tools. But it is very expensive to develop modeling tools manually for every domain. Metamodeling is one of the technologies to facilitate the design of domain modeling languages and the development of modeling tools. In the approach of metamodeling, people design domain modeling languages according to domain request by metamodeling. And then, metamodeling tools automatically generate modeling tools, which support the designed domain modeling languages. As shown by experimental results, metamodeling, combined with MDA, can increase productivity of software development. This paper makes a survey of the current research on metamodeling, compare metamodeling tools, and discuss further directions of metamodeling and their supporting tools.