protected:acdc
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
protected:acdc [2009/05/10 20:39] – mark | protected:acdc [2010/05/08 15:18] – mark | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== ACDC Algorithm ====== | ====== ACDC Algorithm ====== | ||
====== History ====== | ====== History ====== | ||
- | Algorithm was developed | + | Developed |
====== Algorithm Intent ====== | ====== Algorithm Intent ====== | ||
- | ACDC algorithm | + | ACDC produces [[nested/ |
====== Factbase Properties ====== | ====== Factbase Properties ====== | ||
- | The //[[factbase]]// includes only dependencies between [[terms|entities]]. | + | The factbase includes only dependencies between [[terms|entities]]. |
====== Clustering Objectives ====== | ====== Clustering Objectives ====== | ||
The produced decomposition has the following properties: | The produced decomposition has the following properties: | ||
- | - Effective cluster | + | - Effective cluster |
- Bounded cluster cardinality | - Bounded cluster cardinality | ||
- File-level granularity | - File-level granularity | ||
====== Process Description ====== | ====== Process Description ====== | ||
- | ACDC creates clusters by detecting established | + | 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 23: | ||
* Directory name | * Directory name | ||
* Module name with large out-degree | * Module name with large out-degree | ||
- | * “Support” for cluster contains all utilities | + | * “Support” for the cluster |
- | * 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 cluster contains | + | - A large number of clusters contain |
- | + | ||
- | + | ||
- | | + | |
====== Algorithm Restrictions ====== | ====== Algorithm Restrictions ====== | ||
Line 37: | Line 33: | ||
====== Failed Assumptions ====== | ====== Failed Assumptions ====== | ||
====== Detailed Algorithm Description ====== | ====== Detailed Algorithm Description ====== | ||
- | ACDC produces software decomposition from a software system into | + | ACDC produces |
stages: | stages: | ||
- Skeleton construction | - Skeleton construction | ||
- | - Completion of clustering using Orphan Adoption | + | - Orphan Adoption |
- | The Skeleton construction phase creates a skeleton of the final decomposition by identifying subsystems using a pattern-driven approach. Depending on the pattern used, the subsystems are given names. In the second stage algorithm completes decomposition by using [[Orphan Adoption]] algorithm. | + | The Skeleton construction phase creates a skeleton of the final decomposition by identifying subsystems using a pattern-driven approach. Depending on the pattern used, the subsystems are given names. In the second stage, the algorithm completes |
===== Skeleton construction ===== | ===== Skeleton construction ===== | ||
- | The Skeleton contraction | + | |
+ | The skeleton construction | ||
- Apply the [[subsystem patterns|source file pattern]] | - Apply the [[subsystem patterns|source file pattern]] | ||
- Apply the [[subsystem patterns|body-header pattern]] | - Apply the [[subsystem patterns|body-header pattern]] | ||
Line 83: | 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 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 | ||
+ | |||
+ | ====== Implementation ====== | ||
+ | |||
+ | The official implementation of ACDC can be downloaded [[http:// | ||
- | The [[Orphan Algorithm]] attempts to assign all unassigned modules to some subsystems. The skeleton decomposition serves as the existing structure, while 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. Finally, ACDC applies the leaf pattern for all unassigned modules. |
protected/acdc.txt · Last modified: 2010/05/08 15:20 by mark