02.04.2013 Views

CONTENTS

CONTENTS

CONTENTS

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!