Quantifying Reusability of Object Oriented Design: A Testability Perspective

The quality factor of class diagram is critical because it has a significant influence on overall quality of the product, delivered finally. Testability analysis, when done early in the software creation process, is a criterion of critical importance to software quality. Reusability is an important quality factor to testability. Its early measurement in object oriented software especially at design phase, allows a design to be reapplied to a new problem without much extra effort. This research paper proposes a research framework for quantification process and does an extensive review on reusability of object oriented software. A metrics based model “Reusability Quantification of Object Oriented Design” has been proposed by establishing the relationship among design properties and reusability and justifying the correlation with the help of statistical measures. Also, “Reusabil-ity Quantification Model” is empirically validated and contextual significance of the study shows the high correlation for model acceptance. This research paper facilitates to software developers and designer, the inclusion of reusability quantification model to access and quantify software reusability for quality product


Introduction
Significant efforts have been made in the field of software measurement for improving the quality of product and most of them pursue the goal of the quality of final product, i.e. later phase in system development life cycle [1].In software engineering it is widely accepted that the quality of finally delivered product is highly dependent on the early decision in the development process [2].An accurate evaluation of software quality depends on testability estimation, which in turn depends on the factor that can affect testability.Reusability is strongly associated to testability and continuously plays an important role to deliver best quality and high class software within fixed time and given budget [3].Reusability factor is not new; Mxllroy defines "reusability factor" has been behind many software developments for product's quality.Reusability plays an important role in software quality assessment at design time and also acts as the basis to find testability indices for industry project's ranking.The basic criterion for evaluating testability factor is reusability.If a component is not reusable then the whole concept of component based software development fails.The definitions of reusability from various researchers are summarized in Table 1.
Software design is a method in software engineering that produces a model of the system and allows system designers/developers to rotate your computational model into a workable algorithm that resolve the problems by the help of qualitative and quantitative assessment [10].ISO 9126 quality model defines: "level of quality and performance of design achieves expected functionalities by reusability factor [11]".A reusability criterion constantly supports designer for improved software design at an early stage of software development process.Design phase has direct impact on the product testing cost and effort and plays the backbone role of any product.To design and develop a good quality product, reusability plays a key role for assessment of software testability.Estimating reusability factor early in the development life cycle may greatly reduce the overall product development cost and enhance the customer satisfaction.The object oriented design principle is a suitable language for generalized productivity.The objective of this study is to produce a model that quantifies reusability at design instant of development life cycle.In this regard, research proposes a "Reusability Quantification Framework", which is summarized in Figure 1.
This paper is structured in such a approach that it initially describes the reusability: an important factor to testability for quantification process and then lists and describes reusability quantification model with their correlation establishment and also highlights information for statistical significance of the developed model that are significant for further study.The developed model has been empirically validated; furthermore, the research paper concludes with software industry utility of model for project leveling in conclusion section.

Reusability: A Testability Perspective
Reusability is recognized as a very important factor to testability evaluation of object oriented software, which consent to the inclusion of changes in a design and gives an early focus to create testable software within development life cycle.The IEEE defines software reusability as the capability of a system or component to perform its required function under its specified condition that means "a component is reusable then the whole component of product design do not required to change [12]".Table 2 is denoted as the reusability is an important criterion in different quality model.
In general the overall objective of the reusability quantification is to deliver good quality software that is effective in function, easily approachable to user and permit the incorporation of changes in a product design and gives an early focus to deliver testable software within specified condition i.e. fixed time and bounded budget because delivering good quality product is no longer an advantage, but a essential factor.Objective of this study Table 1.Researcher definition.

Name of Researcher Definition
Freeman [4] "Reuse is the use of any kind of information which a developer may need in the software creation process".
Basili and Rombach [5] "Software reuse is the use of everything related with software with a software project, including knowledge".
Tracz [6] "Reusability is the use of software specification that was designed for reuse".
Braun [7] "Use of existing software components in a new perspective, either in the same system or in another system".
Cooper [8] "Reuse is the ability of a previously developed software component to be used again or used repeatedly in part or in it's entirely, with or without modification".
Krueger [9] "Reuse is the process of developing software systems from existing software rather than building them from scratch".Table 2. Reusability quality criteria in different quality model.

Quality Model Definition
McCall quality model [13] This quality model has three quality of software product: according to this model "Reusability quality factor" show the quality of product as a form of product transition that means adaptability to new environment with the help of generality and self documentation quality criteria.

Dromey quality model [14]
Dromey proposed a framework for evaluate requirement design and implementation phase.The high level software product properties for the implementation include 'reusability as the quality criteria of Dromey quality mode.

