User Tools

Site Tools


protected:acdc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
protected:acdc [2010/05/06 14:00] bilprotected:acdc [2010/05/08 15:20] (current) mark
Line 16: Line 16:
  
 ====== Process Description ====== ====== Process Description ======
-ACDC creates clusters by detecting established [[subsystem patterns|subsystem patterns]] in the given software system. Software entities that are not clustered this way are assigned to the subsystem that depends the most on them.+ACDC creates clusters by detecting established subsystem patterns in the given software system. Software entities that are not clustered this way are assigned to the subsystem that depends the most on them.
  
 ====== Decomposition Properties ====== ====== Decomposition Properties ======
Line 24: Line 24:
       * Module name with large out-degree        * Module name with large out-degree 
       * “Support” for the cluster that contains all utilities       * “Support” for the cluster that contains all utilities
-      * Module name of [[subsystem patterns|dominator node]]+      * Module name of dominator node
   - All utilities modules belong to one cluster   - All utilities modules belong to one cluster
-  - A large number of clusters contain a [[subsystem patterns|dominator node]]+  - A large number of clusters contain a dominator node
  
 ====== Algorithm Restrictions ====== ====== Algorithm Restrictions ======
Line 44: Line 44:
  
 The skeleton construction phase has seven steps: The skeleton construction phase has seven steps:
-  - Apply the [[subsystem patterns|source file pattern]] +  - Apply the source file pattern 
-  - Apply the [[subsystem patterns|body-header pattern]]   +  - Apply the body-header pattern  
-  - Create  the potential [[subsystem patterns|dominator]] list+  - Create  the potential dominator list
   - Create a support library and dispatcher list   - Create a support library and dispatcher list
   - Create initial skeleton   - Create initial skeleton
   - Iterate the sub-graph dominator pattern including modules from the support library and dispatcher list   - Iterate the sub-graph dominator pattern including modules from the support library and dispatcher list
-  - Apply both the [[subsystem patterns|support library pattern]] and the [[subsystem patterns|dispatch  pattern]] to modules from corresponding list+  - Apply both the support library pattern and the dispatch  pattern to modules from corresponding list
  
 All apply pattern steps are straight forward grouping entities according to the pattern rule. The other steps are described below. All apply pattern steps are straight forward grouping entities according to the pattern rule. The other steps are described below.
Line 67: Line 67:
 The ACDC goes through each module //n// in the //potential dominator list// and examines whether //n// is dominator node of a subsystem, according to the sub-graph dominator pattern.   The ACDC goes through each module //n// in the //potential dominator list// and examines whether //n// is dominator node of a subsystem, according to the sub-graph dominator pattern.  
  
- When dominator node is found then ACDC creates a subsystem containing the [[subsystem patterns|dominator node]] and [[subsystem patterns|dominator set]]. Nodes in the dominator set are removed from the potential dominator list, unless the cardinality of the dominated set was larger than 20.+ When dominator node is found then ACDC creates a subsystem containing the dominator node and dominator set. Nodes in the dominator set are removed from the potential dominator list, unless the cardinality of the dominated set was larger than 20.
  
  
Line 80: Line 80:
    
  
-===== Completion of clustering using Orphan Adoption ===== +===== Orphan Adoption =====
- In the previous phase, the skeleton of software decomposition was constructed. Some modules are left unassigned from the first phase.  In this phase algorithm assigns all non-clustered modules to some subsystem. +
  
-The [[Orphan Algorithm]] attempts to assign all unassigned modules to some subsystems. The skeleton decomposition serves as the existing structurewhile the non-clustered modules are the orphans. [[Orphan Algorithm]] will not assign module if the module follows the leaf pattern, and it cannot be assigned to any subsystem with sufficient level of confidence. FinallyACDC applies the leaf pattern for all unassigned modules.+In the previous phase, the skeleton of a software decomposition was constructed. Some modules are left unassigned from the first phase. In this phase, the algorithm assigns all non-clustered modules to an already created subsystem, in particular the subsystem that depends the most on the unassigned module.
  
 ====== Implementation ====== ====== Implementation ======
protected/acdc.1273154457.txt.gz · Last modified: 2010/05/06 14:00 by bil