Software Maintainability and Reusability Using Cohesion Metrics

Total Page:16

File Type:pdf, Size:1020Kb

Software Maintainability and Reusability Using Cohesion Metrics International Journal of Computer Trends and Technology (IJCTT) – Volume 54 Issue 2-December2017 Software Maintainability and Reusability using Cohesion Metrics Adekola, O.D#1, Idowu, S.A*2, Okolie, S.O#3, Joshua, J.V#4, Akinsanya, A.O*5, Eze, M.O#6, EbiesuwaSeun#7 #1Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria *2Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria #3Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria #4Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria *5Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria #6Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria #7Faculty, Computer Science Department, Babcock University,Ilishan-Remo, Ogun State, Nigeria Abstract - Among others, remarkable external software’s lifetime. Ahn et al., (2003) estimated that quality attributes of interest to software practitioners/ maintenance takes up to 80% of the total costof engineers include testability, maintainability and producing software applications. Expectation of reusability.Software engineers still combat achieving more reliable, quicker time-to-market and softwarecrisis and even chronic software affliction maintainable systems. A lot of research has gone into not because there is no standardized software the areas of software reuse and maintenance due to development process but because enough attention is the fact that these among other issues concern not given to seemingly insignificant but crucial intimately system developers/architects/engineers details of internal design attributes such as cohesion rather than end-users. Therehas been enormous and coupling especially in object-oriented systems. growth in software reuse research from the days of Consequently, the aftermath is increased structured programming concepts to object-oriented maintenance cost, effort and time which negatively methods and beyond (e.g. component based plague both the developers and users community. development) (Wang, 2000). Also, reusability being an important part of quality design and time-to-market is equally affected. Most times, software developers have the capability of creating or producing software that functionas This work addresses how to use internal attribute as desired. Theirutmostchallengeis finding ways to cohesion could improve software maintainability and produce software quickly enough to meet up with the reusability. This research also addresses general growing demand for more products and at the same design principles of object-oriented and other reuse- time having to maintain increasingly thriving oriented systems. software “crisis”. Pressman& Maxim, (2015) express the phenomena as software affliction, a long-lasted Keywords: Testability, Maintainability, Reusability, pain or distress. This work does not look in the Cohesion, Coupling, Software Affliction direction of software development life cycle or process flow but rather seeks to consider internal I. INTRODUCTION attributes such as source line of code (SLOC), complexity, cohesion and coupling with a narrowed Maintainability in software constitutes effort and ease focus on cohesion. The most important software required to modify, correct or improve the quality of internal quality metrics are cohesion and coupling a design or product. Maintenance could be done as a (Chidamber&Kemerer, 1994). Generally, internal result of a need to add new features or functionalities, attributes (such as size and cohesion) whether in fix a bug or to increase the strength of the software. traditional or object orientedmethods are critical Maintenance constitutes an essential part of indicators of external attributes which include ISSN: 2231-2803 http://www.ijcttjournal.org Page 63 International Journal of Computer Trends and Technology (IJCTT) – Volume 54 Issue 2-December2017 understandability, maintainability and reusability. A clever but vital area to consider when it comes to attempting to alleviate software afflictionis toexamine what could be done with internalproperties such as complexity, cohesion, coupling etc.Common questions from literature include the following: are highly cohesivemodulesorcomponentsmore readily reusable, does attention to cohesion yield maintainable systems, do wehave a one-size-fit-all when it comes to software metrics to measure major external attributes?A software metric is a quantifiable measurement of some attributesor an attribute of a software product or process (Frakes& Kang, 2005). A mapping of empirical world to formal, relational world is what is termed as measurement (Fenton &Pfleeger, 2010). Therefore, a measure is regarded as thenumber or symbol assigned to anentity bysuch Fig 1: Simple illustration of cohesion and coupling; the thick mapping in a bid to get an attribute characterized. lines indicate cohesion and the dotted lines indicate coupling(Source: Adapted from Dhanvani, 2013) Cohesion implies the degree of relatedness among class members while coupling simply connotes There are many cohesion metrics in literature but the theinterconnectedness of modules within a software metric to employ for a particular instanceneeds to be or a program. A class with high cohesion will be a found out. Mal andRajnish, (2014), discussed a difficult candidate for refactoring, i.e. difficult to split number of metrics which were empirically validated into separate classes (Dallal& Briand, 2009).From against notable open source software projects. their meanings, high cohesion and low couplingshould implya good design as far as software II. METHODOLOGY is concerned. High cohesion,which is ranged within This research embodies case studies, systematic [0,1] shows good design as well as goodquality literature reviews and surveys. Important software (Chidamber&Kemerer, 1994; Okike, 2010a; requirements were identified in related papers. The Okike&Osofisan, 2008; Okike&Rapo, 2015). relevant documents obtained were qualitatively Further, cohesion is a measure of the degree of analyzed for convergence, and relevant details were connectivity among a single class- suffice to say it extracted using inductive approach. Existing reveals or indicates the relationship within a module. measures were evaluated. This work leveraged on For coupling, it is in order to say it indicates Chidamber and Kemerer metrics and Rajnish and relationships between modules or components of a Mal metrics and made proposition on inclusion of software or system. Cohesion measures how one method-method interaction as part of consideration function performed by an entity relate to another. It is for cohesion measures. characteristic of most metrics to evaluate cohesion by considering if methods of a class access similar sets III. LITERATURE REVIEW of instance variables (Mal &Rajnish, 2014).Coupling In software engineering, qualities such as connotes how much a component knows about the maintainability, reusability, flexibility, writeability inner workings (elements) of the other. and demonstrability are described as developer- orientedquality attributes (Berander, Damm, Eriksson, Gorschek, Henningsson, Jönsson, Kågström, Milicic, Mårtenssonn, Rönkkö, &Tomaszewski, 2005). While these are external software quality attributes, internal qualities are the likes of size, complexity, cohesion and coupling. The internal versus external quality attributes relationship could be fashionably intuitive, for example the more complex a code is the more difficult it is to maintain. ISSN: 2231-2803 http://www.ijcttjournal.org Page 64 International Journal of Computer Trends and Technology (IJCTT) – Volume 54 Issue 2-December2017 But,the exact functional form of the relationship is and getting Staff related data. It does not include not very lucid. Therefore, this is connotes a subjectof operations that should be handled by or separated to serious research issue. another class. IV. COHESION A. Types of Cohesion Using class illustration, cohesion means the extent or which a class carries a single, well-focused degree The following are the variousclassifications of purpose. By implication, a better design should own cohesion that require research attention: high cohesion.It means a class encapsulates only 1. Functional Cohesion: This means the properties and operations that are closely related. various constituent elementsthat make up Interestingly, high cohesion is a desirable property of the module or component are grouped a program in that it positively impacts together simply because each or almost understandability, maintenance and reuse (Girish, everyone in the group contributes to the 2014). An intimate example could be to illustrate module’s single responsibility or well- cohesion as communication between father, mother, focused task. and child within a family while its counterpart called 2. Informational cohesion: Here,the entity is coupling could be communication in between two said to represent a cohesive body of data and different families. a set or group of independent actions or behaviours on the particular body of data. Consider the following unified modeling 3. Sequential Cohesion: This grouping occurs when parts of the modules output represent language(UML) class example: the input to the other. Staff 4. Communication Cohesion: This is when parts of the module are organized in a group +checkMail() because they use or work on the same data. +sendMail() 5. Procedural
Recommended publications
  • ASSESSING the MAINTAINABILITY of C++ SOURCE CODE by MARIUS SUNDBAKKEN a Thesis Submitted in Partial Fulfillment of the Requireme
    ASSESSING THE MAINTAINABILITY OF C++ SOURCE CODE By MARIUS SUNDBAKKEN A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science WASHINGTON STATE UNIVERSITY School of Electrical Engineering and Computer Science DECEMBER 2001 To the Faculty of Washington State University: The members of the Committee appointed to examine the thesis of MARIUS SUNDBAKKEN find it satisfactory and recommend that it be accepted. Chair ii ASSESSING THE MAINTAINABILITY OF C++ SOURCE CODE Abstract by Marius Sundbakken, M.S. Washington State University December 2001 Chair: David Bakken Maintenance refers to the modifications made to software systems after their first release. It is not possible to develop a significant software system that does not need maintenance because change, and hence maintenance, is an inherent characteristic of software systems. It has been estimated that it costs 80% more to maintain software than to develop it. Clearly, maintenance is the major expense in the lifetime of a software product. Predicting the maintenance effort is therefore vital for cost-effective design and development. Automated techniques that can quantify the maintainability of object- oriented designs would be very useful. Models based on metrics for object-oriented source code are necessary to assess software quality and predict engineering effort. This thesis will look at C++, one of the most widely used object-oriented programming languages in academia and industry today. Metrics based models that assess the maintainability of the source code using object-oriented software metrics are developed. iii Table of Contents 1. Introduction .................................................................................................................1 1.1. Maintenance and Maintainability.......................................................................
    [Show full text]
  • A Quantitative Reliability, Maintainability and Supportability Approach for NASA's Second Generation Reusable Launch Vehicle
    A Quantitative Reliability, Maintainability and Supportability Approach for NASA's Second Generation Reusable Launch Vehicle Fayssai M. Safie, Ph. D. Marshall Space Flight Center Huntsville, Alabama Tel: 256-544-5278 E-mail: Fayssal.Safie @ msfc.nasa.gov Charles Daniel, Ph.D. Marshall Space Flight Center Huntsville, Alabama Tel: 256-544-5278 E-mail: Charles.Daniel @msfc.nasa.gov Prince Kalia Raytheon ITSS Marshall Space Flight Center Huntsville, Alabama Tel: 256-544-6871 E-mail: Prince.Kalia @ msfc.nasa.gov ABSTRACT The United States National Aeronautics and Space Administration (NASA) is in the midst of a 10-year Second Generation Reusable Launch Vehicle (RLV) program to improve its space transportation capabilities for both cargo and crewed missions. The objectives of the program are to: significantly increase safety and reliability, reduce the cost of accessing low-earth orbit, attempt to leverage commercial launch capabilities, and provide a growth path for manned space exploration. The safety, reliability and life cycle cost of the next generation vehicles are major concerns, and NASA aims to achieve orders of magnitude improvement in these areas. To get these significant improvements, requires a rigorous process that addresses Reliability, Maintainability and Supportability (RMS) and safety through all the phases of the life cycle of the program. This paper discusses the RMS process being implemented for the Second Generation RLV program. 1.0 INTRODUCTION The 2nd Generation RLV program has in place quantitative Level-I RMS, and cost requirements [Ref 1] as shown in Table 1, a paradigm shift from the Space Shuttle program. This paradigm shift is generating a change in how space flight system design is approached.
    [Show full text]
  • Software Quality Management
    Software Quality Management 2004-2005 Marco Scotto ([email protected]) Software Quality Management Contents ¾Definitions ¾Quality of the software product ¾Special features of software ¾ Early software quality models •Boehm model • McCall model ¾ Standard ISO 9126 Software Quality Management 2 Definitions ¾ Software: intellectual product consisting of information stored on a storage device (ISO/DIS 9000: 2000) • Software may occur as concepts, transactions, procedures. One example of software is a computer program • Software is "intellectual creation comprising the programs, procedures, rules and any associated documentation pertaining to the operation of a data processing system" •A software product is the "complete set of computer programs, procedures and associated documentation and data designated for delivery to a user" [ISO 9000-3] • Software is independent of the medium on which it is recorded Software Quality Management 3 Quality of the software product ¾The product should, on the highest level… • Ensure the satisfaction of the user needs • Ensure its proper use ¾ Earlier: 1 developer, 1 user • The program should run and produce results similar to those expected ¾ Later: more developers, more users • Need to economical use of the storage devices • Understandability, portability • User-friendliness, learnability ¾ Nowadays: • Efficiency, reliability, no errors, able to restart without using data Software Quality Management 4 Special features of software (1/6) ¾ Why is software ”different”? • Does not really have “physical” existence
    [Show full text]
  • Examining the Relationships Between Software Coupling and Software Performance: a Cross-Platform Experiment
    Journal of Computing and Information Technology - CIT 19, 2011, 1, 1–10 1 doi:10.2498/cit.1001353 Examining the Relationships between Software Coupling and Software Performance: A Cross-platform Experiment Liguo Yu1 and Srini Ramaswamy2 1 Computer and Information Sciences Department, Indiana University, South Bend, USA 2 Industrial Software Systems, ABB Corporate Research Center, Bangalore, India Coupling measures the degree of dependencies between Alexander et al., 2010). Table 1 lists the def- software modules. Considerable research has been initions of several major types of coupling in performed to relate software coupling with software understandability, maintainability, and reusability, which structured software systems, in which the de- are the key properties of software maintenance and gree of dependency is considered in increasing evolution. However, only a few research works have order from the bottom (data coupling) to the been reported that study the relationships between soft- ( ) ware coupling and software performance. This study top content coupling . Strong coupling means implemented two benchmarks that measure and compare a high degree of dependency between software the performance of software programs implemented with modules, while loose coupling means a low de- different kinds of coupling, common coupling, data coupling, and stamp coupling. The experiment is run gree of dependency between software modules. on three different platforms, Windows, Linux, and Mac. The results show that (1) the relative performance of systems implemented using different software coupling is platform dependent; (2) while loose coupling is more favorable than strong coupling with respect to software Name Definition maintenance and evolution, it has the drawback of re- duced performance of a software program.
    [Show full text]
  • Software Maintainability and Usability in Agile Environment
    Software Maintainability and Usability in Agile Environment {tag} {/tag} International Journal of Computer Applications © 2013 by IJCA Journal Volume 68 - Number 4 Year of Publication: 2013 Authors: Monika Agarwal Rana Majumdar 10.5120/11569-6873 {bibtex}pxc3886873.bib{/bibtex} Abstract This research is based on software maintainability and usability in the agile environment. Maintainability of the system is the ability to undergo changes relatively easily. These changes can affect components, services, interfaces and functionality when adding or changing functions, errors, and respond to business needs. Usability is defined as the application that meets the requirements of users and consumers by providing an intuitive, easy to locate and globalize and provides good access for disabled users and leads to a good overall user experience. In the conventional method of the software development, there are many metrics to calculate the maintenance and use of software. This research is to determine whether the same measures apply to Agile, or there is a need to change some metrics used for the agile environment. The goal of software engineering is to develop good quality maintainable software in schedule and budget. Inflated software costing, delayed time frame, or not meeting quality standards express a failure. A survey suggests about 45% of software fails due to the lack of quality. It is therefore one of the most important aspects for the success of software. Refer ences 1 / 3 Software Maintainability and Usability in Agile Environment - P. Antonellis, D. Antoniou, Y. Kanellopoulos, C. Makris, E. Theodoridis, C. Tjortjis, and N. Tsirakis, "A data mining methodology for evaluating maintainability according to ISO/IEC-9126 software engineering – product quality standard," in Special Session on System Quality and Maintainability - SQM2007, 2007.
    [Show full text]
  • Lesson 02: Distributed System Patterns
    Lesson 02: Distributed System Patterns Phillip​ J. Windley, Ph.D. CS462​ – Large-Scale Distributed Systems Lesson 02: Distributed System Patterns Contents 00 Coupling 03 Distributed Architectures 01 Distributed System Design Axes 04 Conclusion 02 Rethinking Distributed One​ of the most important Coupling properties of a distributed system is how tightly or loosely coupled the processing is. Lesson 02: Distributed System Patterns Coupling Coupling​ refers to the degree to which two or more processes are interdependent. We​ say two things are tightly coupled when they are interdependent and loosely coupled when they are independent. Tight​ and loose coupling are not binary positions, but rather relative terms. Any given architectural choice might make two processes more or less coupled. CS462​ – Large-Scale Distributed Systems 4 Lesson 02: Distributed System Patterns Distributed Systems and Loose Coupling Generally​ when designing If two processes are completely independent they can successfully operate without any kind of coordination with the other process. distributed systems Whenever​ we introduce dependencies, the processes must anything that makes the coordinate their activities. This requires some kind of system more loosely communication between the two processes. This can result in coupled is desirable. wasted computation, delays due to latency, and computational errors. But,​ no useful software Of​ course, we can’t accomplish most interesting computations without some coupling. Good distributed architectures accomplish system can be built where their tasks with a minimum of coupling. Good distributed system all the components are architects choose architectures that minimize the coupling necessary to get the job done. completely decoupled. CS462​ – Large-Scale Distributed Systems 5 Lesson 02: Distributed System Patterns System Level Coupling Coupling​ can occur on multiple levels within a system.
    [Show full text]
  • Easychair Preprint Machine Learning Algorithm for Assessing Reusability
    EasyChair Preprint № 4142 Machine Learning Algorithm for Assessing Reusability in Component Based Software Development Pooja Negi and Umesh Kumar Tiwari EasyChair preprints are intended for rapid dissemination of research results and are integrated with the rest of EasyChair. September 7, 2020 MACHINE LEARNING ALGORITHM FOR ASSESING REUSABILITY IN COMPONENT BASED SOFTWARE DEVELOPMENT 1Pooja Negi, 2Umesh Kumar Tiwari 1,2 Department of Computer Science and Engineering, Graphic Era Deemed to be University, Dehradun [email protected], 2 [email protected] Abstract- Software reusability has been present for several decades. Software reusability is defined as making new software from existing one. Objects that can be reused: design, code, software framework. We reviewed several approaches in this dissertation, i.e. object-oriented metrics, coupling factor, etc., by which the software's reusability increases. Therefore this thesis analysis on how to classify and reuse the program using those metrics and apply the algorithm of machine learning. In this thesis we test open source software and generate a ck metric of that source code then a machine learning algorithm will process the data using weka tool to give the result. We test coefficient of correlation, mean absolute error, root mean square error, relative absolute error and root relative square error less the program would be better from this we get 98.64 accuracy on online examination system software. Keywords- Reusability, Machine Learning Algorithm, Random Forest, ck-metric. 1. Introduction In today’s world every sector of service or industry is dependent on computer based application. Industry which develops and outsources the software service is major and growing rapidly in the world.
    [Show full text]
  • LNCS 5103, Pp
    An Event-Based Approach to Reducing Coupling in Large-Scale Applications Bartosz Kowalewski1, Marian Bubak1,2, and Bartosz Bali´s1 1 Institute of Computer Science, AGH, Krakow, Poland 2 Academic Computer Centre CYFRONET AGH, Krakow, Poland [email protected], {bubak,balis}@agh.edu.pl Abstract. Large-scale distributed applications tend to become more and more complex and hard to develop, and execute. Approaches used when building such systems have to be revised, in order to decrease coupling within the code and increase productivity during the devel- opment process. Especially event-based programming applied to Web services should gain much attention. In this paper, we present an experi- mental publish/subscribe infrastructure, which introduces robust event- based mechanisms to be used with Web services-enabled applications. The concept of this solution is built upon the extensibility and config- urability principles. We show that performance gap between traditional distributed event-based technologies and the Web also services-based ap- proach is not necessarily as significant as most people tend to think. Keywords: Large-scale computing, distributed computing, decoupling, Web services, event infrastructure, publish/subscribe, WS-Notification. 1 Introduction The main characteristic of an event-based design is its striving to decrease cou- pling in a system [5]. Coupling, usually contrasted with cohesion, is the degree of association between modules, components, subsystems, etc. [6] Over the past three decades a lot of attention has been paid to this concept, both in scientific and commercial computing. Besides many other measures, the level of coupling started to be treated as quality metrics for software design.
    [Show full text]
  • Quality-Based Software Reuse
    Quality-Based Software Reuse Julio Cesar Sampaio do Prado Leite1, Yijun Yu2, Lin Liu3, Eric S. K. Yu2, John Mylopoulos2 1Departmento de Informatica, Pontif´ıcia Universidade Catolica´ do Rio de Janeiro, RJ 22453-900, Brasil 2Department of Computer Science, University of Toronto, M5S 3E4 Canada 3School of Software, Tsinghua University, Beijing, 100084, China Abstract. Work in software reuse focuses on reusing artifacts. In this context, finding a reusable artifact is driven by a desired functionality. This paper proposes a change to this common view. We argue that it is possible and necessary to also look at reuse from a non-functional (quality) perspective. Combining ideas from reuse, from goal-oriented requirements, from aspect-oriented programming and quality management, we obtain a goal-driven process to enable the quality-based reusability. 1 Introduction Software reuse has been a lofty goal for Software Engineering (SE) research and prac- tice, as a means to reduced development costs1 and improved quality. The past decade has seen considerable progress in fulfilling this goal, both with respect to research ideas and industrial practices (e.g., [1–3]). Current reuse techniques focus on the reuse of software artifacts on the basis of de- sired functionality. However, non-functional properties (qualities) of a software system are also crucial. Systems fail because of inadequate performance, security, reliability, usability, or precision, to name a few. Quality concerns, therefore, should also be front and centre in methods for software reuse. For example, in designing for the NASA Mars Spirit spacecraft, one would not adopt a “cosine” function from an arbitrary mathemat- ical library.
    [Show full text]
  • Adaptability Evaluation at Software Architecture Level Pentti Tarvainen*
    The Open Software Engineering Journal, 2008, 2, 1-30 1 Open Access Adaptability Evaluation at Software Architecture Level Pentti Tarvainen* VTT Technical Research Centre of Finland, Kaitoväylä 1, P.O. Box 1100, FIN-90571 Oulu, Finland Abstract: Quality of software is one of the major issues in software intensive systems and it is important to analyze it as early as possible. An increasingly important quality attribute of complex software systems is adaptability. Software archi- tecture for adaptive software systems should be flexible enough to allow components to change their behaviors depending upon the environmental and stakeholders' changes and goals of the system. Evaluating adaptability at software architec- ture level to identify the weaknesses of the architecture and further to improve adaptability of the architecture are very important tasks for software architects today. Our contribution is an Adaptability Evaluation Method (AEM) that defines, before system implementation, how adaptability requirements can be negotiated and mapped to the architecture, how they can be represented in architectural models, and how the architecture can be evaluated and analyzed in order to validate whether or not the requirements are met. AEM fills the gap from requirements engineering to evaluation and provides an approach for adaptability evaluation at the software architecture level. In this paper AEM is described and validated with a real-world wireless environment control system. Furthermore, adaptability aspects, role of quality attributes, and diversity of adaptability definitions at software architecture level are discussed. Keywords: Adaptability, adaptation, adaptive software architecture, software quality, software quality attribute. INTRODUCTION understand the system [6]. Examples of design decisions are the decisions such as “we shall separate user interface from Today, quality of a software system plays an increasingly the rest of the application to make both user interface and important role in the domain of software engineering.
    [Show full text]
  • Turning FAIR Data Into Reality
    Final Report and Action Plan from the European Commission Expert Group on FAIR Data TURNING FAIR INTO REALITY Research and Innovation 2018 Turning FAIR into reality European Commission Directorate General for Research and Innovation Directorate B – Open Innovation and Open Science Unit B2 – Open Science Contact Athanasios Karalopoulos E-mail [email protected] [email protected] European Commission B-1049 Brussels Manuscript completed in November 2018. This document has been prepared for the European Commission however it reflects the views only of the authors, and the Commission cannot be held responsible for any use which may be made of the information contained therein. More information on the European Union is available on the internet (http://europa.eu). Luxembourg: Publications Office of the European Union, 2018 Print ISBN 978-92-79-96547-0 doi:10.2777/54599 KI-06-18-206-EN-C PDF ISBN 978-92-79-96546-3 doi: 10.2777/1524 KI-06-18-206-EN-N © European Union, 2018. Reuse is authorised provided the source is acknowledged. The reuse policy of European Commission documents is regulated by Decision 2011/833/EU (OJ L 330, 14.12.2011, p. 39). For any use or reproduction of photos or other material that is not under the EU copyright, permission must be sought directly from the copyright holders. The Expert Group operates in full autonomy and transparency. The views and recommendations in this report are those of the Expert Group members acting in their personal capacities and do not necessarily represent the opinions of the European Commission or any other body; nor do they commit the Commission to implement them.
    [Show full text]
  • Software Reusability: Approaches and Challenges
    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.
    [Show full text]