Efficient Synthesis of Feature Models Article Review By: Sigal Berkovitz & Yohai Vidergor.
-
Upload
junior-allen -
Category
Documents
-
view
216 -
download
3
Transcript of Efficient Synthesis of Feature Models Article Review By: Sigal Berkovitz & Yohai Vidergor.
Efficient Synthesis of Feature Models
Article Review By:Sigal Berkovitz & Yohai Vidergor
Basic Terminology
• CNF - Conjunctive Notation Form
• DNF - Disjunctive Notation Form
• BDD - Binary Decision Diagrams
• CVL - Common Variability Language
• DAG - Directed Acyclic Graph
• CTC - Cross Tree Constraint
• FGE - Feature Graph Extraction
Introduction
This paper addresses the problem of synthesis of feature models, which is the core algorithmic part of reverse engineering: to synthesize a feature model from a given set of dependencies.
Variability Modeling
Variability models are central to development and management of software product lines (SPL).
Feature models are one of the prominent notations used in variability modeling and will also be part of the CVL standard.
Automatic Synthesis of Feature Models
Step 1: DAG Hierarchy Recovery
Step 2: Group and CTC Recovery
Based on CNF / DNF Formulae
• The first step, DAG hierarchy recovery, takes the input
formula in either CNF or DNF, and produces a DAG that
contains all possible FM tree hierarchies.
• The second step, identifies all feature groups and CTCs
given the propositional formula, DAG and an optional tree
hierarchy. This step outputs a FM or a FG depending on
whether a tree hierarchy is provided as input or is not.
Workflow Scenarios
• Scenario 1
• Scenario 2
• Scenario 3
• Abstract Workflow
Algorithm
The algorithm synthesizes a diagrammatic representation of all possible feature diagrams that are compatible with the input constraints = Feature Graph.
AlgorithmThis algorithm was first introduced by Czarnecki and Wasowski and assumed the use of binary decision diagrams (BDDs) for reasoning.
This article’s contribution is the adaptation of this algorithm to support reasoning with a SAT solver on input in CNF and DNF[1].
Algorithm
Most complex stages to
compute are 11-13.
FGE - DNF vs FGE - CNF
Even though synthesis of or-groups is harder for CNF than for DNF, studying algorithms assuming CNF on input remains relevant.
Uses SAT solver.
Experiment
They implemented the algorithm using a open source SAT solver java interface, took feature models translated to CNF, DNF & BDD from a feature model repository and executed the algorithm with CNF vs BDD and DNF vs BDD.
Experiment (DNF vs BDD)
Experiment (CNF vs BDD)
Conclusions
• CNF based FGE can store more features than BDD(5000 vs 2000 features).
• CNF/DNF based FGE is at least 10 times
faster than previously known algorithms.
Tracing SPLs Precisely and Efficiently
Article Review By:Yohai Vidergor & Sigal Berkovitz
Terminology
SPL - Software Product Line
Scope- collection of features
Core Assets- collection of reusable components
QBF - Quantified Boolean Formulae
OVM - Orthogonal Variability Model
QSAT – Quantified SAT
Introduction
Specification
Implementation
Traceability
Introduction
in this article they address the problem of traceability between specifications and implementation in SPLs.
They talk about other articles in that field and explain why most of them don’t cover the “implement” relation between specification and implementation (and others as well).
Traceability (SAT vs QSAT)
One article which does talk about traceability between specification and implementation.
It uses other techniques (SAT) and they explain why it needs to be improved and how they did it with the new technique (QSAT) they show in this article.
Traceability & Implementation
All the PL features = Scope
Set of feature = Specification
All specifications = PL specification
All the PL components = Core Assets
Set of components = Implementation
All implementations = PL implementation
Implements
Realizes
In the above example, the implementation C1 realizes the specification {f1,f2} but it does not realize {f1} even though it provides the implementation of {f1}.
*Solves the packaging of components issue of the other techniques.
Covers & SPL Products
Covers - The set of products of the SPL are now defined as the specifications, and the implementation covering them through the traceability relation.
SPL Product - All specification-implementation pairs (F,C) where Covers(C, F).
SPL Properties
Completeness
Soundness
Tentially/Universally Explicit
Unique Implementation
Common/Live/Dead
SPL Properties
Superfluous
Redundant
Critical
Extraneous
SPLE
To check satisfiability of QBFs for SPL analysis they used a tool that receives the formula and returns true/false. They developed a tool (SPLE) that takes as input an SPL and runs the formulas using the CirQit tool to verify them.
Traceability Relations
Conclusion
• New definition for products in SPLs.
• Defined a set of analysis problems for SPLs.
• Formulated this problems to QBFs and
solved them with QSAT tools.
• QSAT is more efficient than SAT.