70 likes | 248 Views
ADG: Annotated Dependency Graphs. Ahmed Hassan and Richard Holt. University Of Waterloo, Canada. Motivating Example. A Year Later. ??!. ??!. Unexpected Dependencies. What? New data dependency New functional dependency Why? Is it a bug fix? Developer laziness / ignorance? When?
E N D
ADG: Annotated Dependency Graphs Ahmed Hassan and Richard Holt University Of Waterloo, Canada
Motivating Example A Year Later ??! ??!
Unexpected Dependencies • What? • New data dependency • New functional dependency • Why? • Is it a bug fix? • Developer laziness / ignorance? • When? • Just before a release • Just last week • Who? • Was it is me? • Was it a junior developer?
Annotated Dependency Graph • Dependency Graph show only: • Entities (func/var/subs) • Relations (call/use) • Add Developer Sticky Notes: • Rationale • Time • Developer
Building ADG • Manual: • Get developers to annotate the graph • Extra work/ new process • Automated: • Use source control data • Accurate – historical records • No extra work needed • Easy to generate
Conclusion • ADG extend traditional dependency graphs • ADG can be automatically built from source control data • ADG assist developers in understanding unexpected dependencies