More Related Content Similar to Supporting the analysis of bug prevalence in software product lines with product genealogy (20) Supporting the analysis of bug prevalence in software product lines with product genealogy1. © Fraunhofer IESE
SUPPORTING THE ANALYSIS OF BUG
PREVALENCE IN SOFTWARE PRODUCT
LINES WITH PRODUCT GENEALOGY
Thiago Burgos
thiago.burgos@iese.fraunhofer.de
Martin Becker
martin.becker@iese.fraunhofer.de
Elisa Nakagawa
elisa@icmc.usp.br
2. © 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
3. © 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?
4. © 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 concept
should 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).
5. © 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.
7. © 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
8. © 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.
11. © 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
12. © 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
Genealogy
Approach
The Analogy
Provides the foundation
concepts for the approach
13. © Fraunhofer IESE
14
Controller
Future Contribution – Adaptive System
(Out of the scope of task 3.5)
Feature
models
µTVL
PCL
Features x 𝝙
PSL
Products x
Features
PAL
Products x
Adaptations
Product Adaptation Language
Deployed
Product
Adaptation
Infrastructure
from Radu‘s
Team
Feature 1
Development
Time
Run Time
PALMonitoring
Gets PAL rules
Sends information
According to some
conditions, automatically
triggers the adaptation
Contact:
Thiago Burgos Fraunhofer-Platz 1
67663 Kaiserslautern
Telefon +49(631) 6800-2262
Embedded Systems thiago.burgos@iese.fraunhofer.de
Development www.iese.fraunhofer.de
Thank you! Questions?
Obrigado! Perguntas?
Editor's Notes and represents the measurement of all individuals affected by a certain disease. Familiy Generations x Product ReleasesWhether the product release is an evolution of a pre-vious release or a new dierent product derived from coreAsset Familiy Generations x Product ReleasesWhether the product release is an evolution of a previous release or a new different product derived from core Asset Makeclearthatthestepsaregenericand not dependent on anykindoftechnologyortool. But theimplementationoftheapproachcanbe different fromcasetocase. The product derivation from core assets and product evolution from previous version are represented using the UML dependency relationship with the «derives» stereotype.It is important to remember that since change propagations can be performed in any direction among the products, the PGT may loose its characteristics of a tree, but also they add valuable information regarding the genealogy of the products. Therefore, in this work we continue referring to it as PGT for the matter of the analogy described in Section 3. Phenotype!! By identifying the lines of code that are the root cause of the bug, it is also possible to verify at which point in the PGT these lines of code (badgenes) were introduced, and at which point in the PGT these lines of code were removed or changed.All the products between the two points (genes creation and removal) are great candidates to exhibit the same bug