CONTENTS
CONTENTS
CONTENTS
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
224 CAMELIA S¸ERBAN (1)<br />
2. Theoretical background<br />
Object oriented design quality evaluation implies identification of those design<br />
entities that are relevant for the analysis and of the software metrics that best emphasize<br />
the aspects (design priciple/heuristics) that we want to quantify, and the<br />
interpretation of the measurements results obtained. These elements were described<br />
in detail in our previous work [9]. In what follows we will not get into their details,<br />
but we will try to list them, addapted to our current problem.<br />
2.1. A meta-model for object-oriented systems. In [4] a meta-model for objectoriented<br />
systems is defined as a 3-tuple, S = (E, P, R) where, E represents the set<br />
of design entities of the software system ( classes, methods, attributes, parameters<br />
or local variables), P represents the set of properties of the aforementioned design<br />
entities (e.g. abstraction, visibility, reusability, reuse, binding) and R represents the<br />
set of relations between the entities of set E (e.g methods access).<br />
2.2. Some relevant coupling metrics. A significant number of coupling metrics<br />
have been defined in the literature [10, 11, 12]. Because, we aim to identify those<br />
classes in which a change would significantly affect many other places in the sourcecode,<br />
we select coupling metrics that better emphasize this aspect.<br />
Changing Methods (CM) is defined as the number of distinct methods in the system<br />
that would be potentially affected by changes operated in the measured class.<br />
Weighted Changing Methods (WCM) [4]. WCM is computed as the sum of the<br />
“weights”(number of distinct members from the server-class that are referenced in<br />
a method) of all the methods affected by changes operated in the measured class.<br />
Changing Classes (CC). The CC metric is defined as the number of client-classes<br />
where the changes must be operated as the result of a change in the server-class.<br />
2.3. Fuzzy clustering analisys. Consider C = {c1, c2, ..., cl}, C ⊂ E, the set of<br />
all classes from the meta-model defined in Section 2.1. Each class, ci from C set is<br />
described by a 3-dimensional vector, ci = (cm, wcm, cc), where the components of ci<br />
vector are the computed values for the metrics defined before.<br />
Next, our goal is to group similar classes, in order to obtained a list of “suspects”<br />
(classes tightly coupled).<br />
Because is hard to establish thresholds for the applied measurements, we used a<br />
fuzzy clustering analysis. An object will belong to more than one class with different<br />
membership degree. Also, in order to determine the number of clusters, which is a<br />
data entry for a fuzzy clustering generic algorithm, we considered the Fuzzy Divisive<br />
Hierarchic Clustering (FDHC) algorithm [7]. This algorithm produce not only<br />
the optimal number of classes (based on the needed granularity), but also a binary<br />
hierarchy that show the existing relationships between the classes.<br />
3. Case study<br />
In order to validate our approach we have used the following case study. The<br />
system proposed for evaluation is log4net [3], an open source application. It consists<br />
of 214 classes. The elements from the meta-model described in Section 2.1 have been