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?
Similar content being viewed by others
Notes
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.
Coupling epitomize the caller method of the class (method of calling other methods) and the use attribute of other classes of the system.
Cohesion means that method call and the caller method belong to the used attribute of the class.
Contextual information is the text information in a method or class body, barring programming keywords.
By hiding information about other features, the abstraction focuses on selected system features.
Refinement focuses on supplanting certain aspects of the system with some insights.
Foundation questions prepares readers about the pre-requisites for the subject by conveying basic informations.
Insight questions provide readers an extended understanding of a subject.
Generative questions provide new ideas, aiding the development of theories, strategies or actions.
Excitement feature is not what customers expect. Developers surprise users by adding these.
The performance feature is the one that the customer deliberately seeks to achieve. Their consciousness is paramount.
Basic features are prerequisites. Customer will not explicitly request them.
CamelCase is a naming convention wherein each word in a compound word is capitalized with the exception of the primary word.
Structural analysis explore inter-class relationships, method invocations and data types.
Behavioral analysis approaches consider the execution behavior of the program.
Semantic analysis complements the structural and behavioral aspects.
Beacons are recognizable, familiar features in the code that can be used as cues to the existence of certain structures.
The Programming plan is a general-purpose code fragment that represent a typical scenarios in programming.
Programming rules discourse capture programming conventions, such as coding standards and algorithm implementations.
Syntactic knowledge is related to language, involving statements and basic units in the program.
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.
Portability is computed in terms of the effort required to migrate a program from one machine to another [100].
References
NATO Software Engineering Conference (1968) Garmisch, Germany, 7–11 Oct. https://www.scrummanager.net/files/nato1968e.pdf. Accessed 23 July 2019
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
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
Martin F, Beck K, Brant J (1999) Refactoring: improving the design of existing code. Addison-Wesley Professional, Boston
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
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
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
Wolberg JR (1979) Using convert to transform source code. Wiley Softw Pract Exp 9:881–890. https://doi.org/10.1002/spe.4380091102
Ruiz R, Park K, Ganzert V (2015) Apocalypse: the end of antivirus. Kindle, pp 1–134
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
National Human Genome Research Institute (2019) Genetic enhancement. https://www.genome.gov/10004767/genetic-enhancement. Accessed 23 July 2019
Temperton J (2015) Code ‘transplant’ could revolutionise programming. http://www.wired.co.uk/article/code-organ-transplant-software-myscalpel. Accessed 11 Sept 2019
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
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
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
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
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
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
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
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
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
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
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
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
Pohl K, Bockle G, Linden FV (2005) Software product line engineering: foundations, principles and techniques. Springer, Berlin
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
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
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
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
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
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
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
Al-Obeidallah MG, Petridis M, Kapetanakis S (2016) A survey on design pattern detection approaches. CSC Int J Softw Eng 7:41–59
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
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
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
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
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
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
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
Beck K (2003) Test-driven development: by example. Addison-Wesley Professional, Boston
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
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
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
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
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
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
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
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
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
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
Doak J (1992) An evaluation of feature selection methods and their application to computer security. University of California, Department of Computer Science, Davis
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
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
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
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
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
Hall MA (1999) Correlation-based feature selection for machine learning. Ph.D thesis, University of Waikato, Hamilton, New Zealand
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Devijver PA, Kittler J (1982) Pattern recognition—a statistical approach. Prentice Hall, London
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
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
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
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
Kohavi R (1995) Wrapper for performance enhancement and oblivious decision graphs. Ph.D thesis, Stanford University, Stanford, California, USA
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
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
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
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
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
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
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
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
Cesare S, Xiang Y (2012) Software similarity and classification. Springer Briefs in Computer Science, Berlin
Schach SR (1980) A portable trace for the Pascal heap. Wiley Softw Pract Exp 10:421–426. https://doi.org/10.1002/spe.4380100602
Poole PC (1971) Software portability. Software 71, Canterbury, pp 32–35
O’Brien MP (2003) Software comprehension—a review & research direction. Department of Computer Science and Information Systems, University of Limerick
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
Kozaczynski W, Ning JQ (1994) Automated Program Understanding By Concept Recognition. Springer Autom Softw Eng 1:61–78. https://doi.org/10.1007/BF00871692
Biggerstaff TJ (1989) Design recovery for maintenance and reuse. IEEE Trans Comput 22:36–49. https://doi.org/10.1109/2.30731
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
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
Gold NE (2000) Hypothesis-based concept assignment to support software maintenance. PhD. Thesis, Department of Computer Science, University of Durham, Durham, UK
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
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
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
Rich C, Waters RC (1990) The programmer’s apprentice. ACM Press (Frontier Series)
Harandi MT, Ning JQ (1990) Knowledge-based program analysis. IEEE Trans Softw Eng 7:74–81. https://doi.org/10.1109/52.43052
Woods SG, Quilici AE, Yang Q (1998) Constraint-based design recovery for software reengineering: theory and experiments. Kluwer Academic Publishers
Biggerstaff TJ, Mitbander BG, Webster DE (1994) Program understanding and the concept assignment problem. Commun ACM 37(5):72–82
Hartman J (1991) Automatic control understanding for natural programs. Ph.D. Thesis, University of Texas, Austin, USA
Wills L M (1992) Automated program recognition by graph parsing. Ph.D Thesis, AI Lab, Massachusetts Institute of Technology, Massachusetts, Cambridge, USA
Siff M, Reps T (1999) Identifying modules via concept analysis. IEEE Trans Softw Eng 25:749–768. https://doi.org/10.1109/32.824377
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
Funding
Not applicable.
Author information
Authors and Affiliations
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
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
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11831-021-09593-8