SlideShare a Scribd company logo
1 of 39
Juan Carlos Navarro
Jaime Chavarriaga
Using Microsoft
Solver Foundation to
analyze Feature
Models and
Configurations
1
Context
• Feature Models are the de facto standard for
documenting, checking and reasoning about the
configurations of a software system
• Well-known Applications:
• Domain Analysis in Software Product Lines
• Engineering of Product Configurators
2
Domain Analysis for Product Lines
MS Office
It is a Software
Product Line
Multiple products are
built based on a
predefined set of
assets (components)
3
Domain Analysis for Product Lines
MS Office
4
Domain Analysis for Product Lines
Feature Model
Represents the
variability of the
products
5
• C1 = { Word, Excel, Powerpoint, OneNote}
• C2 = { Word, Excel, Powerpoint, OneNote , Access}
• C3 = { Word, Excel, Powerpoint, OneNote , Access, Publisher}
• C4 = { Word, Excel, Powerpoint, OneNote, Outlook}
• C5 = { Word, Excel, Powerpoint, OneNote , Access, Outlook}
• C6 = { Word, Excel, Powerpoint, OneNote , Access, Publisher, Outlook}
Domain Analysis for Product Lines
Feature
Configuration
Represents a
selection of features
6
Domain Analysis for Product Lines
Variability
Analysis
There are features
common to all the
products and
features that are
optional
7
Commonalities Variabilities
• C1 = { Word, Excel, Powerpoint, OneNote}
• C2 = { Word, Excel, Powerpoint, OneNote , Access}
• C3 = { Word, Excel, Powerpoint, OneNote , Access, Publisher}
• C4 = { Word, Excel, Powerpoint, OneNote, Outlook}
• C5 = { Word, Excel, Powerpoint, OneNote , Access, Outlook}
• C6 = { Word, Excel, Powerpoint, OneNote , Access, Publisher, Outlook}
Problem (I)
8
Given a Feature
Model for a
Family of
Products…
• Is this model valid?
• Are there constraints that cannot be satisfied at the
same time?
• All the features can be selected by a user ?
• Which features cannot be selected?
Related Work
There are some proposals to analyze feature models
Approach Representative works
Propositional Logic Convert FM to
propositional logic
expressions
Batory[2005],
Czarnecki[2005],
Gheyi[2006],
Mendonca[2010]
CSP Convert FMs to Constraint
Satisfaction Problems
Benavides[2005],
Karatas[2010],
Alvarez[2011],
Mazo[2011]
Description Logics Convert FMs to
Ontologies
Zaho[2004],
Fan [2006],
Wang [2007]
Others Use other processing
techniques
Mannion[2002],
Janota[2007],
Gheyi[2008],
Van der Broek [2010] 9
Related Work
Existing tools and libraries
Scope Technology
SPLOT Supports feature model and
configuration validation. Also it
supports configuration processes.
Java
FAMA Supports feature model and
configuration validation. Partial
supports configuration processes
Java
FAMILIAR Provides a DSL to process feature
models. Support validation and
configuration processes.
Java
10
Problem (II)
• Existing works cannot be used in .Net Platforms
• Existing works do not use CSP + Optimization
Solvers such as the MS Solver Foundation.
11
How can we analyse
Feature Models and Configurations
using
Microsoft Solver Foundation?
12
Our Approach
❶ Understand semantics for
Feature Models and Configurations
❷ Take the Models and Configurations and
Convert them to CSP/Optimization Problems
❸ Take these CSP/Optimization problems and
Solve it using MS solver Foundation
❹ Provide an
implementation and evaluation
13
❶ Feature Models and
Configurations Semantics
14
Feature Model Semantics
15
Root
X
Y
X
Y
Root (Concept).
It must be selected
Mandatory.
If X is selected,
Y must be selected
Optional.
If X is selected,
Y can be (or not)
selected
X
Y1 Yi…
Y1 Yi…
X
X Y
X Y
Or-Group.
If X is selected, one or
more of Y1, .., Yi
must be selected.
Alternative-Group.
If X is selected, only one
of Y1, .., Yi
must be selected.
Requires
If X is selected, Y
must be selected.
Excludes
If X is selected, Y
must be not selected.
e.g., a FM for Cell Phones
16
Cellular Phone
Normal
Touch
Screen
External
Memory
KeyPad Small
Size
Large
Size
LCD
Input
Device
Battery
excludes
requires
Stylus
Feature Configuration
17
C1 = { CellularPhone, LCD, TouchScreen, InputDevice, Stylus,
Battery, LargeSize}
valid
Cellular Phone
Normal
Touch
Screen
External
Memory
KeyPad Small
Size
Large
Size
LCD
Input
Device
Battery
excludes
requires
Stylus
Feature Configuration
18
C1 = { CellularPhone, LCD, TouchScreen, InputDevice, Stylus,
Battery, SmallSize}
invalid
Cellular Phone
Normal
Touch
Screen
External
Memory
KeyPad Small
Size
Large
Size
LCD
Input
Device
Battery
excludes
requires
Stylus
❷ Converting Feature Models
and Configurations to
CSP/Optimization Problems
19
Converting a Feature Model
20
Root
X
Y
X
Y
Root (Concept).
𝑟 = 1
Mandatory.
𝑥 = 𝑦
Optional.
𝑥 ≥ 𝑦
X
Y1 Yi…
Y1 Yi…
X
X Y
X Y
Or-Group.
𝑥 = 1 → 𝑦𝑖 ≥ 1
Alternative-Group.
𝑥 = 1 → 𝑦𝑖 = 1
Requires
𝑥 ≤ 𝑦
Excludes
𝑥 + 𝑦 ≤ 1
e.g., a FM for Cell Phones
• 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒 = 1
• 𝐿𝐶𝐷 = 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒
• 𝐿𝐶𝐷 = 𝑇𝑜𝑢𝑐ℎ𝑆𝑐𝑟𝑒𝑒𝑛 + 𝑁𝑜𝑟𝑚𝑎𝑙
• 𝐼𝑛𝑝𝑢𝑡𝐷𝑒𝑣𝑖𝑐𝑒 = 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒
• 𝐿𝐶𝐷 = 1 → 𝐾𝑒𝑦𝑃𝑎𝑑 + 𝑆𝑡𝑦𝑙𝑢𝑠 ≥ 1
• 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒 ≥ 𝐸𝑥𝑡𝑀𝑒𝑚𝑜𝑟𝑦
• 𝐵𝑎𝑡𝑡𝑒𝑟𝑦 = 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒
• 𝐵𝑎𝑡𝑡𝑒𝑟𝑦 = 𝑆𝑚𝑎𝑙𝑙𝑆𝑖𝑧𝑒 + 𝐿𝑎𝑟𝑔𝑒𝑆𝑖𝑧𝑒
• 𝑁𝑜𝑟𝑚𝑎𝑙 + 𝑆𝑡𝑦𝑙𝑢𝑠 ≤ 1
• 𝑇𝑜𝑢𝑐ℎ𝑆𝑐𝑟𝑒𝑒𝑛 ≤ 𝐿𝑎𝑟𝑔𝑒𝑆𝑖𝑧𝑒
Cellular Phone
Normal
Touch
Screen
External
Memory
KeyPad Small
Size
Large
Size
LCD
Input
Device
Battery
excludes
requires
Stylus
❸Solving CSP/Optimization
Problems using
MS Solver Foundation
22
Analysis Operations
Benavides et al. have defined some operations:
• Validating a Feature Model: there is at least one valid
configuration
• Validating a Product Configuration
• Validating a Partial Configuration
• Obtaining all the valid Product Configurations
• Calculating the number of Product Configurations
• Obtaining core features (mandatory)
• Obtaining dead features (non-selectable)
• Obtaining variant features
Operations: Validating a FM
ConvertFM( fm ) : ConstraintSystem
ConstraintSystem model;
model = ConstraintSystem.CreateSolver();
:
// introduces variables and constraints
:
return model;
Operations: Validating a FM
IsValid( ConstraintSystem model )
ConstraintSolverSolution solution = model.Solve();
return solution.HasFoundSolution;
Operations: Obtaining all Products
GetAllProducts( ConstraintSystem model )
List <Configuration> list;
list = new List <Configuration>() ;
ConstraintSolverSolution solution = model.Solve();
while ( solution.HasFoundSolution )
{
list.Add(new Configuration( solution ));
}
return list ;
Operations: Core Features
GetDeadFeatures( List<Feature> features, ConstraintSystem
model )
List <Feature> list = new List <Feature>();
foreach ( Feature f in features )
{
CspTerm constraint = model.Equal (0 , f);
model.AddConstraints ( constraint );
ConstraintSolverSolution solution = model.Solve();
if (! solution.HasFoundSolution )
{
list.Add(f);
}
model.RemoveConstraints( constraint );
}
return list ;
Operations: Dead Features
GetDeadFeatures( List<Feature> features, ConstraintSystem
model )
List <Feature> list = new List <Feature>();
foreach ( Feature f in features )
{
CspTerm constraint = model.Equal (1 , f);
model.AddConstraints ( constraint );
ConstraintSolverSolution solution = model.Solve();
if (! solution.HasFoundSolution )
{
list.Add(f);
}
model.RemoveConstraints( constraint );
}
return list ;
Operations: Validating a Config
IsValidConfiguration(Configuration config , List <Feature>
features , ConstraintSystem model )
foreach ( Feature f in features )
{
if ( config.Contains(f))
model.AddConstraints ( model.Equal (1 , f));
else
model.AddConstraints ( model.Equal (0 , f));
}
ConstraintSolverSolution solution = model.Solve() ;
return solution.HasFoundSolution ;
Operations: Partial Config
IsValidPartialConfiguration(Configuration config , List
<Feature> features , ConstraintSystem model )
foreach ( Feature f in features )
{
if ( config.Contains(f))
model.AddConstraints ( model.Equal (1 , f));
}
ConstraintSolverSolution solution = model.Solve() ;
return solution.HasFoundSolution ;
❹ Implementation and
Evaluation
31
Implementation & Evaluation
Implementation
https://github.com/FaMoSA/fma.net
• A .Net based library
• Can load SPLOT, FeatureIDE and FAMA feature models.
• Can process feature models and configuration using MS
Solver Foundation
32
Implementation & Evaluation
Evaluation
• Test with: Fama Test Suite
http://www.isa.us.es/fama/?FaMa_Test_Suite
• Test with models from SPLOT
http://www.splot-research.org/
• Test with Feature IDE test suite
http://wwwiti.cs.uni-magdeburg.de/iti_db/research/featureide/
Our implementation performs the analysis correctly.
33
Validate Model Performance
34
It may take 10 – 26 milliseconds.
Other solvers take between 10 – 30 ms
All Products Performance
35
Depends on the # of products.
It invokes the solver for each product.
Dead Features Performance
36
Depends on the # of features.
It invokes the solver for each feature.
Conclusions
• Our approach
• Implements the operations defined by Benavides et al.
• Works on .Net platforms
• Obtains the same results that the other libraries.
• Performs as fast as the related solutions in Java.
37
Conclusions
• However, our implementation
• Does not support optimizations proposed by other
authors (e.g., by combining solvers or by eliminating
non-relevant features from the processing)
• Does not support transforming operations such as slice r
merge of feature models
• Does not support operations for product configuration
such as recommending or optimizing selections.
• Future work is planned to implement optimizations
and additional operations using the MS Solver
Foundation.
38
Questions?
Juan Carlos Navarro
juan-navarro@unipiloto.edu.co
Jaime Chavarriaga
ja.chavarriaga908@uniandes.edu.co
39

More Related Content

Viewers also liked

Social stuff!!
Social stuff!!Social stuff!!
Social stuff!!moonaustin
 
Literate environment analysis presentation
Literate environment analysis presentationLiterate environment analysis presentation
Literate environment analysis presentationKristinTallon
 
Review side chair set of 2 finish oak
Review side chair set of 2 finish oakReview side chair set of 2 finish oak
Review side chair set of 2 finish oaki love dolphin
 
Search Strategy
Search StrategySearch Strategy
Search StrategySuv Sahoo
 
Introduction to 3d printing
Introduction to 3d printingIntroduction to 3d printing
Introduction to 3d printingBrian Bass
 
Grille entraînement copie 3
Grille entraînement   copie 3Grille entraînement   copie 3
Grille entraînement copie 3FrauA
 

Viewers also liked (12)

Social stuff!!
Social stuff!!Social stuff!!
Social stuff!!
 
Literate environment analysis presentation
Literate environment analysis presentationLiterate environment analysis presentation
Literate environment analysis presentation
 
La ciudad
La ciudadLa ciudad
La ciudad
 
Review side chair set of 2 finish oak
Review side chair set of 2 finish oakReview side chair set of 2 finish oak
Review side chair set of 2 finish oak
 
Search Strategy
Search StrategySearch Strategy
Search Strategy
 
Practica 3
Practica 3Practica 3
Practica 3
 
Nespresso
NespressoNespresso
Nespresso
 
Introduction to 3d printing
Introduction to 3d printingIntroduction to 3d printing
Introduction to 3d printing
 
Grille entraînement copie 3
Grille entraînement   copie 3Grille entraînement   copie 3
Grille entraînement copie 3
 
Un Nuevo Amanecer
Un Nuevo AmanecerUn Nuevo Amanecer
Un Nuevo Amanecer
 
Kisan credit card
Kisan credit cardKisan credit card
Kisan credit card
 
Febre reumatica
Febre reumaticaFebre reumatica
Febre reumatica
 

Similar to Analyzing Feature Models and Configurations using Microsoft Solver Foundation

Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019XavierDevroey
 
1.microsoft visual studio 2010 test manager
1.microsoft visual studio 2010  test manager1.microsoft visual studio 2010  test manager
1.microsoft visual studio 2010 test managerAshwin Jujgar
 
Whole Platform LWC11 Submission
Whole Platform LWC11 SubmissionWhole Platform LWC11 Submission
Whole Platform LWC11 SubmissionRiccardo Solmi
 
Software variability management - 2017
Software variability management - 2017Software variability management - 2017
Software variability management - 2017XavierDevroey
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 
Build, Test and Extend Integrated Workflows 3.7
Build, Test and Extend Integrated Workflows 3.7Build, Test and Extend Integrated Workflows 3.7
Build, Test and Extend Integrated Workflows 3.7StephenKardian
 
Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014Red Gate Software
 
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Xpand IT
 
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...Codecamp Romania
 
Database Fundamental Concepts- Series 1 - Performance Analysis
Database Fundamental Concepts- Series 1 - Performance AnalysisDatabase Fundamental Concepts- Series 1 - Performance Analysis
Database Fundamental Concepts- Series 1 - Performance AnalysisDAGEOP LTD
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databasesAlessandro Alpi
 
Developing Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software SystemsDeveloping Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software Systems James Hill
 
Learning on Deep Learning
Learning on Deep LearningLearning on Deep Learning
Learning on Deep LearningShelley Lambert
 
Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon
 
FUNTASY - Functional testing automated system
FUNTASY - Functional testing automated systemFUNTASY - Functional testing automated system
FUNTASY - Functional testing automated systemQualitest
 
2014 International Software Testing Conference in Seoul
2014 International Software Testing Conference in Seoul2014 International Software Testing Conference in Seoul
2014 International Software Testing Conference in SeoulJongwook Woo
 
VAST 7.5 and Beyond
VAST 7.5 and BeyondVAST 7.5 and Beyond
VAST 7.5 and BeyondESUG
 
Testing Frameworks
Testing FrameworksTesting Frameworks
Testing FrameworksMoataz Nabil
 

Similar to Analyzing Feature Models and Configurations using Microsoft Solver Foundation (20)

Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019
 
1.microsoft visual studio 2010 test manager
1.microsoft visual studio 2010  test manager1.microsoft visual studio 2010  test manager
1.microsoft visual studio 2010 test manager
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Whole Platform LWC11 Submission
Whole Platform LWC11 SubmissionWhole Platform LWC11 Submission
Whole Platform LWC11 Submission
 
DelOps vs. DevOps
DelOps vs. DevOpsDelOps vs. DevOps
DelOps vs. DevOps
 
Software variability management - 2017
Software variability management - 2017Software variability management - 2017
Software variability management - 2017
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
Build, Test and Extend Integrated Workflows 3.7
Build, Test and Extend Integrated Workflows 3.7Build, Test and Extend Integrated Workflows 3.7
Build, Test and Extend Integrated Workflows 3.7
 
Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014
 
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
 
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
 
Database Fundamental Concepts- Series 1 - Performance Analysis
Database Fundamental Concepts- Series 1 - Performance AnalysisDatabase Fundamental Concepts- Series 1 - Performance Analysis
Database Fundamental Concepts- Series 1 - Performance Analysis
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
 
Developing Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software SystemsDeveloping Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software Systems
 
Learning on Deep Learning
Learning on Deep LearningLearning on Deep Learning
Learning on Deep Learning
 
Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016
 
FUNTASY - Functional testing automated system
FUNTASY - Functional testing automated systemFUNTASY - Functional testing automated system
FUNTASY - Functional testing automated system
 
2014 International Software Testing Conference in Seoul
2014 International Software Testing Conference in Seoul2014 International Software Testing Conference in Seoul
2014 International Software Testing Conference in Seoul
 
VAST 7.5 and Beyond
VAST 7.5 and BeyondVAST 7.5 and Beyond
VAST 7.5 and Beyond
 
Testing Frameworks
Testing FrameworksTesting Frameworks
Testing Frameworks
 

Recently uploaded

Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsDEEPRAJ PATHAK
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Key Steps in Agile Software Delivery Roadmap
Key Steps in Agile Software Delivery RoadmapKey Steps in Agile Software Delivery Roadmap
Key Steps in Agile Software Delivery RoadmapIshara Amarasekera
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 

Recently uploaded (20)

Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software Projects
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Key Steps in Agile Software Delivery Roadmap
Key Steps in Agile Software Delivery RoadmapKey Steps in Agile Software Delivery Roadmap
Key Steps in Agile Software Delivery Roadmap
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 

