Developers Ask Reachability Questions

Slides:



Advertisements
Similar presentations
Useful tricks in studying reading papers doing research writing papers publishing papers English e-manuscripts.
Advertisements

Functional Maths Skills Learner Issues Su Nicholson Principal Examiner for Functional Maths Edexcel Resources produced as part of LSIS funded project.
Designing a Continuum of Learning to Assess Mathematical Practice NCSM April, 2011.
Report of the CMU Natural Programming Group Brad Myers, Andy Ko, Jeff Stylos, Michael Coblenz, Brian Ellis, Polo Chao Carnegie Mellon University.
Writing Good Software Engineering Research Papers A Paper by Mary Shaw In Proceedings of the 25th International Conference on Software Engineering (ICSE),
What is Workflow?. Defining workflow Definitions of workflow vary. Here are a couple: –The flow of work through space and time, where work is comprised.
ACOS 2010 Standards of Mathematical Practice
Introduction to High-Level Language Programming
Unit B065 – Coding a solution PREP WORK 1)Make sure you keep a work log / diary. Use the table on page 16 of the hand book as a template 2)Keep a bibliography.
Protocols for Mathematics Performance Tasks PD Protocol: Preparing for the Performance Task Classroom Protocol: Scaffolding Performance Tasks PD Protocol:
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Chapter 6 Determining System Requirements. 2 2 What are Requirements? “Requirements are … a specification of what should be implemented. They are descriptions.
Copyright (c) Cem Kaner. 1 Software Testing 1 CSE 3411 SWE 5411 Assignment #1 Replicate and Edit Bugs.
Introduction to Eclipse. What is Eclipse? An Integrated Development Environment Provides many features to ease C++ programming (and others, e.g. C/Java)
THESIS TITLE Your Name. Overview Short statement (1 minute) about what you researched and why you think its important.
Lecture by: Chris Ross Chapter 7: Teacher-Designed Strategies.
GIS Data Models GEOG 370 Christine Erlien, Instructor.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Presented to GETSI by Ellen Iverson, SERC, Carleton College Developed as InTeGrate talk by David Steer Department of Geosciences The University of Akron.
Duke CPS Programming Heuristics l Identify the aspects of your application that vary and separate them from what stays the same ä Take what varies.
Key Updates. What has changed? National Curriculum Early Years baseline assessment SATS Teacher Assessments Assessment without levels, expected standards.
The Emergent Structure of Development Tasks
4.05 Understand marketing-research design considerations to evaluate their appropriateness for the research problem/issue 4.00 Understand promotion and.
Mathematical Practice Standards
Chapter 3: Getting Started with Tasks
SEMINAR BUSINESS RESEARCH
Planning Instruction Component 3: Session 4
Analysis Analyze the picture to better understand this field of work. Consider equipment, surroundings, and activities. What conclusions can you draw.
Job Analysis Chapter 4 Md. Al-Amin.
Impact-Oriented Project Planning
The Validity of Astrology.
ELT 329 ACTION RESEARCH Week 4
Station Method in Education
Testing and Debugging.
Towards Trustworthy Program Repair
Adapted from
Critical Response Strategies
A Design Process Principles Of Engineering
Object-Oriented Analysis
The Design Process What Is Design? What Is a Design Process?
การแก้ปัญหา (Problem Solving)
Behavioral Models for Software Development
SWE-795 Presentation 01 11/16/2018 Asking and Answering Questions during a Programming Change Task Jonathan Sillito, Member, IEEE Computer Society, Gail.
Assessing Math Looking closer at PARCC Task Types.
A Design Process.
Introduction Artificial Intelligent.
Chapter 9 Structuring System Requirements: Logic Modeling
Scientific Inquiry Standard B – 1.7.
Test Information Distribution Engine (TIDE) Training
A finite sequence of operations that solves a given task
RESEARCH WORKSHOP Department of Computer Science and Informatics University of the Free State (Qwa-Qwa Campus)
Group Project: Diagnostic/Consulting Project
Planning Instruction Component 3: Session 4
A Design Process.
Finding Trends with Visualizations
Essentials of Oral Defense
Science for Young Children
The Research Problem Chapter 3
Workshop for LME Residents
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Chapter 9 Structuring System Requirements: Logic Modeling
THESIS TITLE Your Name.
The Writing Process Please take out some paper, you will need to take notes. Please label these notes “The Writing Process”
M. Kezunovic (P.I.) S. S. Luo D. Ristanovic Texas A&M University
Critical Reading: Comprehension and Extended Reasoning
Job Analysis Chapter 4 Md. Al-Amin.
MAPO: Mining and Recommending API Usage Patterns
Introduction Time is something we waist as a society
Software Testing and QA Theory and Practice (Chapter 5: Data Flow Testing) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
Presentation transcript:

