New Design Metrics for Complexity Estimation in Object Oriented Systems

Nisha Satish Malik, Rajender Singh Chhillar · 2011

This paper proposes four design metrics of class level for early and effective feedback to manage the quality of object-oriented software. These metrics measure the complexity induced by the use of various object-oriented design concepts like data hiding, aggregation, inheritance and cohesion. These four metrics are evaluated from the output of design phase before the starting of the coding to reduce the overall efforts in term of time, cost, and manpower. Although various set of metrics already exist to measure the design complexity of class and object- oriented system but maximum of them are evaluated from the source code not before actual coding. These measures are analytically evaluated against Weyuker's properties for object-oriented metrics. Metrics data is collected from two C++ projects as empirical sample for analysis. The quantitative information forms the basis of every engineering discipline; software engineering is not an exception. Software measures/metrics are essential to manage the various processes of software development to produce a quality product. Some of the traditional metrics have been used to analyse the object- oriented codes, but are certainly not sufficient to characterize the all features unique to object-oriented approach. Metrics have already been proposed by various authors related to various object-oriented constructs e.g. encapsulation, coupling, cohesion, inheritance and polymorphism. Among the existing object-oriented metrics most are evaluated using source-codes i.e. later-stage information. In object-oriented approach, each category of data and their corresponding operations are collected into a single unit using encapsulation. The concept of identification, classification and abstraction are used to format a class-structure. Polymorphism and inheritance are unique to object-oriented approach regarding the reusability of codes. Polymorphism means the same operator or method is used to perform different functions. Inheritance is the mechanism that permits the sharing of data and methods among classes based on a hieratical relationship. The in-built strength of the object-oriented approach happens due to the data-hiding along with reusability of codes but these concepts induce some level of complexity in design and codes. High complexity of classes/programs requires more effort in testing and maintaining the software. The quality of product is also affected by its complexity. The analysis and design phases of object-oriented approach of software development need more focus as compared to others. Feedbacks from the measures applicable in design phase are of intensive use. This need instigates the authors to propose new set of design metrics. The applicability of these metrics would strictly be restricted to the requirement and design phase. Metrics are illustrated with simple and suitable examples. The proposed set of four metrics are analytically evaluated against Weyuker's set of measurement principles. The data is collected from two C++ projects to analyse metrics empirically.

Read the paper · More papers on PaperTik