一种自动化的开源软件质量证据提取方法

文档序号:6367602阅读:147来源:国知局
专利名称:一种自动化的开源软件质量证据提取方法
技术领域
本发明涉及一种开源软件质量证据的自动提取方法,主要包含各种软件质量证据的自动化获取方法。
背景技术
目前开源软件已在众多应用领域发挥着至关重要的作用。但是,由于开源软件缺乏严格规范的功能测试和性能测试,开源软件造成的安全隐患和财产损失也屡见不鲜。随着软件系统规模和复杂程度的迅速增加,及时准确的获取能够反映开源软件正确性、可靠性、安全性等质量特性的数据对于开源软件的选择和正确使用具有重要意义。
互联网开源软件虽然没有软件工程技术强调的有计划有策略的集中测试,但是开源软件在互联网上发布以后,其规模庞大的用户群将在开源软件社区交流、反馈、讨论各种使用体验和故障信息。这些信息本质上是一种大规模的自发的没有固定格式的软件测试报告。国内外学者通过统计分析,发现这些数据具有以下特点和规律I、互联网上的海量用户群对开源软件的应用反馈和缺陷报告基本上覆盖了开源软件的主要功能缺陷和性能问题。2、软件开发社区的版本库、缺陷库、邮件列表中包含大量的测试信息。互网上大量的数据源都是引用了开发社区的Web数据,但是其版本库中的数据因为不可见,并没有反映在其中。对于广泛分布于互联网的数目巨大的开源软件项目,如何帮助用户准确、快速的了解一些软件的各种质量属性指标,并合理的选择出正确的、恰当的软件成为了一个函待解决的问题。其中,软件质量证据的自动化提取方法是解决该问题的一个关键技术。但是,受软件应用范围、领域、环境等软件自身之外的诸多因素的影响,目前对软件质量证据的选取和使用缺乏理论依据和实际的可操作性。随着以Linux为代表的开源运动的兴起,使得开源软件越来越多的被人们所关注和使用。开源软件在其整个生命周期中,产生了大量的、各种类型的数据,这些数据为软件客观的质量证据的获取和使用提供了一些新的思路。在开源软件质量评估领域,现有的软件质量模型具有较大影响的主要是卡耐基梅隆大学软件工程研究所的BRR(Business Readiness Rating for Open source)模型及欧洲Atos Origin公司的QSOS(Qualifications and Selection of Open Source Software)模型。测度是软件客观属性的直接度量,被用于表达反映产品客观质量的某些方面。质量证据是各种测度的进行测量的基础。上述模型中,虽然使用的具体质量属性不太一样,但过程与方法基本相同首先定义软件质量属性,再将属性细分为若干个测度;使用者以手动方式提取软件相关质量证据信息,进而给出相关测度的分值;最后,基于预定义的各属性权重计算综合得分值。上述方法不仅由于其软件测度的主观性导致实用性不强,而且质量证据的获取过程是异常繁琐、开销巨大,即使专业人员对一个软件进行完整的分析也需要投入巨大的时间和精力,而有限的权威机构显然无法完成对海量的软件进行单独分析的任务。这对于互联网时代软件数量的大规模增长是非常不适合的,无法满足用户快速、方便、准确的了解软件各种质量属性的需求。

