Abstract
Software reuse is the process of building a new software application by using existing software components. Component-based software engineering is one of the approaches that is based on reusability concepts. It helps to improve the software quality and performance. Effective storage and retrieval scheme are two of the essential factors in the software reuse process. It reduces maintenance costs and easily upgrades a large and complex software system. The selection of appropriate components becomes more complex due to unexpected requirements. To overcome these problems, many researchers have developed different types of software component storage and retrieval techniques. However, all the techniques do not give the proper satisfaction of the developer requirements. In this paper, we proposed a software component retrieval schema which is built on different group of repositories namely metadata repository, description repository, component repository, and ontology repository. These repositories give semantic information related to the component. For the correctness of the proposed system, we proposed a formal model of that system which verifies the correct flow of a sequence of these repositories for finding the desired component. Formal specification and verification technique helps to determine the correct matching component from the repository. This new system improves searching results for the developer to develop the software project. We used mCRL2 process algebra for describing the behavior of storing and retrieving system. The requirement of the proposed system has written in a modal mu-calculus. It has been verified by using the mCRL2 toolset.
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs13198-023-02098-6/MediaObjects/13198_2023_2098_Fig1_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs13198-023-02098-6/MediaObjects/13198_2023_2098_Fig2_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs13198-023-02098-6/MediaObjects/13198_2023_2098_Fig3_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs13198-023-02098-6/MediaObjects/13198_2023_2098_Fig4_HTML.png)
Similar content being viewed by others
References
Almeida JB, Frade MJ, Pinto JS, de Sousa SM (2011) An overview of formal methods tools and techniques. In: Rigorous software development, pp 15–44
Aman N et al (2014) Component retrieval techniques-a systematic review. Int J Sci Eng Res 5(1):1699–1706
Bakshi A, Bawa S (2013) A survey for effective search and retrieval of components from software repositories. IJERT Int J Eng Res Technol
Bawa R, Kaur I (2016) Algorithmic approach for efficient retrieval of component repositories in component based software engineering. Indian J Sci Technol 9(48):27–70
Bibi N, Rana T, Maqbool A, Alkhalifah T, Khan WZ, Bashir AK, Zikria YB (2022) Reusable component retrieval: a semantic search approach for low resource languages. In: Transactions on Asian and low-resource language information processing
Bunte O, Groote JF, Keiren JJ, Laveaux M, Neele T, de Vink EP, Wesselink W, Wijs A, Willemse TA (2019) The mCRL2 toolset for analysing concurrent systems: improvements in expressivity and usability. In: Tools and algorithms for the construction and analysis of systems: 25th international conference, TACAS 2019, Held as part of the european joint conferences on theory and practice of software, ETAPS 2019, Prague, Czech Republic, April 6–11, 2019, Proceedings, Part II 25, Springer, pp 21–39
Chang C-T, Chu WC, Liu C-S, Yang H (1997) A formal approach to software components classification and retrieval. In: Proceedings twenty-first annual international computer software and applications conference (COMPSAC’97). IEEE, pp. 264–269
Chapman JW, Reynolds D, Shreeves SA (2009) Repository metadata: approaches and challenges. Cat Classif Q 47(3–4):309–325
Chatterjee R, Rathi H (2014) A prolific approach towards automating component repository search. In: 2014 Seventh international conference on contemporary computing (IC3). IEEE, pp 547–552
Chythanya NK, Reddy C (2021) A survey on mechanisms of reusable code component retrieval from component repository. In: 2021 2nd international conference on smart electronics and communication (ICOSEC). IEEE, pp 764–769
Cranen S, Groote JF, Keiren JJ, Stappers FP, De Vink EP, Wesselink W, Willemse TA (2013) An overview of the mCRL2 toolset and its recent advances. In: International conference on tools and algorithms for the construction and analysis of systems. Springer, pp. 199–213
Desouky E, El-Khouly M (2015) A survey on clustering software components for efficient component retrieval. J Inf Soc, ISSN 2356–9328
Dixit A, Saxena P (2009) Software component retrieval using genetic algorithms. In: 2009 International conference on computer and automation engineering. IEEE, pp 151–155
El-Ansari A, Beni-Hssane A, Saadi M, El Fissaoui M (2021) Papir: privacy-aware personalized information retrieval. J Ambient Intell Humaniz Comput 12:9891–9907
Gajala G (2013) Implementation of attribute value & faceted value classification scheme for constructing reuse repository. Int J Comput Trends Technoly (IJCTT), vol 4(1). ISSN 2231–2803
Gavrilović N, Mishra A (2021) Software architecture of the internet of things (IoT) for smart city, healthcare and agriculture: analysis and improvement directions. J Ambient Intell Humaniz Comput 12(1):1315–1336
Groote JF, Keiren J, Mathijssen A, Ploeger B, Stappers F, Tankink C, Usenko Y, van Weerdenburg M, Wesselink W, Willemse T et al. (2008) The mCRL2 toolset. In: Proceedings of the international workshop on advanced software development tools and techniques (WASDeTT 2008), p 53
Groote JF, Mathijssen A, Reniers M, Usenko Y, Van Weerdenburg M (2007) The formal specification language mCRL2. In: Dagstuhl Seminar Proceedings, Schloss Dagstuhl-Leibniz-Zentrum für Informatik
Guo J et al. (1999) Toward automated retrieval for a software component repository. In: Proceedings ECBS’99. IEEE conference and workshop on engineering of computer-based systems. IEEE, pp. 99–105
Guo J. et al. (2000) A survey of software reuse repositories. In: Proceedings seventh IEEE international conference and workshop on the engineering of computer-based systems (ECBS 2000). IEEE, pp 92–100
Gupta S, Kumar A (2013) Reusable software component retrieval system. Int J Appl Innov Eng Manag 2(1):187–94
Hojjat H, Mousavi MR, Sirjani M (2011) Formal analysis of SystemC designs in process algebra. Fund Inform 107(1):19–42
Kavitha P, Vidhya Saraswathi P (2021) Content based satellite image retrieval system using fuzzy clustering. J Ambient Intell Humaniz Comput 12:5541–5552
Lewczuk K (2021) The study on the automated storage and retrieval system dependability. Eksploatacja i Niezawodność 23(4):709–718
Lucredio D, Gavioli A, do Prado AF, Biajiz M (2004) Component retrieval using metric indexing. In: Proceedings of the 2004 IEEE international conference on information reuse and integration, 2004. IRI 2004. IEEE, pp 79–84
Lucredio D, Prado AFd, de Almeida ES (2004) A survey on software components search and retrieval. In: Proceedings 30th Euromicro Conference, 2004. IEEE, pp 152–159
Man K, van der Wulp J (2008) Specification and analysis of hardware designs using mcrl2. In: 2008 Canadian conference on electrical and computer engineering. IEEE, pp 000211–000214
Nie L, Zhong L (2009) Component retrieval based on domain ontology and user interest. In: 2009 International conference on e-business and information system security. IEEE, pp 1–4
Shi H, Chen Y, Hu J-Y (2021) Deep learning on information retrieval using agent flow e-mail reply system for IoT enterprise customer service. J Ambient Intell Human Comput. https://doi.org/10.1007/s12652-021-02991-7
Singh S (2013) An experiment in software component retrieval based on metadata and ontology repository. Int J Comput Appl 61(14):1–8
Vasanthi R, Jayavadivel R, Prasadh K, Vellingiri J, Akilarasu G, Sudhakar S, Balasubramaniam P (2021) A novel user interaction middleware component system for ubiquitous soft computing environment by using fuzzy agent computing system. J Ambient Intell Humaniz Comput 12:4827–4840
Xu B, An L, Thung F, Khomh F, Lo D (2020) Why reinventing the wheels? an empirical study on library reuse and re-implementation. Empir Softw Eng 25:755–789
Yahlali M (2022) Software components selection process: comparative study
Zhang L (2007) Software component repositories. In: Wiley encyclopedia of computer science and engineering
Funding
This research received no specific grant from any funding agency.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no conflict of interest.
Human or animals rights
Research does not involve human participants and/or animals.
Informed consent
Research does not involve humans.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Pal, N., Yadav, D.K. Formally modeling and verifying a software component retrieval system using mCRL2. Int J Syst Assur Eng Manag 14, 2485–2496 (2023). https://doi.org/10.1007/s13198-023-02098-6
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s13198-023-02098-6