RELIABILITY IMPROVEMENT FRAMEWORK: DEFECT MITIGATION PERSPECTIVE

: Reliability estimation framework for object oriented design has been developed in this paper. The proposed framework relates the object oriented design constructs (Inheritance, Cohesion and Coupling) with design defect and the design defect correlates with the reliability of the object oriented design (OOD). The objective of framework is to implement relation between object oriented design constructs and design defect; object oriented design defect and reliability. Framework, quantify the values of object oriented design constructs and mitigate the defect of software design. Two models have been proposed: Reliability estimation model and rigidity estimation model. Rigidity estimation model has been proposed which focus on object oriented design constructs while reliability estimation model focus on rigidity defect mitigation for improving reliability of object oriented design.


INTRODUCTION
There is a lot of change in the demand of software based equipments and hand held devices. Due to huge demand of software and easily available to customers with less cost and high speed, size and complexity of software is also changed in a same manner. Software development starts from the requirement stage of the SDLC. Various errors and faults are embedded during the development. The objectives of the developer are to mitigate these defects of the software and deliver the quality and reliable software to the user. It is difficult to identify all the defects and errors from the software. Therefore, the developer effort is to detect these errors at the initial stage of the software. It is time consuming and 50% cost of the whole project consumed in it [1]. Many organizations introduced to collect and maintain various types of errors, faults and bugs. Various tools, techniques and methodologies are developed and tested by the industry to mitigate the defects. The objectives of these tools and techniques are to improve software reliability and reduce its cost by mitigating the no of defects.
Software reliability is an important factor of software quality. There are various methods to develop software become defect free. OOD is one of the important methods to improve reliability of object oriented designt. Object oriented design and software reliability are inversely related with each other. Therefore, it is required to analyze reliability factors that can affect the reliability of OOD. Design defect is one of the important factors of reliability. In today scenario, object oriented design and development are common concepts. Object oriented design is an important tool for solving the complex and critical problem of the software [2]. In object oriented approach, design is one of the most important elements to improve the reliability of object oriented design. Software with high complexity develops defects with software. The occurrence of failure in the software makes the whole system crash.
The purpose of software process is used to transform the data and information from one pattern to another. This process is performed by the user and probably errors are also occurred at the time of transformation. Tools and techniques are required to avoid these errors and identify these hidden defects when they occur. A good software quality is to identify the errors, fix the problem at early stage, minimize the expenses and rework. To improve the software quality; error, fault and failure causes are clearly defined to classify [4]. A model is required to develop that can be applied to identify defect of object oriented design. A metric is required to measure and minimize the design defect and improve the reliability of the object oriented design. On the basis of the model, reliability of the object oriented software at an initial stage of software development life cycle can be measured. To develop these models, a framework is required to improve the reliability of the object oriented design.
The whole paper is organized in five phases and explained in a following manner. Section I, introduce about the software reliability, section II propose a reliability improvement framework, section III, describes the phases of the framework, section IV deploy the review and revision of the framework, section V describes about the significance of the framework. Last section is the conclusion of the paper.

SOFTWARE RELIABILITY
Software reliability improvement is an activity that focused on current reliability models and improved by applying statistical illation techniques to identify cause of failure, defect or error during system testing or execution of the program. Reliability improvement framework of an object oriented design believes that measurement is a tool for measuring the effectiveness of any estimation [3]. Generally researcher used Markovian Models for the analysis and they are based on exponential failure time distribution [3]. The measurement models are also called software reliability models.

PREMISES
A framework is a hypothetical description of a complex process. It provides actual base for future research. The framework for reliability improvement of object oriented design has the following assumptions: • Reliability of an object oriented design is directly or indirectly affected by various factors, in which design defects is taken as a major factor. • To improve reliability of object oriented design, researcher can choose any of the reliability factors. • Design defect is pretended by object oriented design constructs such as cohesion, coupling, inheritance and encapsulation. • The consequences of object oriented design defects are reflected on the reliability of object oriented design. • The framework improves the reliability by design defects of object oriented design.

THE PROPOSED FRAMEWORK
The proposed framework for reliability improvement of object oriented design contains the following four phases is presented in figure 1; Identification Phase, Mapping Phase, Measurement Phase and Improvement Phase. In the identification phase; the relevant object oriented design constructs, reliability attributes and design defects are used as a key factor for identifying reliability. Second phase is the mapping phase; where mapping between object oriented design constructs with design defects and mapping between design defects and their affect on each other has been established. In measurement phase, object oriented design metrics for Inheritance (DIT), Cohesion (CAMC) and Coupling (CBO) are used. For design defect mitigation, Rigidity Estimation Model (RiEM) and Reliability Estimation Model (ReEM) are proposed for reliability computation. Reliability is measured to mitigate the design defect with the use of (ReEM) model. Improvement phase is the last phase for analysis of object oriented design metrics, reliability improvement guidelines for object oriented design ( RI GOOD) is proposed, validation of suggestive measures and finalization of framework. The whole system is revised and reviewed, by deploying suggestions and revisions provided by the expert.

