identification of variation points using dynamic analysis n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Identification of Variation Points Using Dynamic Analysis PowerPoint Presentation
Download Presentation
Identification of Variation Points Using Dynamic Analysis

Loading in 2 Seconds...

play fullscreen
1 / 16
cassandra-hardin

Identification of Variation Points Using Dynamic Analysis - PowerPoint PPT Presentation

59 Views
Download Presentation
Identification of Variation Points Using Dynamic Analysis
An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  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 • At method level • Aspect-oriented programming • Execution using similar scenarios • Aimed at invoking one particular feature

  5. Method • Detection algorithm • 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 • 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?