An Exploratory Study of How Developers Exploratory Study Seek, - - PowerPoint PPT Presentation

an exploratory study of how developers
SMART_READER_LITE
LIVE PREVIEW

An Exploratory Study of How Developers Exploratory Study Seek, - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks

by Ko et al. TSE 2006 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

slide-2
SLIDE 2

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Outline

Context and Paper Exploratory Study Results Possible Idea Conclusion

2 / 18

slide-3
SLIDE 3

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Context and Paper

Developers’ Behaviour ...

... when they investigate source code

◮ Refers to the way (how) developers process to perform

a task on a given program.

◮ Understand how developers work ◮ Identify what problem they have ◮ Help them by providing adequate (and efficient) tools ◮ Improve developers’ productivity

3 / 18

slide-4
SLIDE 4

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Context and Paper

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

slide-5
SLIDE 5

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Exploratory Study

Goals

◮ Study strategies for understanding and utilizing relevant

information

◮ Discover the ways IDEs are related to these strategies

Design

◮ 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

slide-6
SLIDE 6

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Exploratory Study

Method

◮ Each developer performs all the five tasks ◮ Time limit: 70 min ◮ Interruption each 2.5 - 3.5 minutes ◮ Screen-captured videos

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

slide-7
SLIDE 7

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Results

Activities (1/1)

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

slide-8
SLIDE 8

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Results

Strategy (1/1)

Developers behaviour = process of searching, relating, and collecting relevant information.

8 / 18

slide-9
SLIDE 9

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Results

Search (1/1)

What and How Developers Search?

Searching for relevant code:

◮ To edit, duplicate, help them to understand other

relevant code

◮ Manual and using textual search tools ◮ 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

slide-10
SLIDE 10

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Results

Search (2/2)

Recommendations

Tools should guide developers’ search:

◮ Help them to judge relevance of information

⇒ anotate files’ icon with description of its purpose (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

slide-11
SLIDE 11

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Results

Relate (1/1)

Why and How Developers Relate?

◮ To collect relevant code and built the task context ◮ Follow the incoming and outgoing dependencies of

relevant code Often returning to relevant code to navigate other dependencies (≈ 27% direct dependencies and ≈ 34% indirect)

11 / 18

slide-12
SLIDE 12

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Results

Relate (1/1)

Why and How Developers Relate?

◮ To collect relevant code and built the task context ◮ Follow the incoming and outgoing dependencies of

relevant code Often returning to relevant code to navigate other dependencies (≈ 27% direct dependencies and ≈ 34% 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

slide-13
SLIDE 13

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Results

Collect (1/1)

What and How Developers Collect?

Information that they believed would be necessary to fix the task (their task context)

◮ Use bookmarks to mark a line of code ◮ Use paper to write down important information

⇒ Developers have a limited way to collect information

12 / 18

slide-14
SLIDE 14

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Results

Collect (1/1)

What and How Developers Collect?

Information that they believed would be necessary to fix the task (their task context)

◮ Use bookmarks to mark a line of code ◮ Use paper to write down important information

⇒ 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

slide-15
SLIDE 15

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Possible Idea

Developers’ Activities (1/2)

Idea

◮ Hypothesis: Developers may have different abilities for

different activities.

◮ When comparing the time to find vs. the time to

modify, we can observe that some developers are faster to find where others are faster to modify ⇒ Study activities according to the developers’ profile (experience, knowledge, level, etc.)

13 / 18

slide-16
SLIDE 16

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Possible Idea

Developers’ Activities (1/2)

Idea

◮ Hypothesis: Developers may have different abilities for

different activities.

◮ When comparing the time to find vs. the time to

modify, we can observe that some developers are faster to find where others are faster to modify ⇒ 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

slide-17
SLIDE 17

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Possible Idea

Developers’ Activities (2/2)

Direction

◮ Assume that developers perform three main activities:

Search, Change, Test.

◮ Cannot identify “Understand” activity which is

transverse to other three activities.

◮ Consider “Other” category ◮ Define indicators to identify each activity: when it

starts and ends?

14 / 18

slide-18
SLIDE 18

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Possible Idea

Relevant Code (1/2)

Problem

◮ Use indicators to identify what seems to be relevant

code

◮ When relating, developers often return to relevant code

and navigating its other dependencies ⇒ Relevance by frequency

15 / 18

slide-19
SLIDE 19

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Possible Idea

Relevant Code (1/2)

Problem

◮ Use indicators to identify what seems to be relevant

code

◮ When relating, developers often return to relevant code

and navigating its other dependencies ⇒ Relevance by frequency

Idea

◮ Hypothesis: Some irrelevant code must be

reinvestigated more than relevant code.

15 / 18

slide-20
SLIDE 20

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Possible Idea

Relevant Code (2/2)

Direction

◮ Ask developers what is relevant for them vs. infer the

relevant code

◮ Study how much they return to relevant vs. irrelevant

code

◮ Problem: Relevance at high level (file) vs. low level

(LOC)

16 / 18

slide-21
SLIDE 21

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Conclusion

Paper

◮ Developers search, relate, and collect relevant code

(their task context).

◮ Suggest some feautres that tools can provide to help

developers in searching, relating, and collecting.

17 / 18

slide-22
SLIDE 22

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Conclusion

Paper

◮ Developers search, relate, and collect relevant code

(their task context).

◮ Suggest some feautres that tools can provide to help

developers in searching, relating, and collecting.

Idea

◮ Developers may have different abilities for different

activities.

◮ Some irrelevant code must be reinvestigated more than

relevant code.

17 / 18

slide-23
SLIDE 23

Code Investigation Z´ ephyrin Soh Context and Paper Exploratory Study Results

Activities Strategy Search Relate Collect

Possible Idea

Developers’ Activities Relevant Code

Conclusion

Thanks for your attention!

18 / 18