/feature-model-batch-analysis

Computes several structural and semantic metrics for a batch of feature models

Primary LanguageJavaGNU Lesser General Public License v3.0LGPL-3.0

Feature-Model Batch Analysis

This repository can be used to analyze a batch of feature models using FeatureIDE. The feature models can be of any format that is supported by FeatureIDE, namely the FeatureIDE format (xml), SXFM, UVL, and DIMACS. As input a path to either a directory or a feature-model file is expected. If given a directory path, the tool computes the metrics for every feature model in the directory recursively.

Building

The project is built using gradle. While you can use the provided wrapper ./gradlew, you still need to install gradle on your system.

For model counting, we use d4 for which we only provide a Linux binary. Here, we provide pre-built binaries for Windows, Mac, and Linux.

Usage

Only tested with Ubuntu 22.04LTS, binaries have to be recompiled!

To run use ./gradlew run --args=<path> [OPTIONS]

Available options are:

  • Mandatory argument([0]): Input path
  • Optional Argument([1]): Analysis category: All (chosen if not set), Default, Simple, CNF, Satzilla
  • Optional Argument([2]): Output path results
  • Optional Argument([3]): Output path time
  • Optional Argument([4]): Output path runstatus

An example executing all default analyses on all models in models:

./gradlew run --args=models default