SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
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

Más contenido relacionado

Destacado

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

Destacado (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
 
مقاصد القرآن الكريم
مقاصد القرآن الكريممقاصد القرآن الكريم
مقاصد القرآن الكريم
 

Último

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Último (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

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