Abstract: A class in an Object-Oriented (OO) system is the basic unit of design, and it encapsulates a set of attributes and methods. In OO systems, instead of redefining the attributes and methods that are included in other classes, a class can inherit these attributes and methods and only implement its unique attributes and methods, which results in reducing code redundancy and improving code testability and maintainability. Such mechanism is called Class Inheritance. However, some software engineering applications may require accounting for all the inherited class members (i.e., attributes and methods). This paper explains how to account for inherited class members and discusses the software engineering applications that require such consideration.
Abstract: Attributes and methods are the basic contents of an
object-oriented class. The connectivity among these class members
and the relationship between the class and other classes play an
important role in determining the quality of an object-oriented
system. Class cohesion evaluates the degree of relatedness of class
attributes and methods, whereas class coupling refers to the degree to
which a class is related to other classes. Researchers have proposed
several class cohesion and class coupling measures. However, the
correlation between class coupling and class cohesion measures has
not been thoroughly studied. In this paper, using classes of three
open-source Java systems, we empirically investigate the correlation
between several measures of connectivity-based class cohesion and
coupling. Four connectivity-based cohesion measures and eight
coupling measures are considered in the empirical study. The
empirical study results show that class connectivity-based cohesion
and coupling internal quality attributes are inversely correlated. The
strength of the correlation depends highly on the cohesion and
coupling measurement approaches.
Abstract: Class cohesion is a key object-oriented software
quality attribute that is used to evaluate the degree of relatedness of
class attributes and methods. Researchers have proposed several class
cohesion measures. However, the effect of considering the special
methods (i.e., constructors, destructors, and access and delegation
methods) in cohesion calculation is not thoroughly theoretically
studied for most of them. In this paper, we address this issue for three
popular connectivity-based class cohesion measures. For each of the
considered measures we theoretically study the impact of including
or excluding special methods on the values that are obtained by
applying the measure. This study is based on analyzing the
definitions and formulas that are proposed for the measures. The
results show that including/excluding special methods has a
considerable effect on the obtained cohesion values and that this
effect varies from one measure to another. For each of the three
connectivity-based measures, the proposed theoretical study
recommended excluding the special methods in cohesion
measurement.
Abstract: Class cohesion is an important object-oriented software quality attributes, and it refers to the degree of relatedness of class attributes and methods. Several class cohesion measures are proposed in the literature, and the impact of considering the special methods (i.e., constructors, destructors, and access and delegation methods) in cohesion calculation is not thoroughly theoretically studied for most of them. In this paper, we address this issue for three popular similarity-based class cohesion measures. For each of the considered measures we theoretically study the impact of including or excluding special methods on the values that are obtained by applying the measure. This study is based on analyzing the definitions and formulas that are proposed for the measures. The results show that including/excluding special methods has a considerable effect on the obtained cohesion values and that this effect varies from one measure to another. The study shows the importance of considering the types of methods that have to be accounted for when proposing a similarity-based cohesion measure.
Abstract: Class cohesion is an important object-oriented
software quality attribute. It indicates how much the members in a
class are related. Assessing the class cohesion and improving the
class quality accordingly during the object-oriented design phase
allows for cheaper management of the later phases. In this paper, the
notion of distance between pairs of methods and pairs of attribute
types in a class is introduced and used as a basis for introducing a
novel class cohesion metric. The metric considers the methodmethod,
attribute-attribute, and attribute-method direct interactions.
It is shown that the metric gives more sensitive values than other
well-known design-based class cohesion metrics.