IDENTIFICATION PHASE
It is the first phase of the proposed framework. The purpose of the framework is to improve software reliability by operating the value of object oriented design. The value of reliability is measured through OOD constructs and design defects. In this phase, object oriented design constructs, design defects and reliability factors which as follows:

Identifying Object Oriented Design Constructs:
The OOP is the demand of the demand of the software organization and researcher. It is used to resolve the problem of procedure oriented programming. The fundamental job of procedural programming is the function of the programming and then focused on the data. When multi-function is used data are used as global level so that they may be assessed by multiple users and functions. Multiple users and global data are more error prone where occurrence of defects is more in function. Procedural approach programming is used to solve the problem of real world [5]. By using the object oriented concept, to enhance the procedural programming. The concept of object oriented deals with the real world entity elements. Object oriented design have various constructs to implement good design for software development. From various object oriented design constructs researcher identified three important design constructs which are used as follows; Inheritance, Cohesion and Coupling.
The modern approach of object oriented design; to protect data from unexpected changes from external functions through the encapsulation. Data can be inherited in class of hierarchy from root to child. Cohesion, coupling, data binding, polymorphism, abstraction, dynamic binding, message passing and inheritance are some of the important constructs which are used in object oriented design [6]. Mapping between object oriented design constructs and design defects is used as a major mapping during framework implementation.

Identifying Reliability Factors:
Software reliability is the essential factor to estimate the quality of software. The reliability of these models is based on the reliability of the collected data as well as IEEE defines software reliability as "The probability of Correctness, Simplicity, Reusability, Recoverability, Testability and Accuracy. These identified factors affect the reliability either directly or indirectly [6].

Identifying Design Defects:
Design defects are one of the major factor that can decide the time of shipping of software. Design defect also affected the reliability of data as well as system. From the above identified reliability factors, it is found from critical review and literature survey, design defect makes the system unreliable [10]. Design defects have negative impact on software reliability. If design defect increases, reliability of the system decreases.
Consequently, design defects will be taken as a major factor for improving software reliability of an object oriented design [11].
Designers execute a good object oriented by adopting the OO design principles. If designers know the reason and symptoms of bad design then it is useful for them to prevent the bad design [22]. There are some fundamental reasons for bad design like changing technology, expertise, lack of design skills and design practice. Now it is the time of OOD, because various properties of OOD support the changes without modifying the early or present modules. But designer should always be careful about some characteristics of OOD, which can make the design difficult. Martin proposes various primary symptoms whether designs are rotting [12] [13]. They are rigidity, fragility, immobility, needless complexity, opacity and viscosity.  Rigidity: The concept of rigidity is the design change in simple way the entire design will be change. The design is hard to change because every alter forces many other changes to the same part or other part of the system.  Fragility: The idea of fragility is that changes cause new bugs i.e the design is easy to break. Alter cause the system to break in places that have no conceptual relationship to the part that was changed.  Immobility: It means unsuccessful to reuse software from different or same design. It is hard to disentangle the system into components that can be reused in other systems.  Needless Complexity: When it contains code that is currently not useful. It usually happens when developers try to predict future requirements and changes and put into the code parts that do not have to be there at the moment.  Opacity: It is a tendency of software code to be difficult to understand. The constant refactoring is needed in this case to prevent this from happening.  Viscosity: It is difficult to things is harder than doing things wrong. It is hard to the right thing because sometimes is just easier to do.

MAPPING PHASE
To develop relation between two or more variables in such a way that organized changes in the value of one variable came with changes in the other values. These changes are calculated by using statistical representing how closely two variables are dependent and independent. The value of relationship between different variables lies between +1, 0 and -1. These values represent +1 (positive correlation), o represent (no relation) and -1 represent (negative correlation). This phase of framework to estimate reliability of object oriented design defects in two stages:

Mapping between OOD Constructs and Design Defects:
Today object oriented design based software is a demand for all the industry, aviation, education, medical, traffic, banking and railway. For the development of mapping between object oriented design constructs and design defects. Inheritance, cohesion and coupling are the most important object oriented design constructs. In order to establish a relation between design constructs and design defects through critical review; the effects of object oriented design constructs are reflected on design defects [14][15][16]. The effect of OOD constructs are on the design defect increases, which promotes other faults and failures with the design that decrease the reliability of the object oriented designs [17]. Inheritance and coupling increase the OOD constructs more difficult to understand and increase the defect of the design [15]. Inheritance and coupling have a positive effect on design defect while cohesion has a negative effect on OOD. This shows that inheritance and coupling increases in the object oriented design, which increases the design defect in design. Similarly, cohesion increases in design, decrease the design defect in the design. Therefore, object oriented design constructs either increase or decrease the value of design defect.

