This is an old revision of the document!
Table of Contents
Template
History
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
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
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.