首页> 中国专利> 一种软件开发行为监控系统

一种软件开发行为监控系统

摘要

本发明提供了一种软件开发行为监控系统,其监控系统包括:监测器模块,用于开发人员在使用开发工具进行开发的过程中,收集开发工具所产生的行为数据信息;数据接收模块,用于接收行为数据信息;数据存储模块,用于对接收到的行为数据信息进行存储,同时还供开发人员对存储的行为数据信息进行查询和下载;数据读取模块,用于读取所存储的行为数据信息;数据审计模块,用于对获取到的行为数据信息进行审计处理,并供开发人员查看审计处理后的行为数据信息;数据挖掘模块,用于根据获取到的行为数据信息,获取数据结果。可便于获取开发工具产生的行为数据,实现对行为数据的自动采集。

著录项

  • 公开/公告号CN110928930A

    专利类型发明专利

  • 公开/公告日2020-03-27

    原文格式PDF

  • 申请/专利权人 北京东方通科技股份有限公司;

    申请/专利号CN202010083549.7

  • 发明设计人 刘志杰;张运春;胡玉栋;章怡敏;

    申请日2020-02-10

  • 分类号

  • 代理机构北京冠和权律师事务所;

  • 代理人朱健

  • 地址 100000 北京市丰台区丰台路口139号主楼311室(园区)

  • 入库时间 2023-12-17 07:30:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-02

    授权

    授权

  • 2020-04-21

    实质审查的生效 IPC(主分类):G06F16/2458 申请日:20200210

    实质审查的生效

  • 2020-03-27

    公开

    公开

说明书

技术领域

本发明涉及软件开发工程技术领域,实现了对软件开发行为的自动监测。

背景技术

如何保证软件项目的开发质量一直是软件行业的重要问题,通过软件工程和CMMI等软件过程管理指南,可以有效提高软件项目质量,其中关键的环节是,在组织的软件项目管理中实现数字化,通过数字化技术实现软件开发流程的稳定性,提高软件开发管理的精度,降低软件项目实施在质量上的波动。其中具体的要求如“收集并统计分析该过程绩效的详细测量值”,提供“数据采集和存储工具”和“分析工具”等。

其次,软件开发就像体育、艺术等领域一样,是一项需要一定技巧的人类活动。具有不同熟练技巧的开发人员,在软件开发时间、软件代码质量等方面具有明显的差异。开发者个人的行为不仅关系个人承担的任务,对整个软件项目的进度、质量和成本都可能有着很大的影响,改进开发者个人和团队的规范性和效率具有重要意义。研究开发人员的开发行为,可以总结提炼高级开发人员的行为特征,发现普通开发人员的问题,为提高开发者的开发技巧提供参考和帮助。

但是,目前软件开发行为数据还不能完全实现自动化采集,一般仍采用以文档、表格模板等手工记录为主的方式,开发者需要手工填写日报、周报、月报、缺陷报表等。这种形式存在许多问题,比较突出的有:

(1)表格项填写方式一般比较繁琐,表格、文档需要理解到位,统计项(导出项)较多,填写费时、带来工作量负担。

(2)填表活动与开发活动不能同时进行,这样就会干扰/打断开发过程,因此不能过于频繁,往往采用日报、周报等方式,使得数据片段化。

(3)填报内容往往需要较多主观估计,如开发量、完成比等,由于个人经验不同,估计误差较大。

(4)填报流于形式,有许多人进行应付,有的甚至造假。比如平时不做单元测试,但在单元测试栏目中填报完成。

虽然在软件工程研究领域有过一些类似的开发行为监测实验,如采用摄像头分析个人全过程,或通过监测键盘、鼠标活动记录操作行为等,但这些方法大都限于理论研究,需要花大量的时间对开发行为进行人工分类,如果应用于生产环境,还无法很好地解决与整个开发环境、管理环境的融合问题,很难进入实际工程应用。

为了解决上述问题,本发明提出了一种软件开发行为监控系统,可自动获取软件开发行为数据,提供软件开发行为分析,同时对开发人员不产生任何干扰。

发明内容

本发明提供一种软件开发行为监控系统,通过设置监测器模块,获取开发工具产生的行为数据,实现对软件开发行为数据的自动采集。

本发明实施例提供一种软件开发行为监控系统,包括:开发端和服务端;

