SlideShare a Scribd company logo
Defaults Analyses in non-Boolean Feature Models

                  Leonardo Passos
             (lpassos@gsd.uwaterloo.ca)



                   February 2012




                                                  1 / 19
Outline



   Proposed Analysis


   Initial Definitions


   Analysis Encoding


   Case Study: CDL




                        2 / 19
Proposed Analysis




                    3 / 19
Analysis
Given a model with defaults, is it the case that for every correct
partial configuration, its completion using defaults result in a
conflict-free completion?




                                                                     4 / 19
Initial Definitions




                     5 / 19
Encoding of Boolean FMs with no Defaults


      Given a feature model (FM) M, let F = {f1 , . . . , fn } be the
      set of its features.

      Each analysis over F is modelled as a SAT problem (given to
      SMT Solvers).

      Encoding scheme for Boolean FMs with no defaults:
           E = {e1 , . . . , en }: set of variables, each denoting a feature’s
           enabled state.

           Φ = ΦFM ∧ ΦCTC : satisfiability constraint




                                                                                 6 / 19
Encoding of Boolean FMs with Defaults



      E and Φ as before.

      DE = {de1 , . . . , den }: set of variables, each denoting a
      feature’s default enable state.

      OE = {oe1 , . . . , oen }: set of variables, each controlling if a
      feature’s default enable state has been overridden by the user.

      UE = {ue1 , . . . , uen }: set of variables, each denoting a
      feature’s enable state as set by the user.




                                                                           7 / 19
Encoding of Boolean FMs with Defaults




      New satisfiability constraint:

                          Φ ∧ ΦSE ∧ ΦDE ∧ ΦOE




                                                7 / 19
Encoding of Boolean FMs with Defaults



      New satisfiability constraint:

                          Φ ∧ ΦSE ∧ ΦDE ∧ ΦOE

      ΦSE : source of a feature’s enabled value.
                           n
                                ei = (oei ?uei : dei )
                          i=1




                                                         7 / 19
Encoding of Boolean FMs with Defaults



      New satisfiability constraint:

                             Φ ∧ ΦSE ∧ ΦDE ∧ ΦOE

      ΦDE : defaults setting.
                  n
                       dei = default enabled expression for fi
                 i=1




                                                                 7 / 19
Encoding of Boolean FMs with Defaults
      New satisfiability constraint:

                            Φ ∧ ΦSE ∧ ΦDE ∧ ΦOE



      ΦOE : controls which features cannot have the enabled value
      overridden.

                                                      oei = false
                    i∈{k | fk ∈F , ¬overridableE (fk )}

      where

                                           false, fi is mandatory
               overridableE (fi ) =
                                           true, otherwise

                                                                    7 / 19
Encoding of Non-Boolean Feature Models with Defaults

      E, DE , OE , UE , ΦSE , ΦDE , ΦOE as before

      Create set of variables and constraints for the data value part:
      V, DV , OV , UV , ΦSV , ΦDV , ΦOV .

      Φ = ΦFM ∧ ΦCTC is now defined over E and V.

      Note that:
          |V = {v1 , . . . , vm }| ≤ |E|

          |DV | = |V| ≤ |DE |

          |OV | = |V| ≤ |OE |

          |UV | = |V| ≤ |UE |



                                                                         8 / 19
Analysis Encoding




                    9 / 19
Analysis Statement




    Given a model with defaults, is it the case that for every correct
     partial configuration, its completion using defaults result in a
                       conflict-free completion?




                                                                         10 / 19
Abstract Idea

               M1                                                            M2
                                         copied


                                                                                                      e
                                                                                                 pl
                                         copied



                                                                                         a   m
                                                                                      ex
                                         copied




                                                                             t   er
                                                                        o un
                                                                    C

       Partial configuration                                           Partial configuration
                 +                                                               +
            completion                                           default completion with conflicts
               (SAT)                                                           (SAT)

                User provided value   Correct completion value           Default completion value




                                                                                                          11 / 19
