Skip to main content

2016 | OriginalPaper | Buchkapitel

Reverse-Engineering Reusable Language Modules from Legacy Domain-Specific Languages

verfasst von : David Méndez-Acuña, José A. Galindo, Benoit Combemale, Arnaud Blouin, Benoit Baudry, Gurvan Le Guernic

Erschienen in: Software Reuse: Bridging with Social-Awareness

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

The use of domain-specific languages (DSLs) has become a successful technique in the development of complex systems. Nevertheless, the construction of this type of languages is time-consuming and requires highly-specialized knowledge and skills. An emerging practice to facilitate this task is to enable reuse through the definition of language modules which can be later put together to build up new DSLs. Still, the identification and definition of language modules are complex and error-prone activities, thus hindering the reuse exploitation when developing DSLs. In this paper, we propose a computer-aided approach to (i) identify potential reuse in a set of legacy DSLs; and (ii) capitalize such potential reuse by extracting a set of reusable language modules with well defined interfaces that facilitate their assembly. We validate our approach by using realistic DSLs coming out from industrial case studies and obtained from public GitHub repositories.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literatur
1.
Zurück zum Zitat Bettini, L., Stoll, D., Völter, M., Colameo, S.: Approaches and tools for implementing type systems in xtext. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 392–412. Springer, Heidelberg (2013)CrossRef Bettini, L., Stoll, D., Völter, M., Colameo, S.: Approaches and tools for implementing type systems in xtext. In: Czarnecki, K., Hedin, G. (eds.) SLE 2012. LNCS, vol. 7745, pp. 392–412. Springer, Heidelberg (2013)CrossRef
2.
Zurück zum Zitat 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, Antwerp, Belgium. ACM (2010) 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, Antwerp, Belgium. ACM (2010)
3.
Zurück zum Zitat 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)CrossRef 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)CrossRef
4.
Zurück zum Zitat Cleenewerck, T.: Component-based DSL development. In: Pfenning, F., Macko, M. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 245–264. Springer, Heidelberg (2003)CrossRef Cleenewerck, T.: Component-based DSL development. In: Pfenning, F., Macko, M. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 245–264. Springer, Heidelberg (2003)CrossRef
5.
Zurück zum Zitat 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)CrossRef 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)CrossRef
6.
Zurück zum Zitat Constantinou, E., Naskos, A., Kakarontzas, G., Stamelos, I.: Extracting reusable components: a semi-automated approach for complex structures. Inf. Process. Lett. 115(3), 414–417 (2015)CrossRef Constantinou, E., Naskos, A., Kakarontzas, G., Stamelos, I.: Extracting reusable components: a semi-automated approach for complex structures. Inf. Process. Lett. 115(3), 414–417 (2015)CrossRef
7.
Zurück zum Zitat 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)CrossRef 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)CrossRef
8.
Zurück zum Zitat Crane, M., Dingel, J.: Uml vs. classical vs. rhapsody statecharts: not all models are created equal. Softw. Syst. Mod. 6(4), 415–435 (2007)CrossRef Crane, M., Dingel, J.: Uml vs. classical vs. rhapsody statecharts: not all models are created equal. Softw. Syst. Mod. 6(4), 415–435 (2007)CrossRef
9.
Zurück zum Zitat Degueule, T., Combemale, B., Blouin, A., Barais, O., Jézéquel, J.-M.: Melange: a meta-language for modular and reusable development of dsls. In: Proceedings of the International Conference on Software Language Engineering, SLE 2015, pp. 25–36, Pittsburgh, PA, USA. ACM (2015) Degueule, T., Combemale, B., Blouin, A., Barais, O., Jézéquel, J.-M.: Melange: a meta-language for modular and reusable development of dsls. In: Proceedings of the International Conference on Software Language Engineering, SLE 2015, pp. 25–36, Pittsburgh, PA, USA. ACM (2015)
10.
Zurück zum Zitat Erdweg, S., Rieger, F.: A framework for extensible languages. In: Proceedings of the International Conference on Generative Programming, GPCE 2013, pp. 3–12, Indianapolis, USA. ACM (2013) Erdweg, S., Rieger, F.: A framework for extensible languages. In: Proceedings of the International Conference on Generative Programming, GPCE 2013, pp. 3–12, Indianapolis, USA. ACM (2013)
11.
Zurück zum Zitat Harel, D., Rumpe, B.: Meaningful modeling: what’s the semantics of “semantics”? Computer 37(10), 64–72 (2004)CrossRef Harel, D., Rumpe, B.: Meaningful modeling: what’s the semantics of “semantics”? Computer 37(10), 64–72 (2004)CrossRef
12.
Zurück zum Zitat 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. Mod. 14(2), 905–920 (2015)CrossRef 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. Mod. 14(2), 905–920 (2015)CrossRef
13.
Zurück zum Zitat 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.) CSD&M 2014, pp. 1–13. Springer International Publishing, Heidelberg (2015) 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.) CSD&M 2014, pp. 1–13. Springer International Publishing, Heidelberg (2015)
14.
Zurück zum Zitat de Lara, J., Guerra, E.: Domain-specific textual meta-modelling languages for model driven engineering. In: Vallecillo, A., Tolvanen, J.-P., Kindler, E., Störrle, H., Kolovos, D. (eds.) ECMFA 2012. LNCS, vol. 7349, pp. 259–274. Springer, Heidelberg (2012)CrossRef de Lara, J., Guerra, E.: Domain-specific textual meta-modelling languages for model driven engineering. In: Vallecillo, A., Tolvanen, J.-P., Kindler, E., Störrle, H., Kolovos, D. (eds.) ECMFA 2012. LNCS, vol. 7349, pp. 259–274. Springer, Heidelberg (2012)CrossRef
15.
Zurück zum Zitat Lodderstedt, T., Basin, D., Doser, J.: SecureUML: a UML-based modeling language for model-driven security. In: Jézéquel, J.-M., Hussmann, H., Cook, S. (eds.) UML 2002. LNCS, vol. 2460, pp. 426–441. Springer, Heidelberg (2002)CrossRef Lodderstedt, T., Basin, D., Doser, J.: SecureUML: a UML-based modeling language for model-driven security. In: Jézéquel, J.-M., Hussmann, H., Cook, S. (eds.) UML 2002. LNCS, vol. 2460, pp. 426–441. Springer, Heidelberg (2002)CrossRef
16.
Zurück zum Zitat Lucanu, D., Rusu, V.: Program equivalence by circular reasoning. In: Johnsen, E.B., Petre, L. (eds.) IFM 2013. LNCS, vol. 7940, pp. 362–377. Springer, Heidelberg (2013)CrossRef Lucanu, D., Rusu, V.: Program equivalence by circular reasoning. In: Johnsen, E.B., Petre, L. (eds.) IFM 2013. LNCS, vol. 7940, pp. 362–377. Springer, Heidelberg (2013)CrossRef
17.
Zurück zum Zitat Mernik, M.: An object-oriented approach to language compositions for software language engineering. J. Syst. Softw. 86(9), 2451–2464 (2013)CrossRef Mernik, M.: An object-oriented approach to language compositions for software language engineering. J. Syst. Softw. 86(9), 2451–2464 (2013)CrossRef
18.
Zurück zum Zitat Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)CrossRef Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Surv. 37(4), 316–344 (2005)CrossRef
19.
Zurück zum Zitat Mishra, S., Kushwaha, D., Misra, A.: Creating reusable software component from object-oriented legacy system through reverse engineering. J. Object Technol. 8(5), 133–152 (2009)CrossRef Mishra, S., Kushwaha, D., Misra, A.: Creating reusable software component from object-oriented legacy system through reverse engineering. J. Object Technol. 8(5), 133–152 (2009)CrossRef
20.
Zurück zum Zitat Mosses, P.D.: The varieties of programming language semantics. In: Bjørner, D., Broy, M., Zamulin, A.V. (eds.) PSI 2001. LNCS, vol. 2244, pp. 165–190. Springer, Heidelberg (2001)CrossRef Mosses, P.D.: The varieties of programming language semantics. In: Bjørner, D., Broy, M., Zamulin, A.V. (eds.) PSI 2001. LNCS, vol. 2244, pp. 165–190. Springer, Heidelberg (2001)CrossRef
21.
Zurück zum Zitat Olson, A., Kieren, T., Ludwig, S.: Linking logo, levels and language in mathematics. Educ. Stud. Math. 18(4), 359–370 (1987)CrossRef Olson, A., Kieren, T., Ludwig, S.: Linking logo, levels and language in mathematics. Educ. Stud. Math. 18(4), 359–370 (1987)CrossRef
22.
Zurück zum Zitat Oney, S., Myers, B., Brandt, J.: Constraintjs: programming interactive behaviors for the web by integrating constraints and states. In: Proceedings of the Annual Symposium on User Interface Software and Technology, UIST 2012, pp. 229–238, Cambridge, Massachusetts, USA. ACM (2012) Oney, S., Myers, B., Brandt, J.: Constraintjs: programming interactive behaviors for the web by integrating constraints and states. In: Proceedings of the Annual Symposium on User Interface Software and Technology, UIST 2012, pp. 229–238, Cambridge, Massachusetts, USA. ACM (2012)
23.
Zurück zum Zitat Steel, J., Jézéquel, J.-M.: On model typing. Softw. Syst. Mod. 6(4), 401–414 (2007)CrossRef Steel, J., Jézéquel, J.-M.: On model typing. Softw. Syst. Mod. 6(4), 401–414 (2007)CrossRef
24.
Zurück zum Zitat Voelter, M.: Language and IDE modularization and composition with MPS. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2011. LNCS, vol. 7680, pp. 383–430. Springer, Heidelberg (2013)CrossRef Voelter, M.: Language and IDE modularization and composition with MPS. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2011. LNCS, vol. 7680, pp. 383–430. Springer, Heidelberg (2013)CrossRef
25.
Zurück zum Zitat 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. CreateSpace Independent Publishing Platform, Hamburg (2013). dslbook.org 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. CreateSpace Independent Publishing Platform, Hamburg (2013). dslbook.​org
26.
Zurück zum Zitat 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)CrossRef 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)CrossRef
Metadaten
Titel
Reverse-Engineering Reusable Language Modules from Legacy Domain-Specific Languages
verfasst von
David Méndez-Acuña
José A. Galindo
Benoit Combemale
Arnaud Blouin
Benoit Baudry
Gurvan Le Guernic
Copyright-Jahr
2016
DOI
https://doi.org/10.1007/978-3-319-35122-3_24

Premium Partner