所述开发端中设置有监测器模块,所述服务端中设置有数据接收模块、数据存储模块、数据读取模块、数据审计模块和数据挖掘模块;

所述监测器模块,用于开发人员在使用开发工具进行开发的过程中,基于所述开发工具所提供的事件监听机制,来监测相应的预设监听事件,并收集所述开发工具所产生的行为数据信息;

数据接收模块,用于接收所述监测器模块所收集的行为数据信息;

数据存储模块,用于对所述数据接收模块所接收到的行为数据信息进行存储,同时还供相关人员对存储的行为数据信息进行查询和下载;

数据读取模块,用于读取所述数据存储模块中所存储的行为数据信息;

数据审计模块,用于对所述数据读取模块所获取到的行为数据信息进行审计处理,并供相关开发人员查看审计处理后的行为数据信息;

数据挖掘模块,用于根据数据读取模块获取到的所述行为数据信息,获取数据结果。

在一种可能实现的方式中,

基于所述开发工具所提供的事件监听机制,来监测相应的预设监听事件,包括:编写可记录所述预设监听事件的监听器,且所述监听器需要实现指定类型的监听接口,并注册在需监听的监听对象上,其主要步骤包括:

步骤1:确定需监听的预设监听事件,并寻找所述预设监听事件对应的监听对象;

步骤2:根据事件类型,确定所述监听对象定义用来实现监听所述预设监听事件所需的监听器类;

步骤3:编写所述步骤2所确定的所述监听器类,实现指定的监听接口,并对于其中的相关事件,编写对应的处理方法,并按照所述服务端的预设规范对所编写的处理方法进行数据类型转换。

在一种可能实现的方式中,还包括:

事件处理模块,用于对所述监测器模块所获取的监听器事件的事件信息按照预先定义的规则进行过滤处理,将无关事件信息进行过滤,保留记录事件信息,并按照预先定义的标准格式将过滤处理后的所述事件信息形成队列记录,并添加到开发行为信息队列中,并将所述开发行为信息队列存储在内存缓存中。

在一种可能实现的方式中,还包括:

状态检查定时器,用于对所述内存缓存的缓存容量进行检查;

所述开发端,还用于当所述状态检查定时器所检查出的所述缓存容量小于预设容量值时,将缓存的所述开发行为信息队列存储到本地硬盘文件中。

在一种可能实现的方式中,还包括:

时间定时器,用于对所述开发端发送行为开发数据到服务端的时间进行定时;

所述开发端,还用于当所述时间定时器定时时间到达预设定时范围内时,自动将缓存中的开发行为信息队列存储到本地硬盘文件中,同时将所述本地硬盘文件中的所有开发行为信息队列中的开发行为信息发送到服务器端。

在一种可能实现的方式中,还包括:

判断模块,用于判断所述开发端和服务端之间是否网络连接成功;

若是,继续执行后续操作;

否则,将所述开发端与所述服务端之间进行第一预设次数的网络连接,若都未连接成功,则在第一预设时间间隔后,重新进行所述开发端与所述服务端之间的网络连接。

若所述服务端未能与开发端连接成功,则服务端向报警模块发送报警指令,并控制报警模块执行相应的报警操作。

在一种可能实现的方式中,

所述开发端,还用于向服务端发送数据;

所述判断模块,还用于判断所述服务端,是否已经接收到所述开发端发送的数据;

若是,继续执行后续操作;

否则,由所述开发端向所述服务端发送第二预设次数的数据,若服务端未成功接收到数据,则在第二预设时间间隔后,所述开发端重新向所述服务端发送数据;

若所述服务端未接收到重新发送的数据,则服务端向报警模块发送报警指令,并控制报警模块执行相应的报警操作。

在一种可能实现的方式中,所述监测器模块,还包括:

开发语言元素变更监听器,用于监视开发语言语法规定的开发语言信息,当所述开发语言信息发生变化时,触发开发语言元素变更监听器事件,过滤需要的记录内容,并跟踪所述开发人员在基于开发工具进行的编程操作行为;

IDE资源变更监听器,用于监视所述开发工具的资源变化信息,当所述资源变化信息发生变化时,触发资源变更监听器事件,过滤资源变化事件,保留需要的发生变化资源信息,并跟踪所述开发人员在基于开发工具进行的资源操作行为;

