Keywords

1 Introduction

The term metrics is all about the measurement in the software code, and nowadays, object-oriented metrics (OOM) plays a crucial role in the industry and it is being used as a research tool. Researchers use it as a well-defined positive method to examine the data organization from the database. Several properties of the metrics have been defined so far, but still this measurement is not sufficient. The researchers put more emphasis on its software quality assurance. Whatever the metrics are defined, it is practically used in the programming languages. Significant work has already been done in this field, but the problem lies in the quality. To achieve a quality product is too difficult in the software industry; to fill this gap, we must deliver the good product. This can be achieved if the reusable components are provided so that time, effort and staffing are minimized. In fact, it is really a big challenge in this twenty-first century. Quality development of the software is an ongoing process; it cannot be achieved overnight. There are really two challenges for the programmers in the industry: bugs identification and rectification. Even though automated software does all the things, but measuring the quality attributes is still a challenging task from the code repositories. To find the quality attribute from the software programs, Kemerer and Chidamber [1] have developed a metric called the CK metrics suite. In-depth research has been conducted so far about the measurement and quality product [2,3,4,5]. There are other sources available, such as books and the Internet, which describe the metrics measurement [6, 7]. A major attempt has been initiated to produce the eminence of the product. At the end of the software development life cycle (SDLC), quality products will be extensively accepted; quality of the product depends on proper testing of the code. Quality is directly proportional to testability which gives satisfaction to the customer. The role of reusability plays a crucial role in this era. It is not a new concept. It is widely used for estimation of the software assessment. If the component is not reusable, then the whole concept of SDLC will fail. The new product will be developed by the existing one. A survey has been conducted on reusability.

The prime objective of this literature survey is to represent the current state-of-the-art software reusability metrics. Different researchers’ views about the reusability are different.

2 Research Structure

In this paper, we investigated and formulated the followings:

  • Research Goal 1: What are the most reusable assets rather than coding?

  • Research Goal 2: How to estimate reusability? What are the methods or approaches for reusability?

  • Research Goal 3: How to validate the reusable products? What are the steps required to validate the reusable products?

3 Workflow Model for Reusability Evaluation

This is the proposed model for designing and developing the object-oriented paradigm; besides, this model provides the quantification of the reusability factor in the source codes (Fig. 1).

Fig. 1
figure 1

Workflow model

Reusability occurs through the inheritance. The object-oriented design includes features such as inheritance, encapsulation, coupling, and cohesion. One of the important properties like encapsulation indicates hides the internal structure of the program. The above research framework demonstrates the quantification of the reusability. First of all, the challenging task is to identify the factors that influence reusability and testing and then to identify the properties of object-oriented design (OOD) metrics. OOD metrics help us to describe the quantification process of reusability as well as establish a multivariate linear model for reusability. The reusability factor can be achieved by using the other metrics: inheritance, cohesion, coupling, and encapsulation. This can be pictorially quantified and represented. During this study, we found different types of metrics. These are broadly classified into two types (Fig. 2).

Fig. 2
figure 2

Metrics classification

4 Reusability Assets

In this paper, we only focused on the object-oriented metrics in terms of reusability and its assets. Software resources are one of the building blocks of the program paradigm; it can be one of them financial, economical. Not only the programs but also other things are reused. These are listed below. The reusable assets may consist of a single asset or several assets in one asset [8]. In this literature survey, we found 12 items that are reused apart from program code. These are as follows:

  1. 1.

    Used in the data

  2. 2.

    Modules in the program

  3. 3.

    Architecture-driven approach

  4. 4.

    Algorithms used in the program

  5. 5.

    Design patterns

  6. 6.

    Documentation for the project

  7. 7.

    Knowledge requirement

  8. 8.

    Models in the project

  9. 9.

    Planning stage

  10. 10.

    Requirement analysis

  11. 11.

    Service contracts

  12. 12.

    Test cases/test design

From the above literature survey, we found the property used by the author in different aspects in different contexts (Table 1).

Table 1 Reusable properties

From the above studies, the data sets are created to recognize the most valuable assets for reusability. It is concluded that most of the researchers are using the requirement analysis, to which more attention has been paid in this twenty-first century.

5 Data Set for Reuse Assets

See Table 2.

Table 2 Data set of reusable assets

6 Performance of Reusability Assets

See Fig. 3.

Fig. 3
figure 3

Reusable assets

This graph is called the surface graph, and it represents the assets for the reusability during the last decades. Numerous researchers have studied in the different studies papers per year (SMPY). During the years 1991–1999, more researchers have shown their efforts (e.g., UDPO, MIP, DP, DIP, AP, KR, RA, and TCTD). Interestingly, almost all of them put forth their efforts in the RA, DIP, and ADP. Apart from these, during the period 2000–2009 the researchers extensively used other kinds of assets such as MIP and SC.

7 Conclusion and Future Scope

The prime objective of this literature review was to investigate the reusable assets. We have fully focused on the assets and found 11 most reusable attributes in this paper. During the investigation, we found that some of the articles are mentioned as nonvalidated, but they have not proved and claimed as reusable. Hence, extensive survey is required. Our future work is all about the extensive survey concerned with the industry-oriented reusable software analysis and maintenance, because our task is to reduce the maintenance cost and staffing save time. In the industry, about 65% of fund is invested for maintenance purposes. Further, this work is to enhance the understanding of how to maintain the reusable code in the industry. Further in-depth investigation is required in the manufacturing department in the industry where requirement and design are to be more emphasized. We found that most of the researchers observed that reusable assets are validated strongly in academics but poorly in the production sector. From this survey, researcher have shown that only 36% are validated and about 60% are nonvalidated, and the rest of the researchers have shown their kin interest to review studies. Again; comparison between academics and industry, then industry-oriented survey is less than academic. Not only reusability plays a vital role in the industry, but also the new kind of challenge is aging.