The Program Is the Model: Enabling Transformations@run.time

  • Jesús Sánchez Cuadrado
  • Esther Guerra
  • Juan de Lara
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7745)

Abstract

The increasing application of Model-Driven Engineering in a wide range of domains, in addition to pure code generation, raises the need to manipulate models at runtime, as part of regular programs. Moreover, certain kinds of programming tasks can be seen as model transformation tasks, and thus we could take advantage of model transformation technology in order to facilitate them.

In this paper we report on our works to bridge the gap between regular programming and model transformation by enabling the manipulation of Java APIs as models. Our approach is based on the specification of a mapping between a Java API (e.g., Swing) and a meta-model describing it. A model transformation definition is written against the API meta-model and we have built a compiler that generates the corresponding Java bytecode according to the mapping. We present several application scenarios and discuss the mapping between object-oriented meta-modelling and the Java object system. Our proposal has been validated by a prototype implementation which is also contributed.

Keywords

Model-Driven Engineering Model Transformations Transformations at Runtime APIs Java Virtual Machine 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Akehurst, D.H., Bordbar, B., Evans, M.J., Howells, W.G.J., McDonald-Maier, K.D.: SiTra: Simple Transformations in Java. In: Wang, J., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 351–364. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  2. 2.
    Antkiewicz, M., Czarnecki, K., Stephan, M.: Engineering of framework-specific modeling languages. IEEE Trans. Softw. Eng. 35(6), 795–824 (2009)CrossRefGoogle Scholar
  3. 3.
    Bach, J.-C., Crégut, X., Moreau, P.-E., Pantel, M.: Model Transformations with Tom. In: LDTA 2012 (2012)Google Scholar
  4. 4.
    Blair, G., Bencomo, N., France, R.B.: Models@ run.time. IEEE Computer 42, 22–27 (2009)CrossRefGoogle Scholar
  5. 5.
    Bruneliere, H., Cabot, J., Jouault, F., Madiot, F.: Modisco: a generic and extensible framework for model driven reverse engineering. In: ASE 2010, pp. 173–174. ACM, New York (2010)Google Scholar
  6. 6.
    Clinger, W.D., Hartheimer, A., Ost, E.: Implementation strategies for first-class continuations. Higher-Order and Symbolic Computation 12(1), 7–45 (1999)MATHCrossRefGoogle Scholar
  7. 7.
    Cuadrado, J.S.: Towards a Family of Model Transformation Languages. In: Hu, Z., de Lara, J. (eds.) ICMT 2012. LNCS, vol. 7307, pp. 176–191. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  8. 8.
    Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst. 13, 451–490 (1991)CrossRefGoogle Scholar
  9. 9.
    de Mol, M., Rensink, A., Hunt, J.J.: Graph Transforming Java Data. In: de Lara, J., Zisman, A. (eds.) FASE 2012. LNCS, vol. 7212, pp. 209–223. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  10. 10.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.M.: Design Patterns. Elements of Reusable Object-Oriented Software. Addison Wesley (1994)Google Scholar
  11. 11.
    Izquierdo, J.L.C., Jouault, F., Cabot, J., Molina, J.G.: Api2mol: Automating the building of bridges between apis and model-driven engineering. Information & Software Technology 54(3), 257–273 (2012)CrossRefGoogle Scholar
  12. 12.
    Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: ATL: A model transformation tool. Science of Computer Programming 72(1-2), 31–39 (2008)MathSciNetMATHCrossRefGoogle Scholar
  13. 13.
    Meyer, B.: The Triumph of Objects (Invited Talk). In: TOOLS 2012 (2012)Google Scholar
  14. 14.
    Song, H., Huang, G., Chauvel, F., Xiong, Y., Hu, Z., Sun, Y., Mei, H.: Supporting runtime software architecture: A bidirectional-transformation-based approach. Journal of Systems and Software 84(5), 711–723 (2011)CrossRefGoogle Scholar
  15. 15.
    Song, H., Huang, G., Xiong, Y., Chauvel, F., Sun, Y., Mei, H.: Inferring Meta-models for Runtime System Data from the Clients of Management APIs. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010, Part II. LNCS, vol. 6395, pp. 168–182. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  16. 16.
    Wagelaar, D., Tisi, M., Cabot, J., Jouault, F.: Towards a General Composition Semantics for Rule-Based Model Transformation. In: Whittle, J., Clark, T., Kühne, T. (eds.) MODELS 2011. LNCS, vol. 6981, pp. 623–637. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  17. 17.
    Wazaabi: An open source EMF based dynamic declarative UI framework, http://wazaabi.org/

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Jesús Sánchez Cuadrado
    • 1
  • Esther Guerra
    • 1
  • Juan de Lara
    • 1
  1. 1.Universidad Autónoma de MadridSpain

Personalised recommendations