针对程序员行为跟踪和分析的研究
发布时间:2018-03-19 13:47
本文选题:程序员行为分析 切入点:时间序列交互数据 出处:《浙江大学》2016年博士论文 论文类型:学位论文
【摘要】:软件工程是一种以人为中心的活动,因此人的因素对软件开发过程的效率和产出都有着极为重要的影响,其中程序员是软件工程中最为核心的参与人员。程序员是一种典型的知识工作者,他们的工作包括在不同的应用之间生产、转移和消费大量的不同种类的信息,因此程序员有很多的信息需求从而使他们的行为变得更加复杂。通过理解程序员行为,研究者可以提出更好的程序编写规范、项目管理方法以及软件工具来支持程序员的工作,从而提高程序员的工作效率。近些年软件工程的研究者们越来越关注人行为的研究,例如已经有很多软件工程的研讨会和学术会议(如CHASE、VL/HCC)专注于人和人社会关系方面的研究。这些研究的目的包括调查程序员的能力、程序员在软件开发和维护过程中的信息需求、程序员如何合作以及如何提高程序员效率等。在这些软件工程的研究中,通常会采用很多的数据追踪和收集方法,比如采访、问卷、观察、出声思考、插装等。在程序员行为研究中有两种技术被广泛地用来收集数据:截屏录像和插装。截屏录像是一种通用而且容易部署的方法,但是分析截屏录像数据需要大量的时间和人力;而插装一个软件可以自动化地记录一个应用中的用户交互数据,但是插装当前很多的应用软件都比较复杂,而且程序员在软件开发过程中会使用多个软件(如IDE、浏览器等),插装所有的软件需要相当大的代价。针对这两个问题,本文提出了相应的方法并实现了两个工具:scvRipper和ActivityS-pace。利用这两个工具收集到的数据,本文同时还做了一些程序员行为的分析。具体的,本文的主要贡献有以下部分:1.本文提出了一种基于计算机视觉技术可以自动化地从截屏录像中抽取出时间序列的程序员交互数据的方法,并实现了一个截屏录像挖取工具scvRipper。利用29个小时的截屏录像数据,本文评估了scvRipper的可用性、有效性和性能。2.利用scvRipper从29个小时截屏录像数据中抽取的时间序列交互数据,本文做了一个程序员在软件开发过程中网上搜索行为的细粒度定量分析,同时这个定量分析也证明了scvRipper的可用性。利用同样的数据,本文还提出了一种基于数据挖掘技术的方法BPMiner,它可以从scvRipper挖取的截屏录像数据中分析出程序员行为模式。3.本文基于操作系统(OS)层面的插装方法来跟踪和收集程序员与应用交互时的鼠标和键盘事件,从而追踪程序员在各个不同应用中的活动,并且不需要对所有软件进行插装。本文通过对这些数据做了进一步地抽象和分析,并提供了一些情景式的和语义的UI来帮助程序员搜索跨应用的相关信息,这个工具称之为ActivitySpace。同时本文设计了一个评估ActivitySpace的案例研究,从8个参与者中搜集了417个小时的有效活动数据。利用这些数据,本文分析了软件开发过程中的信息碎片问题以及评估了ActivitySpace的有效性。4.与以前规模较小并且在控制的实验环境下进行的程序理解行为研究相比,本文利用ActivitySpace,做了一个在实际的开发环境中大规模的关于程序理解行为的探索性研究。本文收集了来自5个真实项目组共48个程序员,1725个小时的有效工作数据,这些数据包括来自多个应用(比如IDE、浏览器)的程序员交互数据。本文通过这个案例研究验证了程序理解在软件开发中的重要作用,以及影响程序员程序理解效率的若干主要因素及其初步的相关性探索。
[Abstract]:Software engineering is a kind of human centered activities, so the factors of efficiency and output of the software development process has a very important influence, which is involved in the programmer is the core of software engineering. The programmer is a kind of typical knowledge workers, their work includes production between different applications transfer, and the consumption of a large number of different kinds of information, so programmers have a lot of information needs in order to make their behavior become more complex. Through the understanding of programmer behavior, researchers can put forward written specification better procedures, project management methods and software tools to support the programmer's job, so as to improve programmer productivity. Researchers and more attention to the behavior of people in recent years, researchers in software engineering, for example, there has been a lot of software engineering seminars and academic conferences (such as CHASE, VL/, HCC) focus Study on the relationship between the people and society. The purpose of these studies including the investigation ability of programmers, programmers in the process of software development and maintenance of the information needs, how to cooperate and how to improve the programmer programmer efficiency. In the study of these software projects, often use a lot of data tracking and collection methods, such as interviews. The questionnaire, observation, thinking aloud, inserted. The programmer behavior research has two kinds of techniques are widely used to collect data: screencasts and cartridge. Screencasts is a universal and easy deployment method, but the analysis of screencasts data requires a lot of time and manpower; and a cartridge the software can automatically record the user interaction data for an application, but the current inserted many software applications are more complex, and the programmer will make use in the software development process A software (such as IDE browser, etc.), inserted all software requires considerable cost. To solve these two problems, this paper puts forward the corresponding method and the realization of the two tools: scvRipper and ActivityS-pace. using the two tools of the collected data, this paper also analyzes the behavior of some programmers. Specifically, the main contributions of this paper are as follows: 1. this paper presents a method of computer vision technology can automatically extract video screenshot from time series programmer interaction based on the data, and implements a video screenshot digging tool scvRipper. uses screencasts 29 hours of data, this paper evaluates the available scvRipper, time series of interactive data availability and performance of.2. using scvRipper extracted from 29 hours screencasts data, this paper made a programmer in software development process Quantitative analysis of fine-grained search behavior, while the quantitative analysis also proved the availability of scvRipper. Using the same data, this paper also proposes a BPMiner method based on data mining technology, it can dig out the.3. analysis mode of programmer behavior based on operating system data extracted from the video screen scvRipper (OS) insertion method to track and collect the interactive programmer and application of mouse and keyboard events level, so as to track each programmer in different applications, and do not need to all software plug-in. Based on these data further abstraction and analysis, and provides some situational and semantic UI to help the programmer to search related information across applications, this tool called ActivitySpace. at the same time this paper designed a case study to evaluate ActivitySpace, from 8 The participants were collected effective activity data for 417 hours. Using these data, this paper analyzes the information fragmentation problem in the process of software development and evaluation of the effectiveness of.4. ActivitySpace with the previous smaller and the environmental control of program comprehension for study compared to using ActivitySpace, do a the actual development environment in large scale on program understanding behavior research. This paper collected from 5 real project group of 48 programmers, working 1725 hours of data, these data from multiple applications (such as IDE, browser) programmer interaction data. Through this case study verifies the important in software development program understanding, explore some and main factors affecting the efficiency of the programmer program understanding and preliminary correlation.
【学位授予单位】:浙江大学
【学位级别】:博士
【学位授予年份】:2016
【分类号】:TP311.52
【相似文献】
相关期刊论文 前10条
1 李莹,张琴燕;程序理解[J];计算机应用研究;2001年06期
2 纳荣;在程序理解中使用切片技术[J];计算机工程与设计;2003年01期
3 付世敏;;基于综合模型的核电程序理解[J];电脑知识与技术;2013年04期
4 陆波,赵合计;基于程序理解的遗产软件系统重构[J];微电子学与计算机;2003年12期
5 钱剑飞;何钦铭;陈华;俞瑞钊;;程序理解中一种基于特征符号的粗匹配方法[J];计算机应用与软件;2007年12期
6 古辉;姚灵灵;童李文;;基于产生式的多语言程序理解的算法[J];计算机系统应用;2012年02期
7 杜均;罗扬;;程序切片技术在程序理解中的应用[J];智能计算机与应用;2013年02期
8 司海平;乔红波;虎晓红;陈宝钢;曹永生;;基于用况图的程序理解方法研究[J];计算机工程与应用;2013年14期
9 袁峰;陈s顂,
本文编号:1634541
本文链接:https://www.wllwen.com/guanlilunwen/xiangmuguanli/1634541.html