Mapping between Design Defect and Reliability:
Reliability and design defects are intimately related with each other. In identification phase, design defect consider as a major factor of software reliability. Reliability is defined as "Reliability is the probability of failure free operation for a specified time in a specified environment" [10]. Software development starts from the software design. If defects are detected and mitigate at early stage of software, then reliability of the software may improve.
It is difficult to accomplish a certain level of reliability, if a system executes with a single defect in software design. Defect is reciprocally related to the software reliability. Software reliability growth models are used to detect and explain the cause of failures and faults of software system. The cause of software faults are the occurrence of the unpredictable events. If faults are found and fixed, it is presumed to be increase the reliability of the software. Here, reliability will be considered in reference to the design defects of object oriented design constructs.

2.2.3
MEASUREMENT PHASE When a process or characteristics does not perform within its specification, it is treated as defect [18]. During the process of measurement, it will be misleading if you do only data collection work. Numbers of defect cannot be used \to control things. The numbers must properly represent the process being controlled, and they must be sufficiently well defined and verified to provide a reliable basis for action [19]. To measure the design defect and mitigate the defects in object oriented design that improves the reliability of the software. It is very difficult and expensive to correct the design after coding of the software. The measurement phase contains the following step:

Measure Defects by using Rigidity Estimation Model (RiEM):
To establish mapping between object oriented design constructs and rigidity design defect, the influence of design constructs on rigidity design defect are examined by measuring the value of rigidity estimation model. It was observed that each of the design constructs affects rigidity defect and rigidity defect affect the reliability of the design. Literature survey shows that object oriented design construct either increase or decrease the value of rigidity design defect [20]. To measure the value of rigidity design defect, researcher proposed Rigidity Estimation Model (RiEM). Object oriented design constructs such as inheritance and coupling increase the value of rigidity defect while cohesion decrease the value of rigidity defect [20]. With the help of identified metrics of inheritance (DIT), coupling (CBO) and cohesion (CAMC), the proposed rigidity estimation model is evaluated. Rigidity design defect is completely depends on these object oriented design constructs. A multiple correlation may be established to develop the rigidity estimation model (RiEM) for the design.

Measure Defects by using Reliability Estimation Model (ReEM):
Software reliability covers methods, models and metrics to estimate and predict software reliability [21]. The level of failure is easy to quantify and understand. In most of the cases defects derived from the reliability estimate, but often the failure intensity is used as the parameter in the reliability model. Software reliability computation is difficult to quantify directly by knowing its related factors.
Software reliability is influenced by several factors in which design defects will be takes as a key factor to estimate reliability of software. None of the reliability estimation model is presented in the literature in respect of design defects. Reliability estimation model (ReEM) estimates the approximation value of reliability for an Object Oriented design [22]. Design defects negatively affect reliability. As design defect increases reliability of the design decreases and vice versa. The objective of reliability estimation model is to quantify the reliability [22].

2.2.4
IMPROVEMENT PHASE It is the last phase of the framework. In this phase, the framework has been improved by mitigating the design defects. What are the suggestive measures proposed in order to mitigate the design defects? For this, the improvement phase proposed guidelines for object oriented design which is as follows:

Reliability
Improvement Guidelines: Reliability improvement guidelines for object oriented design ( RI GOOD) in reference to the defects have been developed. The proposed reliability improvement guidelines, suggestive measures are help to measure the reliability. These guidelines provide facility to the developer to defend the design against failure alteration and design defects. Guidelines are used to mitigate the design defects in the object oriented software. These guidelines will help to measure the defect value and adapt the object oriented design constructs to improve reliability of the framework.

REVIEW AND REVISION
After receiving suggestions and advised from expert; the review and revision phase are executed. These review and revision improve the reliability of framework of object oriented design. All the phases of the framework are tested and modified during the deployment of the framework. There is also a flexibility to alter any phase of reliability improvement framework of design. These changes are appeared at any stage of framework may implement during the investigation and modification.

FRAMEWORK SIGNIFICANCE
The framework has the following significance: • With the help of framework defects are mitigate at the early stage of software development. • It may also help to the measure the impact of OOD constructs over the object oriented design defects. • It assists to measure the impact of OOD defects over the estimation of software reliability. • It assists to develop alternative object oriented designs.
• It assists to find out the comparison between two designs of software versions of object oriented software to compare the reliability of object oriented design. • It assists to find the best design of object oriented among all the available version of different software.

CONCLUSION
A reliability improvement framework for object oriented design defects has been developed. The proposed framework develops the mapping between the object oriented design constructs with design defects also develop mapping with design defects and reliability. No such framework has been available in the literature that improves software reliability of object oriented design by taking defects into consideration. The framework performs as a bridge between object oriented design constructs, design defects and reliability. The objective of framework measures and mitigates the design defects of software design at early stage of software development life cycle contributing to reliable improvement.
Reliability and design defects estimation models have been proposed with the help of proposed framework. Design defects estimation model has been developed which assumes object oriented design constructs into consideration and proposed reliability estimation models assumes design defects in circumstances for estimating reliability of object oriented design. Framework enables to rays various questions i.e can design defects be consider as a key factor to reliability? How object oriented design constructs and design defects are related with each other? What are the effects of object oriented design constructs which can increase or decrease the design defects of object oriented design? What is the relation between object oriented design defects and reliability of software design?