identification of variation points using dynamic analysis

16
Identification of Variation Points Using Dynamic Analysis Bas Cornelissen

Upload: cassandra-hardin

Post on 02-Jan-2016

34 views

Category:

Documents


4 download

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 Presentation

TRANSCRIPT

Page 1: Identification of Variation Points Using Dynamic Analysis

Identification of Variation Points Using Dynamic Analysis

Bas Cornelissen

Page 2: Identification of Variation Points Using Dynamic Analysis

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

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

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

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

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

Preliminary results

• Original vs. map version

Page 8: Identification of Variation Points Using Dynamic Analysis

Preliminary results

• Original vs. map version– Slightly different

initialization– One fork…

Page 9: Identification of Variation Points Using Dynamic Analysis

Preliminary results

• Original vs. map version– Slightly different

initialization– One fork…– …and a quick merge

Page 10: Identification of Variation Points Using Dynamic Analysis

Preliminary results

• Original vs. hole version

Page 11: Identification of Variation Points Using Dynamic Analysis

Preliminary results

• Original vs. hole version– Slightly different

initialization: a fork …

Page 12: Identification of Variation Points Using Dynamic Analysis

Preliminary results

• Original vs. hole version– Slightly different

initialization: a fork … …and a quick merge

Page 13: Identification of Variation Points Using Dynamic Analysis

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

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

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

Discussion points

• How can the parameters be optimized?– Maximum/minimum branch length

• How can we make the results more meaningful?