Professional Documents
Culture Documents
Signature of Student:
Summary of the Research
Change Impact analysis is one of the major issues in software engineering. Change in one
part or module of the modular system will have an impact on the other parts of the system
as well as it propagates. This change propagation is known as ripple effect. Due to the
ripple effect, the stability of the class is highly challenged. Many researchers have studied
the ripple effect measures by doing different changes in the modules and introduced new
metrics to better analyze class stability. REM (Ripple Effect Measure) metric is used to
evaluate the aforesaid probability of change impact in other classes when the parent class
is modified on the basis of attributes and methods it has. However, metrics which measure
the ripple effect on multiple inheritance (interfaces) and depth of level of inheritance
(multilevel inheritance) is still under discussion. Therefore, the current study aims to
introduce a new metric which will not only consider the depth of level of inheritance but
also multiple inheritance and aggregation to check the stability of the class. The
methodology adopted to carry out the research will be two-fold. One is theoretical and
other is empirical. To cross-validate the existing research, a tool is built. Both theoretical
and empirical validations will be performed on the basis of the existing validation criteria
to prove the conceptual model. Furthermore, for empirical validation, a case study for
open source Java classes will be conducted to verify the proposed conceptual model.
1 Introduction
Classes in object Oriented systems makes the basis of software architecture, hence, classes
in OO systems must be dealt with stability for the maintenance of a stable architecture [1].
Changes made to one class have an effect on the other classes too which cause the ripple
effect [2]. The primary attribute affecting the stability of the program is the ripple effect [3].
One should have the knowledge and understanding of the software components before
making any changes, otherwise, it produces a disastrous effect [4]. Therefore, while making
changes one should have a comprehensive knowledge of functionality structure and behavior
of the software system. However, identification of such changes is very difficult as these
modifications will cause ripple effect in other modules. Hence, calculation of class stability
by taking issues, for example, multiple inheritance (due to which changes propagate to other
class) before and after modifications is necessary to avoid problems of maintenance of
software [5].
For the evaluation of stability, three approaches are available [1]. According to the first
approach, stability inhibits changes to the system. The second approach defines that system
is stable if it avoids ripple effects by the addition of a new module or by bringing changes to
existing ones. The last but not least approach of stability, states that the addition of the new
modules in the prevailing systems can be added. In this study, the researcher will consider
the second approach and introduce a new metric to calculate ripple effect which will take
into account the measures of dependencies like the depth of level of inheritance and multiple
inheritance.
The chance of a module to adopt changes in the future is affected not only by the prospect
of altering the module itself but by possible modifications in other modules that might ripple
to it [6]. Along these lines, it very well may be derived that the change engendering for the
most part comprises of two factors: the interior likelihood to change (i.e., due to changes in
requirements or bug fixing, the probability of change in a module) and the outer likelihood
to change, which relates to the likelihood of a module to change because of expansive
influences (i.e., changes propagating from other modules). In this examination, we will
consider the outer likelihood to change that estimates the change proliferation based on the
conditions (that is numerous legacy and total) with different classes that can cause the
likelihood of a change being undulated starting with one class then onto the next class (i.e.
ripple effect).
Coupling metrics have been empirically investigated by many scholars to measure the ripple
effect which is the cause of instability in class [2][7][8][9]. There are two types of metrics to
check the stability of the class: traditional metrics and object-oriented metrics [10].
Traditional metrics are Cyclomatic Complexity, size, comment percentage etc [11].
Chidamber and Kemerer have proposed a metrics suite for object-oriented design that
includes depth of Inheritance (DIT) as well asWeighted Methods per Class (WMC). The
other metrics include Number of Children (NOC)and the important one is Coupling Between
Object classes (CBO). Response For a Class (RFC), Lack of Cohesion in Methods (LCOM)
were also a part of metrics [12].
The research objective is as follows:
Research Objective 1:
To determine the impact of multiple inheritance, multilevel inheritance and aggregation
simultaneously on class stability on design level
Research Objective 2:
To propose a new metric for class stability.
The current research will contribute towards the researchers and practitioners in the
following ways:
• IREM metric will be the optimal available assessor for evaluating change impact.
• The study will help researchers to transform IREM to assess the probability of
changes to propagate across components to fit architecture evaluation purposes.
• The study will provide a tool for ripple effect measure (IREM) which will further
help practitioners to measure the change impact in their software modules.
2 Related Work
Change proneness and class stability have gained the attention of many researchers and
practitioners in recent years. They have given paramount importance to change impact
analysis due to ripple effect which is the threat to the stability of class. Ripple effect is
differently measured by researchers. Logical stability of the object-oriented design is studied
and I was stated that if the stability of the design is poor then it had a bad impact on the
modifications and maintenance of the software modules [2]. It was also concluded that
stability in software design is a very important feature. That is why, to diagnose difficult
modification situations at an early stage that may occur during maintenance, the available
status of a verified set to check logical stability metrics for object-oriented designs is
important.
Many coupling metrics were introduced to check the effects of change propagation
caused due to different dependencies between classes in the object-oriented paradigm. The
quantification of ripple effect is done by Arvanitou et al. in their research and they introduced
as new coupling metric ripple effect measure (REM) to measure the change-proneness. They
have done both theoretical and empirical validation of this metric. The new metric is proved
to be mathematically sound and can be used to assess class proneness to ripple effect,
however, it does not consider the multiple inheritance and friend class issues [6]. They have
conducted another study related to change-proneness and investigated the GoF design pattern
on class stability. Authors have found that classes that in object-oriented way, the Aggregate
role player classes are in lower for stability than classes that play the Component role.
Inheritance in object oriented system has instinct that public superclasses are higher in
stability than Subclasses [13]. Furthermore, Arvanitou et al. extended their research and
measure the change proneness on the architecture level and introduced a new metric Module
Change Proneness Measure (MCPM). The strategy takes contributions from two sources: (a)
module conditions, which are utilized to figure the bit of the open interface of a module that
is utilized by different modules, and (b) module change history, which is utilized as an
intermediary of how much of the time support activities are performed (e.g., alter necessities,
fix bugs, and so on.). In the wake of measuring these two parameters (for all modules and
for every one of their conditions), MCPM can be determined at the design level, by utilizing
basic likelihood hypothesis [14]. Their condition to ascertain the progressively outstretching
influence are given in table 1. One of the specialists has created coupling, insecurity and
relevancy measurements dependent on Martin's standards for practicality and testability.
These measurements incorporate Duty Calculation (InRank), Dependence Calculation
(OutRank), double positioning flimsiness. Results demonstrate that bundles with lower
recently created coupling and dynamics measurements esteems have preferable viability
over those with higher recently created coupling and relevancy measurements esteems [15].
There are numerous other coupling measurements are proposed in various
investigates[16][17][18].
3 Problem statement
In literature, class stability and the ripple effect in the object-oriented paradigm are
studied in many different ways by the research community. Although, they have empirically
investigated certain metrics to calculate the stability of class. The most widely used stability
assessor are depth of inheritance level of tree (DIT) [2], coupling between objects (CBO)
[18][8], Ripple effect measure (REM) [6][13], module change proneness measure these
issues (MCPC) [14] to analyze the ripple effect. However, these metrics are not able to
compute the effect of Depth of level of inheritance, multiple inheritance, and aggregation for
multiple classes which are necessary to compute the quality of software. DIT will help to
measure the dependency of classes on the level of depth of level of inheritance [2][19].
The stability parameters with stability assessor are given in table 1. The table indicates
that still there is no stability assessor which used these parameters to calculate the stability
of a class. Therefore, the current study aims to enhance the existing work limitations by
introducing a newly improved coupling metric to calculate the probability of change
proneness in modules at a deeper level that is calculating class stability while assessing it on
parameters based on the depth of level of inheritance, multiple inheritance, and aggregation
issues.
5 Proposed Methodology
The methodology we are adopting to conduct the study is shown in Figure 1.
Literature Literature
Dataset Proposed
Review Problem Review of Conceptual Theoratical Empirical
related to
creation and new metric
Identification metrics and Model Validation Validation
ripple effect tool building IREM
dataset
NDMC+NOP
SFi = ( eq. 1)
NOM
Where NDMC = Number of distinct methods changed in the interface. Thus, if there are
more than two interfaces, the combined effect of both will be determined as follow:
𝑃 (𝐼1 𝑈 𝐼2) = 𝑃(𝐼1) + 𝑃(𝐼2) − 𝑃(𝐼1 ∩ 𝐼2) (𝑒𝑞. 2)
This is the joint probability of changes due to the two interfaces’ methods.
Assuming that a change in interface I1 will occur with a probability of 0.5 (P(I1) = 0.5) and
that this change will propagate to class Source with a probability of 0.5 (P(I1|I2) = 0.5), then:
P (I1| I2) = P (I1) + P (I2) – P (I1). P (I2)
= 0.5 + 0.5 – 0.5 x 0.5 = 0.75
5 Conclusion:
The research aims to study the stability of class by introducing a new ripple effect metric.
Although, there are many existing coupling metrics which measure the ripple effect and are
empirically investigated by researchers, however, researchers remain ignorant about the
inclusion of issues of dependencies that are multiple inheritance, depth of level of inheritance
and aggregation in their measures to calculate the class stability. Current research will
include all these types of dependencies to calculate an improved version of the ripple effect
measure and also built the tool as a contribution to the research.
6 References: