Skip to main content

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

  • Conference paper
  • First Online:
Software Reuse: Bridging with Social-Awareness (ICSR 2016)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9679))

Included in the following conference series:

Abstract

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 is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Melange website: http://melange-lang.org/.

  2. 2.

    Tool demonstration: http://puzzle-demo.weebly.com/.

  3. 3.

    Puzzle’s website: http://damende.github.io/puzzle/.

References

  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. 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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  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. 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. Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)

    Article  Google Scholar 

  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). http://dslbook.org

  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)

    Chapter  Google Scholar 

Download references

Acknowledgments

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to David Méndez-Acuña .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Méndez-Acuña, D., Galindo, J.A., Combemale, B., Blouin, A., Baudry, B. (2016). Puzzle: A Tool for Analyzing and Extracting Specification Clones in DSLs. In: Kapitsaki, G., Santana de Almeida, E. (eds) Software Reuse: Bridging with Social-Awareness. ICSR 2016. Lecture Notes in Computer Science(), vol 9679. Springer, Cham. https://doi.org/10.1007/978-3-319-35122-3_26

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-35122-3_26

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-35121-6

  • Online ISBN: 978-3-319-35122-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics