Skip to main content

Bottom-Up Technologies for Reuse: A Framework to Support Extractive Software Product Line Adoption Activities

  • Chapter
  • First Online:
Handbook of Re-Engineering Software Intensive Systems into Software Product Lines

Abstract

Bottom-Up Technologies for Reuse (BUT4Reuse) is a generic and extensible framework for helping in Software Product Line (SPL) adoption from existing artefacts. It supports the re-engineering of source code variants, models, requirements, or other structured formats. Currently 17 adapters are available for different artefact types. The framework covers the most relevant re-engineering activities towards extractive SPL adoption, i.e., the same framework can support feature identification and location, feature constraints discovery, feature model synthesis, and the construction of reusable assets. Well-defined extension points are provided for integrating algorithms and techniques for the mentioned activities. Similar to the case of the adapters, more than 20 state-of-the-art algorithms and techniques are currently integrated. The target users are both SPL adopters and integrators of adapters and techniques. In addition, two integrated benchmarks are proposed towards reproducible and comparable results for feature location research. This chapter presents the framework principles, supported activities, and an overview of the currently available functionalities.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    https://but4reuse.github.io/.

  2. 2.

    https://www.eclipse.org/modeling/emf/.

  3. 3.

    https://www.eclipse.org/jdt/.

  4. 4.

    https://www.eclipse.org/cdt/.

  5. 5.

    https://www.doxygen.nl/.

  6. 6.

    EFLBench: https://github.com/but4reuse/but4reuse/wiki/Benchmarks, ArgoUML SPL benchmark: https://github.com/but4reuse/argouml-spl-benchmark_but4reuse-helper.

