Domain-specific model editors with model completion
Faculty of Sciences. Mathematics and Computer Science
Lecture notes in computer science
, p. 259-270
Today, integrated development environments such as Eclipse allow users to write programs quickly by presenting a set of recommendations for code completion. Similarly, word processing tools such as Microsoft Word present corrections for grammatical errors in sentences. Both of these existing systems use a set of constraints expressed in the form of a grammar to restrict/correct the user. Taking this idea further, in this paper we present an integrated software system capable of generating recommendations for model completion of partial models built in arbitrary domain specific model editors. We synthesize the model editor equipped with automatic completion from a modelling languages declarative specification consisting of a meta-model and constraints on it along with a visual syntax. The automatic completion feature is powered by a Prolog engine whose input is a constraint logic program derived from some models. The input logic program is obtained by a model transformation from models in multiple languages: the meta-model (as a class diagram), constraints on it (as constraint logic clauses), and a partial model (in the domain specific language). The Prolog engine solves the generated logic program and the solution(if there is one) is returned to the model editor as a set of recommendations for properties of the partial model. We incorporate automatic completion in the generative tool AToM 3 and use SWI-Prolog for constraint representation and satisfaction. We present examples using an illustrative visual language of Finite State Machines.