Constructing Relationship Between Software Metrics and Code Reusability in Object Oriented Design

The role of the design pattern in the form of software metric and internal code architecture for objectoriented design plays a critical role in software engineering regarding production cost efficiency. This paper discusses code reusability that is a frequently exercised cost saving methodology in IT production. After reviewing existing literature towards a study on software metrics, we found that very few studies are witnessed to incline towards code reusability. Hence, we developed a simple analytical model that establishes a relationship between the design components of standard software metric and code reusability using case studies of three software projects (Customer Relationship Management project, Supply Chain Management project, and Enterprise Relationship Management project). We also testify our proposal using stochastic based Markov model to find that proposed system can extract significant information of maximized values of code reusability with increasing level of uncertainties of software project methodologies. Keywords—Analytical Modeling; Code Reusability; Design Pattern; Software Methodologies


INTRODUCTION
In today's world, every sector of industry or services is dependent on the computer-based applications.To improve performance and gain a competitive edge, quality of the software has become a crucial factor.Developing and outsourcing of software service is a major and rapidly growing industry in many parts of the world [1].The process of software development is described through the term software engineering that refers to the usage of a systematic procedure in context to a standard set of goals for performing analysis, designing, implementation, and testing as well as maintenance of the software.The software thus developed must be reliable, usable, efficient, modifiable, testable, maintainable, interoperable, portable and accurate [2].In the process of software development, object oriented design is considered as one of the important features to evaluate the quality of software [3].Irrespective of the size of the organization, the objectoriented design methodology is majorly adopted for software development in any organization.Therefore, object oriented designs are considered as standard through which system objects can have particular features and also necessary characteristic.The reason behind the adoption of objectoriented methodologies is that it allows to visualize the problem and acquire a solution in all macro and micro level in related to objects and also ensuring better reliability, adaptability, flexibility and reusability [4].Currently, software engineers use software metrics to evaluate design component and necessary resources of a certain software project.The advantage of software metric is that it allows the evaluation of design pattern through the better platform as well as assistance in performing the testing of application in a quantitative manner.Through such testing, the reliability of the software can be demonstrated.In general, when a company receives a new requirement from a client, initially they will formulate a design of the requirement.This confirmed design from the architect was sent for production.On completion of coding, the product is dispatched to the customers.Although it is unethical to reuse the code of earlier client to develop an application for the new client [5], code reusability also deals with security of intellectual property.A production team has to go for a fresh development starting from the scratch, which not only requires effort but also a considerable amount of time and money.The majority of the large organization now use design pattern which is subjected to reuse without the ethical issues.The main objective of the design reuse is to assist the developer to use it in the new production, which helps in cutting down the new development cost starting from scratch.However when reusing the design care should be taken so that the design is optimally reused for the current as well as the future client.Adopting design reuse will also help in ensuring the timely production and delivery process.Design reuse does not imply that the entire design is used; it might be like some percentage of the current design is used in the new or future similar project.Hence, the focus of the design team should be such that, the design is not only focused on existing client, but it should be able in providing a minimum proportion of reusable design for future clients also.But in reality, it is not easy since the future requirement of the client is unpredictable.
In Section II gives an overview of the software metrics.Section III highlights about the CK Metric key points.Section IV discusses the related work.Followed by Problem identification in Section V. Section VI discusses proposed system.Section VII discusses the research methodology.Section VIII provides the outcome and result in the analysis of the proposed system, and Finally Section IX provides conclusion and future work.

II. ABOUT SOFTWARE METRICS
In this era of IT revolution, software development as emerged has a crucial requirement in every phase of the day to www.ijacsa.thesai.orgday life.From academics to public service, healthcare to banking, entertainment to sports, the use of the software is involved in one or other way contributing to the advancement of the domain.Various factors that have contributed to the advancement of software development are its key features like flexibility, portability, design reusability, software metrics and so on.Design reusability plays a vital role in software development, since it is not only involved in the development of current work but also lays a blueprint for future requirement of the current as well as new projects.Design reusability will also help in reducing the cost of production and reducing required manpower and development time by providing a framework that consists of the design which can be reused over a period.Another significant factor in software development is the software metric, which defines the standard degree of measure to which the process or software system will possess certain property.In software engineering, different metrics are available to measure different parameters such as process is measured using process measurement, a project using project measurement and product metric to measure product metrics.
In our work, since object -oriented deign is involved the paper will highlight few things related to Object-oriented metrics.To develop metric for the object-oriented design, seven different measurable qualities are listed below [6]. Similarity: It is used to identify the similarity between the classes in the term of behavior, structure, purpose or function.
 Volatility: used to define the probability of happening of change in object oriented design.
 Size: Using four different perspectives such as volume, length, population and functionality.
