SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Destacado

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
 

Destacado (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 a 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 a 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
 

Último

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Último (20)

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

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