FaMa-FW is a Framework for automated analyses of feature models integrating some of the most commonly used logic representations and solvers proposed in the literature (BDD, SAT and CSP solvers are implemented). FaMa is the first tool integrating different solvers for the automated analyses of feature models.
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 brieﬂy describe to understand the functionality and the ﬂexibility 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 ﬁnal 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 ﬁle loaders/savers into FAMA
FW.FAMA FW supports XML,AFM;DOT(GraphViz Representation) and X3D
(3D representation of feature models) ﬁle 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 ﬁlter 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 deﬁned 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.
- Metamodels: integrate your own variability or feature metamodel and ﬁle loaders/savers into FAMA FW.FAMA FW supports XML,AFM;DOT(GraphViz Representation) and X3D (3D representation of feature models) ﬁle formats by default.Also support by default Attributes with Plain text format
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:
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|
|Error Explanation||Yes|| Yes|
FAMA Framework (FAMA FW) is a tool for the automated analysis of variability models (VM). Its main objective is providing an extensible framework where current research on VM automated analysis might be developed and easily integrated into a final product.
FAMA FW is built following the SPL paradigm supporting different variability metamodels, reasoners or solvers, analysis questions and reasoner selectors, easing the production of customized VM analysis tools.
FAMA FW component-based architecture allows to extend or update FAMA FW by means of the so-called FAMA Extensions. We summarize the benefits of using FAMA FW:
- Easy to integrate: FAMA FW has a simple and stable front-end Java interface(QuestionTrader), implementing a query-based interaction.
- Easy to extend: FAMA FW architecture allows to extend or update existing products just by adding or updating its components or features. Third-parties are allowed to develop and integrated their own FAMA Extensions.
- Easy to configure: FAMA FW is configured by means of an unique XML file, asing its maintenance and configuration to adapt the tool to the user needs.
As Open Source Proyect, FaMa Team, has a lot of contributions from diferent sources, as other open source proyects, universities or people. Feel free to use FaMa and give your opinion or upgrade it, simple remember to mail us(firstname.lastname@example.org)
FaMa Team uses internally some of those products to enhance our productivity. Be sure that those pieces of software are great.
Sat4j is a java solver for SATisfiability problems.
CHOCO is a java library for constraint satisfaction problems (CSP) and constraint programming (CP). It is built on a event-based propagation mechanism with back-trackable structures.
JaCoP is a Finite Domain constraint solver
JavaBDD is a Java library for manipulating BDDs (Binary Decision Diagrams).
ANTLR, (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It’s widely used to build languages, tools, and frameworks.
Note: the list of publications is not exhaustive and is manually updated for the moment. For a more up-to-date list, we suggest to have a look also to FaMa team members’ web pages:
FAMA FW is the result of years of reseach on the software product line analysis field, concretly of automatic reaoning applied to product line analysis. The following papers put the basis for development of the tool: D. Benavides, P. Trinidad and A. Ruiz-Cortés. The 17th Conference on Advanced Information Systems Engineering (CAiSE’05): “Automated Reasoning on Feature Models”. Porto, Portugal. 2005.
The following papers moves inside the tool, showing the architecture, functionality and mechanism of FAMA FW:
- D. Benavides, S. Segura, P. Trinidad and A.Ruiz-Cortés. First International Workshop on Variability Modelling of Software-intensive Systems (VAMOS): FAMA: Tooling a Framework for the Automated Analysis of Feature Models. January 2007.
- P. Trinidad, D. Benavides, S. Segura, A. Ruiz-Cortés. XII Jornadas de Ingeniería del Software y Bases de Datos (JISBD’07): FAMA: hacia el análisis automático de modelos de características. 2007.
The following paper presents the feature model used by default in the tool:
- D. Benavides, S. Trujillo and P. Trinidad. First European WorkShop on Model Transformation (EWMT’05): On the Modularization of Feature Models. Rennes, France. 2005.
For more information, contact us at email@example.com