Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Downloading and Installing FAMILIAR

We provide different solutions for using FAMILIAR:

FAMILIAR environment

This is the standalone graphical version, or simply called the FAMILIAR Environment. The tool was developed using Java with Prefuse visualization toolkit and AWT/Swing. It offers fully integrated modeling environment which includes the FAMILIAR Editor, Console and Language. It is designed to provide an intuitive and easy to use user interface allowing (non-expert) users to build Feature Models and reason about them.

Watch the FAMILIAR Tool demo on Screencast.com: http://www.screencast.com/t/1oJBNwvw5f41

The FAMILIAR Tool is available for download as a JAR file: 1.1

Basic environment

The standalone version is simply a JAR file that supports console mode only.

Available here: 1.1

java -jar -Xmx1024M FML-basic-1.1.jar --help

Usage: java FML
                [-v|--verbose] [-h|--help] [--version] [(-p|--path)[:paths1,paths2,...,pathsN ]] [(-o|--output) <output>] [<filename>]

        Requests verbose output.


        Version of FAMILIAR

  [(-p|--path)[:paths1,paths2,...,pathsN ]]
        Paths to consider (FAMILIAR files should be located in those paths)

  [(-o|--output) <output>]
        Output folder where FAMILIAR files are produced.

        FAMILIAR file to interpret.

Here is an example session (you can download the foo.fml script):

scriptsRepository $ java -jar -Xmx1024M FML-basic-1.1.jar foo.fml 
FAMILIAR (for FeAture Model scrIpt Language for manIpulation and Automatic Reasoning)  version 1.1 (beta)
fml> ls
fml> fm1
fm1: (FEATURE_MODEL) A: [D] B C ; 
(D -> C);
fml> renameFeature fm1.A as "AAA"
res0: (BOOLEAN) true
fml> fm1
fm1: (FEATURE_MODEL) AAA: [D] B C ; 
(D -> C);
fml> c1 = configuration fm1
c1: (CONFIGURATION) selected: [AAA, B, C]   deselected: []
fml> select D in c1
res1: (BOOLEAN) true
fml> c1
c1: (CONFIGURATION) selected: [D, AAA, B, C] 	 deselected: []
fml> c2 = configuration fm1
c2: (CONFIGURATION) selected: [AAA, B, C] 	 deselected: []

Another more funny session is here. Look at the poster, the "corresponding" FAMILIAR script poster.fml and the FAMILIAR output below:

scriptsRepository macher1$ java -jar -Xmx1024M ../release/FML-basic-1.1.jar 
FAMILIAR (for FeAture Model scrIpt Language for manIpulation and Automatic Reasoning)  version 1.1 (beta)
fml> run "poster.fml"
fmASE: (FEATURE_MODEL) Slicing: Technique [FutureWork] Motivation Paper Algorithm Support ; 
Technique: (ReasoningWithTwoKindsOfVariability|UpdatingAndExtractingViews|ReconcilingFMs)+ ; 
Motivation: (MultipleInterRelatedFMs|LargeAndComplexFMs)+ ; 
Paper: (Short|Long|Demonstration)+ ; 
Algorithm: (SyntacticalTechnique|SemanticsAware) [PropositionalLogics] [Semantics] [CorrectiveCapabilities] [RootSupport] [SupportForConstraints] ; 
Support: [Language] [Environment] [Automation] ; 
Demonstration: CaseStudy ; 
Semantics: Hierarchy [SetOfConfigurations] ; 
Environment: (Eclipse|Standalone)+ [Editors] ; 
Automation: (SAT|BDD)+ ; 
CaseStudy: (MedicalImagingWorkflows|VideoSurveillanceProcessingChains|ReverseEngineeringSoftwareArchitecture) ; 
Editors: [GraphicalEditor] [TextualEditor] ; 
(CorrectiveCapabilities -> SupportForConstraints);
(TextualEditor -> Eclipse);
(CorrectiveCapabilities -> SemanticsAware);
(SetOfConfigurations <-> SemanticsAware);
(Algorithm <-> RootSupport);
(Language -> TextualEditor);
(Algorithm <-> CorrectiveCapabilities);
(Algorithm <-> Semantics);
(SemanticsAware -> Automation);
fmSemantics: (FEATURE_MODEL) Semantics: Hierarchy SetOfConfigurations ;
fmAlgorithm: (FEATURE_MODEL) Algorithm: RootSupport SupportForConstraints SemanticsAware ;
fmEnvironment: (FEATURE_MODEL) Slicing: Technique [CaseStudy] ; 
Technique: (ReasoningWithTwoKindsOfVariability|UpdatingAndExtractingViews|ReconcilingFMs)+ ; 
CaseStudy: (MedicalImagingWorkflows|VideoSurveillanceProcessingChains|ReverseEngineeringSoftwareArchitecture) ;
fmSupport: (FEATURE_MODEL) Support: Language Environment Automation TextualEditor ; 
Environment: Eclipse [Standalone] ; 
Automation: (SAT|BDD)+ ;
rootE: (FEATURE) Slicing
res4: (BOOLEAN) true

Eclipse Plugin

The Eclipse update site is down, we will fix it ASAP

The Eclipse plugin requires Java 1.6 and Eclipse Juno (>= 4.2) with Xtext 2.0