Skip to content

Ptidej Team

Sections
Personal tools
You are here: Home » Research » DECOR » grammar » Blob.htm
« February 2012 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
 
Views
  • State: visible

Blob.htm

Document Actions

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>&nbsp;</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
 

Powered by Plone