User Tools

Site Tools


protected:template

Differences

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

Link to this comparison view

Next revision
Previous revision
protected:template [2009/05/08 17:20] – created markprotected:template [2009/05/08 17:36] (current) mark
Line 2: Line 2:
 ====== History ====== ====== History ======
 ====== Algorithm Intent ====== ====== Algorithm Intent ======
 +A description of the goals behind this
 +software clustering algorithm.  Examples of such goals include:
 +
 +
 +     * To decompose a software system into subsystems
 +     * To recover the architecture of a software system
 +     * To discover possible ways to restructure the software
 +
 +
 +Explicitly stating algorithm intent can simplify selecting a software
 +clustering algorithm for reverse engineers, as well as understanding a
 +clustering algorithm for software clustering researchers.
 +
 ====== Factbase Properties ====== ====== Factbase Properties ======
 +A description of the input that the software clustering algorithm expects (an algorithm's input is often called a factbase since it contains facts
 +extracted from the software system).  For example, software clustering
 +algorithms often expect that the factbase includes only dependencies
 +between modules.
 +
 ====== Clustering Objectives ====== ====== Clustering Objectives ======
 +A description of the ideal output
 +of the software clustering algorithm. Based on experience or heuristics,
 +the designer of the algorithm decides what a meaningful decomposition of
 +a software system should look like. For example, a software decomposition with maximum cohesion and minimum coupling. 
 +
 ====== Process Description ====== ====== Process Description ======
 +A brief description of the main idea
 +behind the algorithm's implementation. For example: "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 ======
 +A description of the properties
 +of the decompositions that the software clustering algorithm creates.
 +These properties are either a direct result of the clustering objective
 +(e.g. Bunch creates decompositions whose value of the objective function
 +is higher than that for other algorithms) or an
 +artifact of the algorithm's implementation (e.g. Bunch creates
 +decompositions that are more balanced than most algorithms).
 +
 ====== Algorithm Restrictions ====== ====== Algorithm Restrictions ======
 +Since software clustering
 +algorithms are heuristic algorithms, their performance
 +may depend on the type of software system being clustered. Such dependencies
 +need to be documented here. For example, Bunch may not be well-suited
 +for event-driven systems.
 +
 ====== Failed Assumptions ====== ====== Failed Assumptions ======
 +A description of ideas that did not
 +work very well while developing the algorithm. This information is
 +often omitted in publications but could be invaluable to the software
 +clustering researcher.
 +
 ====== Detailed Algorithm Description ====== ====== Detailed Algorithm Description ======
 + The nuts and bolts of the
 +algorithm's implementation are presented here. This will often be the
 +only section of significant length in an algorithm description.
 +
protected/template.1241803223.txt.gz · Last modified: 2009/05/08 17:20 by mark