Tracing Software Developers' Eyes and Interactions for Change Tasks

Total Page:16

File Type:pdf, Size:1020Kb

Tracing Software Developers' Eyes and Interactions for Change Tasks Tracing Software Developers’ Eyes and Interactions for Change Tasks Katja Kevic†, Braden M. Walters*, Timothy R. Shaffer*, Bonita Sharif*, David C. Shepherd‡, Thomas Fritz† †University of Zurich, Switzerland *Youngstown State University, USA ‡ABB Corporate Research, USA Department of Informatics Department of CS and IS Industrial Software Systems {kevic,fritz}@ifi.uzh.ch {bmwalters01,trshaffer}@student.ysu.edu [email protected] [email protected] ABSTRACT In order to successfully complete these tasks, they have to What are software developers doing during a change task? read, navigate and edit the relevant pieces of code [22, 16]. While an answer to this question opens countless opportuni- Since the inception of software development, researchers have ties to support developers in their work, only little is known been studying how developers read and navigate code, and about developers' detailed navigation behavior for realistic what kind of knowledge they acquire (e.g., [43, 5, 22]). The change tasks. Most empirical studies on developers perform- more we know about a developer's work, the better we are ing change tasks are limited to very small code snippets or are able to support her, for instance, by reducing information limited by the granularity or the detail of the data collected overload [21], improving defect prediction [24], or providing for the study. In our research, we try to overcome these automatic navigation recommendations [13, 29]. limitations by combining user interaction monitoring with Yet relatively few studies have been undertaken to investi- very fine granular eye-tracking data that is automatically gate detailed navigation behavior of developers for realistic linked to the underlying source code entities in the IDE. change tasks. The lack of realistic studies is due to the In a study with 12 professional and 10 student developers significant challenges and effort of acquiring the time of working on three change tasks from an open source system, professional software developers to participate as well as of we used our approach to investigate the detailed navigation capturing, transcribing and coding longer sessions of devel- of developers for realistic change tasks. The results of our opers' work on change tasks. More recently, approaches have study show, amongst others, that the eye-tracking data does been developed to automatically capture more data from indeed capture different aspects than user interaction data a developer's interactions with source code elements in an and that developers focus on only small parts of methods integrated development environment (IDE) [2, 21]. These that are often related by data flow. We discuss our findings approaches capture source code elements mostly on the class and their implications for better developer tool support. and method level and are based on explicit user interactions with the mouse or keyboard. Categories and Subject Descriptors Recent advances in technology afford new opportunities to collect a wide variety of more detailed information on a D.2.7 [Software Engineering]: Distribution, Maintenance, software developer and her work. Studies with sensors for and Enhancement tracking biometric features, such as eye gaze, have generated General Terms new insights on developers' work on small code tasks, such as perceptions of difficulty [15], brain activation patterns [42], Human Factors, Experimentation the scanning patterns of code [36] or the ease of compre- Keywords hending different representations of code [40, 6]. Most of these studies focus on very small code comprehension tasks eye-tracking, gaze, change task, user study with a single method or class, in particular, since they re- 1. INTRODUCTION quire manual linking between the gaze data collected with an eye-tracker and the source code elements a developer looked Software developers spend a majority of their time working at. on change tasks, such as bug fixes or feature additions [25]. While these studies provide valuable first insights, the advances in technology open up the opportunity to address further important research questions, such as, what is a de- veloper's fine-grained navigation behavior for realistic change Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are tasks, what is the difference in the data captured through not made or distributed for profit or commercial advantage and that copies eye-tracking and interaction logging and how can we use bear this notice and the full citation on the first page. To copy otherwise, to eye-tracking data to support developers. Answering these republish, to post on servers or to redistribute to lists, requires prior specific questions will allow us to better understand developers' com- permission and/or a fee. prehension of large code bases and to develop better and FSE ’15 more fine-granular tool support for developers. Copyright 20XX ACM X-XXXXX-XX-X/XX/XX ...$15.00. In our research, we take advantage of the opportunities developers' actions. Altmann, for instance, analyzed a ten that eye-tracking provides, and extend previous research minute interval of an expert programmer performing a task by addressing some of these questions by focusing on more and used computational simulation to study the near-term realistic change tasks to investigate how developers read memory [5]. Perhaps one of the most well-known user studies and navigate through code while working. In particular, we from this category is the study by Ko et al. [22]. In this study, are examining how eye-tracking data differs from the data the authors screen captured ten developers' desktops while captured by monitoring user interactions in an IDE, how they worked on five tasks on a toy-sized program and then developers' eyes move within and between methods, and how hand-coded and analyzed each 70 minute session. In a study these newly gained insights can be used to better support on developers performing more realistic change tasks, Fritz developers in their work on change tasks. We developed et al. [16] used a similar technique and manually transcribed an approach to automatically link eye-tracking data to the and coded the screen captured videos of all participants. source code elements in the IDE, which combines the ease While all of these studies are a valuable source of learning of automatically collecting data in an IDE with the finer and led to interesting findings, the cost of hand-coding a granularity of eye-tracking data. Our approach also supports developers' actions is very high, which led to only a limited the scrolling and switching of code editor windows by de- number of studies providing detailed insights on a developers' velopers and thus allows for change task investigations on behavior. a realistic-sized code base and is not limited to very small tasks as most previous studies are. This new approach for User Interaction Monitoring. conducting user studies in software development provides More recently, approaches have been developed to auto- the potential to reduce the cost of generating detailed, rich matically capture user interaction data within an IDE, such user data and valuable insights in developers' navigation as Mylyn [2, 20, 21]. Based on such automatically captured behavior. interaction histories|logs of the code elements a developer We conducted a study with 22 participants, 12 professional interacted with along with a timestamp|researchers have, developers and 10 students, working on three realistic change for instance, investigated how developers work in an IDE [27], tasks for a total of 60 minutes while automatically tracing how they navigate through code [28, 29, 47], or how devel- their eye gazes and their explicit user interactions in the code opers' micro interaction patterns might be used for defect editor of the Eclipse IDE. Our analysis of the gathered data prediction [24]. Even the Eclipse team themselves under- shows, amongst other results, that eye-tracking captures took a major data collection project called the Usage Data substantially different data than a developer's navigation Collector that, at its peak, collected data from thousands within the IDE, that developers only look at a few lines of a of developers using Eclipse. Overall, the automatic moni- method when working on a change task and that these lines toring of user interactions was able to significantly reduce are often related to the data flow of variables within these the cost for certain empirical studies. However, these studies methods. These results also provide evidence for the value are limited to the granularity and detail of the monitoring of combining eye-tracking with interaction monitoring in an approach. In case of user interaction monitoring, the gran- IDE in the future. ularity is predominately the method or class file level and This paper makes the following contributions: detailed information, such as the time a developer spends ● Study findings based on eye-tracking and user interac- reading a code element or when the developer is not looking tion monitoring that provide insights into the detailed at the screen, is missing and makes it more difficult to fully navigation behavior of 22 developers working on realis- understand the developers' traces. tic change tasks. Biometric Sensing. ● An approach to automatically and on-the-fly capture In parallel to the IDE instrumentation efforts, researchers the fine-grained source code elements a developer looks in the software development domain have also started to at in an IDE while working with large files, thereby take advantage of the maturing of biometric sensors. Most significantly improving current state-of-the-art that of this research focuses on eye-tracking [31, 19], while only limits eye tracking studies to only single methods. few studies have been conducted so far that also use other ● A discussion on the value of the data gathered and the signals, such as an fMRI to identify brain activation patterns opportunities the data and the findings offer for better for small comprehension tasks [42], or a combination of developer support.
Recommended publications
  • Navigating the Next Evolution of Application Development Using Distributed Tracing
    Navigating the Next Evolution of Application Development Using Distributed Tracing Navigating the Next Evolution of Application Development 1 Table of Contents Introduction ...........................................................................................................................................................................................3 How has software been built? Waterfall vs. DevOps ................................................................................. ............................. 4 The next evolution: Microservices ................................................................................................................................................5 What will you need to do differently to capitalizeon modern application development? ..........................................6 Get started with Epsagon on AWS ...............................................................................................................................................8 Case Study: Bastian Solutions .......................................................................................................................................................9 Learn More ..........................................................................................................................................................................................10 Navigating the Next Evolution of Application Development 2 Introduction Building and maintaining a competitive edge often requires you to evolve with your customers’
    [Show full text]
  • Traceability Establishment and Visualization of Software Artefacts in Devops Practice: a Survey
    (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 10, No. 7, 2019 Traceability Establishment and Visualization of Software Artefacts in DevOps Practice: A Survey D. A. Meedeniya1, I. D. Rubasinghe2, I. Perera3 Dept. of Computer Science and Engineering, University of Moratuwa, Sri Lanka Abstract—DevOps based software process has become the artefacts in the SDLC [2][3]. There are different forms of popular with the vision of an effective collaboration between the relationships between the homogeneous and heterogeneous development and operations teams that continuously integrates software artefacts. Some artefacts may be highly coupled, and the frequent changes. Traceability manages the artefact some may depend on other artefacts in different degrees, consistency during a software process. This paper explores the unidirectionally or bidirectionally. Thus, software artefacts trace-link creation and visualization between software artefacts, consistency management helps to fine-tune the software existing tool support, quality aspects and the applicability in a process. The incomplete, outdated software artefacts and their DevOps environment. As the novelty of this study, we identify the inconsistencies mislead both the development and maintenance challenges that limit the traceability considerations in DevOps process. Thus, artefact management is essential such that the and suggest research directions. Our methodology consists of changes are accurately propagated to the impacted artefacts concept identification, state-of-practice exploration and analytical review. Despite the existing related work, there is a without creating inconsistencies. Traceability is the potential to lack of tool support for the traceability management between relate artefacts considering their relationships [4][5]; thus, a heterogeneous artefacts in software development with DevOps solution for artefact management.
    [Show full text]
  • Linuxcon North America 2012
    LinuxCon North America 2012 LTTng 2.0 : Tracing, Analysis and Views for Performance and Debugging. E-mail: [email protected] Mathieu Desnoyers August 29th, 2012 1 > Presenter ● Mathieu Desnoyers ● EfficiOS Inc. ● http://www.efficios.com ● Author/Maintainer of ● LTTng, LTTng-UST, Babeltrace, Userspace RCU Mathieu Desnoyers August 29th, 2012 2 > Content ● Tracing benefits, ● LTTng 2.0 Linux kernel and user-space tracers, ● LTTng 2.0 usage scenarios & viewers, ● New features ready for LTTng 2.1, ● Conclusion Mathieu Desnoyers August 29th, 2012 3 > Benefits of low-impact tracing in a multi-core world ● Understanding interaction between ● Kernel ● Libraries ● Applications ● Virtual Machines ● Debugging ● Performance tuning ● Monitoring Mathieu Desnoyers August 29th, 2012 4 > Tracing use-cases ● Telecom ● Operator, engineer tracing systems concurrently with different instrumentation sets. ● In development and production phases. ● High-availability, high-throughput servers ● Development and production: ensure high performance, low-latency in production. ● Embedded ● System development and production stages. Mathieu Desnoyers August 29th, 2012 5 > LTTng 2.0 ● Rich ecosystem of projects, ● Key characteristics of LTTng 2.0: – Small impact on the traced system, fast, user- oriented features. ● Interfacing with: Common Trace Format (CTF) Interoperability Between Tracing Tools Tracing Well With Others: Integration with the Common Trace Format (CTF), of GDB Tracepoints Into Trace Tools, Mathieu Desnoyers, EfficiOS, Stan Shebs, Mentor Graphics,
    [Show full text]
  • System Wide Tracing and Profiling in Linux
    SYSTEM WIDE TRACING AND PROFILING IN LINUX Nadav Amit Agenda • System counters inspection • Profiling with Linux perf tool • Tracing using ftrace Disclaimer • Introductory level presentation • We are not going to cover many tools • We are not going to get deep into the implementation of the tools • I am not an expert on many of the issues Collect Statistics • First step in analyzing the system behavior • Option 1: Resource statistics tools • iostat, vmstat, netstat, ifstat • dstat Examples: dstat --vm --aio • dstat • dstat --udp --tcp --socket • dstat --vm --aio dstat --udp --tcp --socket Watch system behavior online • Option 2: Sample the counter • top • Use –H switch for thread specific • Use ‘f’ to choose additional fields: page faults, last used processor • Use ‘1’ to turn off cumulative mode • iotop • Remember to run as sudoer top Inspect Raw Counters • Option 3: Go to the raw counters • General • /proc/stat • /proc/meminfo • /proc/interrupts • Process specific • /proc/[pid]/statm – process memory • /proc/[pid]/stat – process execution times • /proc/[pid]/status – human readable • Device specific • /sys/block/[dev]/stat • /proc/dev/net • Hardware • smartctl /proc/interrupts /sys/block/[dev]/stat Name units description ---- ----- ----------- read I/Os requests number of read I/Os processed read merges requests number of read I/Os merged with in-queue I/O read sectors sectors number of sectors read read ticks milliseconds total wait time for read requests write I/Os requests number of write I/Os processed write merges requests number
    [Show full text]
  • Debugging and Profiling with Arm Tools
    Debugging and Profiling with Arm Tools [email protected] • Ryan Hulguin © 2018 Arm Limited • 4/21/2018 Agenda • Introduction to Arm Tools • Remote Client Setup • Debugging with Arm DDT • Other Debugging Tools • Break • Examples with DDT • Lunch • Profiling with Arm MAP • Examples with MAP • Obtaining Support 2 © 2018 Arm Limited Introduction to Arm HPC Tools © 2018 Arm Limited Arm Forge An interoperable toolkit for debugging and profiling • The de-facto standard for HPC development • Available on the vast majority of the Top500 machines in the world • Fully supported by Arm on x86, IBM Power, Nvidia GPUs and Arm v8-A. Commercially supported by Arm • State-of-the art debugging and profiling capabilities • Powerful and in-depth error detection mechanisms (including memory debugging) • Sampling-based profiler to identify and understand bottlenecks Fully Scalable • Available at any scale (from serial to petaflopic applications) Easy to use by everyone • Unique capabilities to simplify remote interactive sessions • Innovative approach to present quintessential information to users Very user-friendly 4 © 2018 Arm Limited Arm Performance Reports Characterize and understand the performance of HPC application runs Gathers a rich set of data • Analyses metrics around CPU, memory, IO, hardware counters, etc. • Possibility for users to add their own metrics Commercially supported by Arm • Build a culture of application performance & efficiency awareness Accurate and astute • Analyses data and reports the information that matters to users insight • Provides simple guidance to help improve workloads’ efficiency • Adds value to typical users’ workflows • Define application behaviour and performance expectations Relevant advice • Integrate outputs to various systems for validation (e.g.
    [Show full text]
  • Bidirectional Tracing of Requirements in Embedded Software Development
    Bidirectional Tracing of Requirements in Embedded Software Development Barbara Draxler _________________________________ Fachbereich Informatik Universität Salzburg Abstract Nowadays, the increased complexity of embedded systems applications re- quires a systematic process of software development for embedded systems. An important difficulty in applying classical software engineering processes in this respect is ensuring that specific requirements of safety and real-time properties, which are usually posed at the beginning of the development, are met in the final implementation. This difficulty stems from the fact that requirements engineering in general is not mature in the established soft- ware development models. Nevertheless, several manufacturers have recently started to employ available requirements engineering methods for embedded software. The aim of this report is to provide insight into manufacturer practices in this respect. The report provides an analysis of the current state-of-art of requirements engineering in embedded real-time systems with respect to re- quirements traceability. Actual examples of requirements traceability and requirements engineering are analyzed against current research in require- ments traceability and requirements engineering. This report outlines the principles and the problems of traceability. Fur- thermore, current research on new traceability methods is presented. The importance of requirements traceability in real-time systems is highlighted and related significant research issues in requirements engineering are out- lined. To gain an insight in how traceability can aid process improvement, the viewpoint of CMMI towards requirements engineering and traceability is described. A short introduction in popular tracing tools that support require- ments engineering and especially traceability is given. Examples of traceabil- ity in the development of real-time systems at the Austrian company AVL are presented.
    [Show full text]
  • Traceability in Agile Software Projects
    Traceability in Agile software projects Master of Science Thesis in Software Engineering & Management VUONG HOANG DUC University of Gothenburg Chalmers University of Technology Department of Computer Science and Engineering Göteborg, Sweden, May 2013 The Author grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has obtained any necessary permission from this third party to let Chalmers University of Technology and University of Gothenburg store the Work electronically and make it accessible on the Internet. Traceability in Agile software projects VUONG.HOANG DUC VUONG. HOANG DUC, May 2013. Examiner: CHRISTIAN.BERGER University of Gothenburg Chalmers University of Technology Department of Computer Science and Engineering SE-412 96 Göteborg Sweden Telephone + 46 (0)31-772 1000 ABSTRACT Context: Software applications have been penetrating every corner of our daily life in the past decades. This condition demands high quality software. Traceability activities have been recognized as important factors supporting various activities during the development process of a software system with the aim of improving software quality.
    [Show full text]
  • Distributed Architecture for an Integrated Development Environment, Large Trace Analysis, and Visualization
    sensors Article Distributed Architecture for an Integrated Development Environment, Large Trace Analysis, and Visualization Yonni Chen Kuang Piao 1, Naser Ezzati-jivan 2,* and Michel R. Dagenais 1 1 Computer Engineering and Software Engineering Department, Ecole Polytechnique Montreal, Montreal, QC h3t 1j4, Canada; [email protected] (Y.C.K.P.); [email protected] (M.R.D.) 2 Computer Science Department, Brock University, St. Catharines, ON l22 3a1, Canada * Correspondence: [email protected] Abstract: Integrated development environments (IDEs) provide many useful tools such as a code editor, a compiler, and a debugger for creating software. These tools are highly sophisticated, and their development requires a significant effort. Traditionally, an IDE supports different programming languages via plugins that are not usually reusable in other IDEs. Given the high complexity and constant evolution of popular programming languages, such as C++ and even Java, the effort to update those plugins has become unbearable. Thus, recent work aims to modularize IDEs and reuse the existing parser implementation directly in compilers. However, when IDE debugging tools are insufficient at detecting performance defects in large and multithreaded systems, developers must use tracing and trace visualization tools in their software development process. Those tools are often standalone applications and do not interoperate with the new modular IDEs, thus losing the power and the benefits of many features provided by the IDE. The structure and use cases of tracing tools, with the potentially massive execution traces, significantly differ from the other tools in IDEs. Thus, it is a considerable challenge, one which has not been addressed previously, to integrate them into the new modular IDEs.
    [Show full text]
  • Devops/Continuous Delivery Tooling
    DevOps/Continuous Delivery Tooling Launchpad for the Digital Enterprise Report Summary ENTERPRISE MANAGEMENT ASSOCIATES® (EMA™) Research Report Written by Julie Craig, Research Director, Application Management Spring 2017 Sponsored by: IT & DATA MANAGEMENT RESEARCH, INDUSTRY ANALYSIS & CONSULTING Report Summary – DevOps/Continuous Delivery Tooling: Launchpad for the Digital Enterprise Table of Contents Overview .....................................................................................................................................................1 10 Key Takeaways ........................................................................................................................................2 DevOps and Continuous Delivery: People, Processes, and Technology Interacting Across the Lifecycle .....3 Automation Supporting DevOps and Continuous Delivery in the Digital Enterprise ................................3 Background and Methodology ...................................................................................................................5 Digital Business in 2017 ..............................................................................................................................5 Technology Landscapes ................................................................................................................................6 Automation and Tooling for the Digital Business ........................................................................................7 Continuous Delivery .................................................................................................................................11
    [Show full text]
  • Requirements Traceability and the Effect on the System Development Lifecycle (SDLC)
    Requirements Traceability and the Effect on the System Development Lifecycle (SDLC) by Glenn A. Stout (STOUT) DISS 725: Systems Development Process Spring Cluster, 2001 Research Paper 2 Glenn A. Stout (STOUT) Table of Contents Overview........................................................................................................................................3 Purpose..........................................................................................................................................3 Traceability....................................................................................................................................3 Traceability and Traceability Item Defined...............................................................................4 Traceability Links..................................................................................................................4 Traditional Requirements Gathering.............................................................................................5 In General..................................................................................................................................5 Engaging in the Practice of Tracing Requirements.......................................................................6 Software Requirements Specification (SRS).............................................................................6 Use Case Methodology..............................................................................................................7
    [Show full text]
  • Monitoring, Tracing, Debugging (Under Construction)
    Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003. He mentions a whole range of useful tools for performance tracking and bug finding on Linux and I decided to take his list and give some additional background on how these things work.After being a unix kernel hacker for some year I moved into user space and started to develop more and more user level code. I soon realized that the style of development used for kernel hacking is quite different to the one needed for servers, frameworks and applications. Some concepts still apply, like logging events. Others change, e.g. using garbage collectors. Some of the tools that made the biggest impression where Pure Atria's Purify (now IBM Rational) - object code instrumentation the easy way. And the Visual Age (now Eclipse) Debugger which made me give up on printf/println style of finding bugs. Look at the resource section at the end for links. Introduction 2 / 30 Goals 1. A word on monitoring, tracing, debugging. 2. Modern approaches for tracing, logging and auditing. 3. Understanding interfaces within and between programs and environments. Remember: every problem in computer science is solved with one more level of indirection. And interfaces are the locations where program flow can be re-directed. 4. Monitoring Levels 5. Different techniques for monitoring 6. Performance and memory tracking. How garbage collection works will be explained in detail in our session on virtual memory.
    [Show full text]
  • Recovering Traceability Links in Software Artifact Management Systems Using Information Retrieval Methods
    13 Recovering Traceability Links in Software Artifact Management Systems using Information Retrieval Methods ANDREA DE LUCIA, FAUSTO FASANO, ROCCO OLIVETO, and GENOVEFFA TORTORA University of Salerno The main drawback of existing software artifact management systems is the lack of automatic or semi-automatic traceability link generation and maintenance. We have improved an artifact management system with a traceability recovery tool based on Latent Semantic Indexing (LSI), an information retrieval technique. We have assessed LSI to identify strengths and limitations of using information retrieval techniques for traceability recovery and devised the need for an incremental approach. The method and the tool have been evaluated during the development of seventeen software projects involving about 150 students. We observed that although tools based on information retrieval provide a useful support for the identification of traceability links during software development, they are still far to support a complete semi-automatic recovery of all links. The results of our experience have also shown that such tools can help to identify quality problems in the textual description of traced artifacts. Categories and Subject Descriptors: D.2.7 [Software Engineering]: Distribution, Maintenance, and Enhancement; D.2.9 [Software Engineering]: Management—Software configuration man- agement; G.1.3 [Numerical Analysis]: Numerical Linear Algebra—Singular value decomposition; H.3.1 [Information Storage and Retrieval]: Content Analysis and Indexing—indexing methods; H.3.3 [Information Storage and Retrieval]: Information Search and Retrieval General Terms: Documentation, Management Additional Key Words and Phrases: Software artifact management, traceability management, impact analysis, latent semantic indexing ACM Reference Format: De Lucia, A., Fasano, F., Oliveto, R., and Tortora, G.
    [Show full text]