Software Reusability: Approaches and Challenges
Total Page:16
File Type:pdf, Size:1020Kb
International Journal of Research and Innovation in Applied Science (IJRIAS) |Volume VI, Issue V, May 2021|ISSN 2454-6194 Software Reusability: Approaches and Challenges Moko Anasuodei1, Ojekudo, Nathaniel Akpofure2 1Department of Computer Science and Informatics, Faculty of Science, Federal University Otuoke, Nigeria 2Department of Computer Science, Faculty of Natural and Applied Sciences, Ignatius Ajuru University of Education, Nigeria Abstract: Software reuse is used to aid the software phases. Software engineering has been more centered on development process which in recent times can improve the original development which gives an optimal software at a resulting quality and productivity of software development, by faster and less costly price, a design process based on assisting software engineers throughout various software systemic reusable is now recognized. engineering phases to enhance the quality of software, provide quick turnaround time for software development using few Software reuse reduces efforts and cost, because software people, tools, and methods, which creates a good software development costs can be extremely high, but they are quality by enhancing integration of the software system to shared, such that the cost of reuse can be extremely low. provide a competitive advantage. This paper examines the One major advantage of software reuse suggested by concept of software reuse, the approaches to be considered for keswani et al (2014) explains that there is a significant need software reuse, which is broadly shared into three categories: component-based software reuse, domain engineering and for the number of bugs to be reduced during software software product lines, architecture-based software reuse and development process, such that instead of developing an challenges that affect the software reuse development process. entirely new product, legacy software proven reuse is recommended. Software reuse has as its objective to be Keywords: software, reuse, engineering, challenges, domain recycling of the software product's design, code, and other engineering, component-based components, thus cutting costs, time and improving product I. INTRODUCTION quality. This study’s major motivation is at investigating the need for software reuse and why it should be adopted. The oftware reusability is seen as the use of existing Research Questions are: Why the need for software S software systems to develop new software systems reusability? What are the various technologies used? What which means re-use of software. This is an evolving field of developmental frameworks are in place for software reuse software technology, which helps in reducing the time and and finally the challenges faced. effort needed to create software systems from the ground up. Horizontal Software reuse rules possess three simple principles: Firstly, Reuse the object must be reusable, then the object must be of value for the reusable object and then the user should know precisely how to use it. Two procedures are included in Software these three rules: development for reuse and development Reuse with reuse. if these problems are being fixed then software reuse can occur. The reuse of software is not only reuse of software, but also a reuse of any software development accomplishment like project proposal, reporting feasibility, Vertical request analysis, abstract design, detailed design, demo Reuse coding tests, documentation, user manual. Yang (2010) Figure 1. Types of Software Reuse All through the software engineering process, the software is available in different forms and are in different formats Figure 1 above shows the 2 types of software reuse: such as requirements specifications, the architectural design, Horizontal reuse which applies to software components that and the source code. Software engineering is the systemic are used in a lot of areas, it also entails the reuse within a use of tools and knowledge, to achieve the stated technical, larger system of a commercial off-the-shelf application economic, and human goals of a comprehensive software (COTS) or a third-party application such as an e-mail or a system. Software results from performing a set of software word processing program. While Vertical reuse relates to engineering activities, including requirement gathering, functional system areas or domains that are used by a family design, implementation, testing, and maintenance and of similarly functioning systems. This vertical reuse gave various tools have been developed and used to support these rise to an additional discipline, namely domain engineering. activities automatically. The aim has been to improve the Domain engineering is a thorough, iterative approach life software's resulting quality and productivity by assisting the cycle used by a company to achieve strategic business engineer throughout the engineering processes and various objectives. Jalender et al (2010). www.rsisinternational.org Page 142 International Journal of Research and Innovation in Applied Science (IJRIAS) |Volume VI, Issue V, May 2021|ISSN 2454-6194 Mäkitalo et al (2020) adopting Kruegers classic software reuse success or failure. Xin and Yang (2017) discussing on reuse research paper implies that software reuse must fulfil the engineering management software reuse framework, the subsequent four "truisms": demonstrates how to select types of reuse and what to do in the management of processes. The study discussed four 1. To be efficient, the software reuse technique must types of software reuse and how reuse feasibility should be decrease the cognitive spacing between the initial analyzed. Different types of re-use processes and key points system concept and the final implementable were linked, and a case study was illustrated, which shows system. that in each type of software reuse engineering 2. The reuse of objects by a software reuse technique management, there will be significant benefits from the re- should be simpler than the development of the use factors and approaches together which will provide software from start to finish. reasonable processes. Furthermore, key point management 3. You need to know what it does to select an object plays a key role in the reuse of software. Mateen et al for reuse. (2017) proposed a reuse approach that showed how 4. You must be able to "find it" rapidly than you can software reuse improves software quality. The Verification "build it" to reuse software object effectively. and Validation (V&V) method used for this purpose is an aspect of the quality control process for software, II. REVIEW OF RELATED WORKS which controls quality and accuracy during the software life Kaur and Sohal (2013) evaluated how a QR code library can cycle. A QUESTIONAIRE survey to identify the impact on be built using new technologies such as Android and quality attributes, specifications and design specifications software reuse. In the QR code library, how to reuse for the reuse approach was conducted and the study checked software works. During the development of a software on the existing software industries on quality improvements reuse system, certain approaches such as design patterns, techniques such as ad hoc, CBSE, MBSE, product line, aspect-oriented integration, reuse generator, object-oriented COTS reuse. The analysed results with the help of the programming structures and software reuse libraries, MATLAB tool, provided and efficient data management, framework integration etc. are considered. This approach better output organization to monitor the reusability and increases production, saves time, and reduces software quality improvement technology. development costs and reduces overruns of the schedule. III. SOFTWARE REUSE APPROACH Thapar et al (2014) paper present a quality model, based on reusability, which can be used for software component Software reuse technology is a software engineering method assessing. Three essential factors are relevant in software that aims at reusing and amplifying existing software, its selection and software development. Only quality properties reuse is of different forms such as System reuse, preferred by stakeholders and necessary to improve the Application reuse, Component reuse, object and function reuse of software components are integrated into the reuse: proposed model. Ahmer et al (2014) examine the literature a. System Reuse: This approach includes full on the software reusability concept (SR). A systematic selection, which consists of several applications review of the literature was studied to understand the that can be reused in a system. A system of concepts, approaches, benefits, levels of reusability, factors, systems is used to freely monitor and control two and software reusability adaptations. The study on the or more component systems. Conceptual design, content of software reusability was systematically reviewed, architectural designs, system selections, interface and many databases were scanned for literature. Studies of development and integration and development are 1977-2013 published were considered and identified if they part of the development process and work parallel defined an evaluation of the software reusability to governance and management policies. intervention in information and communication technology. b. Application Reuse: This form of reuse involves the Further highlights were explained on the re-usability adaption of a software system to address the need concept of software, stating that it comprises of eleven of different customers, such that