A Review of Software Components Identification Methods and Quality Assessment Criteria
DOI:
https://doi.org/10.14738/aivp.95.10772Keywords:
Software Reusability, Components Identification, Automated Tools, Quality Assessment ControlAbstract
Identification of suitable reusable software components from repositories and other sources is a key process in software reuse. Many methods for components identifying exist. However, considering the increased adoption of reuse in software projects and the need to identify appropriate components from the numerous sources based on multiple quality criteria, it becomes imperative to undertake a review of existing methods to determine their strengths and weaknesses as well as gaps in components identification. In view of the above, this research was designed to undertake a systematic review of components identification methods in software reuse. Research findings indicate that existing methods and automated tools were inadequate in handling components identification from multiple sources especially where multiple quality criteria are considered. Also, findings indicate that multi-objective optimization algorithms like non-dominated sorting genetic algorithm III (NSGA-III) are capable of addressing such multidimensional problems; therefore, greater efforts in designing and developing automated tools that are based on this technique are highly recommended. The need for adequate methods for cataloguing and categorizing components that are stored in repositories and other sources is also identified as capable of enhancing the process of components identification in software reuse.
References
Al-Badareen, A. B., Saleh, A. M., Abuaddous, H. Y. and Enaizan, O. (2021). In the Process of Software Development: Available Resources and Applicable Scenarios; Journal of Theoretical and Applied Information Technology; 99(1) http://www.jatit.org/volumes/Vol99No1/3Vol99No1.pdf
Saeed, T. (2020). Current Issues in Software Re-usability: A Critical Review of the Methodological & Legal Issues; Journal of Software Engineering and Application 3(9) https://www.scirp.org/journal/paperinformation.aspx?paperid=103273
Rathee, A. and Chhabra, J. K. (2019). Sensitivity Analysis of Evolutionary Algorithm for Reusable Software Component Identification; Mendel Soft Computing Journal, 25(1) https://doi.org/10.13164/mendel.2019.1.031
Gholamshahi, S. and Hasheminejad, S. M. H. (2020). Software component identification and selection: A research review; Journal of Software Practice and Experience; 49(1), pp.40-69, Wiley Online Library https://onlinelibrary.wiley.com/doi/10.1002/spe.2656
Imoize, A. L., Idowu, D. and Bolaji, T. (2019). A Brief Overview of Software Reuse and Metrics in Software Engineering; World Scientific News, An International Science Journal https://www.worldscientificnews.com
Rathee, A. and Chhabra, J. K. (2020) Mining Reusable Software Components from Object-Oriented Source Code using Discrete PSO and Modeling Them as Java Beans; Information Systems Frontiers, Springer, vol. 22(6), pages 1519-1537, December. https://ideas.repec.org/a/spr/infosf/v22y2020i6d10.1007_s10796-019-09948-4.html
Garga, R. (2017). A systematic review of COTS evaluation and selection approaches; Growing Science;http://www.m.growingscience.com/ac/Vol3/ac_2017_3.pdf
Pandey and Tulika (2019). Review for Different Approaches for identify a Software Component, Journal of Emerging Technologies and Innovative Research (JETIR, 6(5), 2019 https://www.jetir.org/papers/JETIR1905K19.pdf
Gholamshahi, S. and Hasheminejad, S. M. H. (2018). A method for identifying software components based on Non-dominated Sorting Genetic Algorithm; Soft Computing Journal (SCJ), University of Kashan, 2018; 7 (2) :47-http://scj.kashanu.ac.ir/article-1-521-en.html
Tiwari, U. K. And Kumar, S. (2019). Selection of Components Using Rate-Of-Reusability And Matrix-Of-Reusability; Journal of Engineering Science and Technology Vol. 14, No. 2 (2019); School of Engineering, Taylor’s University pp. 659 - 673 https://jestec.taylors.edu.my/Vol%2014%20issue%202%20April%202019/14_2_11.pdf
Islam (2017). An Effective Approach for Evaluation and Selection of Component; Journal of Computer Engineering and Intelligent Systems; Vol.8, No.1, 2017 www.iiste.org
Alrubaee, A. U., Cetinkaya, D., Liebchen, G. and Dogan, H. (2020). A Process Model for Component-Based Model-Driven Software Development, MDPI https://www.mdpi.com/2078-2489/11/6/302/pdf
Kitchenham, B. and Charters, S. (2007). Guidelines for Performing Systematic Literature Reviews in Software Engineering; Keele University and Durham University Joint Report, (2007) https://userpages.uni-koblenz.de/~laemmel/esecourse/slides/slr.pdf
Ekanem, B. A (2017). Quality Indicators for Effective Component-Based Software Application; International Journal of Computer Science Trends and Technology (IJCST) – Volume 5 Issue 6, Nov - Dec 2017 205 https://www.academia.edu/35339806/_IJCST-V5I6P12_Ekanem_Bassey_Asuquo
Pande, J. (2012). On Some Critical Issues in Component Selection in Component based Software Development; International Journal of Computer Applications (0975 – 8887) Volume 46– No.4, May 2012 https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.735.3500&rep=rep1&type=pdf
Goyal, S. and Parashar, A. (2017). Selecting the COTS Components Using Ad-hoc Approach; I.J. Wireless and Microwave Technologies, Modern Education and Computer Science Press, vol. 5 pp. 22-31http://mecspress.org/ijwmt/ijwmt-v7-n5/IJWMT-V7-N5-3.pdf
Dirnfeld, R. (2021). Reuse in Self-Adaptive Software Systems A Literature Review; Master Thesis Project, Linneuniversitetet, Kalmar Vaxjo https://www.diva-portal.org/smash/get/diva2:1573734/FULLTEXT01.pdf
Anasuodei, M. and Akpofure, O. N. (2021). Software Reusability: Approaches and Challenges; International Journal of Research and Innovation in Applied Science (IJRIAS) |Volume VI, Issue V, May 2021 https://www.rsisinternational.org/journals/ijrias/DigitalLibrary/volume-6-issue-5/142-146.pdf
Kaur, I. and Kaur, S. (2015). Efficient ranking and Retrieval of reusable software Components; International Journal of Applied Engineering Research 10(15):35354-35361 https://www.researchgate.net/publication/283762688_Efficient_ranking_and_retrieval_of_reusable_software_components
Kaur, P. S., Singh, J. and Singh, H. (2014). Component Selection Repository with Risk Identification; Conference: 2014 International Conference on Computing for Sustainable Global Development (INDIACom) https://www.researchgate.net/publication/269273645_Component_Selection_Repository_with_Risk_Identification
Bhatia, R., Dave, M. and Joshi, R. C. (2006). Retrieval of Most Relevant Reusable Component Using Genetic Algorithms. Conference: Proceedings of the International Conference on Software Engineering Research and Practice & Conference on Programming Languages and Compilers, SERP 2006, Las Vegas, Nevada, USA, June 26-29, 2006, Volume 1 https://www.researchgate.net/publication/221610702_Retrieval_of_Most_Relevant_Reusable_Component_Using_Genetic_Algorithms
Bengtsson, A. (2021). Facilitating Software Reuse Using Design Science Research to Develop Design Principles for Implementing A Component Repository; M. Sc. Thesis on Informatics: Programming and System Architecture; Department of Informatics Faculty of mathematics and natural sciences University of Oslo. https://www.mn.uio.no/ifi/english/research/groups/is/research-library/masters-theses/bengtsson.pdfaccess date: 26th July, 2021
Kamalraj, R., Kannan, A. R. and Ranjani, P. (2012). Classification and Selection of Reusable Software Components Using Mutation Technique; International Journal of Computer Science And Technology (IJCST) Vol. 3, Issue 3 http://www.ijcst.com/vol33/3/a952.pdf
Ekanem, B. A. and Woherem, E. (2016). Legacy Components Stability Assessment and Ranking Using Software Maturity Index. International Journal of Computer Applications (IJCA), Foundation of Computer Science (FCS), 134(13), New York, USA, 2016 https://www.ijcaonline.org/archives/volume134/number13/23976-2016908157 Access Date: 12th March,
Arsene, K. K. I., Adama, S., Prosper, K. K. and Marcellin, B. K. (2019). Proposal of Automatic Methods for the Reuse of Software Components in a Library; (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 10, No. 2, 2019 https://thesai.org/Downloads/Volume10No2/Paper_8-Proposal_of_Automatic_Methods.pdf
Qureshi, M. R. J. and Sandhu, M. E. (2013). Survey-Based Analysis of the Proposed Component-Based Development Process; https://arxiv.org/ftp/arxiv/papers/1202/1202.2498.pdf
AL-Badareen, A. B, Selamat, M. H., Jabar, M. A., Din, J. and Turaev, S. (2011). Reusable Software Component Life Cycle, INTERNATIONAL JOURNAL OF COMPUTERS Issue 2, Volume 5, 2011 https://www.naun.org/main/NAUN/computers/19-863.pdf
Capilla, R., Gallina, B., Cetina, C., & Favaro, J. (2019). Opportunities for Software Reuse in an Uncertain World: from Past to Emerging Trends. Journal of Software: Evolution and Process, 31(8). https://doi.org/10.1002/Smr.2217
Kaur, V. and Goel, S. (2011). Facets of Software Component Repository; International Journal on Computer Science and Engineering 3(6) https://www.researchgate.net/publication/228726189_Facets_of_Software_Component_Repository
Manjhi, D. and Chaturvedi, A. (2019). Software Component Reusability Classification in Functional Paradigm, 2019 IEEE International Conference, 2019 https://ieeexplore.ieee.org/abstract/document/8869123 Access Date: 19th April, 2021
Kalian, A. (2014). Characterization of Reusable Software Components For Better Reuse, International Journal of Research in Engineering and Technology 03(05):584-588, 2014 https://www.researchgate.net/publication/273301351_Characterization_Of_Reusable_Software_Components_for_Better_Reuse Access Date: 12th March, 2021
Hudaib, A., Huneiti, A. and Othman, I. (2016). Software Reusability Classification and Predication Using Self-Organizing Map (SOM), Communications and Network, 8(3), 2016 https://www.scirp.org/journal/paperinformation.aspx?paperid=69828 Access Date: 17th April, 2021
Ali, M. A. and Yap, N. K. (2019). Software Component Quality Model; International Journal of Engineering and Advanced Technology (IJEAT) ISSN: 2249 – 8958, 9(1), October 2019 https://www.ijeat.org/wpcontent/uploads/papers/v9i1/A2659109119.pdf
Sharma, H. (2016). Software Reuse. https://www.slideshare.net/indusharma3517/software-resuse Access Date: 28th May, 2021
Selvarani, R. and Mangayarkarasi, P. (2017). Modeling of Reusability Estimation in Software Design with External Constraints, Software Project Management for Distributed Computing, Springer, Cham, pp. 3-23
Kessel, M. and Atkinson, C. (2016). Ranking software components for reuse based on non-functional Properties, Information Systems Frontiers volume 18, pages825–853 (2016) https://link.springer.com/article/10.1007/s10796-016-9685-3
Mittal, S. and Bhatia, P. K. (2013). Framework for Evaluating and Ranking the Reusability of COTS Components based upon Analytical Hierarchy Process; International Journal of Innovations in Engineering and Technology (IJIET) http://ijiet.com/wp-content/uploads/2013/09/47.pdf
Garga, R., Sharma, R. K. and Sharma, K. (2016). Ranking and selection of commercial off-the-Shelf using Fuzzy distance based approach; Decision Science Letters 5 (2016) 201–210 http://www.growingscience.com/dsl/Vol5/dsl_2015_51.pdf
Kim, H. (2008). Automatic Identification of Potential Reusable Mobile Components; IAENG International Journal of Computer Science, 35(4) http://www.iaeng.org/IJCS/issues_v35/issue_4/IJCS_35_4_04.pdf
Gall, H. (2010). ReUse: Challenges and Business Success; Software Evolution & Architecture Lab (Seal). https://www.slideshare.net/hcgall/software-reuse-challenges-and-business-success Access Date: 28th May,
Jha, S. K. and Mishra, R. K. (2016). Multi Criteria Based Retrieval Techniques for Reusable Software Components From Component Repository; International Journal of Engineering Applied Sciences and Technology, 2016 Vol. 1, Issue 6, pp. 88-91 207 https://www.ijeast.com/papers/88-91,Tesma106,IJEAST.pdf
Yannibelli, V., Pacini, E., Monge, D., Mateos, C. and Rodriguez, G. (2020). A Comparative Analysis of NSGA-II and NSGA-III for Autoscaling Parameter Sweep Experiments in the Cloud; Hindawi Scientific Programming Volume 2020, https://www.hindawi.com/journals/sp/2020/4653204/
Basha, N. M. J. and Mohan, C. (2014). A Strategy To Identify Components Using Clustering Approach For Component Reusability; Computer Science & Information Technology https://arxiv.org/ftp/arxiv/papers/1406/1406.4123.pdf
Srinivas, C., Radhakrishna, V. and Rao, C. V. G. (2013). Clustering Software Components for Component Reuse and Program Restructuring; ICCC '13: Proceedings of the Second International Conference on Innovative Computing and Cloud Computing, December 2013; ACM Digital Library, pp.261–266 https://dl.acm.org/doi/abs/10.1145/2556871.2556933
Shtern, M. and Tzerpos, V. (2012). Clustering Methodologies for Software Engineering; Advances in Software Engineering, Hindawi https://www.hindawi.com/journals/ase/2012/792024/
Srinivas, C., Radhakrishna, V. and Rao, C. V. G. (2014A). Clustering and Classification of Software Component for Efficient Component Retrieval and Building Component Reuse Libraries; 2nd International Conference on Information Technology and Quantitative Management, ITQM 2014; Procedia Computer Science 31 ( 2014 ) 1044 – 1050 https://pdf.sciencedirectassets.com/280203/1-s2.0-S1877050914X00050
Srinivas, C., Radhakrishna, V. and Rao, C. V. G. (2014B). Software Components Clustering and Classification Using Novel Similarity Measure, Procedia Technology, 8th International Conference Interdisciplinary in Engineering, INTER-ENG 2014, 9-10 October 2014, Tirgu-Mures, Romania; 19 (2015) 866-873, Elsevier. https://core.ac.uk/download/pdf/82019856.pdf
Shahmohammadi, G., Jalili, S. and Hasheminejad, S. M. H. (2010). Identification of System Software Components Using Clustering Approach, Journal of Object Technology 9(6):77-98 https://www.researchgate.net/publication/220299201_Identification_of_System_Software_Components_Using_Clustering_Approach
Albani, A., Overhage, S., Birkmeier, D. (2008). Towards a Systematic Method for Identifying Business components. In: Chaudron MRV, Szyperski, CA, Reussner, RH, eds Component-based Software Engineering: 11th International Symposium, CBSE 2008, Karlsruhe, Germany, October 14-17, 2008, Proceedings, Berlin, Germany:Springer-Verlag Berlin Heidelberg; 2008:262-277, Leture Notes in Computer Science; vol 5282
Hamza, H. S. (2009). A Framework for Identifying Reusable Software Components using Formal Concept Analysis. In: Proceedings of the 2009 Sixth International Conference on Information Technology: New Generations: 2009; Las Vegas, NV
Hasheminejad, S. M. H. and Gholamshahi, S. (2107). PCI-PSO: Preference-Based Component Identification Using Particle Swarm Optimization; Journal of Intelligent Syatems; 2019; 28(5): 733–748; De Gruyter Publishers https://www.degruyter.com/document/doi/10.1515/jisys-2017-0244/html
Oliveira, J., Fernandes, E., Souza, M. and Figueiredo, E. (2016). A Method Based on Naming Similarity to Identify Reuse Opportunities; XII Brazilian Symposium on Information Systems, Florianópolis, SC, May 17-20, 2016 https://sol.sbc.org.br
Hasheminejad, S. M. H. and Jalili, S. (2014). An evolutionary approach to identify logical components; Journal of Systems and Software; Elsavier, Vol. 96, October 2014, Pages 24-50 https://www.sciencedirect.com/science/article/abs/pii/S0164121214001228#!
Aziz, M. A and North, S. (2007). Retrieving Software Component using Clone Detection and Program Slicing; Research Publication, The Memorandum CS-07-03, Department of Computer Science http://www.dcs.shef.ac.uk/intranet/research/public/resmes/CS0703.pdf
Kessel, M. and Atkinson, C. (2018). Integrating reuse into the rapid, continuous software Engineering cycle through test-driven search; Association for Computing Machinery (ACM) Digital Library https://dl.acm.org/doi/10.1145/3194760.3194761
Upadhyay, N., Despande, B. M., &Agrawal, V. P. (2011). Towards a software component quality model. In International Conference on Computer Science and Information Technology (pp. 398-412).Springer, Berlin, Heidelberg
Amin, F. Mahmood, A. K. and Oxley, A. (2011). A Review of Software Component Reusability Assessment Approaches, Research Journal of Information Technology, 3: 1-11, 2011 https://scialert.net/fulltext/?doi=rjit.2011.1.11 Access Date: 17th April, 2021
Priyalakshmi, G. and Latha, R. (2018). Evaluation of Software Reusability Based on Coupling and Cohesion, International Journal of Software Engineering and Knowledge Engineering, https://www.worldscientific.com/doi/abs/10.1142/S0218194018500420 Access Date: 12th March, 2021
Alvaro, A., Almeida, E. S., & Meira, S. L. (2005). Quality Attributes for a Component Quality Model. 10th WCOP/19th ECCOP, Glasgow, Scotland, 31-37.
Ekanem, B. A. (2016). Dealing with Components Reusability Issues as Cutting-edge Applications Turn legacy, SAI Computing Conference Proceedings 2016, July 13-15, 2016, London, UK, 2016 https://ieeexplore.ieee.org/ie17/7547233/7555953/07556129.pdf Access Date: 12th March, 2021
Kaur, R., Arora, S., Jha, P. C. and Madan, S. (2015). Fuzzy Multi-criteria Approach For Component Selection of Fault Tolerant Software System under Consensus Recovery Block Scheme; International Conference on Advanced Computing Technologies and Applications (ICACTA2015); Procedia Computer Science 45 (2015) pp. 842 – 851; Elsevier
Ekanem, B. A. 2015. Assessment of Components Stability for Modernization Using Software Maturity Index, International Journal of Scientific Research and Engineering Studies (IJSRES) 2(12) www.ijsres.com Retrieved on: March 16, 2020
Ajayi, O. O., Chiemeke, S. C. and Ukaoha, K. C. (2019). Assessing the stability of selected Software Components for Reusability; International Journal of Intelligent Computing and Information Science. https://ijicis.journals.ekb.eg/article_96103_d688575be2b0486cc0124407a0945c91.pdf
Niranjam, P. and GuruRao, C, V. (2011). A Model Software Reuse Repository with an Intelligent Classification and Retrieval Technique, Computer Science and Engineering; 1(1): 15-21; 2011 http://article.sapub.org/10.5923.j.computer.20110101.03.html Access Date: 17th April, 2021
Capretz, L. F., Ahmed, F., Al-Maati, S. and AlAghbari, Z. (2008). COTS-Based Software Product Line Development; International Journal of Web Information Systems, Volume 4, Number 2, pp. 165-180, Emerald Group Publishing, 2008. https://core.ac.uk/download/pdf/61639163.pdf
Kessel, M. and Atkinson, C. (2015). Ranking Software Components for Pragmatic Reuse, 2015 IEEE/ACM 6th International Workshop on Emerging Trends in Software Metrics, 2015
Flood, C. A. (2017). Unified Software Engineering Reuse: A Methodology for Effective Software Reuse; Master’s Theses and Graduation Research, San Jose State University https://scholarworks.sjsu.edu/cgi/viewcontent.cgi?article=8343&context=etd_theses
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2021 Bassey Asuquo Ekanem, Kehinde K. Agbele

This work is licensed under a Creative Commons Attribution 4.0 International License.