Principles For Modeling Language Design In EMF Ecore
  1. A meta model is partitioned into well-defined .ecore files, each of which relates to exactly one producer role, and one or more consumer roles. A Model is partitioned into well-defined .xmi files, each of which relates to exactly one producer role, and one or more consumer roles.
  2. All .ecore and .xmi files are based on information produced by a specific role as a result of articulating or clarifying specific knowledge or requirements.
  3. A modeling language is developed for each kind of model based Artifact.
  4. The .ecore file that defines the Abstract Syntax of a modeling language (the meta model) has exactly one instantiable Root Class, a Class that relates to the modeled Artifact.
    • Adhering to this principle in Ecore relies entirely on following conventions.
  5. Variants of a Root Class are expressed as Specializations of a shared Generalization.
  6. .ecore and .xmi files are the only granularity at which versioning is applied.
  7. .ecore and .xmi files can only be edited by one user at a time but can be read by any number of users at any time.
    • Adhering to this principle in Ecore relies entirely on following conventions.
  8. References between .ecore files in conjunction with References between .xmi files provide the basis for modularization of modeling language designs and models. This leads to modular meta models and models.
    • Adhering to this principle in Ecore relies entirely on following conventions.
  9. Only .ecore files can be used in the role of a meta model.
  10. Two .ecore files may be joined via one or more References that connect Classes in the two .ecore files.
    • Adhering to this principle in Ecore relies entirely on following conventions.
  11. No circular or bi-directional References between .ecore files and between .xmi files are allowed.
    • Adhering to this principle in Ecore relies entirely on following conventions.
  12. The instantiation links between .xmi files and their meta model .ecore files is recorded as part of the .xmi files.

Back to the Fundamental Principles For Modeling Language Design.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License