feature-oriented software evolution

125
Feature-Oriented Software Evolution (Vision paper) Leonardo Passos 1 Krzysztof Czarnecki 1 Sven Apel 2 Andrzej Wąsowski 3 Christian Käster 4 Jianmei Guo 1 Claus Hunsen 2 1 University of Waterloo 2 University of Passau 3 IT University 4 CMU The Seventh International Workshop on Variability Modelling of Software-intensive Systems 1/37

Upload: leonardo-passos

Post on 18-Dec-2014

142 views

Category:

Technology


0 download

DESCRIPTION

In this paper, we develop a vision of software evolution based on a feature-oriented perspective. From the fact that features provide a common ground to all stakeholders, we derive a hypothesis that changes can be e ectively managed in a feature-oriented manner. Assuming that the hypothesis holds, we argue that feature-oriented software evolution relying on automatic traceability, analyses, and recommendations reduces existing challenges in understanding and managing evolution. We illustrate these ideas using an automotive example and raise research questions for the community.

TRANSCRIPT

Page 1: Feature-Oriented Software Evolution

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

Page 2: Feature-Oriented Software Evolution

Software evolves. . .

2/37

Page 3: Feature-Oriented Software Evolution

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

Page 4: Feature-Oriented Software Evolution

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

Page 5: Feature-Oriented Software Evolution

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

Page 6: Feature-Oriented Software Evolution

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

Page 7: Feature-Oriented Software Evolution

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

Page 8: Feature-Oriented Software Evolution

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

Page 9: Feature-Oriented Software Evolution

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

Page 10: Feature-Oriented Software Evolution

Understanding the evolution inplace is not easy. . .

4/37

Page 11: Feature-Oriented Software Evolution

Scenario

ABS + SC

5/37

Page 12: Feature-Oriented Software Evolution

Scenario

• Integration can scatter different artifacts

• Different levels of abstractions not mastered by all stakeholders

Syste

m leve

l

Code l

evel

Manag

emen

t leve

l

5/37

Page 13: Feature-Oriented Software Evolution

Scenario

• Integration can scatter different artifacts

• Different levels of abstractions not mastered by all stakeholders

Syste

m leve

l

Code l

evel

Manag

emen

t leve

l

5/37

Page 14: Feature-Oriented Software Evolution

Scenario

• Integration can scatter different artifacts

• Different levels of abstractions not mastered by all stakeholders

Syste

m leve

l

Code l

evel

Manag

emen

t leve

l

5/37

Page 15: Feature-Oriented Software Evolution

Scenario

• Integration can scatter different artifacts

• Different levels of abstractions not mastered by all stakeholders

Syste

m leve

l

Code l

evel

Manag

emen

t leve

l

⇐ Developers

5/37

Page 16: Feature-Oriented Software Evolution

Scenario

• Integration can scatter different artifacts

• Different levels of abstractions not mastered by all stakeholders

Syste

m leve

l

Code l

evel

Manag

emen

t leve

l

⇐ System engineers

5/37

Page 17: Feature-Oriented Software Evolution

Scenario

• Integration can scatter different artifacts

• Different levels of abstractions not mastered by all stakeholders

Syste

m leve

l

Code l

evel

Manag

emen

t leve

l

⇐ Project managers

5/37

Page 18: Feature-Oriented Software Evolution

In practical settings. . .

6/37

Page 19: Feature-Oriented Software Evolution

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

Page 20: Feature-Oriented Software Evolution

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

Page 21: Feature-Oriented Software Evolution

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

Page 22: Feature-Oriented Software Evolution

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

Page 23: Feature-Oriented Software Evolution

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

Page 24: Feature-Oriented Software Evolution

Otherwise. . .(no common meeting point)

Ineffective communication Software flaws

Architecture decay Higher maintenance costs

8/37

Page 25: Feature-Oriented Software Evolution

Otherwise. . .(no common meeting point)

Ineffective communication

Software flaws

Architecture decay Higher maintenance costs

8/37

Page 26: Feature-Oriented Software Evolution

Otherwise. . .(no common meeting point)

Ineffective communication Software flaws

Architecture decay Higher maintenance costs

8/37

Page 27: Feature-Oriented Software Evolution

Otherwise. . .(no common meeting point)

Ineffective communication Software flaws

Architecture decay

Higher maintenance costs

8/37

Page 28: Feature-Oriented Software Evolution

Otherwise. . .(no common meeting point)

Ineffective communication Software flaws

Architecture decay Higher maintenance costs

8/37

Page 29: Feature-Oriented Software Evolution

Hypothesis

9/37

Page 30: Feature-Oriented Software Evolution

Hypothesis

Managing evolution at the level of features can addressthe challenges describe above

10/37

Page 31: Feature-Oriented Software Evolution

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

Page 32: Feature-Oriented Software Evolution

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

Page 33: Feature-Oriented Software Evolution

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

Page 34: Feature-Oriented Software Evolution

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

Page 35: Feature-Oriented Software Evolution

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

Page 36: Feature-Oriented Software Evolution

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

Page 37: Feature-Oriented Software Evolution

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

Page 38: Feature-Oriented Software Evolution

Our vision(Assuming the validity of our hypothesis)

11/37

Page 39: Feature-Oriented Software Evolution

Feature-oriented evolution based on:

Tracing

Analyses

Recommendations

12/37

Page 40: Feature-Oriented Software Evolution

Feature-oriented evolution based on:

Tracing

Analyses

Recommendations

12/37

Page 41: Feature-Oriented Software Evolution

Feature-oriented evolution based on:

Tracing

Analyses

Recommendations

12/37

Page 42: Feature-Oriented Software Evolution

Purpose of our work

Research agenda basedon our vision for feature-oriented

software evolution

This presentation covers part of that agenda(see paper for more details)

13/37

Page 43: Feature-Oriented Software Evolution

Motivating example

14/37

Page 44: Feature-Oriented Software Evolution

Motivating example

Car

YRS

YRS-M2

SC

ABS SC

SC Conv

Fea

ture

mod

el

BRA

ABSConv

YRS SC

YRS-M1

Merge + clone yaw rate prediction

15/37

Page 45: Feature-Oriented Software Evolution

Motivating example

Car

YRS

YRS-M2

SC

ABS SC

SC Conv

Fea

ture

mod

el

BRA

ABSConv

YRS SC

YRS-M1

Merge + clone yaw rate prediction

15/37

Page 46: Feature-Oriented Software Evolution

Motivating example

Car

YRS

YRS-M2

SC

ABS SC

SC Conv

Fea

ture

mod

el

BRA

ABSConv

YRS SC

Merge + clone yaw rate prediction

15/37

Page 47: Feature-Oriented Software Evolution

Motivating example

Car

YRS

YRS-M2

SC

ABS SC

SC Conv

Fea

ture

mod

el

BRA

ABSConv

YRS SC

Merge YRS-M2 into YRS + rename YRS to YS

15/37

Page 48: Feature-Oriented Software Evolution

Motivating example

Car

YSSC

ABS SC

SC Conv

Fea

ture

mod

el

BRA

ABSConv

YS SC

Merge + clone yaw rate prediction

15/37

Page 49: Feature-Oriented Software Evolution

Tracing

16/37

Page 50: Feature-Oriented Software Evolution

Tracing

YRS-M2YRS-M1 YRS-M2 YS

(t1) (t2) (t3)

DYRS()1/2

17/37

Page 51: Feature-Oriented Software Evolution

Tracing

YRS-M2YRS-M1 YRS-M2 YS

(t1) (t2) (t3)

DYRS()1/2Bug found in YS

17/37

Page 52: Feature-Oriented Software Evolution

Tracing

YRS-M2YRS-M1 YRS-M2 YS

(t1) (t2) (t3)

?DYRS()Does the bug exist in YRS-M2 (t2)?1/2

17/37

Page 53: Feature-Oriented Software Evolution

Tracing

YRS-M2YRS-M1 YRS-M2 YS

(t1) (t2) (t3)

? ?Does the bug exist in YRS-M1/2 (t1)?

17/37

Page 54: Feature-Oriented Software Evolution

Tracing

YRS-M2YRS-M1 YRS-M2 YS

(t1) (t2) (t3)

? ? ?() Does the bug exist in both t1 and t2?1/2

17/37

Page 55: Feature-Oriented Software Evolution

Tracing

YRS-M2YRS-M1 YRS-M2 YS

(t1) (t2) (t3)

? ? ?DYRS() Answering requires tracing the evolution of single features1/2

17/37

Page 56: Feature-Oriented Software Evolution

Tracing

• Traceability has to be recovered from a multi-space setting:

◦ Recover traceability of different artifacts (e.g.: FM, Build files, Ccode)

◦ Integrate the evolution history of those artifacts over time

◦ Draw an evolution history (timeline)

YRS-M1

YRS-M2

(t2)(t1) (t

3)

YS

YRS

M M

M

17/37

Page 57: Feature-Oriented Software Evolution

Tracing

• Traceability has to be recovered from a multi-space setting:

◦ Recover traceability of different artifacts (e.g.: FM, Build files, Ccode)

◦ Integrate the evolution history of those artifacts over time

◦ Draw an evolution history (timeline)

YRS-M1

YRS-M2

(t2)(t1) (t

3)

YS

YRS

M M

M

17/37

Page 58: Feature-Oriented Software Evolution

Tracing

• Traceability has to be recovered from a multi-space setting:

◦ Recover traceability of different artifacts (e.g.: FM, Build files, Ccode)

◦ Integrate the evolution history of those artifacts over time

◦ Draw an evolution history (timeline)

YRS-M1

YRS-M2

(t2)(t1) (t

3)

YS

YRS

M M

M

17/37

Page 59: Feature-Oriented Software Evolution

Tracing

• Traceability has to be recovered from a multi-space setting:

◦ Recover traceability of different artifacts (e.g.: FM, Build files, Ccode)

◦ Integrate the evolution history of those artifacts over time

◦ Draw an evolution history (timeline)

YRS-M1

YRS-M2

(t2)(t1) (t

3)

YS

YRS

M M

M

17/37

Page 60: Feature-Oriented Software Evolution

Tracing

• Traceability has to be recovered from a multi-space setting:

◦ Recover traceability of different artifacts (e.g.: FM, Build files, Ccode)

◦ Integrate the evolution history of those artifacts over time

◦ Draw an evolution history (timeline)

YRS-M1

YRS-M2

(t2)(t1) (t

3)

YS

YRS

M M

M

17/37

Page 61: Feature-Oriented Software Evolution

Tracing(Research questions)

18/37

Page 62: Feature-Oriented Software Evolution

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 sourcecode in variability-aware systems?

RQ: Once recovered, how to update them to reflect thetemporal evolution in place?

19/37

Page 63: Feature-Oriented Software Evolution

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 sourcecode in variability-aware systems?

RQ: Once recovered, how to update them to reflect thetemporal evolution in place?

19/37

Page 64: Feature-Oriented Software Evolution

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 sourcecode in variability-aware systems?

RQ: Once recovered, how to update them to reflect thetemporal evolution in place?

19/37

Page 65: Feature-Oriented Software Evolution

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 sourcecode in variability-aware systems?

RQ: Once recovered, how to update them to reflect thetemporal evolution in place?

19/37

Page 66: Feature-Oriented Software Evolution

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 sourcecode in variability-aware systems?

RQ: Once recovered, how to update them to reflect thetemporal evolution in place?

19/37

Page 67: Feature-Oriented Software Evolution

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

Page 68: Feature-Oriented Software Evolution

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

Page 69: Feature-Oriented Software Evolution

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

Page 70: Feature-Oriented Software Evolution

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

Page 71: Feature-Oriented Software Evolution

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

Page 72: Feature-Oriented Software Evolution

Analyses

20/37

Page 73: Feature-Oriented Software Evolution

Analyses(Back to the motivating example)

21/37

Page 74: Feature-Oriented Software Evolution

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

Page 75: Feature-Oriented Software Evolution

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

Page 76: Feature-Oriented Software Evolution

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

Page 77: Feature-Oriented Software Evolution

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

Page 78: Feature-Oriented Software Evolution

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

Page 79: Feature-Oriented Software Evolution

Analyses

We envision three analyses to prevent aging:

• Consistency checking analysis

• Change impact analysis

• Architectural analysis

22/37

Page 80: Feature-Oriented Software Evolution

Analyses

We envision three analyses to prevent aging:

• Consistency checking analysis

• Change impact analysis

• Architectural analysis

22/37

Page 81: Feature-Oriented Software Evolution

Analyses

We envision three analyses to prevent aging:

• Consistency checking analysis

• Change impact analysis

• Architectural analysis

22/37

Page 82: Feature-Oriented Software Evolution

Analyses

We envision three analyses to prevent aging:

• Consistency checking analysis

• Change impact analysis

• Architectural analysis

22/37

Page 83: Feature-Oriented Software Evolution

Analyses(Consistency checking)

23/37

Page 84: Feature-Oriented Software Evolution

Analyses (Consistency checking)

Goal: prevent inconsistencies in different artifacts

DNpit

24/37

Page 85: Feature-Oriented Software Evolution

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

Page 86: Feature-Oriented Software Evolution

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

Page 87: Feature-Oriented Software Evolution

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

Page 88: Feature-Oriented Software Evolution

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

Page 89: Feature-Oriented Software Evolution

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

Page 90: Feature-Oriented Software Evolution

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

Page 91: Feature-Oriented Software Evolution

Consistency checking(Research questions)

25/37

Page 92: Feature-Oriented Software Evolution

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 largesystems?

• Existing flow-analysis is intra-procedural.

RQ: How to adapt existing inter-procedural analyses tohandle variability?

26/37

Page 93: Feature-Oriented Software Evolution

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 largesystems?

• Existing flow-analysis is intra-procedural.

RQ: How to adapt existing inter-procedural analyses tohandle variability?

26/37

Page 94: Feature-Oriented Software Evolution

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 largesystems?

• Existing flow-analysis is intra-procedural.

RQ: How to adapt existing inter-procedural analyses tohandle variability?

26/37

Page 95: Feature-Oriented Software Evolution

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 largesystems?

• Existing flow-analysis is intra-procedural.

RQ: How to adapt existing inter-procedural analyses tohandle variability?

26/37

Page 96: Feature-Oriented Software Evolution

Analyses(Impact analysis)

27/37

Page 97: Feature-Oriented Software Evolution

Impact analysis

Goal: assess impact of changes

Scenario:

• To identify bugs, stakeholders in our SPL have created formalspecifications of the system’s features

• Support for cruise control (CC)

Car

YRS

YRS-M2

SC

ABS SC

SC Conv

Fea

ture

mod

el

BRA

ABSConv

YRS SC

YRS-M1

CC

28/37

Page 98: Feature-Oriented Software Evolution

Impact analysis

Goal: assess impact of changes

Scenario:

• To identify bugs, stakeholders in our SPL have created formalspecifications of the system’s features

• Support for cruise control (CC)

Car

YRS

YRS-M2

SC

ABS SC

SC Conv

Fea

ture

mod

el

BRA

ABSConv

YRS SC

YRS-M1

CC

28/37

Page 99: Feature-Oriented Software Evolution

Impact analysis

Goal: assess impact of changes

Scenario:

• To identify bugs, stakeholders in our SPL have created formalspecifications of the system’s features

• Support for cruise control (CC)

Car

YRS

YRS-M2

SC

ABS SC

SC Conv

Fea

ture

mod

el

BRA

ABSConv

YRS SC

YRS-M1

CC

28/37

Page 100: Feature-Oriented Software Evolution

Impact analysis

Stability-control behaviour property: No subsystem increasesacceleration when SC is engaged

1. CC cruise speed is set

2. Engage CC

3. Drivers loosescontrol

4. Engage SC5. CC accelerates to achieve cruise speed

Adding CC violates the given property

(Impact analysis aims to detect that promptly)

29/37

Page 101: Feature-Oriented Software Evolution

Impact analysis

Stability-control behaviour property: No subsystem increasesacceleration when SC is engaged

1. CC cruise speed is set

2. Engage CC

3. Drivers loosescontrol

4. Engage SC5. CC accelerates to achieve cruise speed

