supporting the analysis of bug prevalence in software product lines with product genealogy
DESCRIPTION
Software product line conference paper presentationTRANSCRIPT
© Fraunhofer IESE
SUPPORTING THE ANALYSIS OF BUG PREVALENCE IN SOFTWARE PRODUCT LINES WITH PRODUCT GENEALOGY
Thiago [email protected]
eMartin Becker
Elisa Nakagawa [email protected]
© 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
© 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?
© 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).
© 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.
© 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
© 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
© 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.
© Fraunhofer IESE
9
Product Genealogy ApproachPhases and steps
© Fraunhofer IESE
10
Product Genealogy Tree UML Representation
© 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
© 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
© 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?