Boehm quality model [15]
Boehm quality model used reusability as the quality factor to accomplish the completeness criteria to automatics and qualitative evaluate the quality of software.
FURPS model [16] FURPS model extended by IBM Rational software used "reusability as the quality factor" in FURPS QUALITY MODE to accomplish the consistency and documentation quality criteria.
to evaluate software reusability by using the concept of software quality assessment during the initial stage in development life cycle.Here research is required to develop a structured approach to make sure that software is reusable, effective and high quality.

Object Oriented Design Properties
In software development environments, object oriented designing and development is becoming very preferred paradigm in industrial software development environments for large-scale system design.This technology offers support to deliver final software product with higher quality and lower maintenance costs [17].Classes in object oriented design system provide an excellent structuring principle that allows a structure to be divided into well designed units which may then be implemented separately.One of the major advantage of having object orientation is its support for software reusability, which may be achieved either through the simple reuse of a class in a library or via inheritance among relationship.Object oriented principles direct the designers what to avoid and what to support.Several procedures have been defined in this method so far to estimate object oriented design.There are several essential qualities of object orientation that are recognized to be the basis of internal qualities of object oriented design that support in the context of measurement.These ideas significantly include design properties i.e. encapsulation, inheritance, coupling, and cohesion.Encapsulation is a mechanism to realize data abstraction and information hiding.It hides internal specification of an object.Inheritance is the distribution of operations and attributes among classes.Coupling indicates the relationship or interdependency between modules.Cohesion refers to the internal reliability inside the components of the design.A class is cohesive when its components are greatly interrelated and it should be difficult to divide a cohesive class.Cohesion can be used to recognize the defectively designed classes.Table 3 summarize as the design properties and their advantages.

Object Oriented Design Metrics
Several research works in the object oriented metrics arena were done in recent years [3].Most of the metric is accepted by practitioners on "heavy usages and popularity" and by academic experts on empirical (post development) validation.This led to the definition of four new metrics, Encapsulation Metrics (ENM), Coupling Metrics (DCC) and Cohesion Metrics (COM), Inheritance Metrics (MFA) which could be calculated from design information only.A suite of object-oriented metrics, covering all the design attributes, has been listed and described in Table 4.

Correlation Establishment
The correlation establishment among Reusability, OOD Properties and Metrics, describes the quantification process of reusability model in order to establish a multivariate linear model for reusability and OOD constructs.The values of these design metrics can be identified by class diagram metrics.Identified metrics will take part in the role of independent variables while reusability will be taken as dependent variable.Evaluation of reusability is very helpful to get testability index of software design for high quality product as early as possible in development life cycle.After rigorously evaluation of existing literature on the topic correlation between reusability and design metrics have been established, shown in Figure 2 [11] [12] [18] [19].To establish a correlation between object oriented design properties and reusability, the influence of design metrics are being examined with respect to developed reusability quantification model.It was observed that every Object Oriented Design metrics affect quality factor.Identified independent variables, namely Data Access Metrics (DAM), Measure of functional Abstraction (MFA), Direct Class Coupling (DCC), the values of dependent variable "Y" can be found out by using the "Reusability Quantification Model of Object Oriented Design".

Reusability Quantification Model Development
It is clear from in-depth literature survey that reusability is not a new word; rather it has been in conversation among the engineering professionals at various forum, but there is no commonly accepted complete and com-Table 3. Object oriented design properties and advantages.

Property Definition Advantages
Encapsulation Defined as a kind of data abstraction and information hiding.

Reduces complexity Reusability
Inheritance A measure of the "is-a" relationship among classes.

Eliminates redundant code Reusability
Coupling Show the interdependency of an object to other objects in a system design.

Good understandability Reusability Cohesion
Refers to the internal consistency within the components of design.Reusability Table 4. Metrics description.

ENM Encapsulation Metric
This metric count of all the methods defined in a class and hold a single construct behavior so that OOD property prevent access to attribute declaration by protecting the internal structure of the objects.

DCC Coupling Metric
This metric shows the property of interdependency among objects in a design.

COM Cohesion Metric
This metric computes the relatedness among methods and attribute in a class.

