© 2015, IJARCSMS All Rights Reserved 128 | P a g e ISSN: 232 7782 (Online) 1 Computer Science and Management Studies International Journal of Advance Research in Volume 3, Issue 11, November 2015 Research Article / Survey Paper / Case Study Available online at: www.ijarcsms.com Reusability Estimation of Object Oriented Software: A Systematic Review Namrata Chopra 1 Research Scholar Department of Computer Science Goel Institute of Technology & Management Lucknow (U.P.) – India Namrata Dhanda 2 Associate Professor and head of CS/IT Department of Computer Science Goel Institute of Technology & Management Lucknow (U.P.) – India Abstract: One of the promises which object oriented programming holds is that it increases software reusability. In fact, software components designed in object oriented concept is easier to be reused than those designed in conventional programming language. But the state of the art software reusability in most Object oriented environments is still very limited. In object oriented programming, estimating reusability plays a key role in reducing cost and improving the software quality. Object oriented system helps in achieving the concept of reusability through different types of inheritance programs, which further facilitate in developing reusable software components. Object oriented metrics recognize the effectiveness of each reuse policy. Software reusability has significant impact on overall software quality. Quality of software increases as reuse of software modules increases. Although, software quality improvement cannot be understood unless it is calculated. This paper examines how object oriented system increases software reusability, what are the limitations of software reuse in current state, and how to improve object oriented software reusability. Keywords: Software reusability; Systematic software reuse; software development; Reusability Estimation I. INTRODUCTION Software reusability is considered as a significant technique of avoiding re-coding of work and improving the quality of the software development process [6]. The object-oriented principles have provided estimation tools and basic ideas, which can be recognized and applied in the software development. Reuse of existing software components increase the overall quality and efficiency of software development life cycle and maintenance process [12, 14]. Software reusability reduces the amount of efforts that need to be delivered from scratch and hence less testing time for new software. Industrial observers suggest that a reuse strategy could save up to 20% of development costs [9]. C++ templates are used to support the concept of reusability in object oriented programming. Object oriented software is a group of classes which are abstract data types, and templates are a way of making classes more abstract without actually knowing what data type will be controlled by the functions of the class [16, 19]. This raises questions about how general programming included in the structure of templates in the code can be measured to identify effectiveness of this reuse strategy. The measurement of reuse would assist software developers to examine current levels of reuse and provide insight in developing quality software that is easily reused. II. SOFTWARE REUSABILITY The IEEE defines software reusability as ‘The ability of a software system or component to perform its desired function under its stated condition to evaluate the quality of software [4, 23].’ Reusability is one of the most important attribute of software quality for delivering high quality software. It is also an important factor to quality estimation of object oriented software at an early phase of software development life cycle [1- 3]. Developing software system from existing classes i.e. Reuse offers many advantages: