Download - Variability Evolution in the large
![Page 1: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/1.jpg)
1
VARIABILITY EVOLUTION IN THE LARGEA View Point from the Systems Software Domain(Current Results and Next Steps)
Leonardo Passos([email protected])
![Page 2: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/2.jpg)
2
IN REAL-WORLD SETTINGS In real-world settings, variability is complex
Introducing PLA at Bosch Gasoline Systems: Experiences and Practices Steger et at, SPLC’04
> 5,000 features
Extracted from http://tinyurl.com/pnor6oj
Automotive domain
![Page 3: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/3.jpg)
3
IN REAL-WORLD SETTINGS In real-world settings, variability is complex
A Survey of Variability Modeling in Industrial Practice, Berger et al., VaMoS’13
> 10,000 features
Extracted from http://tinyurl.com/pnor6oj
Automotive domain
![Page 4: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/4.jpg)
4
VARIABILITY IS PERVASIVELarge number of features = large number of variation points
Requirements
Source code
Design models
(Variation point)
Coevolution is inevitable!
Variability Model (VM)
![Page 5: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/5.jpg)
5
DIAGNOSISCurrent research Practice!?
Focus mostly on evolution @ VMs only
How variability evolvesacross different artifacts?
Techniques for variabilityevolution are tested on random VMs or fictitious scenarios
Evolution of VMs and related artifacts rely on fictitious/small subjects
Which evolution scenarios occur in practice?
How large systems cope with thecomplexity in the face ofvariability evolution?
VM: Variability Model
![Page 6: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/6.jpg)
6
NOT SURPRISINGLY
“Variability evolves as a result of adding, deleting, or updating variation points and variants. However, we found little support for systematically and sufficiently supporting evolution in variability models and other related artifacts.”
Managing Variability in Software Product LinesIEEE Software: Voice of Evidence, 2010
Lianping ChenMuhammad Ali Babar Forrest Shull
![Page 7: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/7.jpg)
7
OUR PROPOSAL
Study how large and complex variability-aware software systems evolve
![Page 8: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/8.jpg)
8
GOAL (1)Understand the coevolution of variability models and related artifacts
Which evolution scenarios occur in practice?
What causes them to occur?
How are changes made when realizing such scenarios?
What’s the impact on existing solutions for variability evolution?
![Page 9: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/9.jpg)
9
GOAL (2)Understand how complex variability-aware systems cope with evolution in the large
How easy is it for these systems to accommodate new features?
How do they handle the increasing complexity of variability in the face of evolution?
![Page 10: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/10.jpg)
10
ROADMAP
axTLS
FreeBSD
BusyBox CoreBoot
Coevolution of variability models and related artifacts
Coping with complexity
Starting point
Goal 1
Goal 2
![Page 11: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/11.jpg)
ROADMAP (CONT.)All subjects belong to the systems software domain
Organization:
11
Variability Model
(Kconfig, CDL)
Build Files(Makefiles)
Code(C/C++ source files +
ifdefs)
Variabilityis pervasive to
all these spaces
![Page 12: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/12.jpg)
12
HOW THESE THREE SPACES WORK
Ralink Drivers
…
RT2860 RT3090… …
If RT2860 is selected compile rt2860.c
If RT3090 is selected compile rt3090.c
rt2860.c rt3090.c
Variability Model
(Kconfig, CDL)
Build Files(Makefiles)
Code(C/C++ source files
+ ifdefs)
![Page 13: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/13.jpg)
STARTING POINT: LINUX KERNEL AS A CASE STUDY
Large and complex software system
Release 3.9:
> 13,000 features
> 35,000 source files (mostly C code)
> 90,000 variation points distributed over Makefiles + annotated C code (ifdefs)
Linux is likely to reflect the complexity found in real-world settings
![Page 14: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/14.jpg)
LINUX HAS A STEADY GROWTH
![Page 15: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/15.jpg)
SCOPING LINUX
Variability model
(Kconfig)
Build files(Makefiles)
Code(C source files + ifdefs)
Changes triggered
by changesin the VM.
Specifically, we consider
coevolutiontriggered by
adding/removingfeatures in the
VM
![Page 16: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/16.jpg)
CATALOG OF PATTERNS
206 feature additions in the VM 101 feature removals in the VM
5 patterns 7 patterns1 pattern(rename)
= (78%) = (68%)
![Page 17: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/17.jpg)
17
PATTERN EXAMPLE (FEATURE REMOVALS)
Ralink Drivers
…
RT2860 RT3090… …
If RT2860 is selected compile rt2860.c
If RT3090 is selected compile rt3090.c
rt2860.c rt3090.c
Merge capabilities ofrt3090.c into rt2860.c
CoevolutionPattern:
MergeOptionalVisibleFeature
IntoSibling
(MOVFS)
![Page 18: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/18.jpg)
18
DETAILING THE COEVOLUTION PATTERNConcrete evolution scenario
Merge of two features
What causes it to occur Feature similarity
How are changes made: Feature, its build rules, and its C files are removed Capabilities are merged to existing feature’s code
Conclusion: no functionality is lost!
![Page 19: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/19.jpg)
19
IN CONTRAST…
RT3090 is no longer supported
Functionality has been lost
Ralink Drivers
…
RT2860 RT3090… …
Ralink Drivers
…
RT2860… …
![Page 20: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/20.jpg)
20
IMPACT ON EXISTING TECHNIQUES (1)Edit-based reasoning techniques that take the VM evolution alone need to account for changes in other spaces
Example: [Thüm, ICSE’09]
Removal of RT3090is seen as specialization
![Page 21: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/21.jpg)
21
NEXT STEPS: BEYOND LINUXVerify to which degree the collected patterns can explain the evolution other systems
Collect other emerging patterns specific to these projects
axTLS BusyBox CoreBoot
![Page 22: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/22.jpg)
22
TOWARDS GOAL 2Understand how complex variability-aware systems cope with evolution in the large
Let’s us go back to Linux...
![Page 23: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/23.jpg)
TOWARDS GOAL 2Feature additions: 6 patterns = 78% of the sample
23
81%
19%
Feature addition
Addition based on new elements
Addition based on existing elements
80%
20%
Addition of features from new elements
Addition of modular feature
Addition of non-modular feature
Low scattering
Mostly devicedrivers
![Page 24: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/24.jpg)
24
MODULARITY
![Page 25: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/25.jpg)
25
VARIATION POINTS (SCATTERING)
![Page 26: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/26.jpg)
26
DEVICE DRIVERS VS SCATTERING LOCATIONSlicing the kernel (thanks to Greg Kroah-Hartman) :
driver core fs net firmware arch misc
![Page 27: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/27.jpg)
DEVICE DRIVERS VS SCATTERING LOCATION
![Page 28: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/28.jpg)
28
HYPOTHESESH1) Specific features are allowed to cause scattering
H2) Others can only cause scattering in the place where they are defined (e.g., inside driver)
Along with high modularity, controlling the scattering allows thekernel to cope with its increasing variability
![Page 29: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/29.jpg)
29
RESEARCH QUESTIONS Which features cause scattering?
What are their characteristics?
Is scattering local to the feature’s subsystem, or does it go beyond that?
What’s the complexity of the scattering being caused?
How does scattering evolve over time?
How does the modularity design employed by the kernel prevent scattering?
![Page 30: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/30.jpg)
30
NEXT STEPSVerify our hypothesis and answer our questions in two other operating systems (in addition to Linux)
FreeBSD
![Page 31: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/31.jpg)
31
NEXT STEPS (CONT.)
FilesUnified set ofsubsystems(all 3 Oss)
Features
![Page 32: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/32.jpg)
32
MAIN PUBLICATIONSPassos, L., J. Guo, Leopoldo Teixeira, K. Czarnecki, A. Wasowski, and Paulo Borba, "Coevolution of Variability Models and Related Artifacts: A Case Study from the Linux Kernel", 17th International Software Product Line Conference, Tokyo, ACM, 2013.
Passos, L., K. Czarnecki, S. Apel, A. Wasowski, C. Kästner, J. Guo, and C. Hunsen, "Feature-Oriented Software Evolution", 7th International Workshop on Variability Modelling of Software-intensive Systems, Italy, ACM , 2013.
![Page 33: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/33.jpg)
33
SUPPORTING MATERIAL
http://lpassos.bitbucket.org/coevolution-patterns/
![Page 34: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/34.jpg)
34
ACKNOWLEDGMENTS Jesus Padila for his join-work in FreeBSD
Jianmei Guo and Leopoldo Teixeira for helping in the identification of patterns in Linux
Professors Sven Apel and Krzysztof Czarneck for their constant remarks (and patience…)
Professors Andrzej Wąsowski and Paulo Borba on early feedback on the patterns work and review of our early drafts
![Page 35: Variability Evolution in the large](https://reader037.vdocuments.us/reader037/viewer/2022103101/56814320550346895daf8a62/html5/thumbnails/35.jpg)
35Questions?