FCAJava is an Eclipse plugin implementing a semi-automatic technique
refactoring a traditional Java hierarchy into groups of traits.
FCAJava implements the technique based on the approach proposed by Adrian
Lienhard, Stephane Ducasse and Gabriela Arevalo for
Smalltalk that exploits Formal
Concept Analysis, a solid mathematical theory for
gathering significative groupings of elements which have
For the moment, this plugin only provides a restricted set of features
(new features will be added in the future).
FCAJava is free and open source, under the GNU GPL License.
The plugin was implemented as a part of his Master Thesis, by Marco Naddeo: "Un possibile approccio alla soluzione di alcuni problemi legati all'ereditarieta' singola nei linguaggi object-oriented", Universita' degli Studi di Torino, 2008, Laurea Triennale in Informatica.
You can download the zip file containing the plugin and
unzip it inside the eclipse directory. The zip can be downloaded from
The sources of gengetopt eclipse can be obtained via CVS (you can find
the instructions here: http://sourceforge.net/projects/fcajava)
To open the main view of the plugin, you need to right-click on a Java
project inside Eclipse, and choose the menu item "Trait Mining Tool":
This will open the corresponding view:
This view lists all the methods found in the project and already
selects those that are considered as "meaningful" (also called
"understood" sometimes); the methods with a red cross are those that
are considered "canceled" and are unselected by default; those with a
gray cross are those considered as "probably canceled" (i.e., they
consist only of a return statement) - it is then up to the programmer
to decide whether to select these methods.
Once the programmer has selected all the methods that he wants to
include in the Formal Concept Analysis, the concept lattice can be
generated by clicking on the button of the view:
This will open a dialog box for selecting the folder where the
"lattice.txt" will be saved.