IDE窗口变化监听器,用于监视所述开发工具对应的工作台窗口内的视图变化信息,当视图变化信息中包含用户更改视图焦点信息时,触发窗口变化监听器事件,定位所述开发人员需操作的预设资源,并跟踪开发人员基于开发工具对所述预设资源进行的资源操作行为;

IDE文档变化监听器,用于动态监视开发人员文档操作行为,当所述开发工具活动文档窗口发生变化时,IDE文档变化监听器绑定所述活动文档,当所述开发人员编辑的文档内容发生变化时,触发活动文档变更监听事件,过滤活动文档变化事件,并跟踪所述开发人员在基于开发工具进行的活动文档操作行为。

在一种可能实现的方式中,

所述数据接收模块,还用于管理与所述行为数据信息相关的用户信息和项目信息;

所述数据挖掘模块,包括:

单项指标逐日分析单元,用于对所述开发人员所开发项目的行为数据信息进行逐日分析,获得与所述开发项目相关的指标数据内容,所述指标数据内容包括:开发项目的开发活动时间、代码提交、项目构建和单元测试单项指标数据;

单项指标趋势分析单元,用于对与所述开发项目相关的指标数据内容中的单项指标数据进行趋势分析,并基于预先建立好的统计周期,获取每个所述单项指标数据对应的运行趋势图;

成员指标趋势分析单元,用于对所述开发项目组内的每个所述开发人员的指标数据内容进行对比分析,获得每个所述开发人员的单项指标趋势信息。

本发明实施例提供一种软件开发行为数据自动采集方法,包括:

基于开发语言元素变更监听器监视开发语言语法规定的开发语言信息,当所述开发语言信息发生变化时,触发开发语言元素变更监听器事件;

基于IDE资源变更监听器监视资源的资源变化信息,当所述资源变化信息发生变化时,触发资源变更监听器事件;

基于IDE窗口变化监听器监视所述开发工具对应的工作台窗口内各视图的视图变化信息,当视图变化信息中包含用户更改视图焦点信息时,触发窗口变化监听器事件;

基于IDE文档变化监听器动态监视开发人员文档操作行为,当所述开发人员编辑的文档内容发生变化时,触发活动文档变更监听事件。

在一种可能实现的方式中,还包括:

基于事件处理模块,对基于开发语言元素变化监听器所触发的开发语言元素变更监听器事件、基于IDE资源变化监听器所触发的资源变更监听器事件、基于IDE窗口变化监听器所触发的窗口变化监听器事件和基于IDE文档变化监听器所触发的文档变更监听事件按照预先定义的规则进行过滤处理,并将无关事件信息进行过滤,保留记录事件信息,并按照预先定义的标准格式将过滤处理后的所述事件信息形成队列记录,并添加到开发行为信息队列中,同时将所述开发行为信息队列存储在内存缓存中。

在一种可能实现的方式中,将所述开发行为信息队列存储在内存缓存中之后,还包括:

检查所述内存缓存的缓存容量是否小于预设容量值,若是,将缓存的所述开发行为信息队列存储到本地硬盘文件中;

否则,判断缓存在所述内存缓存中的所述开发行为信息队列的缓存时间是否到达第一预设缓存定时时间,若是,将所述内存缓存中的所述开发行为信息队列发送到服务端中的数据发送模块;

判断缓存在所述本地硬盘文件中的所述开发行为信息队列的缓存时间是否到达第二预设缓存定时时间,若是,将所述本地硬盘文件中的所述开发行为信息队列发送到服务端中的数据发送模块。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例一种软件开发行为监控系统的结构示意图;

图2为本发明另一个实施例一种开发行为行为监控系统的结构示意图;

图3为本发明实施例中编写监听器的类图;

图4为本发明实施例中一种软件开发行为数据自动采集方法的流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

本发明实施例提供一种软件开发行为监控系统,如图1所示,包括:开发端和服务端;

所述开发端中设置有监测器模块,所述服务端中设置有数据接收模块、数据存储模块、数据读取模块、数据审计模块和数据挖掘模块;

所述监测器模块,用于开发人员在使用开发工具进行开发的过程中,基于所述开发工具所提供的事件监听机制,来监测相应的预设监听事件,并收集所述开发工具所产生的行为数据信息;

