supporting the analysis of bug prevalence in software product lines with product genealogy

13
© Fraunhofer IESE SUPPORTING THE ANALYSIS OF BUG PREVALENCE IN SOFTWARE PRODUCT LINES WITH PRODUCT GENEALOGY Thiago Burgos [email protected] er.de Martin Becker [email protected] er.de Elisa Nakagawa [email protected]

Upload: thiago-burgos

Post on 11-May-2015

239 views

Category:

Technology


0 download

DESCRIPTION

Software product line conference paper presentation

TRANSCRIPT

Page 1: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

SUPPORTING THE ANALYSIS OF BUG PREVALENCE IN SOFTWARE PRODUCT LINES WITH PRODUCT GENEALOGY

Thiago [email protected]

eMartin Becker

[email protected]

Elisa Nakagawa [email protected]

Page 2: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

2

Fraunhofer-Institute for Experimental Software Engineering (IESE)

Leading Institute for Software Engineering

Founded in 1996 in Kaiserslautern, Germany

200 employees

Focus on software engineering Provide innovative and value-adding

customer solutions with measurable effects

Advance the state-of-the art in software and system engineering

Promote the importance of empirically based software and system engineering

www.iese.fraunhofer.de

Page 3: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

3

What is the problem?

Imagine that inside your SPL you discover one (major) BUG in one of your released products…

Are going to fix this bug only for this product?

Probably this same bug can be present in several other releases (of different variants/versions)!

The problem is:

How to find out which other product releases also contain this same bug?

Page 4: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

4

Background

Bug Prevalence means the extent of products that are affected by a particular bug.

The term was derived from disease prevalence which is used in the medical world vocabulary, in the epidemiology field.

In single systems development, this conceptshould only concern with evolution in time.

Finding the bug prevalence of a certain bug is still a challenge and a highly relevant topic, since besides the evolution in time there is also the evolution in space (variants).

Page 5: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

5

Research Questions

1. Given a set of products from a product family, and a bug in one of them, which other products will exhibit the same bug (Bug Prevalence)?

2. If an asset is changed, which products should be affected by the propagation of this change?

A similar type of analysis can be performed to provide support to these two research questions.

Page 6: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

6

The Analogy [1/2]

Concepts inspired from other sciences helping solving computer science problems.

Genes x SPL Assets (Core assets) Transfer characteristics/behaviors to the

derived members.

Bad Genes x Bugs The genes can carry good or bad

characteristics to next generations; thus, the product releases in an SPL can also inherit some wrong behavior or characteristics (bugs) from existing assets. The Hydra asexual

reproduction cycle

Page 7: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

7

The Analogy [2/2]

Phenotypes X Functional Behavior Variation decision resulting in an observable

behavior or characteristic.

Alleles x Variability Decisions The allele (the chosen variation of the

asset) that determines the phenotype (ex. the bug), not the gene itself (the asset).

Family Genealogy Tree X Product Genealogy Tree (PGT)

Hierarchical structure showing the path that the genes took during the familiy evolution.

PGT is composed by product releases

The diagram shows a cell reproducing asexually

Family Genealogy Tree Example

Page 8: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

8

Product Genealogy Approach

The Product Genealogy Approach was designed to support the analysis of bug prevalence.

Two main usage scenarios:

1. Before a bug fix, to identify the bug prevalence, and discover other products that this bug needs to be also fixed; and

2. After a change is performed, in order to identify the real impacts of the change on other products.

Page 9: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

9

Product Genealogy ApproachPhases and steps

Page 10: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

10

Product Genealogy Tree UML Representation

Page 11: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

12

Example

• Information for the PGT Creation (Phase 1) can be extracted from version control repository Branching Structure (Variants) Release Tags (Product

Releases ) Merges (Propagations)

• Depending on the the first analysis, a second round of analysis must be done with a broader scope (based on the PGT relationships)

First scope of analysis

Page 12: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

13

Concluding Remarks and Future Work It is less time consuming and more effective if we start

analyzing the product releases with a reduced set of possibilities (with a higher probability of having the bug) compared to an initial multitude of products.

Bugs are real practical problems, and therefore the approach has a real chance to be applied in practice.

Major contributions

The Product

GenealogyApproach

The Analogy

Provides the foundation concepts for the approach

Page 13: Supporting the analysis of bug prevalence in software product lines with product genealogy

© Fraunhofer IESE

14

Controller

Future Contribution – Adaptive System(Out of the scope of task 3.5)Feature modelsµTVL

PCLFeatures

x 𝝙PSL

Products x Features

PALProducts x

Adaptations

Product Adaptation Language

Deployed Product

AdaptationInfrastructurefrom Radu‘s

TeamFeature 1

Development Time

Run Time

PALMonitoring

Gets PAL rules

Sends information

According to some conditions, automatically triggers the adaptation

Contact:

Thiago Burgos Fraunhofer-Platz 167663 KaiserslauternTelefon+49(631) 6800-2262

Embedded Systems [email protected] www.iese.fraunhofer.de

Thank you! Questions?Obrigado! Perguntas?