International Journal of Information Technology and Knowledge Management July-December 2011, Volume 4, No. 2, pp. 501-509 COUPLING COMPLEXITY NORMALIZATION METRIC-AN OBJECT ORIENTED PERSPECTIVE Amitabha Yadav 1 & Raees Ahmad Khan 2 Over the last decades, software quality attributes have been widely studied. In contrast, less attention has been paid to the field of software reliability. Complexity is a major factor of software reliability which degrades the performance of reliability. High complexity makes the system unreliable. The paper proposes a new method to improve reliability of object oriented design by normalizing complexity which is closely correlated with coupling. Coupling increases complexity and thus decreases reliability. A coupling complexity normalization (CCN) metric is proposed to minimize complexity of object oriented software design. An algorithm has been developed to normalize complexity. The proposed metric (CCN) is studied with the help of OSCAR case study. Coupling Complexity Relationship among classes has been calculated. Results obtained on implementing CCN is further compared with coupling complexity measure using existing standard metric WCC. It is seen that the normalized complexity using CCN has given much lesser value than the WCC. Keywords: Coupling Complexity Normalization, Coupling Complexity Relationship, Reliability, Coupling, Weighted Class Complexity, Eigen Values, Eigenvectors. 1 DIT, Babasaheb Bhimrao Ambedkar University, Lucknow, India 2 DIT, Babasaheb Bhimrao Ambedkar University, Lucknow, India E-mail: 1 amitabha.engg@yahoo.com, 2 khanraees@yahoo.com 1. INTRODUCTION Towards moving 21 st century, software becomes a driver for everything from elementary education to genetic engineering. Software developers analyze reliability, maintainability and complexity of software through software measurement. Software is used to make decisions but on the other hand it is to believe that software can be unreliable as human beings. Dependency and requirements on computer increases the difficulties and complexities. Due to increase in dependency, the size and complexity of system has grown. According to literature survey high coupling decreases reliability of software and makes the software unreliable [1]. A little work has been reported to establish a correlation between OO software design constructs and quality attributes such as reliability, maintainability, dependability and so on [2]. Highly coupled modules increases complexity of software by making software unreliable. So it is necessary to consider reliability of software at early stage of development. Reliability is a major concern for every field such as in oil and gas industry, Software indusry, Health industry, Aircraft indusrty and so on [3]. There are several approaches to estimate complexity of software but none of them have been accepted as a true measure of complexity of a class diagram [4]. Object oriented perspective is one of the most significant ways to quantify reliability of software by controlling object oriented constructs. Object oriented design provides a novel approach for problem solving using models around real world entities. Most of the software projects are shifting towards object oriented design because of only that design phase of a software development life cycle is the only phase in which structure of a software is made available. Design phase is the vehicle to produce high quality object oriented application that brings blue print into the reality [5]. Object oriented language supports coupling thereby sharing the data members and member function among the class hierarchy. Coupling is the degree to measure the software reliability. Coupling is one of the major principal of object oriented software which contributes lot to software industry and is a characteristic of software design among internal attributes such as modularity, low coupling, high cohesion, encapsulation, inheritance etc. From last two decades lots of metrics has been proposed ranges from cohesion to coupling in object oriented software. However, coupling has a negative impact on software reliability [5]. High coupling results in bad software design which increases complexity of software. Software metrics are used to measure the complexity of program. The greater the number of coupled classes in class design, greater will be the complexity of class hierarchy. Coupling in a class is supposed to be more sensitive and fault-prone because of shearing among classes at deeper level. It increases common cause failure rates.Common cause failures rates are a specific class of dependent failures that affect complex system [6]. Thereby, increasing the demand for reliable software. To minimize complexity of software it is necessary to control coupling of object oriented software. Coupling is closely