Code Investigation Z´ ephyrin Soh Context and Paper An Exploratory Study of How Developers Exploratory Study Seek, Relate, and Collect Relevant Results Activities Information during Software Strategy Search Relate Maintenance Tasks Collect Possible Idea by Ko et al. TSE 2006 Developers’ Activities Relevant Code Conclusion Z´ ephyrin Soh Department of Computer and Software Engineering ´ Ecole Polytechnique de Montr´ eal, Qu´ ebec, Canada April 4, 2014 Pattern Trace Identification, Detection, and Enhancement in Java SOftware Cost-effective Change and Evolution Research Lab
Code Investigation Outline Z´ ephyrin Soh Context and Paper Exploratory Study Results Context and Paper Activities Strategy Search Relate Collect Exploratory Study Possible Idea Developers’ Activities Relevant Code Results Conclusion Possible Idea Conclusion 2 / 18
Code Investigation Context and Paper Z´ ephyrin Soh Context and Paper Exploratory Study Results Activities Developers’ Behaviour ... Strategy Search ... when they investigate source code Relate Collect ◮ Refers to the way (how) developers process to perform Possible Idea Developers’ Activities a task on a given program. Relevant Code ◮ Understand how developers work Conclusion ◮ Identify what problem they have ◮ Help them by providing adequate (and efficient) tools ◮ Improve developers’ productivity 3 / 18
Code Investigation Context and Paper Z´ ephyrin Soh Context and Paper Exploratory Study Results Activities Strategy Search Relate Collect Possible Idea Developers’ Activities Relevant Code Conclusion Motivations Developers spend amount of effort finding where and how to perform a change on a program. Tools should help developers in building the task context Task context: the parts and relationships of arti- facts relevant to the tasks 4 / 18
Code Investigation Exploratory Study Z´ ephyrin Soh Context and Paper Exploratory Study Goals Results Activities ◮ Study strategies for understanding and utilizing relevant Strategy Search information Relate Collect ◮ Discover the ways IDEs are related to these strategies Possible Idea Developers’ Activities Relevant Code Design Conclusion ◮ Subjects: 10 Java experienced developers (Master, PhD, senior computer science students) ◮ Object: Paint application (9 Java classes), no documentation and not commented code ◮ Tasks: 2 debugging, 3 enhancements? 5 / 18
Code Investigation Exploratory Study Z´ ephyrin Soh Context and Paper Method Exploratory Study ◮ Each developer performs all the five tasks Results Activities Strategy ◮ Time limit: 70 min Search Relate ◮ Interruption each 2.5 - 3.5 minutes Collect Possible Idea ◮ Screen-captured videos Developers’ Activities Relevant Code Conclusion Video Analysis ◮ Phase 1 (two authors together): ◮ Identify information seeking and management patterns ◮ Generate list of developers’ actions (important to understand their behaviour) ◮ Phase 2 (two authors on separate computer): ◮ Create log for each action (start and stop time, etc.) 6 / 18
Code Investigation Results Z´ ephyrin Soh Activities (1/1) Context and Paper Exploratory Study Results Activities Strategy Search Relate Collect Possible Idea Developers’ Activities Relevant Code Conclusion Time spent performing each activity 1. Fifth of the time: Reading code, editing code 2. Textual search and navigating dependencies 3. Testing the program 7 / 18
Code Investigation Results Z´ ephyrin Soh Strategy (1/1) Context and Paper Exploratory Study Results Activities Developers behaviour = process of searching, relating, and Strategy Search collecting relevant information. Relate Collect Possible Idea Developers’ Activities Relevant Code Conclusion 8 / 18
Code Investigation Results Z´ ephyrin Soh Search (1/1) Context and Paper Exploratory Study What and How Developers Search? Results Activities Searching for relevant code: Strategy Search ◮ To edit, duplicate, help them to understand other Relate Collect relevant code Possible Idea Developers’ Activities ◮ Manual and using textual search tools Relevant Code Conclusion ◮ Search based on cues (“words” that guide developers’ search) ◮ Limited/inadequate and misrepresentative cues ◮ From source code (identifier), environment, and executing program (symptoms of the program’s failure) Nature and origin of the cues led to failed search (about 88% of searches led to nothing of later use) 9 / 18
Code Investigation Results Z´ ephyrin Soh Search (2/2) Context and Paper Exploratory Study Results Activities Strategy Recommendations Search Relate Tools should guide developers’ search: Collect Possible Idea ◮ Help them to judge relevance of information Developers’ Activities Relevant Code ⇒ anotate files’ icon with description of its purpose Conclusion (comments header) ◮ Layers of cues: Help developer to decide if the high level information is relevant before read in detail ⇒ open the file only if the anotation lets believe that the file is relevant 10 / 18
Code Investigation Results Z´ ephyrin Soh Relate (1/1) Context and Paper Why and How Developers Relate? Exploratory Study ◮ To collect relevant code and built the task context Results Activities ◮ Follow the incoming and outgoing dependencies of Strategy Search Relate relevant code Collect Possible Idea Often returning to relevant code to navigate other Developers’ Activities Relevant Code dependencies ( ≈ 27% direct dependencies and ≈ 34% Conclusion indirect) 11 / 18
Code Investigation Results Z´ ephyrin Soh Relate (1/1) Context and Paper Why and How Developers Relate? Exploratory Study ◮ To collect relevant code and built the task context Results Activities ◮ Follow the incoming and outgoing dependencies of Strategy Search Relate relevant code Collect Possible Idea Often returning to relevant code to navigate other Developers’ Activities Relevant Code dependencies ( ≈ 27% direct dependencies and ≈ 34% Conclusion indirect) Recommendations Assisting developers’ in relating: ◮ Highlight dependencies based on the text selection ⇒ Hint on what dependencies to navigate ◮ An interaction technique that allow developers to glance at related code 11 / 18
Code Investigation Results Z´ ephyrin Soh Collect (1/1) Context and Paper Exploratory Study Results What and How Developers Collect? Activities Strategy Information that they believed would be necessary to fix the Search Relate task (their task context) Collect Possible Idea ◮ Use bookmarks to mark a line of code Developers’ Activities Relevant Code ◮ Use paper to write down important information Conclusion ⇒ Developers have a limited way to collect information 12 / 18
Code Investigation Results Z´ ephyrin Soh Collect (1/1) Context and Paper Exploratory Study Results What and How Developers Collect? Activities Strategy Information that they believed would be necessary to fix the Search Relate task (their task context) Collect Possible Idea ◮ Use bookmarks to mark a line of code Developers’ Activities Relevant Code ◮ Use paper to write down important information Conclusion ⇒ Developers have a limited way to collect information Recommendations ◮ Provide ways to collect the information the developer deems relevant ◮ Provide a single place to view all relevant information 12 / 18
Code Investigation Possible Idea Z´ ephyrin Soh Developers’ Activities (1/2) Context and Paper Idea Exploratory Study ◮ Hypothesis: Developers may have different abilities for Results Activities different activities. Strategy Search Relate ◮ When comparing the time to find vs. the time to Collect modify, we can observe that some developers are faster Possible Idea Developers’ Activities to find where others are faster to modify Relevant Code Conclusion ⇒ Study activities according to the developers’ profile (experience, knowledge, level, etc.) 13 / 18
Code Investigation Possible Idea Z´ ephyrin Soh Developers’ Activities (1/2) Context and Paper Idea Exploratory Study ◮ Hypothesis: Developers may have different abilities for Results Activities different activities. Strategy Search Relate ◮ When comparing the time to find vs. the time to Collect modify, we can observe that some developers are faster Possible Idea Developers’ Activities to find where others are faster to modify Relevant Code Conclusion ⇒ Study activities according to the developers’ profile (experience, knowledge, level, etc.) Problem ◮ There is no clear boundary between activities ◮ We cannot identify all the activities: “Reading code” was the default category when they observe no other actions. 13 / 18
Code Investigation Possible Idea Z´ ephyrin Soh Developers’ Activities (2/2) Context and Paper Exploratory Study Results Activities Strategy Direction Search Relate ◮ Assume that developers perform three main activities: Collect Possible Idea Search, Change, Test. Developers’ Activities Relevant Code ◮ Cannot identify “Understand” activity which is Conclusion transverse to other three activities. ◮ Consider “Other” category ◮ Define indicators to identify each activity: when it starts and ends? 14 / 18
Recommend
More recommend