数据接收模块,用于接收所述监测器模块所收集的行为数据信息;

数据存储模块,用于对所述数据接收模块所接收到的行为数据信息进行存储,同时还供相关人员对存储的行为数据信息进行查询和下载;

数据读取模块,用于读取所述数据存储模块中所存储的行为数据信息;

数据审计模块,用于对所述数据读取模块所获取到的行为数据信息进行审计处理,并供相关人员查看审计处理后的行为数据信息;

数据挖掘模块,用于根据数据读取模块获取到的所述行为数据信息,获取数据结果。

本发明主要是针对软件开发活动,开发基于IDE软件开发工具的软件开发行为监控工具,实现软件开发行为及结果数据的自动捕获、存储,提供软件开发行为的审计、分析和展现等功能。

本发明实施例提供一种软件开发行为监控系统,基于所述检测器模块所提供的事件监听机制,来监测相应的预设监听事件,包括:编写可记录所述预设监听事件的监听器,且所述监听器需要实现指定类型的监听接口,并注册在需监听的监听对象上,其主要步骤包括:

步骤1:确定需监听的预设监听事件,并寻找所述预设监听事件对应的监听对象;

步骤2:根据IDE软件开发工具对象的事件类型,确定所述监听对象定义用来实现监听所述预设监听事件所需的监听器类;

步骤3:编写所述步骤2所确定的所述监听器类,实现指定的监听接口,并对于其中的相关事件,编写对应的处理方法,并按照所述服务端的预设规范对所编写的处理方法进行数据类型转换,形成监听器数据。

上述监听器数据为记录软件开发原始行为数据信息的最小单元,以XML格式表示;

上述监测器数据类型是专门为监测器采集数据时使用,可以供其他数据采集工具使用,为数据分析服务容易地确定哪些数据的具体类型信息。

如图3所示,例如对于一个监听需求,首先要确定该事件发生在什么对象(AudienceClass)上,通过addXXXListener的方法,实现监听器操作。在自己的监听器MyXXXListener类中,实现接口要求的事件监听方法,对于每一个方法,依照特定的逻辑处理以获得满足要求的数据。

上述技术方案的有益效果是:利用IDE的监听事件监听器机制编写多个事件监听器,实现对软件开发行为的自动采集。

本发明实施例提供一种软件开发行为监控系统,

事件处理模块,用于对所述监测器模块所获取的监听器事件的事件信息按照预先定义的规则进行过滤处理,将无关事件信息进行过滤,保留记录事件信息,并按照预先定义的标准格式将过滤处理后的所述事件信息形成队列记录,并添加到开发行为信息队列中,并将所述开发行为信息队列存储在内存缓存中。

上述开发行为信息队列定义了一种标准的数据格式,采用XML方式,包括七个基本要素:时间戳信息、运行时间、开发工具、监测器数据类型、所有者、资源、属性信息。其中,前六个要素是必需的,最后一个属性信息是可选的。

上述技术方案的有益效果是:通过获取过滤事件信息,去掉大量无关、重复的信息,通过采用标准的XML格式数据,方便开发行为信息队列数据的存储和访问,通过采用内存缓存的存储方式,可以提高开发行为数据的存储速度,最大限度地减少对开发人员开发工作的影响。

本发明实施例提供一种软件开发行为监控系统,还包括:

状态检查定时器,用于对所述内存缓存的缓存容量进行检查;

所述开发端,还用于当所述状态检查定时器所检查出的所述缓存容量小于预设容量值时,将缓存的所述开发行为信息队列存储到本地硬盘文件中。

上述预设容量值,取决于内存的大小。

上述技术方案的有益效果是:通过对缓存容量进行检查,防止开发行为内存队列数据溢出。

本发明实施例提供一种软件开发行为监控系统,还包括:

时间定时器,用于对所述开发端发送行为开发数据到服务端的时间进行定时;

所述开发端,用于当所述时间定时器定时时间到达预设定时范围内时,自动将缓存中的开发行为信息队列存储到本地硬盘文件中,同时将所述本地硬盘文件中的所有开发行为信息队列中的开发行为信息发送到服务器端。

