Development History Granularity Transformations

Published  . 0 views
↓ Download
Development History Granularity Transformations
1 / 1
Development History Granularity Transformations - slide 1 of 20 Development History Granularity Transformations - slide 2 of 20 Development History Granularity Transformations - slide 3 of 20 Development History Granularity Transformations - slide 4 of 20 Development History Granularity Transformations - slide 5 of 20 Development History Granularity Transformations - slide 6 of 20 Development History Granularity Transformations - slide 7 of 20 Development History Granularity Transformations - slide 8 of 20 Development History Granularity Transformations - slide 9 of 20 Development History Granularity Transformations - slide 10 of 20 Development History Granularity Transformations - slide 11 of 20 Development History Granularity Transformations - slide 12 of 20 Development History Granularity Transformations - slide 13 of 20 Development History Granularity Transformations - slide 14 of 20 Development History Granularity Transformations - slide 15 of 20 Development History Granularity Transformations - slide 16 of 20 Development History Granularity Transformations - slide 17 of 20 Development History Granularity Transformations - slide 18 of 20 Development History Granularity Transformations - slide 19 of 20 Development History Granularity Transformations - slide 20 of 20
Description: Development History Granularity Transformations Kıvanç Muşlu Luke Swart Yuriy Brun Michael D. Ernst Microsoft, Tools for Software Engineers University of Washington, Computer Science Engineering HaxGeo, Civic Software Development

Related Topics

Download Presentation

"Development History Granularity Transformations" is the property of its rightful owner. Permission is granted to download and print the materials on this website for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.

Presentation Transcript

slide1. Development History Granularity Transformations Kıvanç Muşlu Luke Swart Yuriy Brun Michael D. Ernst
Microsoft, Tools for Software Engineers
University of Washington, Computer Science & Engineering
HaxGeo, Civic Software Development
University of Massachusetts Amherst, Information and Computer Science<br>
slide2. Development histories simplify tasks Development histories are used to:
localize bugs
rollback mistakes
understanding software evolution
predicting failures
…<br>
slide3. Different tasks require different granularities<br>
slide4. Problem: development histories are inflexible automatically-managed histories [YoonM11, Mahoney12, NegaraCDJ14]
Fine-grained: extracting relevant information requires post processing
manually-managed histories
Incomplete: might miss information
Course-grained: information might be intermingled with irrelevant one m a i n public static void public static void main<br>
slide5. Solution: multi-grained development histories record a complete & fine-grained history
automatically transform this history into more optimal granularities for the task at hand Our contribution:
make recording granularity transparent<br>
slide6. Solution: multi-grained development histories<br>
slide7. Outline<br>
slide8. Transformations granularity transformations
(group changes that satisfy … and reorder history such that …)

transformation operations
(intermediate operations)

transformation primitives
expand, collapse, group<br>
slide9. Primitives: expand, collapse, and move<br>
slide10. Primitives: expand, collapse, and move<br>
slide11. Primitives: expand, collapse, and move<br>
slide12. Primitives: expand, collapse, and move move(5,2)<br>
slide13. Operation: group (move + collapse) 1 2 1 1 2 2 3 e8 move(3,2) & move(4, 3) move(7, 6) collapse(1, 3) collapse(2, 4)<br>
slide14. Transformation: GroupCompilable (group) 1 2 3 3 3 4 4<br>
slide15. All transformations GroupCompilable: group(collapse)

GroupFiles: group(collapse + move)
for each modified file, creates a group containing all edits on this file
useful for manual inspection (e.g., VCS diff)

GroupCollocated: expand + group(collapse + move)
creates a group for each contiguous edit
useful for separating tangled changes<br>
slide16. Codebase Manipulation: a design for multi-grained histories<br>
slide17. Codebase Manipulation: a design for multi-grained histories<br>
slide18. Codebase Manipulation: a design for multi-grained histories<br>
slide19. Codebase Manipulation: a design for multi-grained histories<br>
slide20. Contributions identify inflexibility problem of the current development histories

propose multi-grained histories
Builds on three primitives: collapse, expand, move
History is automatically recorded
Developer uses the most optimal granularity for the current task

Codebase Manipulation: one design for multi-grained histories<br>