This is an old revision of the document!
Table of Contents
Bunch Algorithm
History
Algorithm Intent
Bunch produces flat decompositions of a software system that exhibit high cohesion and low coupling.
Factbase Properties
The factbase is a module dependency graph (MDG).
Clustering Objectives
The Bunch algorithm constructs software decompositions with maximum cohesion and minimum coupling.
Process Description
The Bunch algorithm is an optimization search algorithm that finds a partition with the maximum value of the MQ objective function.
Decomposition Properties
The Bunch decomposition has a high value for its objective function MQ.
Algorithm Restrictions
Failed Assumptions
Detailed Algorithm Description
Bunch starts by generating a random partition of the module dependency graph. Then, entities from the partition are regrouped systematically by examining neighbouring partitions in order to find a better partition. When an improved partition is found, the process repeats, i.e. the found partition is used as the basis for finding the next improved partition. The algorithm stops when it cannot find a better partition.
Implementation
The bunch is official implementation of Bunch algorithm.