Blob.htm
Click here to get the file
Size
2.2 kB
-
File type
text/html
File contents
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="Nikos Tsantalis">
<title>Detection
Rules of the Blob</title></head><body>
<div id="toptabs">
<p> </p>
</div>
<div id="container">
<div id="logo">
<!--<h1>Design Defect Detection</h1>-->
</div>
<h3>Description</h3>
The Blob (also called God class) corresponds to a large controller class that
depends on data stored in surrounding data classes. A large class declares many
fields and methods with a low cohesion. A controller class monopolises most of
the processing done by a system, takes most of the decisions, and closely
directs the processing of other classes. We identify controller classes using
suspicious names such as Process, Control, Manage, System, and so on. A data
class contains only data and performs no processing on these data. It is
composed of highly cohesive fields and accessors.
</p>
<h3>Detection Rules</h3>
RULE_CARD : Blob { <br><br>
<span class="marge">RULE : Blob {ASSOC: associated FROM: mainClass ONE TO: DataClass MANY } ;<br><br></span>
<span class="marge">RULE : mainClass {UNION LargeClassLowCohesion ControllerClass } ; <br><br></span>
<span class="marge">RULE : LargeClassLowCohesion {UNION LargeClass LowCohesion } ; <br><br></span>
<span class="marge">RULE : LargeClass { (METRIC: NMD + NAD, VERY_HIGH, 20) } ; <br><br></span>
<span class="marge">RULE : LowCohesion { (METRIC: LCOM5, VERY_HIGH, 20) } ;<br><br></span>
<span class="marge">RULE : ControllerClass {UNION (SEMANTIC: METHODNAME, {Process, Control, Command, Manage, Drive, System}) <br></span>
<span class="margeHigh">(SEMANTIC: CLASSNAME, {Process, Control, Command, Manage, Drive, System}<br><br></span>
<span class="marge">RULE : DataClass {(STRUCT: METHOD_ACCESSOR, 90) } ;<br><br></span>
} ;<br>
</body>
<form method="post">
<p align="center"><input type="button" name="B1" value="Close" onClick="window.close()"></p>
</form>
</html>
Created by
mohanaou
Last modified
2010-02-19 12:32