Skip to main content
Log in

An Insight on Software Features Supporting Software Transplantation: A Systematic Review

  • Survey article
  • Published:
Archives of Computational Methods in Engineering Aims and scope Submit manuscript

Abstract

The field of software development has been rich alongside its heterogeneous nature. In the past few decades, paradigms and research work cultures have also undergone different changes. As every software is confined to an order, which ensure its steadiness and empowers it to be perceptible by our eyes, and builds up “similarities to” and “contrasts from” the alternative software(s). Adding new features to the current framework is exceptionally repetitive and dreary. Additionally, doing the progressions without influencing the working of the proposed framework requires a ton of manual hours. In light of this, the domain of software transplantation assumes a significant role alongside the sub-domains, which likewise requires consideration. The authors investigated the accessible literature till year 2019, in domain confined to Software Transplantation. As only handfuls of articles were accessible relate to the domain, so the investigation was stretched out further to softwares features with context to the source code. This paper is intended for those who are working in the field of software architecture, concept traceability, bug localization; where they need an insight as well as the need to highlight the area-of-interest—software artifacts. The paper answers questions such as: (1) How to discover/identify feature(s)-of-interest? (2) What should be the selection criteria for picking feature(s)-of-interest? (3) How to locate the source code of the feature(s)-of-interest in the software space? (4) What extraction procedure to be followed for feature(s)-of-interest?

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24
Fig. 25
Fig. 26
Fig. 27
Fig. 28
Fig. 29
Fig. 30
Fig. 31
Fig. 32
Fig. 33
Fig. 34
Fig. 35
Fig. 36
Fig. 37
Fig. 38
Fig. 39
Fig. 40
Fig. 41

Similar content being viewed by others

Notes

  1. Distinction among Object & System: The object is the focal point of consideration. The system is the interaction of all the conceivable considerations in the system domain. In any case, we can observe only one or a couple of objects, so in investigating the entire field of view, the center of focus must move between one object. This is the manifestation of appearing and concealing within the field, that is to say, it is actually what we call the system. The system is a gathering of objects in a similar field of appearing and concealing relationships.

  2. Coupling epitomize the caller method of the class (method of calling other methods) and the use attribute of other classes of the system.

  3. Cohesion means that method call and the caller method belong to the used attribute of the class.

  4. Contextual information is the text information in a method or class body, barring programming keywords.

  5. By hiding information about other features, the abstraction focuses on selected system features.

  6. Refinement focuses on supplanting certain aspects of the system with some insights.

  7. Foundation questions prepares readers about the pre-requisites for the subject by conveying basic informations.

  8. Insight questions provide readers an extended understanding of a subject.

  9. Generative questions provide new ideas, aiding the development of theories, strategies or actions.

  10. Excitement feature is not what customers expect. Developers surprise users by adding these.

  11. The performance feature is the one that the customer deliberately seeks to achieve. Their consciousness is paramount.

  12. Basic features are prerequisites. Customer will not explicitly request them.

  13. CamelCase is a naming convention wherein each word in a compound word is capitalized with the exception of the primary word.

  14. Structural analysis explore inter-class relationships, method invocations and data types.

  15. Behavioral analysis approaches consider the execution behavior of the program.

  16. Semantic analysis complements the structural and behavioral aspects.

  17. Beacons are recognizable, familiar features in the code that can be used as cues to the existence of certain structures.

  18. The Programming plan is a general-purpose code fragment that represent a typical scenarios in programming.

  19. Programming rules discourse capture programming conventions, such as coding standards and algorithm implementations.

  20. Syntactic knowledge is related to language, involving statements and basic units in the program.

  21. Semantic knowledge has nothing to do with language, and is established in a progressive layer until a representative model describing the application domain is formed.

  22. Portability is computed in terms of the effort required to migrate a program from one machine to another [100].

