Download presentation
Presentation is loading. Please wait.
Published byAapo Mäkinen Modified over 5 years ago
1
Identification of Variation Points Using Dynamic Analysis
Bas Cornelissen
2
Introduction Product lines Several versions for various customers
Each having its own set of features Variation points Configurable features
3
Introduction Identifying variation points in source code
Isolation of code responsible for specific features Useful in merging product line members Research proposal Dynamic analysis Comparison of traces generated by two versions Detection and visualization of variation points
4
Method Code instrumentation Execution using similar scenarios
At method level Aspect-oriented programming Execution using similar scenarios Aimed at invoking one particular feature
5
Method Detection algorithm Visualization Sliding windows Parameters
Checksum size Minimum branch length Maximum branch length Visualization Dot
6
Method Running example Pacman 20 classes, 1000 LOC Various versions
Original (reference) Map extension Additional game entities, e.g. holes
7
Preliminary results Original vs. map version
8
Preliminary results Original vs. map version
Slightly different initialization One fork…
9
Preliminary results Original vs. map version
Slightly different initialization One fork… …and a quick merge
10
Preliminary results Original vs. hole version
11
Preliminary results Original vs. hole version
Slightly different initialization: a fork …
12
Preliminary results Original vs. hole version
Slightly different initialization: a fork … …and a quick merge
13
Preliminary results → Original vs. hole version
Slightly different initialization: a fork … …and a quick merge Divergent behavior →
14
Conclusions Efficient algorithm Meaningful results
Parameterized Branch lengths have upper bounds Meaningful results Architect gains quick insight into relevant source code Creating similar scenarios may be hard in some cases e.g., deterministic behavior is a must
15
Future work Parameter optimization Improved accuracy
Incorporation of stack depths Incorporation of method arguments Better visualization Large software systems Support for other abstraction levels
16
Discussion points How can the parameters be optimized?
Maximum/minimum branch length How can we make the results more meaningful?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.