The measurement of the population is done by evaluating the total number of OO entities, which is in the form of classes or operations.Measurement of the volume is achieved dynamically at any instance of time.Functionality denotes the value provided to the user by the object oriented application.Using inter connected design like the depth of inheritance tree length is measured.Object oriented design metrics concentrates on measurement that applies to class and design characteristic.Through these measurements designers are permitted to access software in early process phase, allowing making changes that minimize complexity and enhances the continuing ability of design [7].

III. CK METRIC
In 1994, Chidamber and Kemerer introduced standard software metric for object-oriented programs.CK metrics plays a vital role in knowing the design aspects of software and improving the software quality.The main objective of the CK metric is to provide an in detail measurement of cumulative quality of the software programs to every class level.Metric is associated with each and every tiny segment of the software providing the overall information of the software quality.In CK metric, six classed based metric for object-oriented programs as follows:-

1) Weighted Methods per Class (WMC) 2) Reponses for a Class (RFC) 3) Depth of Inheritance Tree (DIT) 4) Number of Children(NOC) 5) Coupling between Object Classes (CBO). 6) Lack of Cohesion of Methods (LCOM)
1) Weighted Methods per Class: Used to define, the sum of complexity in class.In whole it represents the complexity of the class and this measure can be utilized for indicating development and maintenance effort for class.
2) Response for class: This metric represents a number of growing methods within a set, which can be called in response to a message sent to an object performing the certain task.
3) Depth of Inheritance Tree: This is one of the frequently used metrics; it is used to estimate the extent of depth in the hierarchy of class.It is also used in evaluating maintainability and reusability.
4) Number of Children: This is a measure of number classes that are associated with a particular class with the assistance of inheritance relationship.Class with many children implies a bad class with bad design.

5) Coupling between Object Classes:
This defines the number of all another set of classes for which it is coupled.CBO is advantageous in determining the complexity in testing and reusability.
6) Lack of Cohesion of Methods: It is the difference between the number of methods in which the similarity is zero and the number of methods in which the similarity is non-zero.The similarity between the two methods is the number of features that is being used in common.A zero in LCOM does not signify cohesiveness as well a high value does not represent any inference.In LCOM, it is difficult to define a unit and to measure quality.LCOM is not recommended for accurate measurement since it does not quantify quality properly.
Object-oriented metrics are being successfully used in different domains and programming languages in different parts of the world.These metrics have consistently illustrated the relationship to quality factors like reuse, defects, cost as well as maintainability and relationship which may go beyond the size.The evaluation of these metric is achieved through certain tools like metal mill [8], metric 1.3.6 [9], Analyst 4J [10], OOmeter [11] and Dependency Finder.www.ijacsa.thesai.org

IV. REVIEW OF LITERATURE
This section discusses the prior literature where various approaches of metric software design and its contribution have been introduced.Many approaches have been developed over the years to address the problem of detecting and correcting design flaws in an Object Oriented (OO) software system using metrics.Moreover, with the ever-increasing number of software metrics being introduced, the project managers find it hard to interpret and understand the metric scores.As Object Oriented Metrics require a very good understanding of Object-Oriented concepts and moreover, there is no single metric present which gives all features of Object-Oriented Software System.Table .1 shows the existing survey on a design flaws in an object-oriented (OO) software system using metrics.Table 1 will highlight the tabulated discussion of various problems and respective techniques used to enhance the performance of software metrics in software engineering.Anna et al. [13] to measure the reusability and maintainability degrees of aspect-oriented systems.
Empirical and quantitative analysis, Aspect-oriented software development (AOSD).
Degrees of complexity, diverse domains.

Kaur et al. [14]
To exploring structural factors for software components.Software metrics using neural networks.
exhibit an efficient model targeted for software programmers.Kaur et al. [15] classification and assessment of various reusability metrics.K-Nearest Neighbor-based technique.Kumari et al. [16] To compare C++ and Java programs.Statistical inference techniques, Object-oriented metrics.More realiability.

Linda et al. [17]
To analyze the different metric suites for object oriented schems.
Development of a software prototype like "Class Break point Analyzer (CBA)" Software quality, realiability.

