INumericElement is a generic interface defining basic arithmetic operations required during MICMAC processing (or any variant of it). Any new datatype (such as integer or real values, TFNs, linguistic labels without a TFN, etcetera) that is to be used for representing the mutual relations of the MDI should implement all the operations of this interface.
TriangularFuzzyElement contains the representation of a triangular fuzzy number that has a linguistic label associated to it. This class implements the INumericElement interface. This means there are methods for fuzzy arithmetic (including distance and defuzzification) but also more specific methods for getting and setting the values defining the TFN and its label. The class itself also stores the set of input and output reference TFNs and their labels, which are to be taken as reference.
RealElement is our own implementation of the usual Double class. It implements the INumericElement interface and provides roughly the same arithmetical operations of TriangularFuzzyElement, except defuzzification and label-related methods.
MicmacVariable contains all the results (direct/indirect influence and dependence, and direct/indirect ranks of the variable) uncovered at the end of the processing about a specific variable of the problem. The datatype of such information depends on the variant of MICMAC that is being used, since a MicmacVariable object stores generic INumericElement references. If CrispMICMAC has been executed, the references will point to RealElement objects. If FLMICMAC has been run, they will point to TriangularFuzzyElement objects. This is an important point because, in case further operations are going to be done with the results, the user should cast the INumericElement objects returned by the getters of MicmacVariable to one of those specific classes according to the former criterion.
FLMICMAC is the most important class where the FLMICMAC algorithm is implemented. It has separate methods to run the algorithm, generate the Excel output file, and write heat-maps and influence/dependence plots to image files. Typically, the user will create a single object of this class with a parameter-free constructor, call a method to read the input parameters such as number of values, input and output labels to be used (sorted from smallest to greatest) and location of the Excel input file, and then run the processing with the data. After this, the methods for generating the plots can be invoked if necessary. If the results will be used for further processing in a larger program, all the output information of each variable can be retrieved with the getVariables() method, which returns an array of VariableMicmac objects (one per variable). Each of them contains the direct and indirect influence and dependence of that variable, stored as TriangularFuzzyElement objects.
CrispMICMAC implements the classic MICMAC method and provides roughly the same methods to generate the Excel output file and plot image files. Output influence and dependence computed by the algorithm are real numbers that are stored as RealElement objects inside the VariableMicmac object corresponding to each variable.
The Excel file used as input can be downloaded here