hiconfit-core
v1.0
hiconfit-core provides a set of Maven-based libraries for High-Performance Knowledge Based Configuration Techniques.
Key libraries
ca-cdr
ca-cdr offers Consistency-based Algorithms for Conflict Detection and Resolution.
Conflict Detection and Resolution (CDR) is a substantial task in Knowledge Base Engineering (KBE). ca-cdr publishes our implementations of CDR consistency-based algorithms, which can be applied throughout all phases of KBE, i.e., design, testing and debugging, and configuration.
- QuickXPlain [1]
- FastDiag [2]
- MSS-based FastDiag [15]
- FlexDiag [3]
- HS-tree [8]
- HSDAG [9]
- DirectDebug [4, 5, 6, 7]
- DirectDiag
- WipeOutR_T [12, 13]
- WipeOutR_FM [12, 13]
- AggregatedTest [14] COMING SOON
- LevelWiseParallelHSDAG [10, 11] COMING SOON
- FullParallelHSDAG [10, 11] COMING SOON
- FastDiagP [15, 16] COMING SOON
- KBDiag [the related paper submitted on April 2023] COMING SOON
- InformedQX COMING SOON
- ParallelWipeOutR_T COMING SOON
- ParallelWipeOutR_FM COMING SOON
fma
fma is a Feature Model Testing and Debugging library.
The library provides a mechanism to automatically generate property-based test cases and allows the automated determination of faulty elements in feature models.
Two key features:
- fma provides a mechanism to automatically generate property-based test cases for feature models. Test cases are generated based on six basic analysis operations, including void feature models, dead features, conditionally dead features, full mandatory features, false optional features, and redundant constraints, which are considered anomalies in feature models.
- On the basis of the generated test cases, fma allows checking whether a feature model contains one or more of these six anomalies and executes asynchronous test case validation as well as corresponding diagnosis. It uses three algorithms, namely DirectDebug, WipeOutR_FM, and HSDAG, to determine all explanations for the anomalies in the feature model.
configurator
configurator offers a compact knowledge-based configurator that supports the state-of-the-art Matrix Factorization-based Configuration and Recommendation.
All libraries of hiconfit-core
hiconfit-core is organized in 11 following Maven libraries:
library | description |
---|---|
common | provides utility functions |
csp2choco | provides a translator converting CSP constraints into Choco Solver commands |
eval | provides a performance evaluator, including counters and timers, to measure the performance of algorithms |
fm | provides the management functionalities for basic feature models |
kb | provides classes managing CSP (Choco) representations of a knowledge base/feature model |
ca-cdr-core | provides core classes for representing user requirements and solutions of a configurator as well as for managing test cases and test suites |
cdrmodel | provides a programmatic approach to manage/prepare the constraints/test cases for consistency-based algorithms |
ca-cdr | provides implementations of Consistency-based Algorithms for Conflict Detection and Resolution (CA-CDR) and a ChocoConsistencyChecker |
heuristics | provides an implementation of Matrix Factorization Based Variable and Value Ordering Heuristics for Constraint Solving and a wrapper for Matrix Factorization algorithm on the basis of the Mahout library |
configurator | provides a compact knowledge-based configurator supporting Matrix Factorization based Configuration and Recommendation |
fma | provides a mechanism to automatically generate property-based test cases for feature models and allows the automated determination of faulty constraints in the feature model |
The following diagram shows the libraries’ dependency.
flowchart BT
subgraph hiconfit-core
A([common]) --> B([csp2choco])
A --> C([fm])
A --> D([eval])
D --> F([kb])
C --> F
F --> G([ca-cdr-core])
G --> H([cdrmodel])
B --> H
G --> I([heuristics])
H --> J([ca-cdr])
I --> L([configurator])
J --> L
J --> K([fma])
end
subgraph Third-party libraries
E([sxfm]) --> C
end