上述预设定时范围对应的时间不宜太短以避免干扰开发人员,也不宜太长以保证信息能够及时传送到服务器端,一般时间以5-10分钟为宜;

上述本地硬盘文件,可以是计算机终端的磁盘等。

上述技术方案的有益效果是:采用本地硬盘存储,可以把内存缓存中的开发行为队列数据存储在本地,解决在网络连接中断时数据存储问题。通过设定预设定时范围,既可以保证本地开发行为数据能得到及时上传更新,又可以避免开发端和服务端一直处于工作状态,降低数据传输频率。

本发明实施例提供一种软件开发行为监控系统,还包括:

判断模块,用于判断所述开发端和服务端之间是否网络连接成功;

若是,继续执行后续操作;

否则,将所述开发端与所述服务端之间进行第一预设次数的网络连接,若都未连接成功,则在第一预设时间间隔后,重新进行所述开发端与所述服务端之间的网络连接。

若所述服务端未能与开发端连接成功,则服务端向报警模块发送报警指令,并控制报警模块执行相应的报警操作。

上述第一预设次数一般可实施为3次;

上述第一预设时间间隔可以是人为设定的。

上述技术方案的有益效果是:设定第一预设次数和第一预设时间间隔,可以在网络链接发生干扰时,提供一种开发端与服务端网络连接恢复机制。通过报警模块便于提醒系统管理人员了解网络故障情况。

本发明实施例提供一种软件开发行为监控系统,

所述开发端,还用于向服务端发送数据;

所述判断模块,还用于判断所述服务端,是否已经接收到所述开发端发送的数据;

若是,继续执行后续操作;

否则,由所述开发端向所述服务端发送第二预设次数的数据,若服务端未成功接收到数据,则在第二预设时间间隔后,所述开发端重新向所述服务端发送数据;

若所述服务端未接收到重新发送的数据,则服务端向报警模块发送报警指令,并控制报警模块执行相应的报警操作。

上述第二预设次数一般可以实施为3次,上述第二预设时间间隔可以是人为设定的;

上述技术方案的有益效果是:设定第一预设次数和第一预设时间间隔,提供一种可靠的数据上传机制,通过报警模块便于提醒系统管理人员了解系统故障情况。

本发明实施例提供一种软件开发行为监控系统,所述监测器模块,还包括:

开发语言元素变更监听器,用于监视开发语言语法规定的开发语言信息,当所述开发语言信息发生变化时,触发开发语言元素变更监听器事件,过滤需要的记录内容,并跟踪所述开发人员在基于开发工具进行的编程操作行为;

IDE资源变更监听器,用于监视所述开发工具的资源变化信息,当所述资源变化信息发生变化时,触发资源变更监听器事件,过滤资源变化事件,保留需要的发生变化的资源信息,并跟踪所述开发人员在基于开发工具进行的资源操作行为;

IDE窗口变化监听器,用于监视所述开发工具对应的工作台窗口内各视图的视图变化信息,当视图变化信息中包含用户更改视图焦点信息时,触发窗口变化监听器事件,定位所述开发人员需操作的预设资源,并跟踪开发人员基于开发工具对所述预设资源进行的资源操作行为;

IDE文档变化监听器,用于动态监视开发人员文档操作行为,当所述开发工具活动文档窗口发生变化时,IDE文档变化监听器绑定所述活动文档,当所述开发人员编辑的文档内容发生变化时,触发活动文档变更监听事件,过滤活动文档变化事件,并跟踪所述开发人员在基于开发工具进行的活动文档操作行为。

上述预设资源,可以是,窗口焦点、窗口控制、菜单项选择、键盘等;

上述技术方案的有益效果是:通过上述设置开发语言元素变更监听器、资源变更监听器、窗口变化监听器和文档变化监听器,可以方便及时捕获到相关的信息变化,便于自动获取开发人员的操作行为。

本发明实施例提供一种软件开发行为监控系统,

所述数据接收模块,还用于管理与所述行为数据信息相关的用户信息和项目信息;

所述数据挖掘模块,包括:

单项指标逐日分析单元,用于对所述开发人员所开发项目的行为数据信息进行逐日分析,获得与所述开发项目相关的指标数据内容,所述指标数据内容包括:开发项目的开发活动时间、代码提交、项目构建和单元测试单项指标数据;