Analyzing Feature Models and Configurations using Microsoft Solver Foundation

  • 1. Juan Carlos Navarro Jaime Chavarriaga Using Microsoft Solver Foundation to analyze Feature Models and Configurations 1
  • 2. Context • Feature Models are the de facto standard for documenting, checking and reasoning about the configurations of a software system • Well-known Applications: • Domain Analysis in Software Product Lines • Engineering of Product Configurators 2
  • 3. Domain Analysis for Product Lines MS Office It is a Software Product Line Multiple products are built based on a predefined set of assets (components) 3
  • 4. Domain Analysis for Product Lines MS Office 4
  • 5. Domain Analysis for Product Lines Feature Model Represents the variability of the products 5
  • 6. • C1 = { Word, Excel, Powerpoint, OneNote} • C2 = { Word, Excel, Powerpoint, OneNote , Access} • C3 = { Word, Excel, Powerpoint, OneNote , Access, Publisher} • C4 = { Word, Excel, Powerpoint, OneNote, Outlook} • C5 = { Word, Excel, Powerpoint, OneNote , Access, Outlook} • C6 = { Word, Excel, Powerpoint, OneNote , Access, Publisher, Outlook} Domain Analysis for Product Lines Feature Configuration Represents a selection of features 6
  • 7. Domain Analysis for Product Lines Variability Analysis There are features common to all the products and features that are optional 7 Commonalities Variabilities • C1 = { Word, Excel, Powerpoint, OneNote} • C2 = { Word, Excel, Powerpoint, OneNote , Access} • C3 = { Word, Excel, Powerpoint, OneNote , Access, Publisher} • C4 = { Word, Excel, Powerpoint, OneNote, Outlook} • C5 = { Word, Excel, Powerpoint, OneNote , Access, Outlook} • C6 = { Word, Excel, Powerpoint, OneNote , Access, Publisher, Outlook}
  • 8. Problem (I) 8 Given a Feature Model for a Family of Products… • Is this model valid? • Are there constraints that cannot be satisfied at the same time? • All the features can be selected by a user ? • Which features cannot be selected?
  • 9. Related Work There are some proposals to analyze feature models Approach Representative works Propositional Logic Convert FM to propositional logic expressions Batory[2005], Czarnecki[2005], Gheyi[2006], Mendonca[2010] CSP Convert FMs to Constraint Satisfaction Problems Benavides[2005], Karatas[2010], Alvarez[2011], Mazo[2011] Description Logics Convert FMs to Ontologies Zaho[2004], Fan [2006], Wang [2007] Others Use other processing techniques Mannion[2002], Janota[2007], Gheyi[2008], Van der Broek [2010] 9
  • 10. Related Work Existing tools and libraries Scope Technology SPLOT Supports feature model and configuration validation. Also it supports configuration processes. Java FAMA Supports feature model and configuration validation. Partial supports configuration processes Java FAMILIAR Provides a DSL to process feature models. Support validation and configuration processes. Java 10
  • 11. Problem (II) • Existing works cannot be used in .Net Platforms • Existing works do not use CSP + Optimization Solvers such as the MS Solver Foundation. 11
  • 12. How can we analyse Feature Models and Configurations using Microsoft Solver Foundation? 12
  • 13. Our Approach ❶ Understand semantics for Feature Models and Configurations ❷ Take the Models and Configurations and Convert them to CSP/Optimization Problems ❸ Take these CSP/Optimization problems and Solve it using MS solver Foundation ❹ Provide an implementation and evaluation 13
  • 14. ❶ Feature Models and Configurations Semantics 14
  • 15. Feature Model Semantics 15 Root X Y X Y Root (Concept). It must be selected Mandatory. If X is selected, Y must be selected Optional. If X is selected, Y can be (or not) selected X Y1 Yi… Y1 Yi… X X Y X Y Or-Group. If X is selected, one or more of Y1, .., Yi must be selected. Alternative-Group. If X is selected, only one of Y1, .., Yi must be selected. Requires If X is selected, Y must be selected. Excludes If X is selected, Y must be not selected.
  • 16. e.g., a FM for Cell Phones 16 Cellular Phone Normal Touch Screen External Memory KeyPad Small Size Large Size LCD Input Device Battery excludes requires Stylus
  • 17. Feature Configuration 17 C1 = { CellularPhone, LCD, TouchScreen, InputDevice, Stylus, Battery, LargeSize} valid Cellular Phone Normal Touch Screen External Memory KeyPad Small Size Large Size LCD Input Device Battery excludes requires Stylus
  • 18. Feature Configuration 18 C1 = { CellularPhone, LCD, TouchScreen, InputDevice, Stylus, Battery, SmallSize} invalid Cellular Phone Normal Touch Screen External Memory KeyPad Small Size Large Size LCD Input Device Battery excludes requires Stylus
  • 19. ❷ Converting Feature Models and Configurations to CSP/Optimization Problems 19
  • 20. Converting a Feature Model 20 Root X Y X Y Root (Concept). 𝑟 = 1 Mandatory. 𝑥 = 𝑦 Optional. 𝑥 ≥ 𝑦 X Y1 Yi… Y1 Yi… X X Y X Y Or-Group. 𝑥 = 1 → 𝑦𝑖 ≥ 1 Alternative-Group. 𝑥 = 1 → 𝑦𝑖 = 1 Requires 𝑥 ≤ 𝑦 Excludes 𝑥 + 𝑦 ≤ 1
  • 21. e.g., a FM for Cell Phones • 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒 = 1 • 𝐿𝐶𝐷 = 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒 • 𝐿𝐶𝐷 = 𝑇𝑜𝑢𝑐ℎ𝑆𝑐𝑟𝑒𝑒𝑛 + 𝑁𝑜𝑟𝑚𝑎𝑙 • 𝐼𝑛𝑝𝑢𝑡𝐷𝑒𝑣𝑖𝑐𝑒 = 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒 • 𝐿𝐶𝐷 = 1 → 𝐾𝑒𝑦𝑃𝑎𝑑 + 𝑆𝑡𝑦𝑙𝑢𝑠 ≥ 1 • 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒 ≥ 𝐸𝑥𝑡𝑀𝑒𝑚𝑜𝑟𝑦 • 𝐵𝑎𝑡𝑡𝑒𝑟𝑦 = 𝐶𝑒𝑙𝑙𝑃ℎ𝑜𝑛𝑒 • 𝐵𝑎𝑡𝑡𝑒𝑟𝑦 = 𝑆𝑚𝑎𝑙𝑙𝑆𝑖𝑧𝑒 + 𝐿𝑎𝑟𝑔𝑒𝑆𝑖𝑧𝑒 • 𝑁𝑜𝑟𝑚𝑎𝑙 + 𝑆𝑡𝑦𝑙𝑢𝑠 ≤ 1 • 𝑇𝑜𝑢𝑐ℎ𝑆𝑐𝑟𝑒𝑒𝑛 ≤ 𝐿𝑎𝑟𝑔𝑒𝑆𝑖𝑧𝑒 Cellular Phone Normal Touch Screen External Memory KeyPad Small Size Large Size LCD Input Device Battery excludes requires Stylus
  • 23. Analysis Operations Benavides et al. have defined some operations: • Validating a Feature Model: there is at least one valid configuration • Validating a Product Configuration • Validating a Partial Configuration • Obtaining all the valid Product Configurations • Calculating the number of Product Configurations • Obtaining core features (mandatory) • Obtaining dead features (non-selectable) • Obtaining variant features
  • 24. Operations: Validating a FM ConvertFM( fm ) : ConstraintSystem ConstraintSystem model; model = ConstraintSystem.CreateSolver(); : // introduces variables and constraints : return model;
  • 25. Operations: Validating a FM IsValid( ConstraintSystem model ) ConstraintSolverSolution solution = model.Solve(); return solution.HasFoundSolution;
  • 26. Operations: Obtaining all Products GetAllProducts( ConstraintSystem model ) List <Configuration> list; list = new List <Configuration>() ; ConstraintSolverSolution solution = model.Solve(); while ( solution.HasFoundSolution ) { list.Add(new Configuration( solution )); } return list ;
  • 27. Operations: Core Features GetDeadFeatures( List<Feature> features, ConstraintSystem model ) List <Feature> list = new List <Feature>(); foreach ( Feature f in features ) { CspTerm constraint = model.Equal (0 , f); model.AddConstraints ( constraint ); ConstraintSolverSolution solution = model.Solve(); if (! solution.HasFoundSolution ) { list.Add(f); } model.RemoveConstraints( constraint ); } return list ;
  • 28. Operations: Dead Features GetDeadFeatures( List<Feature> features, ConstraintSystem model ) List <Feature> list = new List <Feature>(); foreach ( Feature f in features ) { CspTerm constraint = model.Equal (1 , f); model.AddConstraints ( constraint ); ConstraintSolverSolution solution = model.Solve(); if (! solution.HasFoundSolution ) { list.Add(f); } model.RemoveConstraints( constraint ); } return list ;
  • 29. Operations: Validating a Config IsValidConfiguration(Configuration config , List <Feature> features , ConstraintSystem model ) foreach ( Feature f in features ) { if ( config.Contains(f)) model.AddConstraints ( model.Equal (1 , f)); else model.AddConstraints ( model.Equal (0 , f)); } ConstraintSolverSolution solution = model.Solve() ; return solution.HasFoundSolution ;
  • 30. Operations: Partial Config IsValidPartialConfiguration(Configuration config , List <Feature> features , ConstraintSystem model ) foreach ( Feature f in features ) { if ( config.Contains(f)) model.AddConstraints ( model.Equal (1 , f)); } ConstraintSolverSolution solution = model.Solve() ; return solution.HasFoundSolution ;
  • 32. Implementation & Evaluation Implementation https://github.com/FaMoSA/fma.net • A .Net based library • Can load SPLOT, FeatureIDE and FAMA feature models. • Can process feature models and configuration using MS Solver Foundation 32
  • 33. Implementation & Evaluation Evaluation • Test with: Fama Test Suite http://www.isa.us.es/fama/?FaMa_Test_Suite • Test with models from SPLOT http://www.splot-research.org/ • Test with Feature IDE test suite http://wwwiti.cs.uni-magdeburg.de/iti_db/research/featureide/ Our implementation performs the analysis correctly. 33
  • 34. Validate Model Performance 34 It may take 10 – 26 milliseconds. Other solvers take between 10 – 30 ms
  • 35. All Products Performance 35 Depends on the # of products. It invokes the solver for each product.
  • 36. Dead Features Performance 36 Depends on the # of features. It invokes the solver for each feature.
  • 37. Conclusions • Our approach • Implements the operations defined by Benavides et al. • Works on .Net platforms • Obtains the same results that the other libraries. • Performs as fast as the related solutions in Java. 37
  • 38. Conclusions • However, our implementation • Does not support optimizations proposed by other authors (e.g., by combining solvers or by eliminating non-relevant features from the processing) • Does not support transforming operations such as slice r merge of feature models • Does not support operations for product configuration such as recommending or optimizing selections. • Future work is planned to implement optimizations and additional operations using the MS Solver Foundation. 38
  • 39. Questions? Juan Carlos Navarro juan-navarro@unipiloto.edu.co Jaime Chavarriaga ja.chavarriaga908@uniandes.edu.co 39