MFA Inheritance Metric
This metric count "is-a" relationship between classes.This association is correlated to the level of class in an inheritance structure.prehensive model or framework available to estimating the reusability index of the software product at design phase in development life cycle, that motivate to develop "Reusability Quantification Model of Object Oriented Design", using object oriented principle based on its inner design property in development life cycle.This model used above mentioned design metrics to illustrate a range of measurement for software project.In order to create a model for reusability factor, following multiple regression technique has been selected.
Using "SPSS" math work software values of all design metrics, intercept, and coefficient of the respective metrics are calculated.On the basis of this technique, the multiple regression reusability model has been developed in Equation ( 2

Statistical Significance of Reusability Quantification Model
The descriptive statistics of the output table gives the valuable record of statistics that are mean, standard deviation and number of software projects selected for each of the dependent variable and independent variable.ANOVA examination for dependent variable (reusability) gives the result of F (frequency ratio) with df (degree of freedom).ANOVA output Table 5 shows frequency ratio of 19.077 with (3,4) degree of freedom by experimental tryout at the confidence interval level of 95%.The critical values of F is 9.12 [20].Study obtained F ratio at (3, 4) degree of freedom is 19.077 that is larger than this, so result conclude that F-ratio is likely to occur by chance with a P < 0.05 level of significance.
The coefficients part and statistical significance of design metrics and constant for reusability model gives the values, that need in order to write the reusability model and prove that all the three identified design metrics do the statistically significance role at the 95% confidence level.The standardized beta coefficient give a measure of the contribution of each independent variable to the reusability model and significance values give a rough suggestion of the impact of each predictor variable.The data used for developing Reusability model has been collected through large commercial object oriented system (Table 6).
The Reusability Quantification Model summary (Table 7) of the output is most useful when performing multiple regressions.In this table "R" is the multiple correlation coefficient that used to know how strongly multiple independent variable are related to dependent variable."R square" gives supportive coefficient of determination.

Empirical Validation of Developed Model
Empirical validation of work proves that how significant developed model, where metrics and model are able to quantify the reusability index of object oriented design in design stage.This validation is an essential phase of research to evaluate the developed model for appropriate execution and high level acceptability.It is also the fine approach and practice for claiming the model acceptance.To justify claiming for acceptance of developed model, an experimental validation of the proposed reusability quantification model at design phase has been carried out using tryout data from different versions of two famous windows application frameworks, object windows library (OWL) of four publicly released versions OWL 4.0, OWL 4.5, OWL 5.0, OWL 5.2 and Microsoft foundation class (MFC) of five publicly released versions MFC 1.0, MFC 2.0, MFC 3.0, MFC 4.0, MFC 5.0 [21].In order to validate developed model, the value of metrics are available by using above data set for following projects in Table 8.

Statistical Analysis of Reusability Quantification
Charles Spearman's Rank Correlation Coefficient (r s ) was used to test the significance of correlation between    Study results have proved that the correlation is acceptable with high degree of confidence that is 95%.Therefore research is concluded without any loss of generality the "Reusability Quantification Model of Object Oriented Design" highly significant, because estimation values are more reliable and valid in the context.

Key Contributions and Findings
Developed "Reusability Quantification of Object Oriented Design" for object oriented design.The Model has been validated using the same set of try-out data.An empirical validation of the developed model is also performed using try-out data.Some of the major findings are as given below: 1) Reusability has been identified as a key factor to software testability, addressed in design phase of object oriented software development to produce quality software.
2) The three metrics DAM (Data Access Metrics), MFA (Measure of functional Abstraction), DCC (Direct class Coupling) are identified for each of object oriented design constructs such as encapsulation, inheritance and coupling respectively.
3) Software design constructs are most appropriate and power full for controlling software quality factors in design phase.
4) A guideline produced by developed framework to be followed right from beginning of development so as to design class hierarchy as per the prescriptive reusability index for the project under development.
5) Developed Framework may be used to get reusability metric in design phase for reusability measuring.6) Reusability indexing (RI) can be done using the proposed model "Reusability Quantification of Object Oriented Design".

Conclusion
This paper has developed an efficient and accurate model for reusability quantification through object oriented design metrics using the technique of multiple regressions.The developed model proposed the possibilities to estimate overall reusability from designed information.Developed model has been demonstrated using functionally equivalent projects and the assessment of reusability index in OOD has been validated using structural and functional information from object oriented software.This paper also validates the quantifying ability of developed model.That validation study on this research work proves that proposed reusability quantification model is highly acceptable, more practical in nature and helps the software industry in project ranking.

Figure 1 .
Figure 1.Research framework for reusability quantification process.

Figure 3 .
Figure 3. Line graph comparing between known and calculated reusability index for software projects.

Figure 4 .
Figure 4. Line graph comparison between calculated correlation values and threshold value.
7) "Reusability Quantification of Object Oriented Design" provides a Reusability indexing (RI) benchmark for other researchers and designers.8)For Industry project ranking, Reusability indexing (RI) is possible using the "Reusability Quantification of Object Oriented Design".The developed model may be generalized and used by others researchers.

Table 5 .
Examination of ANOVA for reusability model.

Table 6 .
Coefficients of independent variables and constant for reusability model.

Table 7 .
Model summary for reusability model.

Table 8 .
Known and calculated reusability ranking and project acceptance under charles spearman's rank correlation coefficient.calculatedindexvalues of reusability by Reusability Quantification Model of Object Oriented Design and its known index values given by expert shown in Figure3.The "r s " was calculated using the following formula