单项指标趋势分析单元,用于对与所述开发项目相关的指标数据内容中的单项指标数据进行趋势分析,并基于预先建立好的统计周期,获取每个所述单项指标数据对应的运行趋势图;

成员指标趋势分析单元,用于对所述开发项目组内的每个所述开发人员的指标数据内容进行对比分析,获得每个所述开发人员的单项指标趋势信息。

上述技术方案的有益效果是:实现对开发人员的开发行为进行分析。

本发明实施例提供一种软件开发行为数据自动采集方法,如图4所示,包括:

基于开发语言元素变更监听器监视开发语言语法规定的开发语言信息,当所述开发语言信息发生变化时,触发开发语言元素变更监听器事件;

基于IDE资源变更监听器监视资源的资源变化信息,当所述资源变化信息发生变化时,触发资源变更监听器事件;

基于IDE窗口变化监听器监视所述开发工具对应的工作台窗口内各视图的视图变化信息,当视图变化信息中包含用户更改视图焦点信息时,触发窗口变化监听器事件;

基于IDE文档变化监听器动态监视开发人员文档操作行为,当所述开发人员编辑的文档内容发生变化时,触发活动文档变更监听事件;

优选地,基于事件处理模块,对基于开发语言元素变更监听器所触发的开发语言元素变更监听器事件、基于IDE资源变更监听器所触发的资源变更监听器事件、基于IDE窗口变化监听器所触发的窗口变化监听器事件和基于IDE文档变化监听器所触发的文档变更监听事件按照预先定义的规则进行过滤处理,并将无关事件信息进行过滤,保留记录事件信息,并按照预先定义的标准格式将过滤处理后的所述事件信息形成队列记录,并添加到开发行为信息队列中,同时将所述开发行为信息队列存储在内存缓存中;

优选地,将所述开发行为信息队列存储在内存缓存中之后,还包括:

检查所述内存缓存的缓存容量是否小于预设容量值,若是,将缓存的所述开发行为信息队列存储到本地硬盘文件中;

否则,判断缓存在所述内存缓存中的所述开发行为信息队列的缓存时间是否到达第一预设缓存定时时间,若是,将所述内存缓存中的所述开发行为信息队列发送到服务端的数据发送模块;

判断缓存在所述本地硬盘文件中的所述开发行为信息队列的缓存时间是否到达第二预设缓存定时时间,若是,将所述本地硬盘文件中的所述开发行为信息队列发送到服务端中的数据发送模块。

上述第一预设缓存定时时间和第二预设缓存定时时间不宜太短,以避免干扰开发人员,也不宜太长,以保证信息能够及时传送到数据接收模块,一般时间以5-10分钟为宜。

如果在传输开发行为信息队列到数据接收模块的过程中,与服务端连接失败,连续试三次,如果不成功,等待一段时间再重新连接。

如果在传输开发行为信息队列到数据接收模块的过程中向服务端发送失败,连续试三次,如果不成功,断开服务端,等待一段时间,重新连接并发送。

如果重试次数超过规定的次数,不再重试,并发出告警信息。

上述技术方案的有益效果是:通过对触发事件按照预先定义的标准格式进行处理,便于形成标准数据格式进行记录,方便开发行为信息队列数据的存储和访问;通过对内存缓存的容量进行检查,防止开发行为内存队列数据溢出;基于预设缓存定时时间进行数据传输,既可以保证本地开发行为数据能得到及时上传更新,又可以避免开发端和服务端一直处于工作状态,降低数据传输频率。

本发明另一个实施例提供一种软件开发行为监控系统,如图2所示,包括三个子系统,分别是开发行为及结果数据捕获子系统、开发行为及结果数据存储子系统和开发行为及结果数据综合服务子系统,开发行为及结果数据捕获子系统基于Eclipse IDE开发。由于涉及到客户端IDE环境技术、服务器端数据接收和存储技术、数据分析和展现技术这三种不同的技术,为了保证今后具备灵活的扩展性,采用层次化的架构,在层次间采用松耦合的软件设计方法,层次间通信以HTTP通用方式,这样可以保证各层次的软件系统保持独立性,一个层次软件系统的变化并不影响其他层次的系统构造,使系统具备良好的扩展性。

对于开发行为及结果数据捕获子系统而言,其包括:开发行为及结果数据捕获机制;

