SlideShare a Scribd company logo
1 of 18
A Study of Variability Spaces
in Open Source Software
Sarah Nadi
University of Waterloo, Canada
PhD Advisor: Richard C. Holt
ICSE ’13 Doctoral Symposium – May 21st 2013
San Francisco, USA
Variability in Real Life
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 2
• Integrated Garage Door Opener
• Electronic Compass
Command navigation package
• Heated Front Seats
• Exterior Power Folding Mirrors
Premium Package
Example of Software Variability
The Linux kernel
I want usb
support on
ARM
architecture!
User 1
I want sound
support on
x86
architecture!
User 2
Variant 2 Variant 1
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 3
What functionality
will each choice
provide?
Code Space
Supporting Variability
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 4
What can I
configure?
How will my choices
select the right
implementation
parts?
Configuration
Space
Build Space
[Czarnecki & Eisenecker., 2000] [Svahnberg et al., 2005] [Tartler et al., 2011]
Feature1 -> Feature2
Block1 -> Feature2
File1 -> Feature1
(e.g., Kconfig files)
(e.g., C code files) (e.g., Makefiles)
Build Space
Code Space
Configuration
Space
Previous Work
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 5
Change evolution
[Adams et al.
2008, McIntosh et al.
2011]
Feasibility of mapping
extraction [Berger et
al., 2010]
Change evolution (Lotufo et
al. 2009 & 2011)
Use of feature modeling
concepts [She et al.,
2010][Berger et al., 2010]
Consistency with code
space
[Tartler et al. 2011]
Studying & extracting
implemented variability
[Liebig et al., 2010, Sincero et
al, 2010]
Variability aware parsing
[Kaestner et al.,2011]
Consistency with
configuration space [Tartler et
al. 2011]
What is the origin of these
anomalies? How are they
fixed?
What variability constraints
does each space provide?
So, What’s the Problem?
?
??
?
?
? Are the spaces consistent?
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 6
?
What role does the Build
Space play?
Examples of Systems Supporting Build-
time Variability
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 7
BusyBoxLinux kernel
> 12,000 features > 1,000 features > 800 features
RQ1: Variability Constraints in 3 Spaces?
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 8
Build SpaceCode Space
Configuration
Space
= ?
• Identify overlap in constraints
• Identify constraints that are only
in one side
Challenges
• Accurately extract code constraints
• Meaningfully compare constraints
Benefits
• Uncover limits of static analysis
• Accurate reverse engineering
• Better maintenance
BusyBox
RQ2: Role of Build System in Variability?
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 9
Makefile
Constraint
Extractor
Build Space
Constraints
≈ 50% of configuration space features are only
used in the build space!
[Nadi & Holt, JSEP ‘13]
[Liebig et al., 2010]
Limitations
• Extractor specific to Kbuild
• Relies on text parsing of Makefiles
Benefits
• Show which parts of the system
control most of variability
RQ3: Is Variability Consistent?
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 10
Code Space
Configuration
Space
Build Space
[Tartler et al., 2011]
Syntactic Anomalies
• Don’t deal with constraints
• Related to the setup of conditional
compilation in Kbuild
Semantic Anomalies
• Conflicts between constraints
• Requires a SAT solver
• Dead (never selected) &
undead (always selected) code
blocks and files
RQ3 Cont’d: Detecting Syntactic Anomalies
X
XX
X
X
Variable Not
Used anomaly
X
File Not Used
anomaly
Feature Not
Defined anomaly
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 11
[Nadi & Holt, WCRE ‘11]
RQ3 Cont’d: Detecting Semantic Variability
Anomalies
• '
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 12
[Nadi&Holt, CSMR ‘12]
More anomalies detected when build space
constraints are considered!
#ifdef X
//B1
#else
//B2
#endif
foo.c
(Code Space)
RQ3 Cont’d: Example of a Code Block
Anomaly
Undead block!
Dead block!
foo.c => X
Build Space
foo.c will be
compiled
only if X is
selected“Testing X inside foo.c is a waste
of text, since foo.c is built only
when X is selected”
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 13
RQ4: Intro. & Fix of Variability Anomalies?
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 14
1 Exploratory study with existing patches
2 Mine git repository across
several releases to confirm patterns
Variability Anomalies
[Nadi et al., MSR ’13]
Incomplete
configuration
patches
Code patches
Time
cause fix
14% 26%
Avoid future anomalies & provide automatic fix solutions!
Limitations & Future Work
• Build time variability
• External validity
• Focused on certain types of anomalies
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 15
Future Work
• Study other systems
• Analyze other types of anomalies
Overall Contributions & Benefits
• Contributions
• Established the importance of build system variability
• Quantified build system variability
• Detected variability anomalies in the Linux kernel
• Studied causes and fixes of variability anomalies
• Benefits
• Guide future variability analysis by determining overlaps between
variability spaces
• Decrease variability anomalies in software systems
• Improve maintainability of variable software
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 16
Acknowledgements
• University of Waterloo
• Ric Holt (Supervisor)
• Krzysztof Czarnecki
• Mike Godfrey
• Friedrich-Alexander-Universität Erlangen-Nürnberg
• Christian Dietrich
• Reinhard Tartler
• Daniel Lohmann
• Leipzig University
• Thorsten Berger
• Carnegie Mellon University
• Christian Kästner
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 17
Sarah Nadi Study of Variability Spaces - ICSE DS 2013 18
Time2011
WCRE ‘11
CSMR ‘12
2012 2013 2014
MSR ‘13
In progress
JSEP ‘13
BusyBox
Other anomalies
Questions?
snadi@uwaterloo.ca
http://swag.uwaterloo.ca/~snadi

More Related Content

Similar to A Study of Variability Spaces in Open Source Software

odersky-adg-v5-220711161332-10853f8f.pdf
odersky-adg-v5-220711161332-10853f8f.pdfodersky-adg-v5-220711161332-10853f8f.pdf
odersky-adg-v5-220711161332-10853f8f.pdf
Ilham213720
 
Why kernelspace sucks?
Why kernelspace sucks?Why kernelspace sucks?
Why kernelspace sucks?
OpenFest team
 
Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)
Ravi Okade
 

Similar to A Study of Variability Spaces in Open Source Software (20)

odersky-adg-v5-220711161332-10853f8f.pdf
odersky-adg-v5-220711161332-10853f8f.pdfodersky-adg-v5-220711161332-10853f8f.pdf
odersky-adg-v5-220711161332-10853f8f.pdf
 
The Why and How of Scala at Twitter
The Why and How of Scala at TwitterThe Why and How of Scala at Twitter
The Why and How of Scala at Twitter
 
Journal Seminar: Is Singularity-based Container Technology Ready for Running ...
Journal Seminar: Is Singularity-based Container Technology Ready for Running ...Journal Seminar: Is Singularity-based Container Technology Ready for Running ...
Journal Seminar: Is Singularity-based Container Technology Ready for Running ...
 
Software variability management - 2017
Software variability management - 2017Software variability management - 2017
Software variability management - 2017
 
Why kernelspace sucks?
Why kernelspace sucks?Why kernelspace sucks?
Why kernelspace sucks?
 
Realizing the promise of portable data processing with Apache Beam
Realizing the promise of portable data processing with Apache BeamRealizing the promise of portable data processing with Apache Beam
Realizing the promise of portable data processing with Apache Beam
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux Containers
 
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
 
Automated hardware testing using docker for space
Automated hardware testing using docker for spaceAutomated hardware testing using docker for space
Automated hardware testing using docker for space
 
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific LanguagesMetamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
 
Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019
 
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
ContainerDays Boston 2015: "CoreOS: Building the Layers of the Scalable Clust...
 
Data Structures problems 2002
Data Structures problems 2002Data Structures problems 2002
Data Structures problems 2002
 
Realizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache BeamRealizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache Beam
 
Seminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent ProgrammingSeminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent Programming
 
What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)
 
Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)
 
Exploiting NoSQL Like Never Before
Exploiting NoSQL Like Never BeforeExploiting NoSQL Like Never Before
Exploiting NoSQL Like Never Before
 
Life & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentLife & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@Persistent
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 

A Study of Variability Spaces in Open Source Software

  • 1. A Study of Variability Spaces in Open Source Software Sarah Nadi University of Waterloo, Canada PhD Advisor: Richard C. Holt ICSE ’13 Doctoral Symposium – May 21st 2013 San Francisco, USA
  • 2. Variability in Real Life Sarah Nadi Study of Variability Spaces - ICSE DS 2013 2 • Integrated Garage Door Opener • Electronic Compass Command navigation package • Heated Front Seats • Exterior Power Folding Mirrors Premium Package
  • 3. Example of Software Variability The Linux kernel I want usb support on ARM architecture! User 1 I want sound support on x86 architecture! User 2 Variant 2 Variant 1 Sarah Nadi Study of Variability Spaces - ICSE DS 2013 3
  • 4. What functionality will each choice provide? Code Space Supporting Variability Sarah Nadi Study of Variability Spaces - ICSE DS 2013 4 What can I configure? How will my choices select the right implementation parts? Configuration Space Build Space [Czarnecki & Eisenecker., 2000] [Svahnberg et al., 2005] [Tartler et al., 2011] Feature1 -> Feature2 Block1 -> Feature2 File1 -> Feature1 (e.g., Kconfig files) (e.g., C code files) (e.g., Makefiles)
  • 5. Build Space Code Space Configuration Space Previous Work Sarah Nadi Study of Variability Spaces - ICSE DS 2013 5 Change evolution [Adams et al. 2008, McIntosh et al. 2011] Feasibility of mapping extraction [Berger et al., 2010] Change evolution (Lotufo et al. 2009 & 2011) Use of feature modeling concepts [She et al., 2010][Berger et al., 2010] Consistency with code space [Tartler et al. 2011] Studying & extracting implemented variability [Liebig et al., 2010, Sincero et al, 2010] Variability aware parsing [Kaestner et al.,2011] Consistency with configuration space [Tartler et al. 2011]
  • 6. What is the origin of these anomalies? How are they fixed? What variability constraints does each space provide? So, What’s the Problem? ? ?? ? ? ? Are the spaces consistent? Sarah Nadi Study of Variability Spaces - ICSE DS 2013 6 ? What role does the Build Space play?
  • 7. Examples of Systems Supporting Build- time Variability Sarah Nadi Study of Variability Spaces - ICSE DS 2013 7 BusyBoxLinux kernel > 12,000 features > 1,000 features > 800 features
  • 8. RQ1: Variability Constraints in 3 Spaces? Sarah Nadi Study of Variability Spaces - ICSE DS 2013 8 Build SpaceCode Space Configuration Space = ? • Identify overlap in constraints • Identify constraints that are only in one side Challenges • Accurately extract code constraints • Meaningfully compare constraints Benefits • Uncover limits of static analysis • Accurate reverse engineering • Better maintenance BusyBox
  • 9. RQ2: Role of Build System in Variability? Sarah Nadi Study of Variability Spaces - ICSE DS 2013 9 Makefile Constraint Extractor Build Space Constraints ≈ 50% of configuration space features are only used in the build space! [Nadi & Holt, JSEP ‘13] [Liebig et al., 2010] Limitations • Extractor specific to Kbuild • Relies on text parsing of Makefiles Benefits • Show which parts of the system control most of variability
  • 10. RQ3: Is Variability Consistent? Sarah Nadi Study of Variability Spaces - ICSE DS 2013 10 Code Space Configuration Space Build Space [Tartler et al., 2011] Syntactic Anomalies • Don’t deal with constraints • Related to the setup of conditional compilation in Kbuild Semantic Anomalies • Conflicts between constraints • Requires a SAT solver • Dead (never selected) & undead (always selected) code blocks and files
  • 11. RQ3 Cont’d: Detecting Syntactic Anomalies X XX X X Variable Not Used anomaly X File Not Used anomaly Feature Not Defined anomaly Sarah Nadi Study of Variability Spaces - ICSE DS 2013 11 [Nadi & Holt, WCRE ‘11]
  • 12. RQ3 Cont’d: Detecting Semantic Variability Anomalies • ' Sarah Nadi Study of Variability Spaces - ICSE DS 2013 12 [Nadi&Holt, CSMR ‘12] More anomalies detected when build space constraints are considered!
  • 13. #ifdef X //B1 #else //B2 #endif foo.c (Code Space) RQ3 Cont’d: Example of a Code Block Anomaly Undead block! Dead block! foo.c => X Build Space foo.c will be compiled only if X is selected“Testing X inside foo.c is a waste of text, since foo.c is built only when X is selected” Sarah Nadi Study of Variability Spaces - ICSE DS 2013 13
  • 14. RQ4: Intro. & Fix of Variability Anomalies? Sarah Nadi Study of Variability Spaces - ICSE DS 2013 14 1 Exploratory study with existing patches 2 Mine git repository across several releases to confirm patterns Variability Anomalies [Nadi et al., MSR ’13] Incomplete configuration patches Code patches Time cause fix 14% 26% Avoid future anomalies & provide automatic fix solutions!
  • 15. Limitations & Future Work • Build time variability • External validity • Focused on certain types of anomalies Sarah Nadi Study of Variability Spaces - ICSE DS 2013 15 Future Work • Study other systems • Analyze other types of anomalies
  • 16. Overall Contributions & Benefits • Contributions • Established the importance of build system variability • Quantified build system variability • Detected variability anomalies in the Linux kernel • Studied causes and fixes of variability anomalies • Benefits • Guide future variability analysis by determining overlaps between variability spaces • Decrease variability anomalies in software systems • Improve maintainability of variable software Sarah Nadi Study of Variability Spaces - ICSE DS 2013 16
  • 17. Acknowledgements • University of Waterloo • Ric Holt (Supervisor) • Krzysztof Czarnecki • Mike Godfrey • Friedrich-Alexander-Universität Erlangen-Nürnberg • Christian Dietrich • Reinhard Tartler • Daniel Lohmann • Leipzig University • Thorsten Berger • Carnegie Mellon University • Christian Kästner Sarah Nadi Study of Variability Spaces - ICSE DS 2013 17
  • 18. Sarah Nadi Study of Variability Spaces - ICSE DS 2013 18 Time2011 WCRE ‘11 CSMR ‘12 2012 2013 2014 MSR ‘13 In progress JSEP ‘13 BusyBox Other anomalies Questions? snadi@uwaterloo.ca http://swag.uwaterloo.ca/~snadi

Editor's Notes

  1. Different choices u can make: heated leather seats, integrated garage opener etc.Mixture of software and hardware.. We focus on software
  2. Example of SW variability.. User chooses the options…Different variants can be generated…Ability to be extended, changed and customized
  3. Configuration space: what you can configure, the dependencies between features, represented in some format (Kconfig)Code space: implement functionality, certain blocks can be conditionalBuild Space: Files are conditionally compiled.. E.g., Kbuild
  4. Busybox: UNIX utilities into a single small executableeCos: OS for embedded applications
  5. Scattering degree (in how many constraints does a feature appear)Tangling degree (how many features in a constraint)
  6. Color boxes on left side