hiconfit / hiconfit-core Goto Github PK
View Code? Open in Web Editor NEWA set of Maven-based libraries for High-Performance Knowledge Based Configuration Techniques
Home Page: http://hiconfit.manleviet.info
License: MIT License
A set of Maven-based libraries for High-Performance Knowledge Based Configuration Techniques
Home Page: http://hiconfit.manleviet.info
License: MIT License
To support CodeOcean
5 models from Siemens
Migrate the WipeOutR_FM algorithm from https://github.com/AIG-ist-tugraz/WipeOutR.
Please take a look at:
New unit test of CA-CDR for DirectDebug need this
Try the annotator of ANTLR4 to share information among event methods
Add the following classes:
Support these classes in KB, FMKB, PCKB, CameraKB, and RenaultKB.
And delete test-v2 package
Use Joiner.join...
Migrate KBDiagLabeler and KBDiagParameter to CA-CDR-V2
After cloning, the new model needs to be initialized.
An app filter out feature models that don't satisfy requirements
// filter out wrong feature models, for example,
// inconsistent
// don't have any constraints
// don't have any mandatory relationships
// don't have any optional relationships
// don't have any alternative relationships
// don't have any or relationships
// the ratio between cross-tree constraints and all constraints is less than 0.1
if (filter
&& (!featureModel.isConsistency()
|| featureModel.getNumOfConstraints() == 0
|| featureModel.getNumOfRelationships(RelationshipType.MANDATORY) == 0
|| featureModel.getNumOfRelationships(RelationshipType.OPTIONAL) == 0
|| featureModel.getNumOfRelationships(RelationshipType.ALTERNATIVE) == 0
|| featureModel.getNumOfRelationships(RelationshipType.OR) == 0
|| ctc < 0.1))
continue;
The FeatureModel class will become FeatureModel<F, R>, where F stands for Feature and R stands for Relationship.
The Feature class maybe become IFeature.
Classes:
@taburg recreate new package at.tugraz.ist.ase.fm.cove-v2 and (maybe) at.tugraz.ist.ase.fm.parser-v2, in which contain a new structure (tree) for feature model.
Maybe take a look at IFeatureModel of FeatureIDE https://github.com/FeatureIDE/FeatureIDE/blob/develop/plugins/de.ovgu.featureide.fm.core/src/de/ovgu/featureide/fm/core/io/xml/XmlFeatureModelFormat.java
Need to change the core of fm-package to support complex constraints
An example:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<featureModel>
<properties>
<graphics key="autolayoutconstraints" value="false"/>
<graphics key="legendautolayout" value="true"/>
<graphics key="showshortnames" value="false"/>
<graphics key="layout" value="horizontal"/>
<graphics key="showcollapsedconstraints" value="true"/>
<graphics key="legendhidden" value="false"/>
<graphics key="layoutalgorithm" value="1"/>
</properties>
<struct>
<and abstract="true" mandatory="true" name="test1">
<and mandatory="true" name="A">
<feature mandatory="true" name="AA"/>
<feature name="AB"/>
<feature name="AC"/>
<or mandatory="true" name="AD">
<feature name="ADA"/>
<feature name="ADB"/>
</or>
</and>
<and name="B">
<feature mandatory="true" name="BA"/>
<feature name="BB"/>
<feature name="BC"/>
</and>
<or name="C">
<feature name="CA"/>
<feature name="CB"/>
<feature name="CC"/>
</or>
<alt mandatory="true" name="D">
<or name="DA">
<feature name="DAA"/>
<feature name="DAB"/>
</or>
<feature name="DB"/>
</alt>
</and>
</struct>
<constraints>
<rule>
<imp>
<var>AB</var>
<not>
<var>CB</var>
</not>
</imp>
</rule>
<rule>
<imp>
<var>AC</var>
<not>
<var>CC</var>
</not>
</imp>
</rule>
<rule>
<not>
<conj>
<var>ADA</var>
<var>AB</var>
</conj>
</not>
</rule>
<rule>
<disj>
<var>ADB</var>
<not>
<var>BC</var>
</not>
</disj>
</rule>
<rule>
<disj>
<var>BC</var>
<imp>
<var>CA</var>
<var>CB</var>
</imp>
</disj>
</rule>
<rule>
<imp>
<var>DAA</var>
<not>
<conj>
<var>AB</var>
<var>AC</var>
</conj>
</not>
</imp>
</rule>
<rule>
<imp>
<var>AB</var>
<disj>
<var>AC</var>
<not>
<var>DAB</var>
</not>
</disj>
</imp>
</rule>
<rule>
<imp>
<var>DB</var>
<not>
<not>
<var>AB</var>
</not>
</not>
</imp>
</rule>
<rule>
<imp>
<var>DB</var>
<not>
<not>
<not>
<not>
<var>AC</var>
</not>
</not>
</not>
</not>
</imp>
</rule>
<rule>
<imp>
<var>DAA</var>
<disj>
<var>AB</var>
<not>
<var>AC</var>
</not>
</disj>
</imp>
</rule>
</constraints>
</featureModel>
Implementation of some automated analysis of feature models.
Ex:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.