Leveraging Feature Location to Extract the Clone-and-Own Relationships of a Family of Software Products

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9679)

Abstract

Feature location is concerned with identifying software artifacts associated with a program functionality (features). This paper presents a novel approach that combines feature location at the model level with code comparison at the code level to extract Clone-and-Own Relationships from a family of software products. The aim of our work is to understand the different Clone-and-Own Relationships and to take advantage of them in order to improve the way features are reused. We have evaluated our work by applying our approach to two families of software products of industrial dimensions. The code of one of the families is implemented manually by software engineers from the models that specify the software, while the code of the other family is implemented automatically by a code generation tool. The results show that our approach is able to extract relationships between features such as Reimplemented, Modificated, Adapted, Unaltered, and Ghost Features, thus providing insight into understanding the Clone-and-Own relationships of a family of software products. Furthermore, we suggest how to use these relationships to improve the way features are reused.

Keywords

Feature location Software variability extraction Clone-and-own extraction 

References

  1. 1.
    Dit, B., Revelle, M., Gethers, M., Poshyvanyk, D.: Feature location in source code: a taxonomy and survey. J. Softw. Evol. Proc. 25, 53–95 (2013). doi:10.1002/smr.567 CrossRefGoogle Scholar
  2. 2.
    Eaddy, M., Aho, A.V., Antoniol, G., Guéhéneuc, Y.G.: CERBERUS: tracing requirements to source code using information retrieval, dynamic analysis, and program analysis. In: Krikhaar, R.L., Lämmel, R., Verhoef, C. (eds.) The 16th IEEE International Conference on Program Comprehension, ICPC, Amsterdam, The Netherlands, 10–13 June 2008, pp. 53–62. IEEE Computer Society (2008)Google Scholar
  3. 3.
    Czarnecki, K., Wasowski, A.: Feature diagrams and logics: there and back again. In: Software Product Lines, 11th International Conference, SPLC, Proceedings, Kyoto, Japan, 10–14 Sept 2007. IEEE Computer Society (2007)Google Scholar
  4. 4.
    Font, J., Ballarín, M., Haugen, Ø., Cetina, C.: Automating the variability formalization of a model family by means of common variability language. In: Schmidt, D.C. (ed.) Proceedings of the 19th International Conference on Software Product Line, SPLC 2015, Nashville, USA, 20–24 July 2015, pp. 411–418. ACM (2015)Google Scholar
  5. 5.
    Rubin, J., Chechik, M.: Combining related products into product lines. In: de Lara, J., Zisman, A. (eds.) Fundamental Approaches to Software Engineering. LNCS, vol. 7212, pp. 285–300. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  6. 6.
    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: Schmidt, D.C. (ed.) Proceedings of the 19th International Conference on Software Product Line, SPLC 2015, Nashville, TN, USA, 20–24 July 2015. ACM (2015)Google Scholar
  7. 7.
    Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20(5), 19–25 (2003). http://dx.doi.org/10.1109/MS.2003.1231146 CrossRefGoogle Scholar
  8. 8.
    Zhang, X., Haugen, Ø., Møller-Pedersen, B.: Model comparison to synthesize a model-driven software product line. In: de Almeida, E.S., Kishi, T., Schwanninger, C., John, I., Schmid, K. (eds.) Software Product Lines - 15th International Conference, SPLC, Munich, Germany, 22–26 Aug 2011, pp. 90–99. IEEE (2011)Google Scholar
  9. 9.
    Font, J., Arcega, L., Haugen, O., Cetina, C.: Building software product lines from conceptualized model patterns. In: Proceedings of the 19th International Conference on Software Product Line, SPLC 2015. ACM, New York (2015)Google Scholar
  10. 10.
    Kamiya, T., Kusumoto, S., Inoue, K.: CCFinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Trans. Software Eng. 28(7), 654–670 (2002)CrossRefGoogle Scholar
  11. 11.
    Li, Z., Lu, S., Myagmar, S., Zhou, Y.: CP-Miner: finding copy-paste and related bugs in large-scale software code. IEEE Trans. Softw. Eng. 32(3), 176–192 (2006)CrossRefGoogle Scholar
  12. 12.
    Kästner, C., Giarrusso, P.G., Rendel, T., Erdweg, S., Ostermann, K., Berger, T.: Variability-aware parsing in the presence of lexical macros and conditional compilation. In: Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2011, pp. 805–824. ACM, New York (2011). http://dx.doi.org/10.1145/2048066.2048128
  13. 13.
    Kästner, C., Giarrusso, P.G., Rendel, T., Erdweg, S., Ostermann, K., Berger, T.: Variability-aware parsing in the presence of lexical macros and conditional compilation. In: Lopes, C.V., Fisher, K. (eds.) Proceedings of the 26th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2011. ACM (2011)Google Scholar
  14. 14.
    Kästner, C., Ostermann, K., Erdweg, S.: A variability-aware module system. In: Leavens, G.T., Dwyer, M.B. (eds.) Proceedings of the 27th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, USA, 21–25 Oct 2012. ACM (2012)Google Scholar
  15. 15.
    Landauer, T.K., Psotka, J.: Simulating text understanding for educational applications with latent semantic analysis: introduction to LSA. Interact. Learn. Environ. (2000)Google Scholar
  16. 16.
    Asadi, F., Penta, M.D., Antoniol, G., Guéhéneuc, Y.G.: A heuristic-based approach to identify concepts in execution traces. In: Capilla, R., Ferenc, R., Dueñas, J.C. (eds.) 14th European Conference on Software Maintenance and Reengineering, CSMR, March 2010, Madrid, Spain. IEEE Computer Society (2010)Google Scholar
  17. 17.
    She, S., Lotufo, R., Berger, T., Wasowski, A., Czarnecki, K.: Reverse engineering feature models. In: Taylor, R.N., Gall, H.C., Medvidovic, N. (eds.) Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, Waikiki, Honolulu, HI, USA, 21–28 May 2011. ACM (2011)Google Scholar
  18. 18.
    Nadi, S., Berger, T., Kästner, C., Czarnecki, K.: Mining configuration constraints: static analyses and empirical results. In: Jalote, P., Briand, L.C., van der Hoek, A. (eds.) 36th International Conference on Software Engineering, ICSE 14, Hyderabad, India, 31 May – 07 June 2014, pp. 140–151. ACM (2014)Google Scholar
  19. 19.
    Walkinshaw, N., Roper, M., Wood, M.: Feature location and extraction using landmarks and barriers. In: 23rd IEEE International Conference on Software Maintenance (ICSM 2007), Paris, France, 2–5 Oct 2007. IEEE (2007)Google Scholar
  20. 20.
    Trifu, M.: Improving the dataflow-based concern identification approach. In: Winter, A., Ferenc, R., Knodel, J. (eds.) 13th European Conference on Software Maintenance and Reengineering, CSMR 2009, Architecture-Centric Maintenance of Large-SCale Software Systems, Kaiserslautern, Germany, 24–27 Mar 2009. IEEE Computer Society (2009)Google Scholar
  21. 21.
    Eisenberg, A.D., Volder, K.D.: Dynamic feature traces: finding features in unfamiliar code. In: 21st IEEE International Conference on Software Maintenance (ICSM), Budapest, Hungary, 25–30 Sept 2005, pp. 337–346. IEEE Computer Society (2005)Google Scholar
  22. 22.
    Poshyvanyk, D., Guéhéneuc, Y.G., Marcus, A., Antoniol, G., Rajlich, V.: Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval. IEEE Trans. Softw. Eng. 33(6), 420–432 (2007). doi:10.1109/TSE.2007.1016 CrossRefGoogle Scholar
  23. 23.
    Haugen, Ø., Møller-Pedersen, B., Oldevik, J., Olsen, G.K., Svendsen, A.: Adding standardized variability to domain specific languages. In: Software Product Lines, 12th International Conference, SPLC 2008, Proceedings, Limerick, Ireland, 8–12 Sept 2008, pp. 139–148. IEEE Computer Society (2008)Google Scholar
  24. 24.
    Svendsen, A., Zhang, X., Lind-Tviberg, R., Fleurey, F., Haugen, Ø., Møller-Pedersen, B., Olsen, G.K.: Developing a software product line for train control: a case study of CVL. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 106–120. Springer, Heidelberg (2010)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.SVIT Research GroupSan Jorge UniversityZaragozaSpain

Personalised recommendations