Puzzle: A Tool for Analyzing and Extracting Specification Clones in DSLs

  • David Méndez-AcuñaEmail author
  • José A. Galindo
  • Benoit Combemale
  • Arnaud Blouin
  • Benoit Baudry
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9679)


The use of domain-specific languages (DSLs) is a successful technique in the development of complex systems. Indeed, the construction of new DSLs addressing the particular needs of software projects has become a recurrent activity. In this context, the phenomenon of specification cloning has started to appear. Language designers often copy&paste some parts of the specification from legacy DSLs to “reuse” formerly defined language constructs. As well known, this type of practices introduce problems such as bugs propagation, thus increasing of maintenance costs. In this paper, we present Puzzle, a tool that uses static analysis to facilitate the detection of specification clones in DSLs implemented under the executable metamodeling paradigm. Puzzle also enables the extraction specification clones as reusable language modules that can be later used to build up new DSLs.



This work is supported by the ANR INS Project GEMOC (ANR-12-INSE-0011), the bilateral collaboration VaryMDE between Inria and Thales, and the bilateral collaboration FPML between Inria and DGA.


  1. 1.
    Berger, C., Rendel, H., Rumpe, B., Busse, C., Jablonski, T., Wolf, F.: Product line metrics for legacy software in practice. In: Workshop Proceedings of the International Software Product Lines Conference, SPLC 2010, pp. 247–250, Jeju Island, South Korea. Springer (2010)Google Scholar
  2. 2.
    Biegel, B., Diehl, S.: JCCD: A flexible and extensible API for implementing custom code clone detectors. In: Proceedings of the International Conference on Automated Software Engineering, ASE 2010, pp. 167–168. ACM, Antwerp, Belgium (2010)Google Scholar
  3. 3.
    Clark, T., Barn, B.S.: Domain engineering for software tools. In: Reinhartz-Berger, I., Sturm, A., Clark, T., Cohen, S., Bettin, J. (eds.) Domain Engineering: Product Lines, Languages, and Conceptual Models, pp. 187–209. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  4. 4.
    Combemale, B., Hardebolle, C., Jacquet, C., Boulanger, F., Baudry, B.: Bridging the chasm between executable metamodeling and models of computation. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 184–203. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  5. 5.
    Cook, S.: Separating concerns with domain specific languages. In: Lightfoot, D.E., Ren, X.-M. (eds.) JMLC 2006. LNCS, vol. 4228, pp. 1–3. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  6. 6.
    Jézéquel, J.-M., Combemale, B., Barais, O., Monperrus, M., Fouquet, F.: Mashup of metalanguages and its implementation in the kermeta language workbench. Softw. Syst. Model. 14(2), 905–920 (2015)CrossRefGoogle Scholar
  7. 7.
    Jézéquel, J.-M., Méndez-Acuña, D., Degueule, T., Combemale, B., Barais, O.: When systems engineering meets software language engineering. In: Boulanger, F., Krob, D., Morel, G., Roussel, J.-C. (eds.) Complex Systems Design & Management, pp. 1–13. Springer, Heidelberg (2015)Google Scholar
  8. 8.
    Méndez-Acuña, D., Galindo, J.A., Combemale, B., Blouin, A., Baudry, B.: Reverse-engineering reusable language modules from legacy domain-specific languages. In: Kapitsaki, G., Santana de Almeida, E. (eds.) ICSR 2016. LNCS, vol. 9679, pp. 368–383. Springer, Heidelberg (2016)Google Scholar
  9. 9.
    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
  10. 10.
    Völter, M., Benz, S., Dietrich, C., Engelmann, B., Helander, M., Kats, L.C.L., Visser, E., Wachsmuth, G.: DSL Engineering - Designing, Implementing and Using Domain-Specific Languages (2013).
  11. 11.
    Zschaler, S., Kolovos, D.S., Drivalos, N., Paige, R.F., Rashid, A.: Domain-specific metamodelling languages for software language engineering. In: van den Brand, M., Gašević, D., Gray, J. (eds.) SLE 2009. LNCS, vol. 5969, pp. 334–353. Springer, Heidelberg (2010)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • David Méndez-Acuña
    • 1
    Email author
  • José A. Galindo
    • 1
  • Benoit Combemale
    • 1
  • Arnaud Blouin
    • 1
  • Benoit Baudry
    • 1
  1. 1.INRIAUniversity of Rennes 1RennesFrance

Personalised recommendations