其中,对于开发行为及结果数据捕获机制的设计思路是:利用Eclipse 支持插件开发的机制,开发行为数据采集插件,在Eclipse插件上编写要监听的事件的监听器,在监听器中实现获取事件和处理数据的方法;

由于开发人员在Eclipse开发工具中的键盘、鼠标等输入设备的操作量非常巨大,如不加以区分进行监测和存储,大量的事件捕捉和传递对Eclipse开发效率造成明显影响,后台收集到的大量信息也会因为难以抽象和分类从而影响有效的分析和使用。因此,聚焦Eclipse本身提供的与开发活动相关的事件,分析出哪些开发活动可以通过Eclipse事件机制进行度量,通过对Eclipse进行Java项目开发的可监测活动的分析,结果如下表所示:

活动类型可监控类型描述项目初始化Eclipse事件新建项目、准备开发资源、环境设置产生的事件编码Eclipse事件新建、编辑、删除、调试代码产生的事件代码检查Eclipse插件事件通过插件检测代码规范性、复杂性、耦合性等产的事件项目构建Eclipse插件事件通过插件(如Ant)进行项目构建时产生的事件代码评审Eclipse插件事件通过插件(如Jupiter)进行代码评审时产生的事件单元测试Eclipse插件事件通过插件(如Junit)进行单元测试时产生的事件开发过程管理Eclipse与开发过程管理工具交互事件使用Eclipse与开发过程管理工具(如常用的JIRA)交互过程中产生的事件持续集成Eclipse与持续集成工具交互事件使用Eclipse与持续集成工具交互过程中产生的事件开发配置管理Eclipse与开发配置工具的交互事件使用Eclipse与开发配置管理工具(如SVN)交互过程中产生的事件

通过对使用Eclipse进行Java程序开发时可以捕捉到的代码开发事件分析,初步结果列表如下:

事件类型可监控类型具体事件描述代码开发EditStateChange当活跃缓存(Active Buffer)变化时产生该事件代码开发EditOpenFile当新文件打开时产生该事件代码开发EditSaveFile但当前文件保存时产生该事件代码开发EditCloseFile但当前文件关闭时产生该事件代码开发EditExit当退出Eclipse时产生该事件代码开发EditProgramUnit(Add)当增加程序结构体,如import,class, field, or method时产生该事件代码开发EditProgramUnit(Rename)当重命名程序结构体时产生该事件代码开发EditProgramUnit(Remove)当移除程序结构体时产生该事件代码开发EditProgramUnit(move)当把程序结构体移动位置时产生该事件代码开发BuildCompile当构建失败时产生该事件代码开发DebugBreakpoint当设置断点时产生该事件代码开发DebugStart当开始调试会话时产生该事件代码开发DebugStepInto当执行单步调试进入一代码块时产生该事件代码开发DebugStepOver当执行单步调试离开一代码块时产该事件代码开发DebugTerminate当执行中断调试会话时产生该事件

通过上述分析,将软件开发活动和具体操作的行为以及行为产生的结果联系起来,形成软件开发行为有效事件。Eclipse插件将重点搜集以上事件,过滤掉大量无效信息,使得收集到的信息更容易分类、存储、分析。

其中,当Eclipse启动时,上述开发行为数据采集插件同时启动运行,插件能辨别Eclipse环境中定义的各种事件,如窗口焦点事件,窗口控制事件,菜单项选择事件,键盘事件等,从而执行插件中的监听器截取和处理方法。

为了保证“开发行为及结果数据存储系统”能够同时处理来自不同终端的IDE开发行为,需要对事件数据类型进行规范;同时,通过本地和服务端同时存储的方案,以备网络通讯中断等原因造成的发送数据丢失。

对于开发行为及结果数据存储系统而言,包括:对行为及结果数据接收服务、行为及结果数据库、行为及结果数据库访问接口;

行为及结果数据接收服务是一个独立运行的服务端应用,其对应的服务程序定义了一个REST接口,以REST服务的方式提供开发行为数据的接收和获取功能;

且服务端应用用来接收由IDE端“开发行为及结果数据捕获子系统”发送的符合预定义的事件数据规范的数据,其接收接口将采用当前流行的REST服务或 REST API方式,数据采用XML方式,其好处是,无论IDE端是Java或者C/C++开发环境,都可以向接收服务端发送的数据,便于IDE端对不同开发环境的扩展。