Developers Ask Reachability Questions Tomas D. Latoza Brad A.Myers Summery By Maryam Arab, Feb2017

Reachability Questions As developers build their mental model of the code Ask questions, read code, use design knowledge, talk to teammates Many of questions related to control flow. A search across all feasible paths through a program for statements matching search criteria. Related to reasoning about causality among behaviors in a program. Result: Reachability questions are a significant portion of developer’s questions. 2 part: The Path to search The Search Criteria Feasible Paths: set of concrete traces TR: list of <s, env> Traces(p, O, D, C): set of all concerete traces in Program Upstream R-Q: Questions without an origin Downstream R-Q: Questions with an origin

Compare(TRa, TRb) Compare(TRa, TRb) : TRcommon, TR1, TR2 compares sets of traces. Attempts to match each tra in TRa to a corresponding trace trb in TRb. If found, then attempts to match tuples <sa, enva> in tra to corresponding tuples <sb, envb> in trb This generates three new lists: trcommon which contains an ordered list of tuples that matched tr1 and tr2 which contain an ordered list of tuples in tra and trb that did not match.

Find Find SC in TR Finds the portion of each tr in the set of traces TR that match search criteria SC. A search criteria function, given attributes describing a set of statements, generates a set of statements SC. R-Q then matches SC against each <s, env> tuple in a trace tr to generate new traces containing only tuples where s is in SC.

3 studies to analyze Reachability Questions

STUDY 1 – LAB OBSERVATIONS A lab study of modification to complex, unfamiliar code Reanalyze 13 developers Changes to unfamiliar codebase Allowed to use Eclipse feature & take notes with Windows Notepad or on paper. Worked on two code-change tasks for 1.5 hours per task(changes to jEdit.) Analysis1: Identify edits and cluster into changes implemented: Changes later abandoned Changes contained a bug -> if developer ask questions or made assumption(r-q) Analysis2: Look for time-consuming questions (>10 minutes answering)

STUDY 2 –Reachability Survey 1. What are the implications of this change? 2. How does application behavior vary in these different situations that might occur? 3. Could this method call potentially be slow in some situation I need to consider? 4. To move this functionality (e.g., lines of code, methods, files) to here, what else needs to be moved? 5. Is this method call now redundant or unnecessary in this situation? 6. Across this path of calls or set of classes, where should functionality for this case be inserted? 7. When investigating some application feature or functionality, how is it implemented? 8. In what situations is this method called? 9. What is the correct way to use or access this data structure? 10. How is control getting (from that method) to this method? 11. What parts of this data structure are accessed in this code? 12. How are instances of these classes or data structures created and assembled? A survey of 12 R-Q Developers asked to rate 12 questions for frequency and difficulty Invite 2000 employee at Microsoft Redmond campus(460) : They rate 9 of questions are asked everyday 4.1 somewhat hard 1.9 hard or very hard

STUDY 3 – FIELD OBSERVATIONS Observing 17 developers at work on their everyday coding tasks 20 developer from previous study Single observer& single developer Developers are free to use any programming languages, editor, and debuggers Work on their coding task for 90 minutes Encourage to select an unfamiliar code Developers are asked to think aloud Code reviews and interruption exclude form the analysis of time use Sequence of activities and time spent for it

Time-consuming Activities

Conclusion Better educating developers about reachability questions: Help developers learn, share, and choose more effective strategies for answering Coding more quickly and accurately with tools that support reachability questions.

What is your idea? Do you think answering reachability questions help developers?