A Review of Software Components Identification Methods and Quality Assessment Criteria

Authors

  • Bassey Asuquo Ekanem
  • Kehinde K. Agbele

DOI:

https://doi.org/10.14738/aivp.95.10772

Keywords:

Software Reusability, Components Identification, Automated Tools, Quality Assessment Control

Abstract

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

2021-10-10

How to Cite

Ekanem, B. A. ., & Agbele, K. K. (2021). A Review of Software Components Identification Methods and Quality Assessment Criteria. European Journal of Applied Sciences, 9(5), 194–209. https://doi.org/10.14738/aivp.95.10772