Wu Et al. [18]
To do comparative analysis on on C++, C#, and Java programs by using object-oriented Metrics.
Comparative study on software metric reusability in software engineering.

Srinivasan et al. [19]
To analyze and reviews the most referred object-oriented metrics in software measurement.
Done Comprehensive Review on object oriented metrics using for software measurement.

Scotto et al.[20]
To evaluate the effectiveness of the metrics.Web Metrics for SQL queries.

Singh et al.[21]
To estimate the reuse of software matric.

Subramanyam et al. [22]
To reduce the computational complexities in object-oriented programs for identifying defects object-oriented programming Good enhancement, complexities.

Shaik et al. [23]
To itemize and maintenance of software.
Object Oriented Software Systems The effort, different metrics

Zahara et al. [24]
To examine the competence and effectiveness of machine learning regression techniques.

Multi-linear regression, "Standard instance-based learning IBk with no distance weighting"
Software crisis, software quality, productiviey.

Manoj et al. [25]
To contemplate about software metrics.
An extensive literature survey on ranking code reusability in software engineering.
Cost effecitve, quality, design complexity.V. PROBLEM IDENTIFICATION Software engineering has played a significant role in successfully delivering the quality-oriented project.The existing literature discussed in prior section discusses various techniques for enhancing the crude performance of software metrics.It is found that majority of the techniques uses quantitative, empirical, tree-based techniques.Some of the unique evolutionary techniques e.g.neural network, fuzzy logic etc. has also been used.All these above techniques have possible advantages as well as disadvantages too.This section We will discuss the problems being identified after reviewing the existing system as follows,

A. Lack of Benchmarked Research
Except CK-metrics introduced during the 90s, we have not come across any robust discussion of software metrics, especially for object-oriented programming.Although there is presence of massive volumes of papers in internet media, few authors have been found to introduce any novelty in their ideas.Some of the ideas were to implement CK metric or introduce a new mathematical formula over the old equations of parameters e.g.DIT, WMC, NOC, etc. Also, we have not come across any research model which was found to use or followed by other researchers much towards code reusability.

B. No studies towards CK Metric Relationship
100% of all the papers introduced towards software metrics suites have their formulations.The authors normally check for problems associated with CK metrics and attempt to introduce new software metric suite.However, there was no significant attempt in the past to investigate the relationship among the CK metrics towards code reusability, which is very common operation in any IT industry or any production company.

C. Lack of focus on Code Reusability
Code reusability is the common practice in any IT production.However, it has received very less attention among the research communities worldwide.Studies towards code reusability on its possible relationship with the software metrics are a less-explored topic.
These above problems are addressed in this paper in the form of a simple formula with an aid of case study.The next section discusses the proposed system that enhances the performance of the code reusability and enables the user to visualize enough statistics between software metrics and code reusability.

VI. PROPOSED SYSTEM
The proposed study aims to develop an analytical framework which establishes a relationship in between different type of CK-Metrics components with code reusability.The proposed system includes two different type of experimental prototyping which are i) modeling for the estimation of code reusability and ii) frame work to evaluate the impact of design metrics on code reusability.The proposed study has been highly motivated by all the studies that have been carried out in past which represents that the improvement in the software quality can be achieved through performing efficient code reusability, and implementation of various measurement is driven modules.The modeling for estimation of code reusability index considers a flow of processes where CK metric data from design and code artifacts and domain knowledge and experience are further processed through empirical analysis.The CK-Metrics data can be acquired from UML (Unified Modeling Language) class diagrams or the equivalent Java codes.There various processing tools like Rational Rose etc, which are used to extract the metric data from code artifact's and anticipated to bridge a relationship in between the CK-Metrics components such as WMC (Weighted Methods per Class), DIT (Depth of Inheritance Tree), NOC (Number of Children), CBO (Coupling Between Object Classes), RFC (Response Set for Class), LCOM (Lack of Cohesion in Methods) etc.The empirical analysis generates data for the influence of property on code reusability and establishes a relation between various multifunctional estimation equations belong to the different type of CK-Metrics components and maps them with code reusability.Finally, a software framework for estimation of code reusability has been implemented using GQM paradigm and weighted factors from design metrics.The code reusability model has been further processed through a framework which calculates the different type of CK-Metrics components using static class diagram and dynamic sequential diagrams.The www.ijacsa.thesai.orgproposed model also evaluates a data related empirical analysis and the analysis further generates the influence of individual metrics on code reusability, the linear combination of coefficients on individual design metrics.The proposed system also takes CK-Metrics data as input and evaluates the code reusability index which can be further mapped into CK-Metrics components during a software development lifecycle.There are various existing conventional studies which are based on code reusability design metrics using empirical prototyping.The relationship between various CK-Metric components and the code reusability has been developed based on framing following conventional myth as follows, 1) It can be seen that classes with higher Depth of Inheritance Tree values will have a higher probability of code reusability.
2) Classes with low cohesion result better software design and code reusability.
3) Class which consists of higher values of WMC and NOC extends the code reusability in the dynamic scenario of software development.
4) Classes with higher CBO and RFC values increase the computational complexity and maximize the code reusability.
The proposed model also introduces a framework for code reusability which has been evaluated using deep empirical analysis and data modeling.The Empirical model considered two different types of medium-high-level projects where an experimental analysis has been carried out considering a huge number of classes to investigate the code reusability of the designed metrics.The classes associated with each project configured and grouped regarding different metrics values to avoid the intellectual property issues.The proposed study developed an effective and computationally efficient framework.The contribution of the proposed study includes i) ensuring the estimation of code reusability on heterogeneous object-oriented software modules, ii) calculating the linear combination of weighted polynomial equations, iii) an efficient relationship in between the CK-Metrics components and the code reusability.The performance metrics associated with the empirical model has been evaluated which ensures the effectiveness of the proposed system.The next section will discuss the research methodology formulates the relationship between design quality metrics and code reusability in detail.

