Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using Information Fragments to Answer the Questions Developers Ask Thomas Fritz and Gail C. Murphy University of British Columbia.

Similar presentations


Presentation on theme: "Using Information Fragments to Answer the Questions Developers Ask Thomas Fritz and Gail C. Murphy University of British Columbia."— Presentation transcript:

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


Download ppt "Using Information Fragments to Answer the Questions Developers Ask Thomas Fritz and Gail C. Murphy University of British Columbia."

Similar presentations


Ads by Google