ASKING AND ANSWERING QUESTIONS DURING A PROGRAMMING CHANGE

  • Slides: 11
Download presentation
ASKING AND ANSWERING QUESTIONS DURING A PROGRAMMING CHANGE TASK JONATHAN SILLITO, MEMBER, IEEE COMPUTER

ASKING AND ANSWERING QUESTIONS DURING A PROGRAMMING CHANGE TASK JONATHAN SILLITO, MEMBER, IEEE COMPUTER SOCIETY, GAIL C. MURPHY, MEMBER, IEEE COMPUTER SOCIETY, AND KRIS DE VOLDER Summery By. Fardina Fathmiul Alam , G#01031111 SWE 795, Spring 2017 Software Engineering Environments 1

KEY IDEA: q. Little is known about the specific kinds of questions programmers ask

KEY IDEA: q. Little is known about the specific kinds of questions programmers ask when evolving a code base and how well existing tools support those questions. q. To better support the activity of programming, answers are needed to three broad research questions: 1) What does a programmer need to know about a code base when evolving a software system? 2) How does a programmer go about finding that information? 3) How well do existing tools support programmers in answering those questions? q. This paper undertook two qualitative studies of programmers performing change tasks to provide answers to these questions. q. Based on these studies, they reported on an analysis of the data. 2

KEY CONTRIBUTIONS: q. First contribution: A catalog of 44 types of questions programmers ask

KEY CONTRIBUTIONS: q. First contribution: A catalog of 44 types of questions programmers ask during software evolution tasks. q. Second contribution: Description of the observed behavior around answering those questions. q. Third contribution: Description of how existing deployed and proposed tools do, and do not, support answering programmers’ questions. Based on these results, this paper has discussed the support that is missing from existing programming tools. 3

PREVIOUS WORKS: Contribution: qdeveloping models of program comprehension, which are descriptions of the cognitive

PREVIOUS WORKS: Contribution: qdeveloping models of program comprehension, which are descriptions of the cognitive processes a programmer uses to build an understanding of a software system qhow programmers perform change tasks, including how programmers use tools in that context Limitations: qdo not consider in detail what a programmer needs to know about a code base when performing a change task qhow the programmer finds that information, nor how well tools support those activities 4

STUDY ONE: LABORATORYBASED INVESTIGATION Goal: Observe programmers significant change tasks using practice development tools.

STUDY ONE: LABORATORYBASED INVESTIGATION Goal: Observe programmers significant change tasks using practice development tools. performing state-of-the- Task: In each session, work on a change task using the Eclipse IDE ( representative of the state -of the-practice) 5

STUDY TWO: INDUSTRYBASED INVESTIGATION Goal: Observe programmers performing significant change tasks to a software

STUDY TWO: INDUSTRYBASED INVESTIGATION Goal: Observe programmers performing significant change tasks to a software system for which Participants had responsibility. The systems were implemented in a range of languages and the participants used the tools that they would normally use. Task: In each session, the programmer was asked to describe the task he or she had selected and think aloud while working on the task. 6

CATALOG OF QUESTIONS IN CONTEXT Discovering focus points in the graph How a given

CATALOG OF QUESTIONS IN CONTEXT Discovering focus points in the graph How a given entity and other entities are related Multiple Relationship between an entity and other entities, about data and control flow How entities relate to each other or to the rest of the system 7

8

8

TOOLS SUPPORT FOR ANALYSIS QUESTIONS qanalyzed the literature on programming tools and techniques for

TOOLS SUPPORT FOR ANALYSIS QUESTIONS qanalyzed the literature on programming tools and techniques for exploring source code. qidentified tool with support for answering questions qdetermined whether or not tools or techniques exists to address each question. q. Rated the level of support provided by the best available tool they found as full or partial 9

SUMMARY: THE TECHNIQUES AND TOOLS & THEIR LEVEL OF SUPPORT APPLICABLE TO ANSWERING EACH

SUMMARY: THE TECHNIQUES AND TOOLS & THEIR LEVEL OF SUPPORT APPLICABLE TO ANSWERING EACH QUESTION 10

QUESTIONS FOR DISCUSSION q. Overall reactions q. Where might the contribution of this paper

QUESTIONS FOR DISCUSSION q. Overall reactions q. Where might the contribution of this paper have the most impact? q. What the limitations? q. Are the claims/process about the category of Questions are convincing? q. What aspect seems the most challenging? 11