Font Size: a A A

Research On Programmer Behavior Tracking And Analysis

Posted on:2017-05-11Degree:DoctorType:Dissertation
Country:ChinaCandidate:L F BaoFull Text:PDF
GTID:1108330482481907Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Software Engineering activities are human-centric, so human factors have a high impact on the performance and output of software development process. Developers are one of the most important participants among all the people in the software engineering activities. Since develop-ers are a typical example of knowledge workers and their work includes producing, transforming, consuming and communicating large amounts of diverse information across different applications, so they have a lot of information needs and it makes their behavior more complicated. There are more and more needs to understand the developers’ behavior to make better software development specification, improve the software management and design better software tools that support de-veloper’s work.In recent years the amount of research on human aspects of software engineering has in-creased, e.g. there are lots of workshops and conferences(e.g. CHASE, VL/HCC) that focus on human and social aspects in software engineering. Some important objectives of these studies are to investigate the capabilities of the developers, their information needs in developing and main-taining software, how developers collaborate, and what we can do to improve their performance. The data collection methods in such human studies of software engineering include questionnaire, interview, and observation, think-aloud, instrumentation, etc.Two kinds of techniques have been commonly used to automatically collect the data in the studies of developer behavior:screen-capture and intrumentation. For screen-capture technique, it is a generic and easy-to-deploy data collection method, but analyzing screen-capture videos is expensive and time-consuming. While instrumenting a software application could allow us to log the developers’ interaction within the application automatically, but instrumenting many of today’ s software systems is considerably complex. Furthermore, developers use various tools (e.g., IDE, web browsers) in software development tasks. Instrumenting all of these tools requires significant efforts.This thesis focuses on these two problems then proposes two corresponding tools:scvRipper and ActivitySpace. Utilizing the data collected from these two tools, we conduct several analysis to study the developers’ behavior during software development. In specific, the major contributions including the following aspects:1. This thesis presents a computer-vision based video scraping technique named scvRipper to automatically reverse-engineer time-series interaction data from screen-captured videos. This thesis also reports the usefulness, effectiveness and runtime performance of our video scraping technique using a case study of the 29 hours task videos of 20 developers in the two development tasks.2. Using the fine-grained time-series HCI data extracted from 29 hours task videos by scvRip-per, this thesis conducts a detailed quantitative analysis to study developers’micro-level online search behavior in software development tasks. This quantitative study also demon-strates the usefulness of the scvRipper tool. This thesis also presents BPMiner, a novel behavior analysis approach to mine developers’behavior patterns from screen-captured videos using computer vision techniques and exploratory sequential pattern analysis. This thesis also applies BPMiner to the same 29 hours video data to study the developers’online search behavior in software development tasks.3. This thesis proposes a method based on OS level instrumentation to track and analyze the developers’ interactions with different applications. It doesn’t require to instruct all ap-plications and could tracks developer activities in separate applications. It also provides various semantic and episodic UIs that help developers find and re-find information across applications based on the content, time and place of his activities. This thesis implements a tool based on this method named ActivitySpace. This thesis conducted a user study of the ActivitySpace system, in which we collected 417 hours activity data from 8 participants. Using this data, This thesis analyzed the information fragmentation problem in software development and showed how our ActivitySpace system helps address the problem.4. Comparing with previous programming comprehension researches that involved small num-ber of participants and were in controlled experiment environment, This thesis performs an much larger exploratory study of program comprehension in practice with a total of 5 real projects,48 developers, and amounting to 1,725 working hours by extending ActivitySpace. The study in this thesis leverages interaction data that is collected across many applications (not just the IDEs) by the studied developers.
Keywords/Search Tags:Developers’ Behavior Analysis, Time-series Sequential HCI Data Analysis, Screen- capture Video, Instrumentation, scvRipper, ActivitySpace, Programming Comprehension
PDF Full Text Request
Related items