Framework-Specific Modeling Languages with Round-Trip Engineering

  • Michał Antkiewicz
  • Krzysztof Czarnecki
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4199)


We propose Framework-Specific Modeling Languages (FSMLs) as a special category of Domain-Specific Modeling Languages that are defined on top of an object-oriented application framework. They are used to express models showing how framework-provided abstractions are used in framework-based application code. Such models may be connected with the application code through a forward and a reverse mapping enabling round-trip engineering. We also propose a lightweight and iterative approach to round-trip engineering. Furthermore, we present a proof-of-concept FSML for modeling the interaction of workbench parts within Eclipse. Finally, we identify a number of challenges, opportunities, and directions for future research on FSMLs.


Modeling Language Abstract Syntax Reverse Mapping Forward Mapping Completion Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Eclipse Foundation: Eclipse (2006),
  2. 2.
    Antkiewicz, M., Czarnecki, K.: Eclipse workbench part interaction FSML. Technical Report 2006-09, ECE, University of Waterloo (2006),
  3. 3.
    Czarnecki, K., Kim, C.H.P.: Cardinality-based feature modeling and constraints: a progress report. In: International Workshop on Software Factories (2005)Google Scholar
  4. 4.
    DSM Forum: Workshop on domain-specific modeling (2001-2006),
  5. 5.
    Zook, D., Huang, S.S., Smaragdakis, Y.: Generating AspectJ programs with Meta-AspectJ. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 1–18. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  6. 6.
    Tip, F., Fuhrer, R., Dolby, J., Kieżun, A.: Refactoring techniques for migrating applications to generic Java container classes. IBM Research Report RC 23238, IBM T.J. Watson Research Center (2004)Google Scholar
  7. 7.
    Roberts, D., Johnson, R.: Evolving frameworks: A pattern language for developing object-oriented frameworks. In: PLoP 1996, University of Illinois, Addison-Wesley, Reading (1996)Google Scholar
  8. 8.
    De Volder, K.: JQuery: A generic code browser with a declarative configuration language. In: Van Hentenryck, P. (ed.) PADL 2006. LNCS, vol. 3819, pp. 88–102. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  9. 9.
    Shi, N., Olsson, R.A.: Reverse engineering of design patterns from Java source code. In: ASE 2006 (2006)Google Scholar
  10. 10.
    Braga, R.T.V., Masiero, P.C.: Building a wizard for framework instantiation based on a pattern language. In: Konstantas, D., Léonard, M., Pigneur, Y., Patel, S. (eds.) OOIS 2003. LNCS, vol. 2817, pp. 95–106. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  11. 11.
    Hakala, M., Hautamäki, J., Koskimies, K., Paakki, J., Viljamaa, A., Viljamaa, J.: Generating application development environments for Java frameworks. In: Bosch, J. (ed.) GCSE 2001. LNCS, vol. 2186, pp. 163–176. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  12. 12.
    Ortigosa, A., Campo, M.: Smartbooks: A step beyond active-cookbooks to aid in framework instantiation. In: TOOLS 1999, p. 131. IEEE Computer Society, Los Alamitos (1999)Google Scholar
  13. 13.
    Tourwé, T., Mens, T.: Automated support for framework-based software evolution. In: ICSM 2003, pp. 148–157. IEEE Computer Society Press, Los Alamitos (2003)Google Scholar
  14. 14.
    Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Transactions on Software Engineering (2004)Google Scholar
  15. 15.
    Hou, D., Hoover, H.J.: Using SCL to specify and check design intent in source code. IEEE Transactions on Software Engineering 32(6), 404–423 (2006)CrossRefGoogle Scholar
  16. 16.
    Sendall, S., Küster, J.: Taming model round-trip engineering. In: Workshop on Best Practices for Model-Driven Software Development (2004)Google Scholar
  17. 17.
    Verbaere, M., Ettinger, R., de Moor, O.: JunGL: a scripting language for refactoring. In: ICSE 2006 (2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Michał Antkiewicz
    • 1
  • Krzysztof Czarnecki
    • 1
  1. 1.University of Waterloo 

Personalised recommendations