Download presentation
Presentation is loading. Please wait.
1
Using Information Fragments to Answer the Questions Developers Ask Thomas Fritz and Gail C. Murphy University of British Columbia
2
2 Who is working on what? What is the evolution of the code? What [have] people done lately? What classes has my team been working on? Who is working on the same classes as I am and for which work item? Who has made changes to my classes? What classes have been changed? Which features and functions have been changing? Has progress been made on blockers (blocking work items) in your milestone? What caused this build to break? Who owns a test case? Which API has changed? Who owns this piece of code? How is the team organized?
3
3 Who is working on what? What is the evolution of the code? What [have] people done lately? What classes has my team been working on? Who is working on the same classes as I am and for which work item? Who has made changes to my classes? What classes have been changed? Which features and functions have been changing? Has progress been made on blockers (blocking work items) in your milestone? What caused this build to break? Who owns a test case? Which API has changed? Who owns this piece of code? How is the team organized? Test Who people team Who team Team
4
4 Who is working on what? What is the evolution of the code? What [have] people done lately? What classes has my team been working on? Who is working on the same classes as I am and for which work item? Who has made changes to my classes? What classes have been changed? Which features and functions have been changing? Has progress been made on blockers (blocking work items) in your milestone? What caused this build to break? Who owns a test case? Which API has changed? Who owns this piece of code? How is the team organized? Test what features work item blockers What TeamWork Items
5
5 Who is working on what? What is the evolution of the code? What [have] people done lately? What classes has my team been working on? Who is working on the same classes as I am and for which work item? Who has made changes to my classes? What classes have been changed? Which features and functions have been changing? Has progress been made on blockers (blocking work items) in your milestone? What caused this build to break? Who owns a test case? Which API has changed? Who owns this piece of code? How is the team organized? Test changing changed changes changed evolution Changes progress TeamWork Items
6
6 Who is working on what? What is the evolution of the code? What [have] people done lately? What classes has my team been working on? Who is working on the same classes as I am and for which work item? Who has made changes to my classes? What classes have been changed? Which features and functions have been changing? Has progress been made on blockers (blocking work items) in your milestone? What caused this build to break? Who owns a test case? Which API has changed? Who owns this piece of code? How is the team organized? Test API classes code Code classes code Changes TeamWork Items
7
7 Code Changes TeamWork Items Team Changes Work Items Code
8
8 Team Changes Code Work Items
9
9 Team Changes Code Work Items Can we automate the integration of information from multiple domains ?
10
10
11
11 “What has my team been working on?” Team Fragment
12
12 “What has my team been working on?” Work Item Fragment
13
13 “What has my team been working on?” Change Set Fragment
14
14 “What has my team been working on?” Source Code Fragment
15
15 “What has my team been working on?”
16
16 “What has my team been working on?”
17
17 Team Fragment Work Item Fragment Change Set Fragment Source Code Fragment “What has my team been working on?”
18
18 Information Fragment Model Defect 303 WI 315 Work Item Fragment id Team Fragment David Julie Allen Φ (,)(,) Φ (,)(,) Presentation 1 Presentation 2 Composition
19
19 Information Fragments Subset of information F =(V, E, l F ) WI 315: Can’t... id: 315 owner: David duplicate of D303: Popup can... id: 303 owner: Julie V: uniquely identifiable items with domain, type and properties E: relationships between nodes l F : mapping V → {Fragments}
20
20 Composition F' : union of input fragments (nodes/edges) + newly created edges based on properties Julie id: Julie F WI WI 315: Can’t... id: 315 owner: David D303: Popup can... id: 303 owner: Julie David id: David Allen id: Allen FTFT owner duplicate of id F' =
21
21 Presentation WI 315 D 303 David Julie WI 316 Φ (t, wi) Φ (wi, t) owner creator creator, owner Allen
22
22
23
23 Who is working on what? What is the evolution of the code? What [have] people done lately? What classes has my team been working on? Who is working on the same classes as I am and for which work item? Who has made changes to my classes? What classes have been changed? Which features and functions have been changing? Has progress been made on blockers (blocking work items) in your milestone? What caused this build to break? Who owns a test case? Which API has changed? Who owns this piece of code? How is the team organized? Information Fragment Model
24
24 1.Can developers use the model to answer the questions? 1.A 2.Can developers use the model effectively without detailed understanding of the model ? Multiple Cases Study with 18 professional developers Evaluating our Model
25
25 Source Code Change Sets Teams Work Items (1)What classes have been changed? XX (2)Who has made changes to my classes? XXX (3)What has changed between two builds and who has changed it? XXX (4)What have people been working on? XX (5)What classes has my team been working on? XXXX (6)What’s the most popular class? (changed most) XX (7)Who owns this piece of code? (modified most) XXX (8)How do recently delivered changes affect changes that I am working on? XX Evaluation – Method 8 questions from original 78 to cover domains of interest
26
26 Evaluation – Method Questions made more specific to reduce interpretations and match available data “What classes has my team been working on?” Yesterday, on which classes (of the SCM code) have Alex and Allen on the SCM team been working on and why? For each developer name one class and the reason for the change. 10-15 minute tutorial 18 developers from 4 different teams 8 questions from original 78 to cover domains of interest
27
27 Evaluation – Prototype
28
28 Evaluation – Results (Success) 94% success Failure Hint Given Success
29
29 Evaluation – Results (Time) mean time 2.3 mins
30
30 1.Can developers use the model to answer the questions? 2.Can developers use the model effectively without detailed understanding of the model? 94 % success rate 2.3 mins mean time 10 – 15 mins training hint given in only 9 cases (6%) Evaluation – Results
31
31 Easy to use Evaluation – User Comments “I throw everything in and reorder it [...] and see if it seems reasonable.” Answers multi-domain questions “for this type of thing I never really thought of trying to solve these problems [...], I try and find some obscure way [instead]?” “it is answering questions that I don’t think we can answer right now”
32
32 Understanding links takes time Evaluation – User Comments “lot of trial and error”, but “made sense in the end” Participants liked the tool “pretty nifty” “pretty cool” “cool” “neat tool” “definitely useful” “really really cool” “well done”
33
33 Evaluation – Threats Predefined information fragments 8 questions may not be representative Unfamiliar data
34
34 Discussion How to best select information fragments? –actual selection –predefined Is it possible to automatically choose composition?
35
35 Related Work Following information links Feldspar [Chau et al. 2008], JQuery [Janzen et al. 2003] Querying for information Relational views [Linton 1984], CodeQuest [Hajiyev et al. 2006] Automatically linking information Hipikat [Cubranic et al. 2005], Deep Intellisense [Holmes et al. 2008] Composing different information Ferret [de Alwis et al. 2008]
36
36 Who is working on what? What is the evolution of the code? What [have] people done lately? What classes has my team been working on? Who is working on the same classes as I am and for which work item? Who has made changes to my classes? What classes have been changed? Which features and functions have been changing? Has progress been made on blockers (blocking work items) in your milestone? What caused this build to break? Who owns a test case? Which API has changed? Who owns this piece of code? How is the team organized? Information Fragment Model
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.