Adding CC violates the given property

(Impact analysis aims to detect that promptly)

29/37

Page 102: Feature-Oriented Software Evolution

Impact analysis

Stability-control behaviour property: No subsystem increasesacceleration when SC is engaged

1. CC cruise speed is set

2. Engage CC

3. Drivers loosescontrol

4. Engage SC5. CC accelerates to achieve cruise speed

Adding CC violates the given property

(Impact analysis aims to detect that promptly)

29/37

Page 103: Feature-Oriented Software Evolution

Impact analysis

Stability-control behaviour property: No subsystem increasesacceleration when SC is engaged

1. CC cruise speed is set

2. Engage CC

3. Drivers loosescontrol

4. Engage SC5. CC accelerates to achieve cruise speed

Adding CC violates the given property(Impact analysis aims to detect that promptly)

29/37

Page 104: Feature-Oriented Software Evolution

Impact analysis (Research questions)

• Currently, consistency between implementation assets (code) andthe system’s specified property is mostly intractable.

RQ: How to verify that the system implementation does notbreak its specified properties?

30/37

Page 105: Feature-Oriented Software Evolution

Impact analysis (Research questions)

• Currently, consistency between implementation assets (code) andthe system’s specified property is mostly intractable.

RQ: How to verify that the system implementation does notbreak its specified properties?

30/37

Page 106: Feature-Oriented Software Evolution

Analyses(Architectural analysis)

31/37

Page 107: Feature-Oriented Software Evolution

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-basedmetrics

◦ feature-model based metrics

◦ product-line based metrics

32/37

Page 108: Feature-Oriented Software Evolution

Architectural analysis

• Evidence relating scattering and defects is rather preliminary.

RQ: Can we provide more evidence for the relationshipbetween scattering and defects?

33/37

Page 109: Feature-Oriented Software Evolution

Architectural analysis

• Evidence relating scattering and defects is rather preliminary.

RQ: Can we provide more evidence for the relationshipbetween scattering and defects?

33/37

Page 110: Feature-Oriented Software Evolution

Recommendations

34/37

Page 111: Feature-Oriented Software Evolution

Recommendations + research question

Suggestions for:

• Consistency analysis

• Impact analysis

• Architectural analysis

35/37

Page 112: Feature-Oriented Software Evolution

Recommendations + research question

Suggestions for:

• Consistency analysis

• Impact analysis

• Architectural analysis

35/37

Page 113: Feature-Oriented Software Evolution

Recommendations + research question

Suggestions for:

• Consistency analysis

• Impact analysis

• Architectural analysis

35/37

Page 114: Feature-Oriented Software Evolution

Recommendations + research question

Suggestions for:

• Consistency analysis

• Impact analysis

• Architectural analysis

35/37

Page 115: Feature-Oriented Software Evolution

Recommendations + research question

Consistency:

• Fix recommendations for different artifacts types

RQ: How to devise a fixing recommender integratingdifferent 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

Page 116: Feature-Oriented Software Evolution

Recommendations + research question

Consistency:

• Fix recommendations for different artifacts types

RQ: How to devise a fixing recommender integratingdifferent 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

Page 117: Feature-Oriented Software Evolution

Recommendations + research question

Consistency:

• Fix recommendations for different artifacts types

RQ: How to devise a fixing recommender integratingdifferent 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

Page 118: Feature-Oriented Software Evolution

Recommendations + research question

Consistency:

• Fix recommendations for different artifacts types

RQ: How to devise a fixing recommender integratingdifferent 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

Page 119: Feature-Oriented Software Evolution

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 inpractice)?

35/37

Page 120: Feature-Oriented Software Evolution

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 inpractice)?

35/37

Page 121: Feature-Oriented Software Evolution

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 inpractice)?

35/37

Page 122: Feature-Oriented Software Evolution

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 inpractice)?

35/37

Page 123: Feature-Oriented Software Evolution

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 inpractice)?

35/37

Page 124: Feature-Oriented Software Evolution

Conclusion

• We hypothesized that feature-oriented evolution can mitigateexisting 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

Page 125: Feature-Oriented Software Evolution

Thanks for listening!

37/37