VII. RESEARCH METHODOLOGY
The proposed system is designed with an aid of analytical modeling approach as a standard of research methodology.The design of the proposed system is based on code reusability concept using the CK-metric suite.Fig. 1 highlights the modeling of the code reusability where the extraction of CK metric data is done from UML.Multiple forms of Java-related cases can be used for obtaining CK metric.Various industryrelated tools like Metamill, Metric 1.3.6,rational rose, etc. can be utilized in this regards to get the components of CK-metrics.However, class diagram can be manually used for estimating the number of classes.There are various parameters that can be evaluated with an aid of static classes e.g.DIT, WMC, and NOC, whereas various forms of the sequential diagram can be used for evaluation other metrics e.g.RFC and CBO.However, it is quite imperative that LCOM couldn't be assessed or evaluated from the design patterns e.g.UML directly.However, sophisticated industry-based automated tools can be used for the same reason.To assess such design-related issues i.e. code reusability, we consider sample projects developed in Java with a significant number of classes.The proposed system targets to understand how individual components of CK-metrics affect code reusability.We develop a simple function to establish a relationship between metrics and code reusability.We use the concept of weighted coefficient as well as a linear approach for assessing the possible impact analysis of CK-metrics over code reusability.We also use the concept of GQM (Goal-Question-Metric) as the core part of the research methodology that allows formulating the conceptual level of code reusability based on operational level and quantitative level.

VIII. HYPOTHESIS DESIGN
As discussed earlier that proposed study intends to understand the underlying relationship between components of CK metrics with code reusability, hence, an appropriate hypothesis is constructed for this purpose.The study performs analytical assessment on various ERP (Enterprise Resource Planning) and SCM (Supply Chain Management) related software projects on Java and following null hypothesis is being constructed. Developing Analytical Modelling : The development of the proposed system is carried out using analytical modelling approach for testing the hypothesis.The system also applies simple mathematical estimation techniques to investigate the possible relationship between the components of CK metrics and code reusability.The proposed system considers a study of ERP and SCM related software projects developed in Java.The total number classes considered for ERP software project is 220.There are around 180 bases classes in it.Similarly, there are around 570 total classes and approximately 380 maintainable classes for SCM software project.Although, our technique could include number of software projects, we choose to consider using only ERP and SCM software projects.The components of the CK metric have multiple values which can be arranged or structured more appropriately.The proposed system performs simple analytical modeling for code reusability in the form of, (1) The above equation (1) represents mathematical representation of code-reusability, where α is considered as total amount of classes available in every CK metric, whereas β is the component of CK-metric that corresponds to amount of classes newly designed by incorporating code reusability.This will mean that higher the value of C r , higher is the extent of code-reusability.The evaluation of the α and β parameter is carried out manual as well as recording the same over spreadsheet.However, the values considered for discussion in result analysis is approximated to get contrastive outcome for investigating the effect of components of CK metrics over code reusability in software engineering.Finally, the analytical modelling is also testified with respect to presence of uncertainty.