References

  1. AL-Msie’deen, R., Huchard, M., Seriai, A.D.D., Urtado, C., Vauttier, S.: Concept lattices: A representation space to structure software variability. In: 5th International Conference on Information and Communication Systems (ICICS), pp. 1–6 (2014)

    Google Scholar 

  2. Al-Msie’deen, R., Seriai, A., Huchard, M., Urtado, C., Vauttier, S., Salman, H.E.: Feature location in a collection of software product variants using formal concept analysis. In: 13th International Conference on Software Reuse, ICSR 2013, Pisa, Italy, June 18–20. Proceedings, Lecture Notes in Computer Science, vol. 7925, pp. 302–307. Springer (2013)

    Google Scholar 

  3. Al-Msie’deen, R., Seriai, A., Huchard, M., Urtado, C., Vauttier, S., Salman, H.E.: Mining features from the object-oriented source code of a collection of software variants using formal concept analysis and latent semantic indexing. In: The 25th International Conference on Software Engineering and Knowledge Engineering (SEKE), Boston, MA, USA, June 27–29, 2013, pp. 244–249 (2013)

    Google Scholar 

  4. Apache: OpenNLP. http://opennlp.apache.org (2010)

  5. Apel, S., Kastner, C., Lengauer, C.: FEATUREHOUSE: Language-independent, automated software composition. In: Proceedings of the 31st International Conference on Software Engineering, ICSE ’09, pp. 221–231. IEEE Computer Society, Washington, DC, USA (2009)

    Google Scholar 

  6. Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Reengineering legacy applications into software product lines: a systematic mapping. Empir. Softw. Eng. 22(6), 2972–3016 (2017)

    Article  Google Scholar 

  7. Benmerzoug, A., Yessad, L., Ziadi, T.: Analyzing the impact of refactoring variants on feature location. In: 19th International Conference on Software and Systems Reuse, ICSR 2020, Hammamet, Tunisia, December 2–4, 2020, Proceedings, Lecture Notes in Computer Science, vol. 12541, pp. 279–291. Springer (2020)

    Google Scholar 

  8. Berger, T., Rublack, R., Nair, D., Atlee, J.M., Becker, M., Czarnecki, K., Wasowski, A.: A survey of variability modeling in industrial practice. In: The 7th International Workshop on Variability Modelling of Software-intensive Systems, VaMoS ’13, Pisa, Italy, January 23–25, 2013, pp. 7:1–7:8. ACM (2013)

    Google Scholar 

  9. Card, S.K., Mackinlay, J.D., Shneiderman, B. (eds.): Readings in Information Visualization: Using Vision to Think. Morgan Kaufmann Publishers Inc. (1999)

    Google Scholar 

  10. Couto, M.V., Valente, M.T., Figueiredo, E.: Extracting software product lines: A case study using conditional compilation. In: 15th European Conference on Software Maintenance and Reengineering, CSMR 2011, 1–4 March 2011, Oldenburg, Germany, pp. 191–200. IEEE Computer Society (2011)

    Google Scholar 

  11. Deerwester, S.C., Dumais, S.T., Landauer, T.K., Furnas, G.W., Harshman, R.A.: Indexing by latent semantic analysis. Journal of the American Society for Information Science and Technology (JASIS) 41(6), 391–407 (1990)

    Article  Google Scholar 

  12. Eclipse: Requirements Engineering Platform. http://eclipse.org/rmf/pror/ (2014)

  13. Eclipse: EMF Diff/Merge: a diff/merge component for models. http://eclipse.org/diffmerge (Accessed 2021)

  14. Fischer, S., Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A.: Enhancing clone-and-own with systematic reuse for developing software variants. In: 30th IEEE International Conference on Software Maintenance and Evolution, Victoria, BC, Canada, September 29–October 3, 2014, pp. 391–400. IEEE Computer Society (2014)

    Google Scholar 

  15. Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations, 1st edn. Springer-Verlag New York, Inc., Secaucus, NJ, USA (1997)

    MATH  Google Scholar 

  16. Grüner, S., Burger, A., Abukwaik, H., El-Sharkawy, S., Schmid, K., Ziadi, T., Paule, A., Suda, F., Viehl, A.: Demonstration of a toolchain for feature extraction, analysis and visualization on an industrial case study. In: 17th IEEE International Conference on Industrial Informatics, INDIN 2019, Helsinki, Finland, July 22–25, 2019, pp. 459–465. IEEE (2019)

    Google Scholar 

  17. Haugen, Ø., Wasowski, A., Czarnecki, K.: CVL: common variability language. In: 17th International Software Product Line Conference, SPLC 2013, Tokyo, Japan - August 26–30, 2013, p. 277. ACM (2013)

    Google Scholar 

  18. Krueger, C.W.: Easing the transition to software mass customization. In: 4th International Workshop on Software Product-Family Engineering, PFE 2001, Bilbao, Spain, October 3–5, 2001, Revised Papers, Lecture Notes in Computer Science, vol. 2290, pp. 282–293. Springer (2001)

    Google Scholar 

  19. Levenshtein, V.: Binary Codes Capable of Correcting Deletions, Insertions and Reversals. Soviet Physics Doklady 10 (1966)

    Google Scholar 

  20. Li, L., Martinez, J., Ziadi, T., Bissyandé, T.F., Klein, J., Traon, Y.L.: Mining families of Android applications for extractive SPL adoption. In: Proceedings of the 20th International Conference on Software Product Lines, SPLC 2016, Beijing, China, September 19–23 (2016)

    Google Scholar 

  21. Liu, J., Batory, D.S., Lengauer, C.: Feature oriented refactoring of legacy applications. In: L.J. Osterweil, H.D. Rombach, M.L. Soffa (eds.) 28th International Conference on Software Engineering (ICSE 2006), Shanghai, China, May 20–28, 2006, pp. 112–121. ACM (2006)

    Google Scholar 

  22. Lora-Michiels, A., Salinesi, C., Mazo, R.: A method based on association rules to construct product line models. In: VaMoS, ICB-Research Report, vol. 37, pp. 147–150. Universität Duisburg-Essen (2010)

    Google Scholar 

  23. Mahmood, W., Strüber, D., Berger, T., Lämmel, R., Mukelabai, M.: Seamless variability management with the virtual platform. In: 43rd IEEE/ACM International Conference on Software Engineering, ICSE 2021, Madrid, Spain, 22–30 May 2021, pp. 1658–1670. IEEE (2021)

    Google Scholar 

  24. Martinez, J.: Mining software artefact variants for product line migration and analysis. Ph.D. thesis, University of Luxembourg and Sorbonne University, France (2016). URL https://tel.archives-ouvertes.fr/tel-01477423

  25. Martinez, J., Assunção, W.K.G., Ziadi, T.: ESPLA: A catalog of extractive SPL adoption case studies. In: Proceedings of the 21st Int. Systems and Software Product Line Conference, SPLC 2017, Volume B, Sevilla, Spain, September 25–29, 2017, pp. 38–41. ACM (2017)

    Google Scholar 

  26. Martinez, J., Ordoñez, N., Tërnava, X., Ziadi, T., Aponte, J., Figueiredo, E., Valente, M.T.: Feature location benchmark with ArgoUML SPL. In: Proceeedings of the 22nd International Systems and Software Product Line Conference - Volume 1, SPLC 2018, Gothenburg, Sweden, September 10–14, 2018, pp. 257–263. ACM (2018)

    Google Scholar 

  27. Martinez, J., Wolfart, D., Assunção, W.K.G., Figueiredo, E.: Insights on software product line extraction processes: Argouml to argouml-spl revisited. In: SPLC ’20: 24th ACM International Systems and Software Product Line Conference, Montreal, Quebec, Canada, October 19–23, 2020, Volume A, pp. 6:1–6:6. ACM (2020)

    Google Scholar 

  28. Martinez, J., Ziadi, T., Bissyandé, T.F., Klein, J., Traon, Y.L.: Automating the extraction of model-based software product lines from model variants (T). In: 30th IEEE/ACM International Conference on Automated Software Engineering, ASE 2015, Lincoln, NE, USA, November 9–13, 2015, pp. 396–406. IEEE Computer Society (2015)

    Google Scholar 

  29. Martinez, J., Ziadi, T., Bissyandé, T.F., Klein, J., Traon, Y.L.: Bottom-up adoption of software product lines: a generic and extensible approach. In: Proceedings of the 19th International Conference on Software Product Line, SPLC 2015, Nashville, TN, USA, July 20–24, 2015, pp. 101–110. ACM (2015)

    Google Scholar 

  30. Martinez, J., Ziadi, T., Bissyandé, T.F., Klein, J., Traon, Y.L.: Name suggestions during feature identification: The VariClouds approach. In: Proceedings of the 20th International Conference on Software Product Lines, SPLC 2016, Beijing, China, September 19–23 (2016)

    Google Scholar 

  31. Martinez, J., Ziadi, T., Bissyandé, T.F., Klein, J., Traon, Y.L.: Bottom-up technologies for reuse: automated extractive adoption of software product lines. In: 39th International Conference on Software Engineering, ICSE 2017, Buenos Aires, Argentina, May 20–28, 2017 - Companion Volume, Tool demo, pp. 67–70. IEEE Computer Society (2017)

    Google Scholar 

  32. Martinez, J., Ziadi, T., Papadakis, M., Bissyandé, T.F., Klein, J., Traon, Y.L.: Feature location benchmark for extractive software product line adoption research using realistic and synthetic eclipse variants. Information & Software Technology 104, 46–59 (2018)

    Article  Google Scholar 

  33. Michelon, G.K., Sotto-Mayor, B., Martinez, J., Arrieta, A., Abreu, R., Assunção, W.K.G.: Spectrum-based feature localization: a case study using argouml. In: SPLC ’21: 25th ACM International Systems and Software Product Line Conference, Leicester, United Kingdom, September 6–11, 2021, Volume A, pp. 126–130. ACM (2021)

    Google Scholar 

  34. OMG: Meta Object Facility (MOF) Core Specification. http://www.omg.org/spec/MOF/2.0/ (2006)

  35. OMG: Requirements Interchange Format (ReqIF). http://www.omg.org/spec/ReqIF (2013)

  36. Pfofe, T., Thuem, T., Schulze, S., Fenske, W., Schaefer, I.: Synchronizing Software Variants with VariantSync. In: Proceedings of the 20th International Conference on Software Product Lines, SPLC 2016, Beijing, China, September 19–23, 2016 (2016)

    Google Scholar 

  37. Rubin, J., Chechik, M.: A survey of feature location techniques. In: Domain Engineering, Product Lines, Languages, and Conceptual Models, pp. 29–58. Springer (2013)

    Google Scholar 

  38. Rubin, J., Czarnecki, K., Chechik, M.: Managing cloned variants: a framework and experience. In: 17th International Software Product Line Conference, SPLC 2013, Tokyo, Japan - August 26–30, 2013, pp. 101–110. ACM (2013)

    Google Scholar 

  39. Ryssel, U., Ploennigs, J., Kabitzsch, K.: Extraction of feature models from formal contexts. In: Software Product Lines - 15th International Conference, SPLC 2011, Munich, Germany, August 22–26, 2011. Workshop Proceedings (Volume 2), p. 4. ACM (2011)

    Google Scholar 

  40. Salman, H.E., Seriai, A., Dony, C.: Feature-to-code traceability in a collection of software variants: Combining formal concept analysis and information retrieval. In: IEEE 14th International Conference on Information Reuse & Integration, IRI 2013, San Francisco, CA, USA, August 14–16, 2013, pp. 209–216. IEEE Computer Society (2013)

    Google Scholar 

  41. Shatnawi, A., Seriai, A., Sahraoui, H.A.: Recovering architectural variability of a family of product variants. In: 14th International Conference on Software Reuse, ICSR 2015, Miami, FL, USA, January 4–6, 2015. Proceedings, Lecture Notes in Computer Science, vol. 8919, pp. 17–33. Springer (2015)

    Google Scholar 

  42. Strüber, D., Mukelabai, M., Krüger, J., Fischer, S., Linsbauer, L., Martinez, J., Berger, T.: Facing the truth: benchmarking the techniques for the evolution of variant-rich systems. In: Proceedings of the 23rd International Systems and Software Product Line Conference, SPLC 2019, Volume A, Paris, France, September 9–13, 2019, pp. 26:1–26:12 (2019)

    Google Scholar 

  43. Thüm, T., Kästner, C., Benduhn, F., Meinicke, J., Saake, G., Leich, T.: FeatureIDE: An extensible framework for feature-oriented software development. Science of Computer Programming 79(0) (2014)

    Google Scholar 

  44. Tinkerpop: TinkerPop3: A Graph Computing Framework. http://blueprints.tinkerpop.com (2015)

  45. Wong, W.E., Gao, R., Li, Y., Abreu, R., Wotawa, F.: A survey on software fault localization. IEEE Transactions on Software Engineering 42(8), 707–740 (2016)

    Article  Google Scholar 

  46. WordNet Similarity for Java: WordNet Similarity for Java. https://code.google.com/p/ws4j/ (2015)

  47. Wu, Z., Palmer, M.S.: Verb semantics and lexical selection. In: 32nd Annual Meeting of the Association for Computational Linguistics, 27–30 June 1994, New Mexico State University, Las Cruces, New Mexico, USA, Proceedings., pp. 133–138. Morgan Kaufmann Publishers/ACL (1994)

    Google Scholar 

  48. Xue, Y., Xing, Z., Jarzabek, S.: Feature location in a collection of product variants. In: 19th Working Conference on Reverse Engineering, WCRE 2012, Kingston, ON, Canada, October 15–18, 2012, pp. 145–154. IEEE Computer Society (2012)

    Google Scholar 

  49. Zave, P.: An experiment in feature engineering. In: Programming methodology, pp. 353–377. Springer New York (2003)

    Google Scholar 

  50. Ziadi, T., Frias, L., da Silva, M.A.A., Ziane, M.: Feature identification from the source code of product variants. In: 16th European Conference on Software Maintenance and Reengineering, CSMR 2012, Szeged, Hungary, March 27–30, 2012, pp. 417–422. IEEE Computer Society (2012)

    Google Scholar 

  51. Ziadi, T., Henard, C., Papadakis, M., Ziane, M., Traon, Y.L.: Towards a language-independent approach for reverse-engineering of software product lines. In: Symposium on Applied Computing, SAC 2014, Gyeongju, Republic of Korea - March 24–28, 2014, pp. 1064–1071. ACM (2014)

    Google Scholar 

  52. Ziadi, T., Hillah, L.: Software product line extraction from bytecode based applications. In: 23rd International Conference on Engineering of Complex Computer Systems, ICECCS 2018, Melbourne, Australia, December 12–14, 2018, pp. 221–225. IEEE Computer Society (2018)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jabier Martinez .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Martinez, J., Ziadi, T., Bissyandé, T.F., Klein, J., le Traon, Y. (2023). Bottom-Up Technologies for Reuse: A Framework to Support Extractive Software Product Line Adoption Activities. In: Lopez-Herrejon, R.E., Martinez, J., Guez Assunção, W.K., Ziadi, T., Acher, M., Vergilio, S. (eds) Handbook of Re-Engineering Software Intensive Systems into Software Product Lines. Springer, Cham. https://doi.org/10.1007/978-3-031-11686-5_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-11686-5_14

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-11685-8

  • Online ISBN: 978-3-031-11686-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics