SlideShare a Scribd company logo
Feature-Oriented Software Evolution
(Vision paper)
Leonardo Passos1 Krzysztof Czarnecki1 Sven Apel2
Andrzej Wąsowski3 Christian Käster4 Jianmei Guo1
Claus Hunsen2
1University of Waterloo 2University of Passau 3IT University 4CMU
The Seventh International Workshop on Variability Modelling of Software-intensive Systems
1/37
Software evolves. . .
2/37
Example
Automotive embedded software:
3/37
Example
Automotive embedded software:
• Changing regulations
3/37
Example
Automotive embedded software:
• Changing regulations
◦ ABS is now mandatory in the EU
3/37
Example
Automotive embedded software:
• Changing regulations
◦ ABS is now mandatory in the EU
• Market differentiating enhancements
3/37
Example
Automotive embedded software:
• Changing regulations
◦ ABS is now mandatory in the EU
• Market differentiating enhancements
◦ Electronic stability control (SC) improves ABS by preventing skidding
3/37
Example
Automotive embedded software:
• Changing regulations
◦ ABS is now mandatory in the EU
• Market differentiating enhancements
◦ Electronic stability control (SC) improves ABS by preventing skidding
• New technology availability
3/37
Example
Automotive embedded software:
• Changing regulations
◦ ABS is now mandatory in the EU
• Market differentiating enhancements
◦ Electronic stability control (SC) improves ABS by preventing skidding
• New technology availability
◦ Laser-based distance sensors are more precise than radio-based ones
3/37
Understanding the evolution in
place is not easy. . .
4/37
Scenario
ABS + SC
5/37
Scenario
• Integration can scatter different artifacts
5/37
Scenario
• Integration can scatter different artifacts
• Different levels of abstractions not mastered by all stakeholders
5/37
Scenario
• Integration can scatter different artifacts
• Different levels of abstractions not mastered by all stakeholders
System
level
Code
level
M
anagem
entlevel
5/37
Scenario
• Integration can scatter different artifacts
• Different levels of abstractions not mastered by all stakeholders
System
level
Code
level
M
anagem
entlevel
⇐ Developers
5/37
Scenario
• Integration can scatter different artifacts
• Different levels of abstractions not mastered by all stakeholders
System
level
Code
level
M
anagem
entlevel
⇐ System engineers
5/37
Scenario
• Integration can scatter different artifacts
• Different levels of abstractions not mastered by all stakeholders
System
level
Code
level
M
anagem
entlevel
⇐ Project managers
5/37
In practical settings. . .
6/37
In practical settings. . .
Complex and large software systems have:
7/37
In practical settings. . .
Complex and large software systems have:
• Diverse set of stakeholders
7/37
In practical settings. . .
Complex and large software systems have:
• Diverse set of stakeholders
• Diverse set of artifacts
7/37
In practical settings. . .
Complex and large software systems have:
• Diverse set of stakeholders
• Diverse set of artifacts
• Different stakeholders have particular “views” over the software
7/37
In practical settings. . .
Complex and large software systems have:
• Diverse set of stakeholders
• Diverse set of artifacts
• Different stakeholders have particular “views” over the software
Stakeholders need a common meeting point
7/37
Otherwise. . .
(no common meeting point)
8/37
Otherwise. . .
(no common meeting point)
Ineffective communication
8/37
Otherwise. . .
(no common meeting point)
Ineffective communication Software flaws
8/37
Otherwise. . .
(no common meeting point)
Ineffective communication Software flaws
Architecture decay
8/37
Otherwise. . .
(no common meeting point)
Ineffective communication Software flaws
Architecture decay Higher maintenance costs
8/37
Hypothesis
9/37
Hypothesis
Managing evolution at the level of features can address
the challenges describe above
10/37
Hypothesis
Arguments favouring the hypothesis:
10/37
Hypothesis
Arguments favouring the hypothesis:
• Feature = cohesive requirements bundle
10/37
Hypothesis
Arguments favouring the hypothesis:
• Feature = cohesive requirements bundle
• Requirements are a common point among all stakeholders
10/37
Hypothesis
Arguments favouring the hypothesis:
• Feature = cohesive requirements bundle
• Requirements are a common point among all stakeholders
• Features are more coarse-grained than individual requirements
10/37
Hypothesis
Arguments favouring the hypothesis:
• Feature = cohesive requirements bundle
• Requirements are a common point among all stakeholders
• Features are more coarse-grained than individual requirements
◦ Facilitates understanding
10/37
Hypothesis
Arguments favouring the hypothesis:
• Feature = cohesive requirements bundle
• Requirements are a common point among all stakeholders
• Features are more coarse-grained than individual requirements
◦ Facilitates understanding
• Evolution can be put in simple terms
10/37
Hypothesis
Arguments favouring the hypothesis:
• Feature = cohesive requirements bundle
• Requirements are a common point among all stakeholders
• Features are more coarse-grained than individual requirements
◦ Facilitates understanding
• Evolution can be put in simple terms
◦ Add new feature, retire old ones, etc.
10/37
Our vision
(Assuming the validity of our hypothesis)
11/37
Feature-oriented evolution based on:
Tracing
12/37
Feature-oriented evolution based on:
Tracing
Analyses
12/37
Feature-oriented evolution based on:
Tracing
Analyses
Recommendations
12/37
Purpose of our work
Research agenda based
on our vision for feature-oriented
software evolution
This presentation covers part of that agenda
(see paper for more details)
13/37
Motivating example
14/37
Motivating example
Car
YRS
YRS-M2
SC
ABSSC
SCConv
Featuremodel
BRA
ABSConv
YRS SC
YRS-M1
Merge + clone yaw rate prediction
15/37
Motivating example
Car
YRS
YRS-M2
SC
ABSSC
SCConv
Featuremodel
BRA
ABSConv
YRS SC
YRS-M1
Merge + clone yaw rate prediction
15/37
Motivating example
Car
YRS
YRS-M2
SC
ABSSC
SCConv
Featuremodel
BRA
ABSConv
YRS SC
Merge + clone yaw rate prediction
15/37
Motivating example
Car
YRS
YRS-M2
SC
ABSSC
SCConv
Featuremodel
BRA
ABSConv
YRS SC
Merge YRS-M2 into YRS + rename YRS to YS
15/37
Motivating example
Car
YSSC
ABSSC
SCConv
Featuremodel
BRA
ABSConv
YS SC
Merge + clone yaw rate prediction
15/37
Tracing
16/37
Tracing
YRS-M2YRS-M1 YRS-M2 YS
(t1) (t2) (t3)
DYRS()1/2
17/37
Tracing
YRS-M2YRS-M1 YRS-M2 YS
(t1) (t2) (t3)
DYRS()1/2Bug found in YS
17/37
Tracing
YRS-M2YRS-M1 YRS-M2 YS
(t1) (t2) (t3)
?
DYRS()Does the bug exist in YRS-M2 (t2)?1/2
17/37
Tracing
YRS-M2YRS-M1 YRS-M2 YS
(t1) (t2) (t3)
? ?
Does the bug exist in YRS-M1/2 (t1)?
17/37
Tracing
YRS-M2YRS-M1 YRS-M2 YS
(t1) (t2) (t3)
? ? ?
() Does the bug exist in both t1 and t2?1/2
17/37
Tracing
YRS-M2YRS-M1 YRS-M2 YS
(t1) (t2) (t3)
? ? ?
DYRS() Answering requires tracing the evolution of single features1/2
17/37
Tracing
• Traceability has to be recovered from a multi-space setting:
17/37
Tracing
• Traceability has to be recovered from a multi-space setting:
◦ Recover traceability of different artifacts (e.g.: FM, Build files, C
code)
17/37
Tracing
• Traceability has to be recovered from a multi-space setting:
◦ Recover traceability of different artifacts (e.g.: FM, Build files, C
code)
◦ Integrate the evolution history of those artifacts over time
17/37
Tracing
• Traceability has to be recovered from a multi-space setting:
◦ Recover traceability of different artifacts (e.g.: FM, Build files, C
code)
◦ Integrate the evolution history of those artifacts over time
◦ Draw an evolution history (timeline)
17/37
Tracing
• Traceability has to be recovered from a multi-space setting:
◦ Recover traceability of different artifacts (e.g.: FM, Build files, C
code)
◦ Integrate the evolution history of those artifacts over time
◦ Draw an evolution history (timeline)
YRS-M1
YRS-M2
(t2)(t1) (t3)
YS
YRS
M M
M
17/37
Tracing
(Research questions)
18/37
Tracing (Research questions)
• Tracing certain artifacts can be daunting
19/37
Tracing (Research questions)
• Tracing certain artifacts can be daunting
◦ Individual build rules in build files (e.g., make is Turing-complete)
19/37
Tracing (Research questions)
• Tracing certain artifacts can be daunting
◦ Individual build rules in build files (e.g., make is Turing-complete)
◦ Fine-grained variability analysis in code is costly
19/37
Tracing (Research questions)
• Tracing certain artifacts can be daunting
◦ Individual build rules in build files (e.g., make is Turing-complete)
◦ Fine-grained variability analysis in code is costly
RQ: How to recover traceability links in build files and source
code in variability-aware systems?
19/37
Tracing (Research questions)
• Tracing certain artifacts can be daunting
◦ Individual build rules in build files (e.g., make is Turing-complete)
◦ Fine-grained variability analysis in code is costly
RQ: How to recover traceability links in build files and source
code in variability-aware systems?
RQ: Once recovered, how to update them to reflect the
temporal evolution in place?
19/37
Tracing (Research questions)
• Different artifacts = different sources to draw the evolution in place
19/37
Tracing (Research questions)
• Different artifacts = different sources to draw the evolution in place
◦ Mailing lists
19/37
Tracing (Research questions)
• Different artifacts = different sources to draw the evolution in place
◦ Mailing lists
◦ Commit patches and log messages
19/37
Tracing (Research questions)
• Different artifacts = different sources to draw the evolution in place
◦ Mailing lists
◦ Commit patches and log messages
◦ Bug reports in bug tracking systems
19/37
Tracing (Research questions)
• Different artifacts = different sources to draw the evolution in place
◦ Mailing lists
◦ Commit patches and log messages
◦ Bug reports in bug tracking systems
RQ: Which sources are trustworthy?
19/37
Analyses
20/37
Analyses
(Back to the motivating example)
21/37
Analyses
After the evolution of the SPL, stakeholders noticed that:
22/37
Analyses
After the evolution of the SPL, stakeholders noticed that:
• Maintenance is taking longer
22/37
Analyses
After the evolution of the SPL, stakeholders noticed that:
• Maintenance is taking longer
• Productivity has decreased
22/37
Analyses
After the evolution of the SPL, stakeholders noticed that:
• Maintenance is taking longer
• Productivity has decreased
• Bugs are starting to rise
22/37
Analyses
After the evolution of the SPL, stakeholders noticed that:
• Maintenance is taking longer
• Productivity has decreased
• Bugs are starting to rise
Well-known phenomena of software aging
22/37
Analyses
We envision three analyses to prevent aging:
22/37
Analyses
We envision three analyses to prevent aging:
• Consistency checking analysis
22/37
Analyses
We envision three analyses to prevent aging:
• Consistency checking analysis
• Change impact analysis
22/37
Analyses
We envision three analyses to prevent aging:
• Consistency checking analysis
• Change impact analysis
• Architectural analysis
22/37
Analyses
(Consistency checking)
23/37
Analyses (Consistency checking)
Goal: prevent inconsistencies in different artifacts
DNpit
24/37
Analyses (Consistency checking)
Goal: prevent inconsistencies in different artifacts
...
#ifdef Conv
// switch
// to Conv
// if ABS
// fails
#endif
...
...
sensor_data_t data ;
#ifdef SC
data = get_value(data) ;
#endif
if (data->check_oversteering())
react_oversteering() ;
...
...
#ifdef SC && YRS_M1
double predicted_value
...
#endif
...
abs.c (1) abs.c (2) abs.c (3)
...
#ifdef SC && YRS_M1
predictor_t p ;
#else
int p = 0;
#endif
...
predicted_value=p->get() ;
abs.c (4)
DNpit
24/37
Analyses (Consistency checking)
Goal: prevent inconsistencies in different artifacts
...
#ifdef Conv
// switch
// to Conv
// if ABS
// fails
#endif
...
...
sensor_data_t data ;
#ifdef SC
data = get_value(data) ;
#endif
if (data->check_oversteering())
react_oversteering() ;
...
...
#ifdef SC && YRS_M1
double predicted_value
...
#endif
...
abs.c (1) abs.c (2) abs.c (3)
...
#ifdef SC && YRS_M1
predictor_t p ;
#else
int p = 0;
#endif
...
predicted_value=p->get() ;
abs.c (4)
Dead code DNpit
24/37
Analyses (Consistency checking)
Goal: prevent inconsistencies in different artifacts
...
#ifdef Conv
// switch
// to Conv
// if ABS
// fails
#endif
...
...
sensor_data_t data ;
#ifdef SC
data = get_value(data) ;
#endif
if (data->check_oversteering())
react_oversteering() ;
...
...
#ifdef SC && YRS_M1
double predicted_value
...
#endif
...
abs.c (1) abs.c (2) abs.c (3)
...
#ifdef SC && YRS_M1
predictor_t p ;
#else
int p = 0;
#endif
...
predicted_value=p->get() ;
abs.c (4)
Null pointer exception DNpit
24/37
Analyses (Consistency checking)
Goal: prevent inconsistencies in different artifacts
...
#ifdef Conv
// switch
// to Conv
// if ABS
// fails
#endif
...
...
sensor_data_t data ;
#ifdef SC
data = get_value(data) ;
#endif
if (data->check_oversteering())
react_oversteering() ;
...
...
#ifdef SC && YRS_M1
double predicted_value
...
#endif
...
abs.c (1) abs.c (2) abs.c (3)
...
#ifdef SC && YRS_M1
predictor_t p ;
#else
int p = 0;
#endif
...
predicted_value=p->get() ;
abs.c (4)
Syntax errorDNpit
24/37
Analyses (Consistency checking)
Goal: prevent inconsistencies in different artifacts
...
#ifdef Conv
// switch
// to Conv
// if ABS
// fails
#endif
...
...
sensor_data_t data ;
#ifdef SC
data = get_value(data) ;
#endif
if (data->check_oversteering())
react_oversteering() ;
...
...
#ifdef SC && YRS_M1
double predicted_value
...
#endif
...
abs.c (1) abs.c (2) abs.c (3)
...
#ifdef SC && YRS_M1
predictor_t p ;
#else
int p = 0;
#endif
...
predicted_value=p->get() ;
abs.c (4)
DNpit Type error
24/37
Analyses (Consistency checking)
Goal: prevent inconsistencies in different artifacts
...
#ifdef Conv
// switch
// to Conv
// if ABS
// fails
#endif
...
...
sensor_data_t data ;
#ifdef SC
data = get_value(data) ;
#endif
if (data->check_oversteering())
react_oversteering() ;
...
...
#ifdef SC && YRS_M1
double predicted_value
...
#endif
...
abs.c (1) abs.c (2) abs.c (3)
...
#ifdef SC && YRS_M1
predictor_t p ;
#else
int p = 0;
#endif
...
predicted_value=p->get() ;
abs.c (4)
Other types of analysis exist: e.g., model-checkingDNpit
24/37
Consistency checking
(Research questions)
25/37
Consistency checking (Research questions)
• Variability aware-analysis is costly.
26/37
Consistency checking (Research questions)
• Variability aware-analysis is costly.
RQ: Do existing approaches for variability-aware type-
checking, flow-analysis and model-checking scale to large
systems?
26/37
Consistency checking (Research questions)
• Variability aware-analysis is costly.
RQ: Do existing approaches for variability-aware type-
checking, flow-analysis and model-checking scale to large
systems?
• Existing flow-analysis is intra-procedural.
26/37
Consistency checking (Research questions)
• Variability aware-analysis is costly.
RQ: Do existing approaches for variability-aware type-
checking, flow-analysis and model-checking scale to large
systems?
• Existing flow-analysis is intra-procedural.
RQ: How to adapt existing inter-procedural analyses to
handle variability?
26/37
Analyses
(Impact analysis)
27/37
Impact analysis
Goal: assess impact of changes
28/37
Impact analysis
Goal: assess impact of changes
Scenario:
• To identify bugs, stakeholders in our SPL have created formal
specifications of the system’s features
• Support for cruise control (CC)
28/37
Impact analysis
Goal: assess impact of changes
Scenario:
• To identify bugs, stakeholders in our SPL have created formal
specifications of the system’s features
• Support for cruise control (CC)
Car
YRS
YRS-M2
SC
ABSSC
SCConv
Featuremodel
BRA
ABSConv
YRS SC
YRS-M1
CC
28/37
Impact analysis
Stability-control behaviour property: No subsystem increases
acceleration when SC is engaged
29/37
Impact analysis
Stability-control behaviour property: No subsystem increases
acceleration when SC is engaged
1. CC cruise speed
is set
2. Engage CC
3. Drivers looses
control
4. Engage SC
5. CC accelerates to
achieve cruise speed
29/37
Impact analysis
Stability-control behaviour property: No subsystem increases
acceleration when SC is engaged
1. CC cruise speed
is set
2. Engage CC
3. Drivers looses
control
4. Engage SC
5. CC accelerates to
achieve cruise speed
Adding CC violates the given property
29/37
Impact analysis
Stability-control behaviour property: No subsystem increases
acceleration when SC is engaged
1. CC cruise speed
is set
2. Engage CC
3. Drivers looses
control
4. Engage SC
5. CC accelerates to
achieve cruise speed
Adding CC violates the given property
(Impact analysis aims to detect that promptly)
29/37
Impact analysis (Research questions)
• Currently, consistency between implementation assets (code) and
the system’s specified property is mostly intractable.
30/37
Impact analysis (Research questions)
• Currently, consistency between implementation assets (code) and
the system’s specified property is mostly intractable.
RQ: How to verify that the system implementation does not
break its specified properties?
30/37
Analyses
(Architectural analysis)
31/37
Architectural analysis
• Feature model = view of the system architecture
• From the recovered traces, one can track the “health of the system”
• Different indicators can be collected to assess the system evolution:
◦ code metrics
◦ process metrics
◦ feature-based
metrics
◦ feature-model based metrics
◦ product-line based metrics
32/37
Architectural analysis
• Evidence relating scattering and defects is rather preliminary.
33/37
Architectural analysis
• Evidence relating scattering and defects is rather preliminary.
RQ: Can we provide more evidence for the relationship
between scattering and defects?
33/37
Recommendations
34/37
Recommendations + research question
Suggestions for:
35/37
Recommendations + research question
Suggestions for:
• Consistency analysis
35/37
Recommendations + research question
Suggestions for:
• Consistency analysis
• Impact analysis
35/37
Recommendations + research question
Suggestions for:
• Consistency analysis
• Impact analysis
• Architectural analysis
35/37
Recommendations + research question
Consistency:
• Fix recommendations for different artifacts types
35/37
Recommendations + research question
Consistency:
• Fix recommendations for different artifacts types
RQ: How to devise a fixing recommender integrating
different artifacts, with different abstraction levels?
35/37
Recommendations + research question
Consistency:
• Fix recommendations for different artifacts types
RQ: How to devise a fixing recommender integrating
different artifacts, with different abstraction levels?
Impact analysis:
• Point which features are more likely to have defects after a change
35/37
Recommendations + research question
Consistency:
• Fix recommendations for different artifacts types
RQ: How to devise a fixing recommender integrating
different artifacts, with different abstraction levels?
Impact analysis:
• Point which features are more likely to have defects after a change
RQ: Which feature-based metrics are good defect predictors?
35/37
Recommendations + research question
Architectural analysis:
35/37
Recommendations + research question
Architectural analysis:
• Propose merges (features are too similar)
35/37
Recommendations + research question
Architectural analysis:
• Propose merges (features are too similar)
• Suggest feature retirement
35/37
Recommendations + research question
Architectural analysis:
• Propose merges (features are too similar)
• Suggest feature retirement
• Suggest which features to modularize
35/37
Recommendations + research question
Architectural analysis:
• Propose merges (features are too similar)
• Suggest feature retirement
• Suggest which features to modularize
RQ: Which scenarios should be supported (are required in
practice)?
35/37
Conclusion
• We hypothesized that feature-oriented evolution can mitigate
existing challenges in evolving large-complex systems
• From that hypothesis, we presented our vision based on tracing,
analyses and recommendations
• We are have started working on the realization of that vision
36/37
Thanks for listening!
37/37

More Related Content

Similar to Feature-Oriented Software Evolution

Simulate Functional Models
Simulate Functional ModelsSimulate Functional Models
Simulate Functional Models
TaylorDuffy11
 
Docker: Containers for Data Science
Docker: Containers for Data ScienceDocker: Containers for Data Science
Docker: Containers for Data Science
Alessandro Adamo
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
SelmaJelovac1
 
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
TEST Huddle
 
RCW@DEI - Real Needs And Limits
RCW@DEI - Real Needs And LimitsRCW@DEI - Real Needs And Limits
RCW@DEI - Real Needs And Limits
Marco Santambrogio
 
Clipper: A Low-Latency Online Prediction Serving System: Spark Summit East ta...
Clipper: A Low-Latency Online Prediction Serving System: Spark Summit East ta...Clipper: A Low-Latency Online Prediction Serving System: Spark Summit East ta...
Clipper: A Low-Latency Online Prediction Serving System: Spark Summit East ta...
Spark Summit
 
Traceability Beyond Source Code: An Elusive Target?
Traceability Beyond Source Code: An Elusive Target?Traceability Beyond Source Code: An Elusive Target?
Traceability Beyond Source Code: An Elusive Target?
Lionel Briand
 
Kanellopoulos @ Startup Founder 101
Kanellopoulos @ Startup Founder 101Kanellopoulos @ Startup Founder 101
Kanellopoulos @ Startup Founder 101
ID-GC
 
Distributed systems in practice, in theory (ScaleConf Colombia)
Distributed systems in practice, in theory (ScaleConf Colombia)Distributed systems in practice, in theory (ScaleConf Colombia)
Distributed systems in practice, in theory (ScaleConf Colombia)
Aysylu Greenberg
 
Software engineering
Software engineeringSoftware engineering
Software engineering
Rohan Bhatkar
 
SCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemSCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome Them
Compuware
 
computer architecture.
computer architecture.computer architecture.
computer architecture.
Shivalik college of engineering
 
lec01.pdf
lec01.pdflec01.pdf
lec01.pdf
BeiYu6
 
Improving Software Maintenance using Unsupervised Machine Learning techniques
Improving Software Maintenance using Unsupervised Machine Learning techniquesImproving Software Maintenance using Unsupervised Machine Learning techniques
Improving Software Maintenance using Unsupervised Machine Learning techniques
Valerio Maggio
 
Balancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem FormulationBalancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem Formulation
Alex D. Gaudio
 
VLSI and ES Design -An Overview.pptx
VLSI and ES Design -An Overview.pptxVLSI and ES Design -An Overview.pptx
VLSI and ES Design -An Overview.pptx
NukalaMurthy1
 
How long can you afford to Stop The World?
How long can you afford to Stop The World?How long can you afford to Stop The World?
How long can you afford to Stop The World?
Java Usergroup Berlin-Brandenburg
 
Provenance for Data Munging Environments
Provenance for Data Munging EnvironmentsProvenance for Data Munging Environments
Provenance for Data Munging Environments
Paul Groth
 
Fundamentals.pptx
Fundamentals.pptxFundamentals.pptx
Fundamentals.pptx
dhivyak49
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
Abdalmassih Yakeen
 

Similar to Feature-Oriented Software Evolution (20)

Simulate Functional Models
Simulate Functional ModelsSimulate Functional Models
Simulate Functional Models
 
Docker: Containers for Data Science
Docker: Containers for Data ScienceDocker: Containers for Data Science
Docker: Containers for Data Science
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
Mike Bartley - Innovations for Testing Parallel Software - EuroSTAR 2012
 
RCW@DEI - Real Needs And Limits
RCW@DEI - Real Needs And LimitsRCW@DEI - Real Needs And Limits
RCW@DEI - Real Needs And Limits
 
Clipper: A Low-Latency Online Prediction Serving System: Spark Summit East ta...
Clipper: A Low-Latency Online Prediction Serving System: Spark Summit East ta...Clipper: A Low-Latency Online Prediction Serving System: Spark Summit East ta...
Clipper: A Low-Latency Online Prediction Serving System: Spark Summit East ta...
 
Traceability Beyond Source Code: An Elusive Target?
Traceability Beyond Source Code: An Elusive Target?Traceability Beyond Source Code: An Elusive Target?
Traceability Beyond Source Code: An Elusive Target?
 
Kanellopoulos @ Startup Founder 101
Kanellopoulos @ Startup Founder 101Kanellopoulos @ Startup Founder 101
Kanellopoulos @ Startup Founder 101
 
Distributed systems in practice, in theory (ScaleConf Colombia)
Distributed systems in practice, in theory (ScaleConf Colombia)Distributed systems in practice, in theory (ScaleConf Colombia)
Distributed systems in practice, in theory (ScaleConf Colombia)
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
SCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemSCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome Them
 
computer architecture.
computer architecture.computer architecture.
computer architecture.
 
lec01.pdf
lec01.pdflec01.pdf
lec01.pdf
 
Improving Software Maintenance using Unsupervised Machine Learning techniques
Improving Software Maintenance using Unsupervised Machine Learning techniquesImproving Software Maintenance using Unsupervised Machine Learning techniques
Improving Software Maintenance using Unsupervised Machine Learning techniques
 
Balancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem FormulationBalancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem Formulation
 
VLSI and ES Design -An Overview.pptx
VLSI and ES Design -An Overview.pptxVLSI and ES Design -An Overview.pptx
VLSI and ES Design -An Overview.pptx
 
How long can you afford to Stop The World?
How long can you afford to Stop The World?How long can you afford to Stop The World?
How long can you afford to Stop The World?
 
Provenance for Data Munging Environments
Provenance for Data Munging EnvironmentsProvenance for Data Munging Environments
Provenance for Data Munging Environments
 
Fundamentals.pptx
Fundamentals.pptxFundamentals.pptx
Fundamentals.pptx
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 

Recently uploaded

“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 

Recently uploaded (20)

“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 

Feature-Oriented Software Evolution

  • 1. Feature-Oriented Software Evolution (Vision paper) Leonardo Passos1 Krzysztof Czarnecki1 Sven Apel2 Andrzej Wąsowski3 Christian Käster4 Jianmei Guo1 Claus Hunsen2 1University of Waterloo 2University of Passau 3IT University 4CMU The Seventh International Workshop on Variability Modelling of Software-intensive Systems 1/37
  • 4. Example Automotive embedded software: • Changing regulations 3/37
  • 5. Example Automotive embedded software: • Changing regulations ◦ ABS is now mandatory in the EU 3/37
  • 6. Example Automotive embedded software: • Changing regulations ◦ ABS is now mandatory in the EU • Market differentiating enhancements 3/37
  • 7. Example Automotive embedded software: • Changing regulations ◦ ABS is now mandatory in the EU • Market differentiating enhancements ◦ Electronic stability control (SC) improves ABS by preventing skidding 3/37
  • 8. Example Automotive embedded software: • Changing regulations ◦ ABS is now mandatory in the EU • Market differentiating enhancements ◦ Electronic stability control (SC) improves ABS by preventing skidding • New technology availability 3/37
  • 9. Example Automotive embedded software: • Changing regulations ◦ ABS is now mandatory in the EU • Market differentiating enhancements ◦ Electronic stability control (SC) improves ABS by preventing skidding • New technology availability ◦ Laser-based distance sensors are more precise than radio-based ones 3/37
  • 10. Understanding the evolution in place is not easy. . . 4/37
  • 12. Scenario • Integration can scatter different artifacts 5/37
  • 13. Scenario • Integration can scatter different artifacts • Different levels of abstractions not mastered by all stakeholders 5/37
  • 14. Scenario • Integration can scatter different artifacts • Different levels of abstractions not mastered by all stakeholders System level Code level M anagem entlevel 5/37
  • 15. Scenario • Integration can scatter different artifacts • Different levels of abstractions not mastered by all stakeholders System level Code level M anagem entlevel ⇐ Developers 5/37
  • 16. Scenario • Integration can scatter different artifacts • Different levels of abstractions not mastered by all stakeholders System level Code level M anagem entlevel ⇐ System engineers 5/37
  • 17. Scenario • Integration can scatter different artifacts • Different levels of abstractions not mastered by all stakeholders System level Code level M anagem entlevel ⇐ Project managers 5/37
  • 19. In practical settings. . . Complex and large software systems have: 7/37
  • 20. In practical settings. . . Complex and large software systems have: • Diverse set of stakeholders 7/37
  • 21. In practical settings. . . Complex and large software systems have: • Diverse set of stakeholders • Diverse set of artifacts 7/37
  • 22. In practical settings. . . Complex and large software systems have: • Diverse set of stakeholders • Diverse set of artifacts • Different stakeholders have particular “views” over the software 7/37
  • 23. In practical settings. . . Complex and large software systems have: • Diverse set of stakeholders • Diverse set of artifacts • Different stakeholders have particular “views” over the software Stakeholders need a common meeting point 7/37
  • 24. Otherwise. . . (no common meeting point) 8/37
  • 25. Otherwise. . . (no common meeting point) Ineffective communication 8/37
  • 26. Otherwise. . . (no common meeting point) Ineffective communication Software flaws 8/37
  • 27. Otherwise. . . (no common meeting point) Ineffective communication Software flaws Architecture decay 8/37
  • 28. Otherwise. . . (no common meeting point) Ineffective communication Software flaws Architecture decay Higher maintenance costs 8/37
  • 30. Hypothesis Managing evolution at the level of features can address the challenges describe above 10/37
  • 32. Hypothesis Arguments favouring the hypothesis: • Feature = cohesive requirements bundle 10/37
  • 33. Hypothesis Arguments favouring the hypothesis: • Feature = cohesive requirements bundle • Requirements are a common point among all stakeholders 10/37
  • 34. Hypothesis Arguments favouring the hypothesis: • Feature = cohesive requirements bundle • Requirements are a common point among all stakeholders • Features are more coarse-grained than individual requirements 10/37
  • 35. Hypothesis Arguments favouring the hypothesis: • Feature = cohesive requirements bundle • Requirements are a common point among all stakeholders • Features are more coarse-grained than individual requirements ◦ Facilitates understanding 10/37
  • 36. Hypothesis Arguments favouring the hypothesis: • Feature = cohesive requirements bundle • Requirements are a common point among all stakeholders • Features are more coarse-grained than individual requirements ◦ Facilitates understanding • Evolution can be put in simple terms 10/37
  • 37. Hypothesis Arguments favouring the hypothesis: • Feature = cohesive requirements bundle • Requirements are a common point among all stakeholders • Features are more coarse-grained than individual requirements ◦ Facilitates understanding • Evolution can be put in simple terms ◦ Add new feature, retire old ones, etc. 10/37
  • 38. Our vision (Assuming the validity of our hypothesis) 11/37
  • 39. Feature-oriented evolution based on: Tracing 12/37
  • 40. Feature-oriented evolution based on: Tracing Analyses 12/37
  • 41. Feature-oriented evolution based on: Tracing Analyses Recommendations 12/37
  • 42. Purpose of our work Research agenda based on our vision for feature-oriented software evolution This presentation covers part of that agenda (see paper for more details) 13/37
  • 50. Tracing YRS-M2YRS-M1 YRS-M2 YS (t1) (t2) (t3) DYRS()1/2 17/37
  • 51. Tracing YRS-M2YRS-M1 YRS-M2 YS (t1) (t2) (t3) DYRS()1/2Bug found in YS 17/37
  • 52. Tracing YRS-M2YRS-M1 YRS-M2 YS (t1) (t2) (t3) ? DYRS()Does the bug exist in YRS-M2 (t2)?1/2 17/37
  • 53. Tracing YRS-M2YRS-M1 YRS-M2 YS (t1) (t2) (t3) ? ? Does the bug exist in YRS-M1/2 (t1)? 17/37
  • 54. Tracing YRS-M2YRS-M1 YRS-M2 YS (t1) (t2) (t3) ? ? ? () Does the bug exist in both t1 and t2?1/2 17/37
  • 55. Tracing YRS-M2YRS-M1 YRS-M2 YS (t1) (t2) (t3) ? ? ? DYRS() Answering requires tracing the evolution of single features1/2 17/37
  • 56. Tracing • Traceability has to be recovered from a multi-space setting: 17/37
  • 57. Tracing • Traceability has to be recovered from a multi-space setting: ◦ Recover traceability of different artifacts (e.g.: FM, Build files, C code) 17/37
  • 58. Tracing • Traceability has to be recovered from a multi-space setting: ◦ Recover traceability of different artifacts (e.g.: FM, Build files, C code) ◦ Integrate the evolution history of those artifacts over time 17/37
  • 59. Tracing • Traceability has to be recovered from a multi-space setting: ◦ Recover traceability of different artifacts (e.g.: FM, Build files, C code) ◦ Integrate the evolution history of those artifacts over time ◦ Draw an evolution history (timeline) 17/37
  • 60. Tracing • Traceability has to be recovered from a multi-space setting: ◦ Recover traceability of different artifacts (e.g.: FM, Build files, C code) ◦ Integrate the evolution history of those artifacts over time ◦ Draw an evolution history (timeline) YRS-M1 YRS-M2 (t2)(t1) (t3) YS YRS M M M 17/37
  • 62. Tracing (Research questions) • Tracing certain artifacts can be daunting 19/37
  • 63. Tracing (Research questions) • Tracing certain artifacts can be daunting ◦ Individual build rules in build files (e.g., make is Turing-complete) 19/37
  • 64. Tracing (Research questions) • Tracing certain artifacts can be daunting ◦ Individual build rules in build files (e.g., make is Turing-complete) ◦ Fine-grained variability analysis in code is costly 19/37
  • 65. Tracing (Research questions) • Tracing certain artifacts can be daunting ◦ Individual build rules in build files (e.g., make is Turing-complete) ◦ Fine-grained variability analysis in code is costly RQ: How to recover traceability links in build files and source code in variability-aware systems? 19/37
  • 66. Tracing (Research questions) • Tracing certain artifacts can be daunting ◦ Individual build rules in build files (e.g., make is Turing-complete) ◦ Fine-grained variability analysis in code is costly RQ: How to recover traceability links in build files and source code in variability-aware systems? RQ: Once recovered, how to update them to reflect the temporal evolution in place? 19/37
  • 67. Tracing (Research questions) • Different artifacts = different sources to draw the evolution in place 19/37
  • 68. Tracing (Research questions) • Different artifacts = different sources to draw the evolution in place ◦ Mailing lists 19/37
  • 69. Tracing (Research questions) • Different artifacts = different sources to draw the evolution in place ◦ Mailing lists ◦ Commit patches and log messages 19/37
  • 70. Tracing (Research questions) • Different artifacts = different sources to draw the evolution in place ◦ Mailing lists ◦ Commit patches and log messages ◦ Bug reports in bug tracking systems 19/37
  • 71. Tracing (Research questions) • Different artifacts = different sources to draw the evolution in place ◦ Mailing lists ◦ Commit patches and log messages ◦ Bug reports in bug tracking systems RQ: Which sources are trustworthy? 19/37
  • 73. Analyses (Back to the motivating example) 21/37
  • 74. Analyses After the evolution of the SPL, stakeholders noticed that: 22/37
  • 75. Analyses After the evolution of the SPL, stakeholders noticed that: • Maintenance is taking longer 22/37
  • 76. Analyses After the evolution of the SPL, stakeholders noticed that: • Maintenance is taking longer • Productivity has decreased 22/37
  • 77. Analyses After the evolution of the SPL, stakeholders noticed that: • Maintenance is taking longer • Productivity has decreased • Bugs are starting to rise 22/37
  • 78. Analyses After the evolution of the SPL, stakeholders noticed that: • Maintenance is taking longer • Productivity has decreased • Bugs are starting to rise Well-known phenomena of software aging 22/37
  • 79. Analyses We envision three analyses to prevent aging: 22/37
  • 80. Analyses We envision three analyses to prevent aging: • Consistency checking analysis 22/37
  • 81. Analyses We envision three analyses to prevent aging: • Consistency checking analysis • Change impact analysis 22/37
  • 82. Analyses We envision three analyses to prevent aging: • Consistency checking analysis • Change impact analysis • Architectural analysis 22/37
  • 84. Analyses (Consistency checking) Goal: prevent inconsistencies in different artifacts DNpit 24/37
  • 85. Analyses (Consistency checking) Goal: prevent inconsistencies in different artifacts ... #ifdef Conv // switch // to Conv // if ABS // fails #endif ... ... sensor_data_t data ; #ifdef SC data = get_value(data) ; #endif if (data->check_oversteering()) react_oversteering() ; ... ... #ifdef SC && YRS_M1 double predicted_value ... #endif ... abs.c (1) abs.c (2) abs.c (3) ... #ifdef SC && YRS_M1 predictor_t p ; #else int p = 0; #endif ... predicted_value=p->get() ; abs.c (4) DNpit 24/37
  • 86. Analyses (Consistency checking) Goal: prevent inconsistencies in different artifacts ... #ifdef Conv // switch // to Conv // if ABS // fails #endif ... ... sensor_data_t data ; #ifdef SC data = get_value(data) ; #endif if (data->check_oversteering()) react_oversteering() ; ... ... #ifdef SC && YRS_M1 double predicted_value ... #endif ... abs.c (1) abs.c (2) abs.c (3) ... #ifdef SC && YRS_M1 predictor_t p ; #else int p = 0; #endif ... predicted_value=p->get() ; abs.c (4) Dead code DNpit 24/37
  • 87. Analyses (Consistency checking) Goal: prevent inconsistencies in different artifacts ... #ifdef Conv // switch // to Conv // if ABS // fails #endif ... ... sensor_data_t data ; #ifdef SC data = get_value(data) ; #endif if (data->check_oversteering()) react_oversteering() ; ... ... #ifdef SC && YRS_M1 double predicted_value ... #endif ... abs.c (1) abs.c (2) abs.c (3) ... #ifdef SC && YRS_M1 predictor_t p ; #else int p = 0; #endif ... predicted_value=p->get() ; abs.c (4) Null pointer exception DNpit 24/37
  • 88. Analyses (Consistency checking) Goal: prevent inconsistencies in different artifacts ... #ifdef Conv // switch // to Conv // if ABS // fails #endif ... ... sensor_data_t data ; #ifdef SC data = get_value(data) ; #endif if (data->check_oversteering()) react_oversteering() ; ... ... #ifdef SC && YRS_M1 double predicted_value ... #endif ... abs.c (1) abs.c (2) abs.c (3) ... #ifdef SC && YRS_M1 predictor_t p ; #else int p = 0; #endif ... predicted_value=p->get() ; abs.c (4) Syntax errorDNpit 24/37
  • 89. Analyses (Consistency checking) Goal: prevent inconsistencies in different artifacts ... #ifdef Conv // switch // to Conv // if ABS // fails #endif ... ... sensor_data_t data ; #ifdef SC data = get_value(data) ; #endif if (data->check_oversteering()) react_oversteering() ; ... ... #ifdef SC && YRS_M1 double predicted_value ... #endif ... abs.c (1) abs.c (2) abs.c (3) ... #ifdef SC && YRS_M1 predictor_t p ; #else int p = 0; #endif ... predicted_value=p->get() ; abs.c (4) DNpit Type error 24/37
  • 90. Analyses (Consistency checking) Goal: prevent inconsistencies in different artifacts ... #ifdef Conv // switch // to Conv // if ABS // fails #endif ... ... sensor_data_t data ; #ifdef SC data = get_value(data) ; #endif if (data->check_oversteering()) react_oversteering() ; ... ... #ifdef SC && YRS_M1 double predicted_value ... #endif ... abs.c (1) abs.c (2) abs.c (3) ... #ifdef SC && YRS_M1 predictor_t p ; #else int p = 0; #endif ... predicted_value=p->get() ; abs.c (4) Other types of analysis exist: e.g., model-checkingDNpit 24/37
  • 92. Consistency checking (Research questions) • Variability aware-analysis is costly. 26/37
  • 93. Consistency checking (Research questions) • Variability aware-analysis is costly. RQ: Do existing approaches for variability-aware type- checking, flow-analysis and model-checking scale to large systems? 26/37
  • 94. Consistency checking (Research questions) • Variability aware-analysis is costly. RQ: Do existing approaches for variability-aware type- checking, flow-analysis and model-checking scale to large systems? • Existing flow-analysis is intra-procedural. 26/37
  • 95. Consistency checking (Research questions) • Variability aware-analysis is costly. RQ: Do existing approaches for variability-aware type- checking, flow-analysis and model-checking scale to large systems? • Existing flow-analysis is intra-procedural. RQ: How to adapt existing inter-procedural analyses to handle variability? 26/37
  • 97. Impact analysis Goal: assess impact of changes 28/37
  • 98. Impact analysis Goal: assess impact of changes Scenario: • To identify bugs, stakeholders in our SPL have created formal specifications of the system’s features • Support for cruise control (CC) 28/37
  • 99. Impact analysis Goal: assess impact of changes Scenario: • To identify bugs, stakeholders in our SPL have created formal specifications of the system’s features • Support for cruise control (CC) Car YRS YRS-M2 SC ABSSC SCConv Featuremodel BRA ABSConv YRS SC YRS-M1 CC 28/37
  • 100. Impact analysis Stability-control behaviour property: No subsystem increases acceleration when SC is engaged 29/37
  • 101. Impact analysis Stability-control behaviour property: No subsystem increases acceleration when SC is engaged 1. CC cruise speed is set 2. Engage CC 3. Drivers looses control 4. Engage SC 5. CC accelerates to achieve cruise speed 29/37
  • 102. Impact analysis Stability-control behaviour property: No subsystem increases acceleration when SC is engaged 1. CC cruise speed is set 2. Engage CC 3. Drivers looses control 4. Engage SC 5. CC accelerates to achieve cruise speed Adding CC violates the given property 29/37
  • 103. Impact analysis Stability-control behaviour property: No subsystem increases acceleration when SC is engaged 1. CC cruise speed is set 2. Engage CC 3. Drivers looses control 4. Engage SC 5. CC accelerates to achieve cruise speed Adding CC violates the given property (Impact analysis aims to detect that promptly) 29/37
  • 104. Impact analysis (Research questions) • Currently, consistency between implementation assets (code) and the system’s specified property is mostly intractable. 30/37
  • 105. Impact analysis (Research questions) • Currently, consistency between implementation assets (code) and the system’s specified property is mostly intractable. RQ: How to verify that the system implementation does not break its specified properties? 30/37
  • 107. Architectural analysis • Feature model = view of the system architecture • From the recovered traces, one can track the “health of the system” • Different indicators can be collected to assess the system evolution: ◦ code metrics ◦ process metrics ◦ feature-based metrics ◦ feature-model based metrics ◦ product-line based metrics 32/37
  • 108. Architectural analysis • Evidence relating scattering and defects is rather preliminary. 33/37
  • 109. Architectural analysis • Evidence relating scattering and defects is rather preliminary. RQ: Can we provide more evidence for the relationship between scattering and defects? 33/37
  • 111. Recommendations + research question Suggestions for: 35/37
  • 112. Recommendations + research question Suggestions for: • Consistency analysis 35/37
  • 113. Recommendations + research question Suggestions for: • Consistency analysis • Impact analysis 35/37
  • 114. Recommendations + research question Suggestions for: • Consistency analysis • Impact analysis • Architectural analysis 35/37
  • 115. Recommendations + research question Consistency: • Fix recommendations for different artifacts types 35/37
  • 116. Recommendations + research question Consistency: • Fix recommendations for different artifacts types RQ: How to devise a fixing recommender integrating different artifacts, with different abstraction levels? 35/37
  • 117. Recommendations + research question Consistency: • Fix recommendations for different artifacts types RQ: How to devise a fixing recommender integrating different artifacts, with different abstraction levels? Impact analysis: • Point which features are more likely to have defects after a change 35/37
  • 118. Recommendations + research question Consistency: • Fix recommendations for different artifacts types RQ: How to devise a fixing recommender integrating different artifacts, with different abstraction levels? Impact analysis: • Point which features are more likely to have defects after a change RQ: Which feature-based metrics are good defect predictors? 35/37
  • 119. Recommendations + research question Architectural analysis: 35/37
  • 120. Recommendations + research question Architectural analysis: • Propose merges (features are too similar) 35/37
  • 121. Recommendations + research question Architectural analysis: • Propose merges (features are too similar) • Suggest feature retirement 35/37
  • 122. Recommendations + research question Architectural analysis: • Propose merges (features are too similar) • Suggest feature retirement • Suggest which features to modularize 35/37
  • 123. Recommendations + research question Architectural analysis: • Propose merges (features are too similar) • Suggest feature retirement • Suggest which features to modularize RQ: Which scenarios should be supported (are required in practice)? 35/37
  • 124. Conclusion • We hypothesized that feature-oriented evolution can mitigate existing challenges in evolving large-complex systems • From that hypothesis, we presented our vision based on tracing, analyses and recommendations • We are have started working on the realization of that vision 36/37