IX. RESULT ANALYSIS
The analysis of the proposed study was carried out over SPSS [35] tool.We perform both numerical analysis as well as graphical analysis to assess the effectiveness of the outcome.Table 1 shows the numerical outcomes of the considered case study of ERP and SCM software projects, where the necessary CK metric components were closely observed and computed for code reliability using the simple equation (1) illustrated in prior section.Following are the discussion of the graphical outcomes of proposed system.

A. Effect of DIT on Code Reusability:-
The outcome shown in Fig. 2 highlights that there is a significant improvement of code reusability for the DIT values.A closer look at the numerical values of DIT shows that with increasing trends in the value of parameters α and β, the code reusability enhances significantly.The increasing number of levels of DIT will represent a little bit of complexity in computation; however, it is productive to make the code more reusable.It is also suggested that for massive objective oriented design, it is quite possible that a number of classes drastically increases, which also increases the possibility of DIT values.However, using the proposed system, using moderate values of DIT can retain better trends in code reusability.Therefore, the null hypothesis stating that "Better code reusability can be retained by the moderate value of DIT in every class" is found to be accepted and true."

B. Effect of RFC on Code Reusability:-
Fig. 3 shows some interesting trends of code reusability.Although, the trend of Cr is found to be increasing the trend is not smooth enough in the preliminary values of RFC metric.The basic trends explored here is that with an increase of α and β parameters has witnessed enhanced code reusability factor.However, it also brings complexity in the major ranges of metric values (1-7), which will mean that although code reusability increases it also brings significant complexity over design.For our analysis purpose, we use two forms of data to generate the graphical outcomes.The first data is synthetic data and can be seen in the RFC row in Table 1, where the parameters α and β are maintained in a combination of both increasing and decreasing order.The outcome shows an increase of code reusability.However, it is less likely that for complex ERP and SCM projects, the values of α and β are usually in increasing order.Hence, we plot a graph by using the increasing order to α and β to investigate the possible impact on code reusability.Fig. 3 shows the outcome of the synthetic data where the parameters are kept in random state, which is less likely to happen in complex software projects.Although the outcome shows an increase in code reusability, there could be possibly latent perspective of the outcome.Hence, we use original data from our ERP and SCM where RFC parameters (α and β) were structured in increasing order.The outcome shows that there is a significant drop in code reusability.Therefore, the outcome stated in Fig. 4 is within the agreement of the hypothesis that "The complexity of code design and reusability decreases for maximized outcomes of RFC." C. Effect of NOC on Code Reusability:-Fig. 5 highlights the effect of NOC over code reusability.The outcome shows that code reusability has significantly improved with the numerical values mentioned in Table 1.A closer look at the numerical values will show that parameters (α and β) are in the same trend of maximization order.Therefore, overall it can be said that increase in NOC has resulted in improved code reusability.The prime reason behind this is larger values of NOC will represent maximized amount of base classes that results in significant code reusability.
Therefore, the null hypothesis stating "Code reusability improves for increasing values of NOC present in class" is found accepted.

D. Effect of CBO on Code Reusability:-
It is said that higher values of CBO are not good for software engineering as excessive coupling can turn the design evaluation quite difficult and complex.But, software projects using object-oriented may more likely have CBO values than expected.Hence, it is found that proposed system can drastically enhance the code reusability even if the software projects do have higher CBO values.Fig. 6 shows that with increasing CBO values for any forms of object-oriented codes, it is feasible to get more values of code reusability.Hence, the hypothesis stating that "Increased CBO values doesn't have much impact over code reusability" is accepted.

E. Effect of WMC on Code Reusability:-
Theoretically, it is expected that increased values of WMC may result in design complexity.However, when we performed our evaluation using proposed technique, we found no much adverse effect on code reusability for certain initial rounds.A closer look at the outcomes shown in Fig. 7 will highlight that although code reusability increases due to exposure to various methods used to the classes, code reusability increases, at the same time, the performance is found to be degrading for further increment in (α and β) parameters of WMC.Hence, the null hypothesis stating "Code reusability declines for increasing values of WMC in every class" is found accepted in proposed system.A closer look at the cumulative outcome of the study will show that code reusability increases for some CK metric parameters and degrades for some other CK metric parameter.Our observation encounters more processing and analysis time to carry out testing.Our work was in the direction of enhanced cohesion between the significant methods as well as to ensure that there is a minimal coupling between the potential objects.
This condition has ensured to retain better code reusability by ensuring higher cohesion among the classes.If the intensity of the coupling is more than we found such cases to be quite nonsupportive of code reusability.Moreover, it is also explored that inclusion of number of methods in ERP projects causes the design class to incur more computational complexity and thereby leads to inferior design patterns.Internal callbacks and communication for message more than 150 cause degradation in the code reusability.
From the result discussed in this section, it can be seen that there are various factors of CK metric that directly impacts the code reusability process.During working on the new set of the code, it is essential that new components and classes designed should have to be within the anticipated outcomes to claim for reusable codes.Hence, our proposed technique can present a framework that can be used to measure the relationship between the CK metric and code reusability.The design to be incorporated into the new set of the code must have a permissible limit of code reusability, which the designer can easily set up during the formal verification process.The proposed system is highly extensible for various forms of software projects other than ERP and SCM.

