Formal Concept Analysis - HestiaProject/PAxSPL GitHub Wiki
Definition:
A mathematical method that provides a way to identify "meaningful groupings of objects that have common attributes".
Variations:
Clarified:
The context does not have duplicate rows or columns
Reduced:
No context rows can be expressed as intersection of other rows. The lattice of such context is meet-reduced. No context columns can be expressed as intersection of other columns. The lattice of such context is join-reduced
Priority Order:
Extraction > Categorize > Group
Inputs:
- Source Code
- Requirements List
- Design Models
- Any textual artifact
Outputs:
- Concept lattice.
Examples:
- (Eisenbarth et al. 2001)
- (Yang et al. 2009)
- (Eyal-Salman et al. 2014)
- (Eyal-Salman et al. 2013b)
- (AL-Msie'deen et al. 2013)
- (AL-Msie'deen et al. 2012)
- (Xue et al. 2012)
- (Maazoun et al. 2014a)
- (Maazoun et al. 2014b)
- (Mefteh et al. 2014)
Tools:
There are a lot of different tools and plugins for FCA that can be found in here
Related Techniques:
Recommended situations
Formal Concept Analysis is recommended when program elements (such as classes, methods, etc.) have meaningful names ("attribute" instead of "atr" or "home" instead of "hm"). Besides that, is highly recommended to use this technique in products well documented.
Not Recommended situations
A Information Retrieval Technique cannot achieve quality results when applied to products with no documentation and no meaningful identifiers names. For that reason we don't recommend the use of Formal Concept Analysis or any other Information Retrieval Technique in those situations.