identification of variation points using dynamic analysis
DESCRIPTION
Identification of Variation Points Using Dynamic Analysis. Bas Cornelissen. Introduction. Product lines Several versions for various customers Each having its own set of features Variation points Configurable features. Introduction. Identifying variation points in source code - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/1.jpg)
Identification of Variation Points Using Dynamic Analysis
Bas Cornelissen
![Page 2: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/2.jpg)
Introduction
• Product lines
• Several versions for various customers– Each having its own set of features
• Variation points– Configurable features
![Page 3: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/3.jpg)
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
![Page 4: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/4.jpg)
Method
• Code instrumentation– At method level– Aspect-oriented programming
• Execution using similar scenarios– Aimed at invoking one particular feature
![Page 5: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/5.jpg)
Method
• Detection algorithm– Sliding windows– Parameters
• Checksum size• Minimum branch length• Maximum branch length
• Visualization– Dot
![Page 6: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/6.jpg)
Method
• Running example– Pacman– 20 classes, 1000 LOC– Various versions
• Original (reference)• Map extension• Additional game
entities, e.g. holes
![Page 7: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/7.jpg)
Preliminary results
• Original vs. map version
![Page 8: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/8.jpg)
Preliminary results
• Original vs. map version– Slightly different
initialization– One fork…
![Page 9: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/9.jpg)
Preliminary results
• Original vs. map version– Slightly different
initialization– One fork…– …and a quick merge
![Page 10: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/10.jpg)
Preliminary results
• Original vs. hole version
![Page 11: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/11.jpg)
Preliminary results
• Original vs. hole version– Slightly different
initialization: a fork …
![Page 12: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/12.jpg)
Preliminary results
• Original vs. hole version– Slightly different
initialization: a fork … …and a quick merge
![Page 13: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/13.jpg)
Preliminary results
• Original vs. hole version– Slightly different
initialization: a fork … …and a quick merge
– Divergent behavior
→
![Page 14: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/14.jpg)
Conclusions
• Efficient algorithm– 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
![Page 15: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/15.jpg)
Future work
• Parameter optimization
• Improved accuracy– Incorporation of stack depths– Incorporation of method arguments
• Better visualization
• Large software systems– Support for other abstraction levels
![Page 16: Identification of Variation Points Using Dynamic Analysis](https://reader036.vdocuments.mx/reader036/viewer/2022062321/568134b5550346895d9bd3e8/html5/thumbnails/16.jpg)
Discussion points
• How can the parameters be optimized?– Maximum/minimum branch length
• How can we make the results more meaningful?