EnAr-ASIMOV: A proposal for assisting model coevolution with constrained metamodels, is a domain speci c language (DSL) based on the catalog of possible changed that one metamodel can have. It is planned to be extensible and is planned to allow the user write it easily or be defined by a tool that can record the changes done to the metamodel.

This language is used by the metamodeler who defines the general context of the user. The metamodeler will be allowed to changed, create and delete metamodel elements. The elements are referenced from the ecore metamodel.


Name Email
Hector Arturo Florez Fernandez

Evolution Language

ASIMOV Evolution was created to be readable for any user that did not created the scripts. The basic building block of the language is the evolution clause that encapsulates everything. Tthere are the basic syntax blocks of the evolution language. The next clauses defined are for selecting the source metamodel and the target metamodel. The target metamodel is required in order to define a name for the final element
Considering the next metamodel called mm1




Is the main code block where the metamodeler defines the source metamodel, target metamodel and set of instructions

evolution myEvolutionProgram {
  toMM:"mm3_evolved1.ecore" "http://uniandes.edu.co/exampleMM3_evolved1"
  instruction {
  instruction {
  instruction {

Each instruction block contains only one instruction.

  • The source metamodel name must be diferent that the target metamodel name.



An EnAr-ASIMOV program must satisfied the following restrictions:

  • The program must be composed with the language instructions. If the program contains diferent instructions, it won't be executed.


An EnAr-ASIMOV program could generate the following errors:

  • Syntax error
    • If the program has a sintax error, EnAr-ASIMOV, will notify the line where is the first error. In this case, the program will not be compiled neither executed.
  • Execution error
    • If the program presents an execution error, EnAr-ASIMOV will stop the process and will notify the error.

Change Classification

All instructions in the language make changes in the metamodel but not necessary in the model. Some changes in the metamodel need assistance to be resolved.
For instance, the changes in asimov have the next classification.

Coevolution Language

ASIMOV Coevolution has been created to be readable for any user that did not created the scripts. The basic building block of the language is the assistance clause that encapsulates everything. The assistance language uses a simplified java language through libraries created for the assistance.

Coevolution Language Tests


ASIMOV has been evaluated using a real scenario in which we can apply all evolution instructions with several assistance blocks for the instructions that require it. This scenario is a commercial scenario named Alps Furniture (AF) built in the Enterprise Architecture Laboratory at Universidad de los Andes. This scenario has a complex metamodel, which includes 81 EClasses and 89 EReferences. The model conforms to the AF metamodel has up to 207 instances. However, for this evaluation we used one specific domain from AF named BusinessPartners (BP).

See Evaluation Details

Meta-Model (Abstract Syntax)


Project Version SVN
EnAr-ASIMOV 1.0 SVN: http://minsky2.uniandes.edu.co/especiales/enar/Asimov

asimov.txt · Última modificación: 2012/07/13 14:36 por ha.florez39
Departamento de Ingeniería de Sistemas y Computación - Facultad de Ingeniería - Universidad de los Andes
CC Attribution-Noncommercial-Share Alike 3.0 Unported
Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0