1) Build M1
      Model M1 has no defaults.

      Solution: use completion variables instead.

      Sets of variables:
       E: enable variables.                V: set of data value
                                           variables.
       CE (new): enabled
       completion value                    CV (new): data value
       variables.                          completion variables.

       HUE (new): flag variables            HUV (new) : flag
       that signal whether the             variables that signal
       user has set a feature’s            whether the user has set
       enabled state.                      a feature’s data value.

       UE : user set enabled               UV : user set data value
       value variables.                    variables.
                                                                      12 / 19
1) Build M1




      Satisfiability constraint ΦM1 :

                    Φ1 ∧ ΦSE1 ∧ ΦSV1 ∧ ΦHUE ∧ ΦHUV
                                          1          1




                                                         12 / 19
1) Build M1


      Satisfiability constraint ΦM1 :

                    Φ1 ∧ ΦSE1 ∧ ΦSV1 ∧ ΦHUE ∧ ΦHUV
                                                   1      1


      ΦSE : source of a feature’s enabled value.
                            n
                                 ei = (hei ?uei : cei )
                           i=1

      where ei ∈ E, hei ∈ HUE , uei ∈ UE and cei ∈ CE .

      ΦSV : analogous, but manipulates variables related to V.




                                                                 12 / 19
1) Build M1


      Satisfiability constraint ΦM1 :

                    Φ1 ∧ ΦSE1 ∧ ΦSV1 ∧ ΦHUE ∧ ΦHUV
                                                           1         1


      ΦHUE : controls which features cannot have the enabled value
      set by the user.

                                                           hei = false
                     i∈{k | fk ∈F , ¬overridableE (fk )}

      where overridableE (fi ) is as defined before.

      ΦHV : analogous, but manipulates variables related to V.



                                                                         12 / 19
2) Copy User-Values to M2



      Copy constraint (ΦCOPY ):
                   n                         m
                       (oei2 = hei1 )    ∧       (ovi2 = hvi1 ) ∧
                  i=1                        i=1
                    n                         m
                        (uei2 = uei1 )   ∧         (uvi2 = uvi1 )
                  i=1                        i=1




                                                                    13 / 19
3) Counter Example for Default Completion in M2




      Φ2 constraint was defined as

                               ΦFM2 ∧ ΦCTC2

      Counter example constraint (ΦCOUNTER-EXAMPLE-M2 ):

            (ΦFM2 ∧ ¬ΦCTC2 ) ∧ (ΦSE2 ∧ ΦSV2 ) ∧ (ΦDE2 ∧ ΦDV2 )




                                                                 14 / 19
4) Putting Everything Together



                   ΦM1 ∧ ΦCOPY ∧ ΦCOUNTER-EXAMPLE-M2

      If SMT Solver returns SAT, a counter example is readily
      available.

      Otherwise, the SMT returns UNSAT: no counter example
      exists and the set of defaults is valid for all correct partial
      configurations.




                                                                        15 / 19
Case Study: CDL




                  16 / 19
CDL Specifics




      CDL requires a new constraint: ΦDo (stating a feature’s legal
      values).

      Completion of M1 should be based on default-defaults.




                                                                      17 / 19
Analysis of CDL Models



      Analysis of existing CDL models, given this logical framework,
      is straightforward.

      In CDL, each feature has an enabled and data value part
      (n = m).

      Simple models were manually translated to Z3 SMT Solver as
      a proof of concept.

      Will it scale to the whole set of models?. . .




                                                                       18 / 19
Questions?




             19 / 19

More Related Content

Viewers also liked

حقه علينا للشيخ احمد الدبوس
حقه علينا   للشيخ احمد الدبوسحقه علينا   للشيخ احمد الدبوس
حقه علينا للشيخ احمد الدبوسمحمد سحنون
 
الشيخ احمد الدبوس - النموذج القرآني
 الشيخ احمد الدبوس - النموذج القرآني الشيخ احمد الدبوس - النموذج القرآني
الشيخ احمد الدبوس - النموذج القرآنيمحمد سحنون
 
Affiliate marketing biblija_1
Affiliate marketing biblija_1Affiliate marketing biblija_1
Affiliate marketing biblija_1Make Money Online
 
مقاصد القرآن الكريم
مقاصد القرآن الكريممقاصد القرآن الكريم
مقاصد القرآن الكريممحمد سحنون
 

Viewers also liked (7)

حقه علينا للشيخ احمد الدبوس
حقه علينا   للشيخ احمد الدبوسحقه علينا   للشيخ احمد الدبوس
حقه علينا للشيخ احمد الدبوس
 
الشيخ احمد الدبوس - النموذج القرآني
 الشيخ احمد الدبوس - النموذج القرآني الشيخ احمد الدبوس - النموذج القرآني
الشيخ احمد الدبوس - النموذج القرآني
 
PTC Sajtovi - Opis
PTC Sajtovi  - OpisPTC Sajtovi  - Opis
PTC Sajtovi - Opis
 
Hibernate
HibernateHibernate
Hibernate
 
Affiliate marketing biblija_1
Affiliate marketing biblija_1Affiliate marketing biblija_1
Affiliate marketing biblija_1
 
SPLC Presentation
SPLC PresentationSPLC Presentation
SPLC Presentation
 
مقاصد القرآن الكريم
مقاصد القرآن الكريممقاصد القرآن الكريم
مقاصد القرآن الكريم
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Alison B. Lowndes
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsVlad Stirbu
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

Analysis of defaults in real world variability models

  • 1. Defaults Analyses in non-Boolean Feature Models Leonardo Passos (lpassos@gsd.uwaterloo.ca) February 2012 1 / 19
  • 2. Outline Proposed Analysis Initial Definitions Analysis Encoding Case Study: CDL 2 / 19
  • 4. Analysis Given a model with defaults, is it the case that for every correct partial configuration, its completion using defaults result in a conflict-free completion? 4 / 19
  • 6. Encoding of Boolean FMs with no Defaults Given a feature model (FM) M, let F = {f1 , . . . , fn } be the set of its features. Each analysis over F is modelled as a SAT problem (given to SMT Solvers). Encoding scheme for Boolean FMs with no defaults: E = {e1 , . . . , en }: set of variables, each denoting a feature’s enabled state. Φ = ΦFM ∧ ΦCTC : satisfiability constraint 6 / 19
  • 7. Encoding of Boolean FMs with Defaults E and Φ as before. DE = {de1 , . . . , den }: set of variables, each denoting a feature’s default enable state. OE = {oe1 , . . . , oen }: set of variables, each controlling if a feature’s default enable state has been overridden by the user. UE = {ue1 , . . . , uen }: set of variables, each denoting a feature’s enable state as set by the user. 7 / 19
  • 8. Encoding of Boolean FMs with Defaults New satisfiability constraint: Φ ∧ ΦSE ∧ ΦDE ∧ ΦOE 7 / 19
  • 9. Encoding of Boolean FMs with Defaults New satisfiability constraint: Φ ∧ ΦSE ∧ ΦDE ∧ ΦOE ΦSE : source of a feature’s enabled value. n ei = (oei ?uei : dei ) i=1 7 / 19
  • 10. Encoding of Boolean FMs with Defaults New satisfiability constraint: Φ ∧ ΦSE ∧ ΦDE ∧ ΦOE ΦDE : defaults setting. n dei = default enabled expression for fi i=1 7 / 19
  • 11. Encoding of Boolean FMs with Defaults New satisfiability constraint: Φ ∧ ΦSE ∧ ΦDE ∧ ΦOE ΦOE : controls which features cannot have the enabled value overridden. oei = false i∈{k | fk ∈F , ¬overridableE (fk )} where false, fi is mandatory overridableE (fi ) = true, otherwise 7 / 19
  • 12. Encoding of Non-Boolean Feature Models with Defaults E, DE , OE , UE , ΦSE , ΦDE , ΦOE as before Create set of variables and constraints for the data value part: V, DV , OV , UV , ΦSV , ΦDV , ΦOV . Φ = ΦFM ∧ ΦCTC is now defined over E and V. Note that: |V = {v1 , . . . , vm }| ≤ |E| |DV | = |V| ≤ |DE | |OV | = |V| ≤ |OE | |UV | = |V| ≤ |UE | 8 / 19
  • 14. Analysis Statement Given a model with defaults, is it the case that for every correct partial configuration, its completion using defaults result in a conflict-free completion? 10 / 19
  • 15. Abstract Idea M1 M2 copied e pl copied a m ex copied t er o un C Partial configuration Partial configuration + + completion default completion with conflicts (SAT) (SAT) User provided value Correct completion value Default completion value 11 / 19
  • 16. 1) Build M1 Model M1 has no defaults. Solution: use completion variables instead. Sets of variables: E: enable variables. V: set of data value variables. CE (new): enabled completion value CV (new): data value variables. completion variables. HUE (new): flag variables HUV (new) : flag that signal whether the variables that signal user has set a feature’s whether the user has set enabled state. a feature’s data value. UE : user set enabled UV : user set data value value variables. variables. 12 / 19
  • 17. 1) Build M1 Satisfiability constraint ΦM1 : Φ1 ∧ ΦSE1 ∧ ΦSV1 ∧ ΦHUE ∧ ΦHUV 1 1 12 / 19
  • 18. 1) Build M1 Satisfiability constraint ΦM1 : Φ1 ∧ ΦSE1 ∧ ΦSV1 ∧ ΦHUE ∧ ΦHUV 1 1 ΦSE : source of a feature’s enabled value. n ei = (hei ?uei : cei ) i=1 where ei ∈ E, hei ∈ HUE , uei ∈ UE and cei ∈ CE . ΦSV : analogous, but manipulates variables related to V. 12 / 19
  • 19. 1) Build M1 Satisfiability constraint ΦM1 : Φ1 ∧ ΦSE1 ∧ ΦSV1 ∧ ΦHUE ∧ ΦHUV 1 1 ΦHUE : controls which features cannot have the enabled value set by the user. hei = false i∈{k | fk ∈F , ¬overridableE (fk )} where overridableE (fi ) is as defined before. ΦHV : analogous, but manipulates variables related to V. 12 / 19
  • 20. 2) Copy User-Values to M2 Copy constraint (ΦCOPY ): n m (oei2 = hei1 ) ∧ (ovi2 = hvi1 ) ∧ i=1 i=1 n m (uei2 = uei1 ) ∧ (uvi2 = uvi1 ) i=1 i=1 13 / 19
  • 21. 3) Counter Example for Default Completion in M2 Φ2 constraint was defined as ΦFM2 ∧ ΦCTC2 Counter example constraint (ΦCOUNTER-EXAMPLE-M2 ): (ΦFM2 ∧ ¬ΦCTC2 ) ∧ (ΦSE2 ∧ ΦSV2 ) ∧ (ΦDE2 ∧ ΦDV2 ) 14 / 19
  • 22. 4) Putting Everything Together ΦM1 ∧ ΦCOPY ∧ ΦCOUNTER-EXAMPLE-M2 If SMT Solver returns SAT, a counter example is readily available. Otherwise, the SMT returns UNSAT: no counter example exists and the set of defaults is valid for all correct partial configurations. 15 / 19
  • 23. Case Study: CDL 16 / 19
  • 24. CDL Specifics CDL requires a new constraint: ΦDo (stating a feature’s legal values). Completion of M1 should be based on default-defaults. 17 / 19
  • 25. Analysis of CDL Models Analysis of existing CDL models, given this logical framework, is straightforward. In CDL, each feature has an enabled and data value part (n = m). Simple models were manually translated to Z3 SMT Solver as a proof of concept. Will it scale to the whole set of models?. . . 18 / 19
  • 26. Questions? 19 / 19