发明内容
本发明的目的在于针对现有技术的不足,提出一种自动化的开源软件质量证据提取方法,具有较高的可操作性和灵活性,能够为用户提供丰富的、可供选择的软件质量证据。本发明的技术方案包括以下步骤步骤I、用户请求处理步骤本地服务器接收到关于某项质量证据或质量测度的用户请求,查询本地数据库中是否已有目标软件的最新变更数据;如果本地数据库中存在目标软件的预设时间段N以内的更新数据,则执行步骤5 ;如果没有,则执行步骤2。进一步地,步骤I中的用户请求中包含所述目标软件的名称和版本号。 进一步地,步骤I中的所述目标软件的最新变更数据包括缺陷库、问题库、版本库、邮件列表、论坛文本库等。进一步地,步骤I中的所述预设时间段N为由系统管理员设定的整数,如N= 24表示数据的过期时限为I天。步骤2、最新变更数据下载步骤本地服务器在互联网上搜索并确定具有所述目标软件的最新变更数据的一定数量的远端服务器,从远端服务器下载所述最新变更数据到本地数据库。进一步地,所述最新变更数据下载步骤包括步骤21、检查本地服务器中是否存在所述目标软件对应的代码控制系统(如svn),如果存在则将本地服务器的软件开发控制管理系统与远端服务器进行同步;否则,本地服务器根据已知的代码控制系统的地址(如http://svn. apache, org/repos/asf)通过相应代码控制系统客户端工具(如tortoiseSVN)进行检出;步骤22、检查本地服务器中是否存在所述目标软件对应的缺陷跟踪信息库,如果存在且目标缺陷跟踪信息库本身支持更新编程接口,则通过该接口对本地服务器的缺陷跟踪信息库进行更新;在其余情况下,本地服务器根据已知的缺陷跟踪信息库的地址,通过缺陷跟踪信息库提供的可编程下载接口,在本地服务器创建副本或替换掉旧版本;步骤23、服务器检查是否存在所述目标软件的邮件列表下载记录;如果有,则结束步骤2 ;否则,服务器调用相应工具或脚本下载至本地服务器。步骤3、数据解析步骤本地服务器对新下载的所述目标软件的最新变更数据进行解析,从中提取结构化的数据条目存储于后台服务器数据库。进一步地所述结构化的数据条目包括来自代码控制系统的代码版本号、提交者名称、提交时间、提交所涉及的文件集合、所涉及的代码行;以及来自缺陷控制系统的缺陷号、提出时间、修复时间、缺陷状态、严重程度、优先级;和来自邮件列表的列表发起者、邮件主题、所有接收者名称、邮箱地址、所有回复者名称、邮箱地址等。步骤4、软件质量测度提取步骤从解析后的结构化数据中提取软件质量测度,存储于服务器;
进一步地,所述软件质量测度包括开发者的代码贡献度和缺陷响应速度。步骤5、质量证据返回步骤本地服务器提供目标软件的各种质量证据及其测度分值,返回用户。如用户查询某项目最核心开发人员的代码贡献度,则系统将步骤4所计算的代码贡献度最大值返回给用户。步骤6、本地服务器数据更新步骤本地服务器对已有项目进行定期检查,更新相应资源库,重新计算各测度值。上述各步骤中,所有下载过程可以使用成熟的工具或方法。其中,步骤21到23为可选项,会对质量证据的种类和个数造成影响,但不会影响整个评估过程。


图I为本发明自动化的开源软件质量证据提取方法实施例一的流程图;图2为本发明自动化的开源软件质量证据提取方法资源库下载实施例二的流程具体实施例方式本发明主要针对互联网上海量开源软件的质量证据进行自动化提取。如图I所示,为本发明开源软件质量证据自动化获取方法的本地服务器已有项目评估流程图,具体执行以下步骤步骤101、用户向服务器提出请求,需要获取软件项目A的相关质量证据;步骤102、服务器在本地找到已有的关于软件项目A的各种质量属性及其相关质量证据,返回用户。更具体的,目标软件检查到在本地服务器的代码控制系统、缺陷管理系统、邮件列表库存在且距离最近一次更新小于N小时(整数N可以由系统管理员设定,如N = 24表示数据的过期时限为I天),则意味着本地服务器中已经获取了与该软件项目有关的用于评价其质量属性的信息。软件项目的质量属性例如可以包括正确性、健壮性、兼容性、可以扩展性、可移植性性等。而不同的质量属性可以利用一个或若干个不同的测度值进行表示,例如如果发现特定的软件项目被基于不同的操作平台具有不同的版本如linux、windows等,贝U意味着该软件具有较强的可移植性;如果发现该软件具有一定长度的发开周期、并在开发周期内具有一定频率(例如每周一次或每月一次)的更新和维护,漏洞补丁,则意味着该软件项目具有较好的健壮性。步骤103、用户选取自己所关注的属性及其质量证据。例如根据人员的代码提交情况和次数,计算每个开发者的代码贡献度;或根据每个缺陷从提出到修复所花费的时间,来计算项目对缺陷的响应速度;或根据邮件列表中的主题,来挖掘不同时期,开发团队所讨论的热门话题的变化情况等等;部分测度将根据各自的具体应用场景,设置测度分值,如前面提到的每个开发人员的代码贡献度,可设为其提交的代码行数占所有已提交的代码行数的百分比。步骤104、项目A的质量证据自动化获取过程结束。
该方法针对互联网上开源软件质量证据进行自动化的获取,简化了繁琐重复的手工获取过程,充分利用了已有计算结果,极大地简化了使用人员的工作量,灵活性比较好,能够应对海量软件的证据获取需求。在此需要指出的是,在实施例一中,仅仅列出了本地服务器检查与开源软件项目有关的代码控制系统、缺陷管理系统、邮件列表都具有最新更新数据的情形。如图2所示的实施例二,仅示意性的示出了不存在与待测软件项目有关的任何最新更新数据时,对代码控制系统、缺陷管理系统、邮件列表依次进行检查和更新的情形,本领域技术人员可以知道,在实施例一中,当代码控制系统、缺陷管理系统、邮件列表中的一个或两个不具有最新更新数据时,应当进行实施二中相应的下载过程。当开源软件质量证据获取方法的本地服务器对尚未下载完整资源库的项目的质量证据获取流程图,具体执行以下步骤步骤201、用户向服务器提出请求,需获取项目B的相关质量证据信息;
·
步骤202、服务器检查本地数据库未发现项目B的最新完整资源库信息;步骤203、服务器检查是否已经存在项目B的开发控制管理系统(如SVN,CVS,GIT)下载记录;如果有,执行步骤205 ;否则,执行步骤204 ;步骤204、服务器调用相应插件搜索并下载项目B的开发控制管理系统数据到本地服务器;更具体地,检查本地服务器中是否存在目标软件对应的代码控制系统(如svn),存在则将本地的软件开发控制管理系统与远端进行同步;否则,服务器根据已知的代码控制系统的地址(如http://svn. apache, org/repos/asf)通过相应代码控制系统客户端工具(如tortoiseSVN)进行检出,下载到服务器本地;项目B的开发控制管理系统数据主要是项目开发期间的过程控制信息,例如包括代码版本号、提交者名称、提交时间、提交所涉及的文件集合、所涉及的代码行等。步骤205、服务器检查是否存在项目B的缺陷跟踪信息库(如Bugzilla或Tracker)的下载记录;如果有,执行步骤207 ;否则,执行步骤206 ;首先检查本地服务器中是否存在所述目标软件对应的缺陷跟踪信息库(如Tracker系统),如果存在且目标缺陷跟踪信息库本身支持更新编程接口,则通过该接口对本地服务器的缺陷跟踪信息库进行更新;在其余情况下,本地服务器根据已知的缺陷跟踪信息库的地址,通过缺陷跟踪信息库提供的可编程下载接口,在本地服务器创建副本或替换掉旧版本;步骤206、服务器调用相应插件搜索并下载项目B的缺陷跟踪信息库数据至本地服务器;缺陷跟踪信息库可以提供例如缺陷号、提出时间、修复时间、缺陷状态、严重程度、优先级等信息用于表征软件质量;更具体地,检查本地服务器中是否存在目标软件对应的缺陷跟踪信息库(如Tracker系统),如果存在且目标缺陷跟踪信息库本身支持更新编程接口,则通过该接口对本地的缺陷跟踪信息库进行更新;在其余情况下,服务器根据已知的缺陷跟踪信息库的地址,通过缺陷跟踪信息库提供的可编程下载接口,下载到服务器本地或替换掉旧版本。步骤207、服务器检查是否存在项目B的邮件列表下载记录;如果有,执行步骤209 ;否则,执行步骤208 ;
步骤208、服务器调用相应工具搜索并下载项目B的邮件库至本地服务器;由于不同网站的邮件列表有不同的组织形式,该脚本或工具是因项目而异的。一般来说,与软件项目相关的邮件库提供的邮件列表可以提供与该软件项目相关的列表发起者、邮件主题、所有接收者名称、邮箱地址、所有回复者名称、邮箱地址等。可以在获取的邮件列表中进行汇总和排序,获取与该软件项目相关的最活跃的关注用户及其邮箱地址等,从而当前开发者可以进一步搜索与该最活跃的关注用户有关的软件项目主题并进行技术讨论和交流。步骤209结束资源库下载过程;经过上述处理过程,可以对开源方式开发的软件质量证据进行提取过程,例如通过一般开源社区维护和提供的与开源软件项目有关的开发控制管理系统信息、缺陷跟踪信息库信息和邮件列表信息等,可自动获取质量证据信息,避免了证据获取过程的重复繁琐的过程,极大地简化了使用者的工作量;可由用户自己选取其所关注的质量属性及其测度, 充分考虑了用户个性需求及软件的领域特征,提高了质量证据选取的灵活性,并能够满足对互联网上海量软件的质量证据获取需求。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种自动化的开源软件质量证据提取方法,包括下列步骤 步骤I、用户请求处理步骤本地服务器接收到关于某项质量证据或质量测度的用户请求,查询本地数据库中是否已有目标软件的最新变更数据;如果本地数据库中存在目标软件的预设时间段N以内的更新数据,则执行步骤5-6 ;如果没有,则执行步骤2-6 ; 步骤2、最新变更数据下载步骤本地服务器在互联网上搜索并确定具有所述目标软件的最新变更数据的一定数量的远端服务器,从远端服务器下载所述最新变更数据到本地数据库; 步骤3、数据解析步骤本地服务器对新下载的所述目标软件的最新变更数据进行解析,从中提取结构化的数据条目存储于后台数据库; 步骤4、软件质量测度提取步骤从解析后的结构化数据中提取软件质量测度,存储于服务器; 步骤5、质量证据返回步骤本地服务器提供目标软件的各种质量证据及其测度分值,返回用户。
步骤6、本地服务器数据更新步骤本地服务器对已有项目进行定期检查,更新相应资源库,重新计算各测度值。
2.如权利要求I所述的方法,其中,步骤I中的所述用户请求中包含所述目标软件的名称和版本号;所述目标软件的最新变更数据包括缺陷库、问题库、版本库、邮件列表、论坛文本库等;所述预设时间段N为由系统管理员设定的整数,如N= 24表示数据的过期时限为I天。
3.如权利要求I所述的方法,其中所述最新变更数据下载步骤进一步包括 步骤21、检查本地服务器中是否存在所述目标软件对应的代码控制系统,如果存在则将本地服务器的软件开发控制管理系统与远端服务器进行同步;否则,本地服务器根据已知的代码控制系统的地址通过相应代码控制系统客户端工具进行检出; 步骤22、检查本地服务器中是否存在所述目标软件对应的缺陷跟踪信息库,如果存在且目标缺陷跟踪信息库本身支持更新编程接口,则通过该接口对本地服务器的缺陷跟踪信息库进行更新;在其余情况下,本地服务器根据已知的缺陷跟踪信息库的地址,通过缺陷跟踪信息库提供的可编程下载接口,在本地服务器创建副本或替换掉旧版本; 步骤23、服务器检查是否存在所述目标软件的邮件列表下载记录;如果有,则结束步骤2 ;否则,服务器调用相应工具或脚本下载至本地服务器。
4.如权利要求I所述的方法,其中步骤4中所述结构化的数据条目包括的来自代码控制系统的代码版本号、提交者名称、提交时间、提交所涉及的文件集合、所涉及的代码行;以及来自缺陷控制系统的缺陷号、提出时间、修复时间、缺陷状态、严重程度、优先级;和来自邮件列表的列表发起者、邮件主题、所有接收者名称、邮箱地址、所有回复者名称、邮箱地址等。
5.如权利要求I所述的方法,其中所述软件质量测度包括开发者的代码贡献度和缺陷响应速度。
全文摘要
一种自动化的开源软件质量证据提取方法,本地服务器接收到用户请求,查询本地数据库中是否已有目标软件的最新变更数据,如果存在预设时间段内的更新数据,则提供目标软件的各种质量证据及其测度分值并返回用户,对已有项目进行定期检查更新相应资源库,重新计算各测度值;如果没有,则在互联网上搜索并确定具有所述目标软件的最新变更数据的远端服务器,下载所述最新变更数据到本地数据库,本地服务器对新下载的所述目标软件的最新变更数据进行解析,从中提取结构化的数据条目并存储,从解析后的结构化数据中提取软件质量测度,提供目标软件的各种质量证据及其测度分值以返回用户。本地资源库定期更新,从而实现开源软件质量证据的自动提取。
文档编号G06F11/36GK102760152SQ20121009717
公开日2012年10月31日 申请日期2012年4月5日 优先权日2012年4月5日
发明者丁博, 史殿习, 尹刚, 朱沿旭, 李翔, 王怀民, 王涛, 袁霖 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1