MoScript: A DSL for Querying and Manipulating Model Repositories

  • Wolfgang Kling
  • Frédéric Jouault
  • Dennis Wagelaar
  • Marco Brambilla
  • Jordi Cabot
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6940)


Growing adoption of Model-Driven Engineering has hugely increased the number of modelling artefacts (models, metamodels, transformations, ...) to be managed. Therefore, development teams require appropriate tools to search and manipulate models stored in model repositories, e.g. to find and reuse models or model fragments from previous projects. Unfortunately, current approaches for model management are either ad-hoc (i.e., tied to specific types of repositories and/or models), do not support complex queries (e.g., based on the model structure and its relationship with other modelling artefacts) or do not allow the manipulation of the resulting models (e.g., inspect, transform). This hinders the probability of efficiently reusing existing models or fragments thereof. In this paper we introduce MoScript, a textual domain-specific language for model management. With MoScript, users can write scripts containing queries (based on model content, structure, relationships, and behaviour derived through on-the-fly simulation) to retrieve models from model repositories, manipulate them (e.g., by running transformations on sets of models), and store them back in the repository. MoScript relies on the megamodeling concept to provide a homogeneous model-based interface to heterogeneous repositories.


DSL Megamodel Model Management Scripting OCL 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification, version 1.0, formal/08-04-03 (Apr 2008),
  2. 2.
    OCL 2.2 Specification, version 2.2, formal/2010-02-01 (February 2010),
  3. 3.
    Allilaire, F., Bezivin, J., Bruneliere, H., Jouault, F.: Global model management in eclipse gmt/am3. In: Proc. of the Eclipse Technology eXchange Workshop (eTX) at ECOOP 2006 (2006)Google Scholar
  4. 4.
    Barbero, M., Jouault, F., Bézivin, J.: Model driven management of complex systems: Implementing the macroscope’s vision. In: Proc. of ECBS 2008. IEEE Computer Society Press (2008)Google Scholar
  5. 5.
    Bezivin, J., Jouault, F., Valduriez, P.: On the need for megamodels. In: Proc. of Workshop on Best Practices for Model-Driven Software Development at the 19th Annual ACM Conference on OOPSLA (August 2004)Google Scholar
  6. 6.
    Blanc, X., Gervais, M.-P., Sriplakich, P.: Model Bus: Towards the Interoperability of Modelling Tools. In: Aßmann, U., Aksit, M., Rensink, A. (eds.) MDAFA 2003. LNCS, vol. 3599, pp. 17–32. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  7. 7.
    Bozzon, A., Brambilla, M., Fraternali, P.: Searching Repositories of Web Application Models. In: Benatallah, B., Casati, F., Kappel, G., Rossi, G. (eds.) ICWE 2010. LNCS, vol. 6189, pp. 1–15. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  8. 8.
    Ceri, S., Brambilla, M., Fraternali, P.: The History of WebML Lessons Learned from 10 Years of Model-Driven Development of Web Applications. In: Borgida, A.T., Chaudhri, V.K., Giorgini, P., Yu, E.S. (eds.) Conceptual Modeling: Foundations and Applications. LNCS, vol. 5600, pp. 273–292. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  9. 9.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: The Maude 2.0 System. In: Nieuwenhuis, R. (ed.) RTA 2003. LNCS, vol. 2706, pp. 76–87. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  10. 10.
    Favre, J.M.: Towards a basic theory to model model driven engineering. In: 3rd UML Workshop in Software Model Engineering (WISME 2004) Joint Event with UML 2004 (October 2004)Google Scholar
  11. 11.
    Fowler, M.: Domain-Specific Languages, 1st edn. Addison-Wesley Professional (October 2010)Google Scholar
  12. 12.
    Graaf, B.: Model-driven evolution of software architectures. In: European Conference on Software Maintenance and Reengineering (CSMR 2007), pp. 357–360 (2007)Google Scholar
  13. 13.
    Heidenreich, F., Kopcsek, J., Aßmann, U.: Safe Composition of Transformations. In: Tratt, L., Gogolla, M. (eds.) ICMT 2010. LNCS, vol. 6142, pp. 108–122. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  14. 14.
    Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: Atl: A model transformation tool. Science of Computer Programming 72(1-2), 31–39 (2008)MathSciNetzbMATHCrossRefGoogle Scholar
  15. 15.
    Jouault, F., Bézivin, J., Kurtev, I.: Tcs: a dsl for the specification of textual concrete syntaxes in model engineering. In: GPCE 2006: Proc. of the 5th Int. Conf. on Generative Programming and Component Engineering, pp. 249–254. ACM (2006)Google Scholar
  16. 16.
    Kleppe, A.: MCC: A Model Transformation Environment. In: Rensink, A., Warmer, J. (eds.) ECMDA-FA 2006. LNCS, vol. 4066, pp. 173–187. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  17. 17.
    Klint, P., Lämmel, R., Verhoef, C.: Toward an engineering discipline for grammarware. ACM Trans. Softw. Eng. Methodol. 14, 331–380 (2005)CrossRefGoogle Scholar
  18. 18.
    Laval, J., Denier, S., Ducasse, S., Falleri, J.R.: Supporting Simultaneous Versions for Software Evolution Assessment. Journal of Science of Computer Programming (December 2010)Google Scholar
  19. 19.
    Lucrédio, D., de M. Fortes, R.P., Whittle, J.: MOOGLE: A Model Search Engine. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 296–310. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  20. 20.
    Malavolta, I.: A model-driven approach for managing software architectures with multiple evolving concerns. In: Proc. of European Conference on Software Architecture: Companion Volume, ECSA 2010, pp. 4–8. ACM (2010)Google Scholar
  21. 21.
    Melnik, S., Rahm, E., Bernstein, P.A.: Rondo: a programming platform for generic model management. In: Proc. of SIGMOD 2003, pp. 193–204. ACM (2003)Google Scholar
  22. 22.
    Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)CrossRefGoogle Scholar
  23. 23.
    Vanhooff, B., Ayed, D., Van Baelen, S., Joosen, W., Berbers, Y.: UniTI: A Unified Transformation Infrastructure. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MoDELS 2007. LNCS, vol. 4735, pp. 31–45. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  24. 24.
    Vignaga, A., Jouault, F., Bastarrica, M.C., Brunelière, H.: Typing in Model Management. In: Paige, R.F. (ed.) ICMT 2009. LNCS, vol. 5563, pp. 197–212. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  25. 25.
    Wimmer, M., Kramler, G.: Bridging Grammarware and Modelware. In: Bruel, J.-M. (ed.) MoDELS 2005. LNCS, vol. 3844, pp. 159–168. Springer, Heidelberg (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Wolfgang Kling
    • 1
  • Frédéric Jouault
    • 1
  • Dennis Wagelaar
    • 3
  • Marco Brambilla
    • 2
  • Jordi Cabot
    • 1
  1. 1.LINAAtlanMod, INRIA École des Mines de NantesFrance
  2. 2.Dipartimento di Elettronica e InformazionePolitecnico di MilanoItaly
  3. 3.Software Languages LabVrije Universiteit BrusselBelgium

Personalised recommendations