F. Outcome Assessment
To validate the proposed system, we have developed a simple assessment model.The prime theme of this validation model is to understand the effect of increasing uncertainty in the three types of software projects towards code reusability (Fig. 8).The assessment model is designed over Matlab, which takes the empirical values of metric software suite from Customer Relationship Management project, Supply Chain Management project, and Enterprise Relationship Management project.Using the introduced equation of code reusability, the system performs the computation.The outcome of the code reusability will be subjected to various levels of uncertainties.We define uncertainties as various hidden parameters like skill gap, requirement volatility, ignorance of complying with software development life, project slippage, etc., which is beyond the control of any human.We like to understand that in the case of hidden or unforeseen circumstances in any project management team, what is the performance of code reusability in that case?Hence, we apply the mathematical approach in this regard by using Markov model [36].Applying Markov modeling, it becomes possible to map all the real-time uncertainties into an empirical parameter and apply it to the proposed code reusability model to understand its behavior.Fig. 9 shows the comparative analysis of the three different software projects based on object-oriented designs using a scattered diagram.The outcome shows dominancy of ERP projects, where the code reusability is found to be quite significantly increase with the increase of uncertainty.However, the adverse side of this outcome is that such dominant result is only visible till 0.01-0.04levels of uncertainty values.Better than ERP project, SCM project was found with sparse but increasing values of code reusability.A closer look at the scattered plot will show that there is a significant increase in code reusability from 0.01-0.08values of uncertainties.However, owing to the inclusion of a maximum number of classes and methods, the values of DIT and WMC increases resulting in design complexities.This is the main reason code reusability for SCM can be evaluated in a sparse manner and slower pace, but with better accuracy compared to ERP projects.We have also testified the assessment model with a middle-sized CRM project.Normally, the amount of design complexities CRM projects is highly increased in multifold.However, using the proposed equation, we testified our hypothesis and found that code reusability to be significantly enhanced for CRM project in spite of massive design complexities involved in project architecture.

X. CONCLUSION
At present, we have drawn a relationship between the most standard software metrics and code reusability.We have testified it on three complex software projects of objectoriented designs and found that our model can significantly calculate code reusability for any extent of complexities even it is very much uncertain.Using mathematical and stochastic approach of Markov Modelling, we proved that our model can extract more data of code reusability on increasing uncertainties.Design pattern plays an important role in software engineering.With the increasing demands of the customers, the IT industries and software project developers are increasingly seeking consultation to minimize the cost of production from more than a decade.In the form of various cost-cutting procedures, code reusability is the most prominent one and requires a highly skilled technical architecture to take a decision.A code reusability deals with two challenging aspects i.e. i) deciding which part of the code to be retained same and ii) deciding which part of the code will need to be designed from scratch.In the first challenging aspect, a developer can easily decide on what part of the code will be required to be retained based on the client's requirement.However, the difficult part is to make a decision related to the new code that is required to be built from the base.Normally, depending on an experienced architecture, the new set of the code that needs to be programmed is designed in such a way that it should posses a certain level of code reusability for the future client, which is unpredictable.An unpractical design, in this case, will go to complete loss of production and may not meet the reusability factor for new projects.Hence, our future direction of study will focus on estimating the level of code reusability for complex software projects.We anticipate that our design www.ijacsa.thesai.orgconcept will highly encourage and motivate the stakeholder to consider it as most cost-effective tool to date.


Complexity: Analyzed by assessing the way classes are related to each other. Coupling: It is the physical connection between the object-oriented elements. Sufficiency: Its defines the degree to which the abstraction should possess the features needed by it. Cohesion: It is determined by analyzing the group of properties posses by the class being the part of problem domain or design domain. Primitiveness: Used to indicate the degree of atomic level of operation.