References

  1. NATO Software Engineering Conference (1968) Garmisch, Germany, 7–11 Oct. https://www.scrummanager.net/files/nato1968e.pdf. Accessed 23 July 2019

  2. Storey MA (2005) Theories, methods and tools in program comprehension: past, present and future. In: Cordy JR, Gall H, Malefic JI (eds) Proceedings of the 13th international workshop on program comprehension (IWPC), St. Louis, MO, USA, pp 181–191. https://doi.org/10.1109/WPC.2005.38

  3. Hewett R (1996) Using programming expertise for controlling software synthesis. TAYLOR AND FRANCIS. J Exp Theor Artif Intell 8:293–318. https://doi.org/10.1080/095281396147348

    Article  Google Scholar 

  4. Martin F, Beck K, Brant J (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, Boston

    Google Scholar 

  5. Rahman M, Riyadh RR, Khaled SM, Satter A, Rahman R (2018) MMRUC3 - A recommendation approach of move method refactoring using coupling, cohesion, and contextual similarity to enhance software design. Wiley Softw Pract Exp 48:1–28. https://doi.org/10.1002/spe.2591

    Article  Google Scholar 

  6. Rajlich V (2009) Intentions are a key to program comprehension. In: Ganod GC, Marcus A, Koschke R (eds) Proceedings of 17th international conference on program comprehension (ICPC), Vancouver, BC, Canada, pp 1–9. https://doi.org/10.1109/ICPC.2009.5090013

  7. Deissenbock F, Pizka M (2005) Concise and consistent naming. In: Cordy JR, Gall H, Malefic JI (eds) Proceedings of the 13th international workshop on program comprehension (IWPC), St. Louis, MO, USA, pp 97–106. https://doi.org/10.1109/WPC.2005.14

  8. Wolberg JR (1979) Using convert to transform source code. Wiley Softw Pract Exp 9:881–890. https://doi.org/10.1002/spe.4380091102

    Article  MATH  Google Scholar 

  9. Ruiz R, Park K, Ganzert V (2015) Apocalypse: the end of antivirus. Kindle, pp 1–134

    Google Scholar 

  10. University of California, Irvine (2019) Human gene transfer research. https://research.uci.edu/compliance/human-research-protections/researchers/human-gene-transfer-research.html. Accessed 11 Sept 2019

  11. National Human Genome Research Institute (2019) Genetic enhancement. https://www.genome.gov/10004767/genetic-enhancement. Accessed 23 July 2019

  12. Temperton J (2015) Code ‘transplant’ could revolutionise programming. http://www.wired.co.uk/article/code-organ-transplant-software-myscalpel. Accessed 11 Sept 2019

  13. Wenyong H, Jiquan L (1995) Software transplantation and understanding tool—the study and realization of the VAX-C decompile system. In: National air intelligence center, Jisuanji Gongcheng, China, vol 18, pp 1–4

  14. Poe J, Hughes C, Li T (2009) TransPlant: a parameterized methodology for generating transactional memory workloads. In: Bradley JT, Conrad JM, Field AJ, Harder U, Riley GF, Knottenbelt WJ (eds) 2009 IEEE international symposium on modeling, analysis & simulation of computer and telecommunication systems, London, pp 1–10. https://doi.org/10.1109/MASCOT.2009.5366659

  15. Fu HT (2014) Elimination simulation of incompatibility of software transplantation on different platform. Trans Tech Publ Appl Mech Mater 687–691:2989–2992. https://doi.org/10.4028/www.scientific.net/AMM.687-691.2989

    Article  Google Scholar 

  16. Barr ET, Harman M, Jia Y, Marginean A, Petke J (2015) Automated software transplantation. In: Young M, Xie T (eds) Proceedings of the international symposium on software testing and analysis (ISSTA), association for computing machinery, New York, NY, USA, pp 257–269. https://doi.org/10.1145/2771783.2771796

  17. Marginean A, Barr ET, Harman M, Jia Y (2015) Automated transplantation of call graph and layout features into Kate. In: Barros M, Labiche Y (eds) Springer symposium on search based software engineering (SBSE), Bergamo, Italy, pp 262–268. https://doi.org/10.1007/978-3-319-22183-0_21

  18. Dash SK, Ashokbhai VP, Sanmugasundaram R, Srinivasan D (2016) Transplantation of U-boot and Linux Kernel to OMAP-L138. In: Proceedings of IEEE international conference on microelectronics, computing and communications (MicroCom), National Institute of Technology, Durgapur, India 2016, pp 1–5. https://doi.org/10.1109/MicroCom.2016.7522407

  19. Zhang T, Kim M (2017) Automated transplantation and differential testing for clones. In: Uchitel S, Orso A, Robillard M (eds) Proceedings of the 39th IEEE/ACM international conference on software engineering (ICSE), Buenos Aires, Argentina, pp 665–676. https://doi.org/10.1109/ICSE.2017.67

  20. Petke J, Harman M, Langdon WB, Weimar W (2018) Specialising software for different downstream applications using genetic improvement and code transplantation. IEEE Trans Softw Eng 44:574–594. https://doi.org/10.1109/TSE.2017.2702606

    Article  Google Scholar 

  21. Liu L, Mao X (2018) A study on code transplantation technique based on program slicing. In: Hong Y H, Ke G T, He W(eds) Proceedings of international conference on transportation & logistics, information & communication, smart city (TLICSC), advances in intelligent systems research, Chengdu City, China, 2018, pp 294–298. https://doi.org/10.2991/tlicsc-18.2018.47

  22. Wang S, Mao X, Yu Y (2018) An initial step towards organ transplantation based on GitHub repository. IEEE Access 6:59268–59281. https://doi.org/10.1109/ACCESS.2018.2872669

    Article  Google Scholar 

  23. Eddy BP, Kraft NA, Gray J (2017) Impact of structural weighting on a latent Dirichlet allocation-based feature location technique. Wiley J Softw Evol Proc 30:1–25. https://doi.org/10.1002/smr.1892

    Article  Google Scholar 

  24. Benavides D, Ruiz-Cortes A, Trinidad P (2005) Automated reasoning on feature models. In: Pastor O, Cunha JF (eds) Proceedings of the Springer international conference on advanced information systems engineering (CAiSE), advanced information systems engineering. Berlin, Heidelberg, vol 3520, pp 491–503. https://doi.org/10.1007/11431855_34

  25. Pohl K, Bockle G, Linden FV (2005) Software product line engineering: foundations, principles and techniques. Springer, Berlin

    Book  Google Scholar 

  26. Kakar AK (2015) Software product features: Should we focus on the attractive or the important? J Decis Syst 24:1–22. https://doi.org/10.1080/12460125.2015.1080587

    Article  Google Scholar 

  27. Zhu X, Niu B, Whitehead EJ, Sun Z (2018) An empirical study of software change classification with imbalance data-handling methods. Wiley J Softw Pract Exp 48:1968–1999. https://doi.org/10.1002/spe.2606

    Article  Google Scholar 

  28. Kang K, Cohen S, Hess J, Novak W, Peterson S (1990) Feature-oriented domain analysis (FODA) feasibility study. Software Engineering Institute, Carnegie Mellon University, pp 1–161

    Book  Google Scholar 

  29. Griss M, Favaro J, D’Alessandro M (1998) Integrating feature modeling with the RSEB. In: Devanbu P, Poulin J (eds) Proceedings of the IEEE 5th international conference on software reuse (ICSR), Vancouver, BC, Canada, pp 76–85. https://doi.org/10.1109/ICSR.1998.685732

  30. Eisenecker UW, Czarnecki K (2002) Generative programming: methods, tools, and applications. In: Gacek C (eds) Proceedings of Springer 7th international conference on software and systems reuse (ICSR), Austin, TX, USA, pp 351–352. https://doi.org/10.1007/3-540-46020-9_38

  31. Gurp JV, Bosch J, Svahnberg M (2001) On the notion of variability in software product lines. In: Kazman R, Kruchten P, Verhoef C, Vliet HV (eds) Proceedings of the working IEEE/IFIP conference on software architecture (WICSA), Washington DC, United States, pp 45–54. https://doi.org/10.1109/WICSA.2001.948406

  32. Metzger A, Heymans P, Pohl K, Schobbens PY, Saval G (2007) Disambiguating the documentation of variability in software product lines: a separation of concerns, formalization and automated analysis. In: Sutcliffe A, Jalote P (eds) Proceedings of 15th IEEE international requirements engineering conference (RE), India Habitat Centre, New Delhi, India, October 2007, pp 243–253. https://doi.org/10.1109/RE.2007.61

  33. Al-Obeidallah MG, Petridis M, Kapetanakis S (2016) A survey on design pattern detection approaches. CSC Int J Softw Eng 7:41–59

    Google Scholar 

  34. Turner CR, Wolf AL, Fuggetta A, Lavazza L (1998) Feature engineering. In: Proceedings of the 9th international workshop on software specification and design (WSSD), Los Alamitos CA, USA, pp 162–164. https://doi.org/10.5555/857205.858311

  35. Cui M, Li L, Wang Z, You M (2017) A survey on relation extraction. In: Li J, Zhou M, Qi G, Lao N, Ruan T, Du J (eds) Proceedings of China conference on knowledge graph and semantic computing (CCKS), Chengdu, China, pp 50–58. https://doi.org/10.1007/978-981-10-7359-5_6

  36. Dumitru H, Gibiec M, Hariri N, Huang JC, Mobster B, Herrera CC, Mirakhorli M (2011) On-demand feature recommendations derived from mining public product descriptions. In: Taylor RN, Gall H (eds) Proceedings of 33rd IEEE international conference on software engineering (ICSE), Honolulu, Hawaii, USA, pp181–190. https://doi.org/10.1145/1985793.1985819

  37. McMillan C, Hariri N, Poshyvanyk D, Huang JC, Mobasher B (2012) Recommending source code for use in rapid software prototypes. In: Glinz M, Murphy G, Pezze M (eds) Proceedings of 34th international conference on software engineering (ICSE), Zürich, Switzerland, pp 848–858. https://doi.org/10.1109/ICSE.2012.6227134

  38. Classen A, Heymans P, Schobbens PY (2008) What’s in a feature: a requirements engineering perspective. In: Fiadeiro J, Inverardi P (eds) Proceedings of international conference on fundamental approaches to software engineering (FASE), Berlin, Heidelberg, pp 16–30. https://doi.org/10.1007/978-3-540-78743-3_2

  39. Goguen JA, Linde C (1993) Techniques for requirements elicitation. In: Proceedings of the IEEE international symposium on requirements engineering (ISRE), San Diego, CA, USA, pp 152–164. https://doi.org/10.1109/ISRE.1993.324822

  40. Marcus A, Malefic JI, Sergeyev A (2005) Recovery of traceability links between software documentation and source code. Int J Softw Eng Knowl 15:811–836. https://doi.org/10.1142/S0218194005002543

    Article  Google Scholar 

  41. Beck K (2003) Test-driven development: by example. Addison-Wesley Professional, Boston

    Google Scholar 

  42. Huang JC, Czauderna A, Gibiec M, Emenecker J (2010) A machine learning approach for tracing regulatory codes to product specific requirements. In: Kramer J, Bishop J (eds) Proceedings of ACM/IEEE 32nd international conference on software engineering (ICSE), ACM, New York, NY, USA, pp 155–164. https://doi.org/10.1145/1806799.1806825

  43. Solway E, Ehrlich K (1984) Empirical studies of programming knowledge. IEEE Trans Softw Eng 10:595–609. https://doi.org/10.1109/TSE.1984.5010283

    Article  Google Scholar 

  44. Harris DR, Yeh AS, Reubenstein HB (1996) Extracting architectural features from source code. Springer Autom Softw Eng 3:109–138. https://doi.org/10.1007/BF00126961

    Article  MathSciNet  Google Scholar 

  45. Liu H, Yu L (2005) Toward integrating feature selection algorithms for classification and clustering. IEEE Trans Knowl Data Eng 17:491–502. https://doi.org/10.1109/TKDE.2005.66

    Article  Google Scholar 

  46. Ahmed S, Zhang M, Peng L (2013) Enhanced feature selection for biomarker discovery in LC-MS data using GP. In Proceedings of IEEE congress on evolutionary computation (CEC), Cancun, Mexico, 2013, pp 584–591. https://doi.org/10.1109/CEC.2013.6557621

  47. Aghdam MH, Ghasem-Aghaee N, Basiri ME (2009) Text feature selection using ant colony optimization. Expert Syst Appl 36:6843–6853. https://doi.org/10.1016/j.eswa.2008.08.022

    Article  Google Scholar 

  48. Xue B, Zhang M, Browne WN, Yao X (2015) A survey on evolutionary computation approaches to feature selection. IEEE Trans Evol Comput 20:1–20. https://doi.org/10.1109/TEVC.2015.2504420

    Article  Google Scholar 

  49. Molina LC, Belanche L, Nebot A (2002) Feature selection algorithms: a survey and experimental evaluation. In: Kumar V, Tsurnoto S, Zhong N, Yu PS, Wu X (eds) Proceedings of IEEE international conference on data mining (ICDM), Maebashi City, Japan, pp 1–19. https://doi.org/10.5555/844380.844722

  50. Liu H, Motoda H, Dash M (1998) A Monotonic Measure for Optimal Feature Selection. In: Nedellec C, Rouveirol C (eds) Proceedings of the 10th European Conference on Machine Learning (ECML), Chemnitz, Germany, pp. 101–106. https://doi.org/10.5555/645326.649713

  51. Narendra P, Fukunaga K (1977) A branch and bound algorithm for feature subset selection. IEEE Trans Comput 26:917–922. https://doi.org/10.1109/TC.1977.1674939

    Article  MATH  Google Scholar 

  52. Doak J (1992) An evaluation of feature selection methods and their application to computer security. University of California, Department of Computer Science, Davis

    Google Scholar 

  53. Aha DW, Bankert RL (1994) Feature selection for case–based classification of cloud types. In: AAAI Press (eds) Proceedings of AAAI workshop on case-based reasoning, Seattle, WA, 1994, pp 106–112

  54. Xu L, Yan P, Chang T (1988) Best first strategy for feature selection. In: IEEE (eds) Proceedings of 9th international conference on pattern recognition (ICPR), Rome, Italy, pp 706–708. https://doi.org/10.1109/ICPR.1988.28334

  55. Bobrowski L (1988) Feature selection based on some homogeneity coefficient. In: IEEE (eds) Proceedings of 9th international conference on pattern recognition (ICPR), Rome, Italy, pp 544–546. https://doi.org/10.1109/ICPR.1988.28287

  56. Caruana RA, Freitas D (1994) Greedy attribute selection. In: Cohen WW, Hirsh H (eds) Proceedings of the 11th international conference on international conference on machine learning (ICML), New Brunswick, NJ, 1994, pp 28–36. https://doi.org/10.5555/3091574.3091579

  57. Cardie C (1993) Using decision trees to improve case-based learning. In: Morgan Kaufmann Publishers (eds) Proceedings of the 10th international conference on international conference on machine learning (ICML), Amherst, MA, pp 25–32. https://doi.org/10.5555/3091529.3091533

  58. Hall MA (1999) Correlation-based feature selection for machine learning. Ph.D thesis, University of Waikato, Hamilton, New Zealand

  59. Callan J, Fawcett T, Rissland E (1991) CABOT: an adaptive approach to case-based search. In: Morgan Kaufmann Publishers (eds) Proceedings of the 12th international joint conference on Artificial intelligence (IJCAI), Sydney, Australia, vol 2, pp 803–808. https://doi.org/10.5555/1631552.1631581

  60. Almuallim H, Dietterich TG (1991) Learning with many irrelevant features. In: AAAI Press (eds) Proceedings of the 9th national conference on artificial intelligence (AAAI), Anaheim, CA, vol 2, pp 547–552. https://doi.org/10.5555/1865756.1865761

  61. Almuallim H, Dietterich TG (1992) Efficient algorithms for identifying relevant features. In: Proceedings of the 9th Canadian conference on artificial intelligence (CAI), Vancouver, BC, pp 38–45. https://doi.org/10.5555/891073

  62. Vafaie H, Imam IF (1994) Feature selection methods: genetic algorithms vs. greedy like search. In Proceedings of the 3rd international fuzzy systems and intelligent control conference (ICFICS), Louisville, KY, pp 1–10

  63. Singh M, Provan GM (1996) Efficient learning of selective bayesian network classifiers. In: Sagitta L (eds) Proceedings of the 13th international conference on international conference on machine learning (ICML), Bari, Italy, 1996, pp 453–461. https://doi.org/10.5555/3091696.3091750

  64. Koller D, Sahami M (1996) Toward optimal feature selection. In: Sagitta L (eds) Proceedings of the 13th international conference on international conference on machine learning (ICML), Bari, Italy, pp 284–292. https://doi.org/10.5555/3091696.3091731

  65. Liu H, Setiono R (1996) A probabilistic approach to feature selection: a filter solution. In: Sagitta L (eds) Proceedings of the 13th international conference on international conference on machine learning (ICML), Bari, Italy, pp 319–327. https://doi.org/10.5555/3091696.3091735

  66. Liu H, Setiono R (1998) Scalable feature selection for large sized databases. In: Proceedings of the 4th world congress on expert systems (WCES), Mexico City, Mexico, pp 68–75

  67. Liu H, Setiono R (1996) Feature selection and classification: a probabilistic wrapper approach. In: Tanaka T, Ohsuga S, Ali M (eds) Proceedings of the 9th international conference on industrial and engineering applications of artificial intelligence and expert systems (IEA/AIE), Fukuoka, Japan, pp 129–135. https://doi.org/10.5555/3104635.3104707

  68. Sheinvald J, Dom B, Niblick W (1990) A modelling approach to feature selection. In: IEEE Press (eds) Proceedings of 10th international conference on pattern recognition (ICPR), Atlantic City, NJ, USA, vol 1, pp 535–539. https://doi.org/10.1109/ICPR.1990.118160

  69. Oliveira AL, Vincentelli A S (1992) Constructive induction using a non-greedy strategy for feature selection. In: Sleeman DH, Edwards P (eds) Proceedings of the 9th international workshop on machine learning (ML), Aberdeen, Scotland, pp 354–360. https://doi.org/10.5555/645525.757761

  70. Langley P, Sage S (1994) Oblivious decision trees and abstract cases. In: AAAI Press (eds) Proceedings of AAAI workshop on case-based reasoning, Seattle, WA, pp 113–117

  71. Mucciardi A, Gose E (1971) A comparison of seven techniques for choosing subsets of pattern recognition properties. IEEE Trans Comput 20:1023–1031. https://doi.org/10.1109/T-C.1971.223398

    Article  MATH  Google Scholar 

  72. Modrzejewski M (1993) Feature selection using rough sets theory. In: Brazil PB (eds) Proceedings of joint European conference on machine learning and knowledge discovery in databases (ECML), Vienna, Austria, vol 667, pp 213–226. https://doi.org/10.1007/3-540-56602-3_138

  73. Dash M, Liu H (1998) Hybrid search of feature subsets. In: Lee HY, Motoda H (eds) Proceedings of Pacific Rim international conference on artificial intelligence (PRICAI), Singapore, pp.22–27. https://doi.org/10.1007/BFb0095273

  74. Moore AW, Lee MS (1994) Efficient algorithms for minimizing cross validation error. In: Cohen WW, Hirsh H (eds) Proceedings of the 11th international conference on international conference on machine learning (ICML), New Brunswick, NJ, pp 190–198. https://doi.org/10.5555/3091574.3091598

  75. Domingos P (1997) Context-sensitive feature selection for lazy learners. Springer Artif Intell Rev 11:227–253. https://doi.org/10.1007/978-94-017-2053-3_9

    Article  Google Scholar 

  76. Kira K, Rendell L (1992) A practical approach to feature selection. In: Sleeman D, Edwards P (eds) Proceedings of the 9th international workshop on machine learning ICML, Aberdeen, Scotland, pp 249–256. https://doi.org/10.5555/141975.142034

  77. Skalak D (1994) Prototype and feature selection by sampling and random mutation hill climbing algorithms. In: Cohen WW, Hirsh H (eds) Proceedings of the 11th international conference on international conference on machine learning (ICML), New Brunswick, NJ, pp 293–301. https://doi.org/10.5555/3091574.3091610

  78. Jain AK, Zongker D (1997) Feature selection: evaluation, application, and small sample performance. IEEE Trans Pattern Anal Mach Intell 19:153–158. https://doi.org/10.1109/34.574797

    Article  Google Scholar 

  79. Dy JG, Brodley CE (2000) Feature subset selection and order identification for unsupervised learning. In: Langley P (eds) Proceedings of the 17th international conference on machine learning ICML, Stanford University, pp 247–254. https://doi.org/10.5555/645529.657797

  80. Kim Y, Street W, Menczer F (2000) Feature selection for unsupervised learning via evolutionary search. In: Ramakrishnan R, Stolfo S (eds) Proceedings of the 6th ACM SIGKDD international conference on Knowledge discovery and data mining (KDD), Boston, Massachusetts, USA, pp 365–369. https://doi.org/10.1145/347090.347169

  81. Dash M, Liu H, Yao J (1997) Dimensionality reduction of unsupervised data. In: Proceedings of the 9th IEEE international conference on tools with artificial intelligence (ICTAI), Newport Beach, CA, USA, pp 532–539. https://doi.org/10.1109/TAI.1997.632300

  82. Mitra P, Murthy CA, Pal SK (2002) Unsupervised feature selection using feature similarity. IEEE Trans Pattern Anal Mach Intell 24:301–312. https://doi.org/10.1109/34.990133

    Article  Google Scholar 

  83. Dash M, Choi K, Scheuermann P, Liu H (2002) Feature selection for clustering—a filter solution. In: Kumar V, Tsurnoto S, Zhong N, Yu PS, Wu X (eds) Proceedings of IEEE international conference on data mining (ICDM), Maebashi City, Japan, pp 115–122. https://doi.org/10.1109/ICDM.2002.1183893

  84. Devijver PA, Kittler J (1982) Pattern recognition—a statistical approach. Prentice Hall, London

    MATH  Google Scholar 

  85. Schlimmer J C (1993) Efficiently inducing determinations: a complete and efficient search algorithm that uses optimal pruning. In: Proceedings of the 10th international conference on machine learning (ICML), Amherst, MA, pp 284–290

  86. Segen J (1984) Feature selection and constructive inference. In: Canadian Image Processing and Pattern Recognition Society (eds) Proceedings of the 7th IEEE international conference on pattern recognition (ICPR), Montreal, Canada, pp 1344–1346

  87. Pudil P, Novovicová J, Kittler J (1994) Floating search methods in feature selection. Elsevier Pattern Recognit Lett 15:1119–1125. https://doi.org/10.1016/0167-8655(94)90127-9

    Article  Google Scholar 

  88. Littlestone N (1988) Learning quickly when irrelevant attributes abound: a new linear threshold algorithm. Springer Mach Learn 2:285–318. https://doi.org/10.1023/A:1022869011914

    Article  Google Scholar 

  89. Kohavi R (1995) Wrapper for performance enhancement and oblivious decision graphs. Ph.D thesis, Stanford University, Stanford, California, USA

  90. Ichino M, Sklansky J (1984) Feature selection for linear classifier. In: Canadian Image Processing and Pattern Recognition Society (ed) Proceedings of the 7th IEEE international conference on pattern recognition (ICPR), Montreal, Canada, pp 124–127

  91. Ichino M, Sklansky J (1984) Optimum feature selection by zero-one programming. IEEE Trans Syst Man Cybern C 14:737–746. https://doi.org/10.1109/TSMC.1984.6313294

    Article  MathSciNet  MATH  Google Scholar 

  92. Dash M (1997) Feature selection via set cover. In: Wu X, Tsai J, Pissinou N, Makki K (eds) Proceedings of IEEE knowledge and data engineering exchange workshop (KDEEW), Newport Beach, CA, USA, pp 165–171. https://doi.org/10.1109/KDEX.1997.629862

  93. Loscalzo S, Yu L, Ding C (2009) Consensus group based stable feature selection. In: Elder J, Fogelman FS (eds) Proceedings of the 15th ACM SIGKDD international conference on knowledge discovery and data mining (KDD), Paris, France, pp 567–576. https://doi.org/10.1145/1557019.1557084

  94. Das S (2001) Filters, wrappers and a boosting-based hybrid for feature selection. In: Brodley CE, Danyluk AP (eds) Proceedings of the 18th international conference on machine learning (ICML), Williams College, Williamstown, MA, USA, pp 74–81. https://doi.org/10.5555/645530.658297

  95. Foroutan I, Sklansky J (1987) Feature selection for automatic classification of non-gaussian data. IEEE Trans Syst Man Cybern C 17:187–198. https://doi.org/10.1109/TSMC.1987.4309029

    Article  Google Scholar 

  96. Wang J, Peng X, Xing Z, Zhao W (2013) How developers perform feature location tasks: a human-centric and process-oriented exploratory study. Wiley J Softw Evol Proc 25:1193–1224. https://doi.org/10.1002/smr.1593

    Article  Google Scholar 

  97. Dit B, Revelle M, Gethers M, Poshyvanyk D (2011) Feature location in source code: a taxonomy and survey. Wiley J Softw Evol Proc 25:53–95. https://doi.org/10.1002/smr.567

    Article  Google Scholar 

  98. Cesare S, Xiang Y (2012) Software similarity and classification. Springer Briefs in Computer Science, Berlin

    Book  Google Scholar 

  99. Schach SR (1980) A portable trace for the Pascal heap. Wiley Softw Pract Exp 10:421–426. https://doi.org/10.1002/spe.4380100602

    Article  MATH  Google Scholar 

  100. Poole PC (1971) Software portability. Software 71, Canterbury, pp 32–35

  101. O’Brien MP (2003) Software comprehension—a review & research direction. Department of Computer Science and Information Systems, University of Limerick

    Google Scholar 

  102. Karakostas V (1992) Intelligent search and acquisition of business knowledge from programs. Wiley J Softw Maint Evol Res 4:1–17. https://doi.org/10.1002/smr.4360040102

    Article  Google Scholar 

  103. Kozaczynski W, Ning JQ (1994) Automated Program Understanding By Concept Recognition. Springer Autom Softw Eng 1:61–78. https://doi.org/10.1007/BF00871692

    Article  Google Scholar 

  104. Biggerstaff TJ (1989) Design recovery for maintenance and reuse. IEEE Trans Comput 22:36–49. https://doi.org/10.1109/2.30731

    Article  Google Scholar 

  105. Biggerstaff TJ, Mitbander B, Webster D (1993) The concept assignment problem in program understanding. In Proceedings of 15th IEEE international conference on software engineering (ICSE), Baltimore, Maryland, pp 482–498. https://doi.org/10.1109/ICSE.1993.346017

  106. Johnson WL (1986) Intention-based diagnosis of novice programming errors. In: IEEE expert, vol 2, no 3, p 94. https://doi.org/10.1109/MEX.1987.4307101

  107. Gold NE (2000) Hypothesis-based concept assignment to support software maintenance. PhD. Thesis, Department of Computer Science, University of Durham, Durham, UK

  108. Gold N, Bennett K (2001) A flexible method for segmentation in concept assignment. In: Proceedings 9th international workshop on program comprehension (IWPC), Toronto, Ontario, Canada, pp 135–144. https://doi.org/10.1109/WPC.2001.921725

  109. Gold N (2001) Hypothesis-based concept assignment to support software maintenance. In: Bucci G, Parnas D (eds) Proceedings IEEE international conference on software maintenance (ICSM), Florence, Italy, pp 545–548. https://doi.org/10.1109/ICSM.2001.972768

  110. Canfora G, Cimitile A, Lucia AD, Di Lucca GA (2001) Decomposing legacy systems into objects: an eclectic approach. In: Ruhe G (ed) Information and software technology, vol 43, pp 401–412. https://doi.org/10.1016/S0950-5849(01)00149-5

  111. Rich C, Waters RC (1990) The programmer’s apprentice. ACM Press (Frontier Series)

    Google Scholar 

  112. Harandi MT, Ning JQ (1990) Knowledge-based program analysis. IEEE Trans Softw Eng 7:74–81. https://doi.org/10.1109/52.43052

    Article  Google Scholar 

  113. Woods SG, Quilici AE, Yang Q (1998) Constraint-based design recovery for software reengineering: theory and experiments. Kluwer Academic Publishers

    Book  Google Scholar 

  114. Biggerstaff TJ, Mitbander BG, Webster DE (1994) Program understanding and the concept assignment problem. Commun ACM 37(5):72–82

    Article  Google Scholar 

  115. Hartman J (1991) Automatic control understanding for natural programs. Ph.D. Thesis, University of Texas, Austin, USA

  116. Wills L M (1992) Automated program recognition by graph parsing. Ph.D Thesis, AI Lab, Massachusetts Institute of Technology, Massachusetts, Cambridge, USA

  117. Siff M, Reps T (1999) Identifying modules via concept analysis. IEEE Trans Softw Eng 25:749–768. https://doi.org/10.1109/32.824377

    Article  Google Scholar 

  118. Muscedere BJ, Hackman R, Anbarnam D, Attlee JM (2019) Detecting feature-interaction symptoms in automotive software using lightweight analysis. In: Wang X, Lo D, Shihab E (eds) Proceedings of IEEE 26th international conference on software analysis, evolution and reengineering (SANER), Hangzhou, China, pp 175–185. https://doi.org/10.1109/SANER.2019.8668042

Download references

Funding

Not applicable.

Author information

Authors and Affiliations

Authors

Contributions

The authors were in charge of overall direction and planning of this systematic review and helped shape the research, analysis and manuscript.

Corresponding author

Correspondence to Gurjot Singh Sodhi.

Ethics declarations

Conflict of interest

The authors declare that they have no conflict of interest.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Sodhi, G.S., Rattan, D. An Insight on Software Features Supporting Software Transplantation: A Systematic Review. Arch Computat Methods Eng 29, 275–312 (2022). https://doi.org/10.1007/s11831-021-09593-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11831-021-09593-8

Navigation