Changes between Initial Version and Version 1 of ModuleFunctionClustering


Ignore:
Timestamp:
Feb 24, 2012, 9:58:52 AM (12 years ago)
Author:
bozo_i
Comment:

draft

Legend:

Unmodified
Added
Removed
Modified
  • ModuleFunctionClustering

    v1 v1  
     1= About clustering = 
     2 
     3The clustering algorithm sorts entities into groups, that are closely related from different point of view. The entities can be '''modules''' or '''functions''' and the relations between them are function calls and record usages. The created groups are called '''''clusters'''''. 
     4 
     5= Clustering in !RefactorErl = 
     6 
     7Before using the clustering functionality of the tool, the source files have to be loaded to the database. The clustering algorithm will cluster all the modules and functions which are in the database. In the clustering options the user can choose the modules and functions that should be ignored during the clustering. 
     8 
     9== Types of clustering == 
     10 
     11There are two implemented clustering algorithms in !RefactorErl: 
     12* Hierarchical algorithm (agglomerative) 
     13 
     14* Genetic algorithm 
     15 
     16=== Agglomerative clustering === 
     17 
     18In the beginning, each entity forms a separate cluster. Then, in each step, the two closest clusters are selected and unified. This process continues until there is only one cluster. The intermediate states contain a possible clustering of the entities. The output of the algorithm is the list of these possible clusterings. 
     19 
     20=== Genetic clustering === 
     21 
     22Genetic algorithms simulate the evolution of species. There are iterations of populations in which every entity figths for survival or for the survival of its genes. A fitness function is defined to determine the value of an entity. The fitter an entity is, the more likely it survives. The algorithm is expected to converge to the fittest possible entity, like evolution does. 
     23 
     24= Using the clustering functionality = 
     25 
     26The clustering functionality is available from Emacs and the console interface. 
     27 
     28== Parameters for agglomerative clustering == 
     29 
     30* '''''Modules to skip:''''' list of modules that should be ignored in the clustering process 
     31* '''''Functions to skip:''''' list of functions that should be ignored in the clustering process 
     32* '''''Transform function''''' 
     33* '''''Distance function''''' 
     34* '''''Antigravity''''' 
     35* '''''Merge function''''' 
     36  * smart 
     37 
     38'''TODO''' 
     39 
     40 
     41== Parameters for genetic clustering == 
     42 
     43'''TODO'''