Abstract

Due to rapid development in software industry, it was necessary to reduce time and efforts in the software development process. Software Reusability is an important measure that can be applied to improve software development and software quality. Reusability reduces time, effort, errors, and hence the overall cost of the development process. Reusability prediction models are established in the early stage of the system development cycle to support an early reusability assessment. In Object-Oriented systems, Reusability of software components (classes) can be obtained by investigating its metrics values. Analyzing software metric values can help to avoid developing components from scratch. In this paper, we use Chidamber and Kemerer (CK) metrics suite in order to identify the reuse level of object-oriented classes. Self-Organizing Map (SOM) was used to cluster datasets of CK metrics values that were extracted from three different java-based systems. The goal was to find the relationship between CK metrics values and the reusability level of the class. The reusability level of the class was classified into three main categorizes (High Reusable, Medium Reusable and Low Reusable). The clustering was based on metrics threshold values that were used to achieve the experiments. The proposed methodology succeeds in classifying classes to their reusability level (High Reusable, Medium Reusable and Low Reusable). The experiments show how SOM can be applied on software CK metrics with different sizes of SOM grids to provide different levels of metrics details. The results show that Depth of Inheritance Tree (DIT) and Number of Children (NOC) metrics dominated the clustering process, so these two metrics were discarded from the experiments to achieve a successful clustering. The most efficient SOM topology [2 × 2] grid size is used to predict the reusability of classes.

Highlights

  • Reuse-Based Software Engineering “is a software engineering strategy where the development process is geared to reusing existing software” [1]

  • After analyzing each cluster in the Eclipse JDT System, we found that Depth of Inheritance Tree (DIT) and Number of Children (NOC) metrics are dominating the clustering process, which was found in [36]

  • The distribution of NOC and DIT metrics values was analyzed in Eclipse JDT System, it was found that 76.2% of the NOC metric classes have 0 values, and 76.3% of classes have the values 1, 2, and 3 in DIT metric

Read more

Summary

Introduction

Reuse-Based Software Engineering “is a software engineering strategy where the development process is geared to reusing existing software” [1]. Software metrics is “a measure of some property of software artifacts or its specifications” [4]. Using metrics becomes manifest in reusability measurement in Object-Oriented (OO) paradigms [6]. Reusability is an important aspect in Component Based System Development (CBSD) [7]. Software components could be programs, part of programs, classes, modules, even architectures and test cases [8]. The ability to define the reusable components becomes critical task to avoid the failure of reuse, especially in OO components [9]. Analyzing software metric values will help developers to identify the most suitable reusable components, to avoid developing components from scratch [5]

Objectives
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call