Location: Welcome > FaMa Framework

FaMa Framework



From our experience on feature model analysis we have performed a domain analysis process with the aim of detecting the common features of different analysis tools. Those features and the different extension points are part of the FAMA FW Core. The remaining features are provided as FAMA Extensions.


In the Figure above you may see a detailed description of FAMA FW architecture that we briefly describe to understand the functionality and the flexibility of the tool:

  • QuestionTrader: interfaces for a query-like interaction with FAMA FW. They are uncoupled from FAMA Core so changes on it does not affect the final user.
  • FAMA Core: communicates different extensions among them.
  • FAMA Extensions: set of modules that allows FAMA FW to adapt to user needs:
    • Metamodels: integrate your own variability or feature metamodel and file loaders/savers into FAMA FW.FAMA FW supports XML,AFM;DOT(GraphViz Representation) and X3D (3D representation of feature models) file formats by default.Also support by default Attributes with Plain text format
    • Reasoners: add new reasoners or solvers developed by third parties. By default, JavaBDD, Choco, JaCoP GPL and SAT4j are provided with the tool.
    • Questions: incorporate new reasoning operations. Products counting and listing, error detection and explanation, and products filter are included to date.
    • Reasoner Selector: select at runtime the reasoner to answer an analysis question among all the available reasoners and based on a previously defined criterion (performance, accuracy,...). FAMA FW allows to develop your own smart selectors.
    • Benchmarking: compare different reasoners performance for the same peration. A random feature model generator is provided allowing to store the data and results for a later analysis. Now Fama Benchmark is another powerfull tool that internally can use FaMa or another frameworks.
From version 0.9.2 FaMa is compatible with OSGi, this makes possible to integrate easy with other applications as each extension is now also an OSGi bundle. And the core consumes this extensions and give the necessary feedback

Designed as a PL

FAMA FW has been designed and developed as a Product Line, making a previous domain analysis, identifying the variation points and the variability subjects and providing variablility management mechanisms. In the figure below the feature diagram of the tool is showed:

Operations supported

The next figure shows the operations or questions currently supported for each reasoner included in the framework:

Question / Reasoner Sat4j Reasoner JavaBDD Reasoner Choco Reasoner JaCoP GPL Reasoner
Number of Products Yes Yes Yes Yes
Filter Yes Yes Yes Yes
Products Yes Yes Yes Yes
Validation Yes Yes Yes Yes
Optimum Products

Yes
Yes
Error Detection
  Yes Yes
Error Explanation

Yes Yes
Commonality Yes Yes Yes Yes
Valid Configuration
YesYesYesYes
Variability
Yes
YesYesYes
Valid Product
YesYesYesYes
ConfigurationErrors


Yes

OneProduct
Yes
YesYesYes