对于行为及结果数据库,是负责将IDE端捕捉的行为及结果数据持久化存储到数据库管理系统中;数据库管理系统可以根据用户团队和应用规模选用不同的数据库产品。

且在数据库管理系统中,可以预置行为数据类型、行为数据、用户、项目等基础数据存储模型定义。

行为数据类型是对各种行为进行分类基础上产生的一种抽象的数据结构定义,与IDE无关,但和开发活动密切相关。例如“单元测试”类型的“结果”中,总是具备“通过”或“失败”;因为通过这种抽象的方式定义的类型和具体IDE无关,更有利于对软件开发过程进行分析;

其主要字段有:行为数据类型名称,作用描述,关键字段及取值(例如,测试行为的结果字段和取值可表示为:Result =“Passed”|“Failed”),相关的属性信息。

上述行为数据是每个行为数据实例代表一个用户软件开发过程中的原子行为或相关的结果,且行为数据必须属于某个用户,而一个用户在一个时间戳内只能有一个行为数据。

因此其主要字段有:用户,用户使用工具,行为数据类型,行为数据产生时间戳,行为数据属性,行为数据是对哪个资源进行操作时产生的。

上述用户可以是指使用IDE参与软件开发的角色,通常是指开发人员。

主要字段有:用户名/电子邮件,密码,本系统中的角色,属性信息。

上述项目可以是由团队进行的软件开发活动。

主要字段有:项目名称,项目描述, 开始时间,结束时间,项目所有者,属性信息等。

行为及结果数据库访问接口,实现对数据库的访问,采用REST服务或REST API,这样外部系统对行为及结果数据的访问具有松耦合特征,只要REST的接口形式不变,调用方和服务方可以根据自己的需要,灵活地进行更新,同时,也便于后期开发出更多的数据分析和展现方式。

对于开发行为及结果数据综合服务系统包括:行为及结果数据库维护管理、开发行为数据审计、行为数据挖掘分析和获取开发配置数据接口;

上述行为及结果数据库维护管理是基于行为及结果数据访问接口及其数据库管理系统提供的接口,开发基于浏览器的数据库管理界面,主要为管理员用户提供日常数据库系统的管理工作,包括数据库初始化,建立和输入项目和用户信息,建立项目和用户的关系,监控数据库运行状态,查看团队成员使用本系统的情况,为数据库建立索引,压缩数据空间等。

上述设置开发行为数据审计,主要是因为行为信息数据一般是比较底层的数据,信息量非常大,在大多数情况下需要进行某些分析和抽象方式,使其能够直接提供给开发者查看、使用。为此,提供了基于B/S架构的面向个人的行为数据审计系统,开发管理人员可以通过浏览器方式,浏览与个人相关的开发行为记录。行为记录内容首先以列表方式显示,列表中的主要内容如下表所示。开发人员可以点击各列中显示的每日的行为次数,就可以进入详细数据审计,如下表所示,下表第一行,2017年7月5日,配置管理提交了6次,点击这个数字,就可以把每次提交的详细信息展示出来,用来进行代码数据审计,

日期行为总数项目构建次数编码行为代码检查发现问题单元测试执行次数配置管理提交次数2017-7-5386146662017-7-348816888

设置行为数据挖掘分析是为了实现基于B/S架构的团队行为数据报告服务,它将从项目维度,将行为及结果数据存储系统中大量的原始数据进行分析和展现。

首先,它提供了一个预定义分析模板,可以让项目拥有者(创建者或者管理者)基于它选择需要度量的成员、度量的行为以及展现的方式。

其次,它根据定义好的分析模板,可执行每日项目报告、阶段报告、项目总结报告。报告的内容根据分析方法和关注点的不同而有所不同,常用的报告方式有:项目代码质量指标及趋势,项目进度指标及趋势,项目中各种行为类型的分布等。

设置获取开发配置数据接口,是为了实现开发人员与开发配置库的交互行为的数据,对监控、分析、评价开发人员的开发活动非常重要。目前最常用的开发配置库是SVN。将开发SVN开发配置数据读取接口,项目管理者可以利用它将SVN中项目相关的数据和行为数据信息联系起来。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号