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

技术编号:7935460 阅读:148 留言:0更新日期:2012-11-01 05:14
一种自动化的开源软件质量证据提取方法,本地服务器接收到用户请求,查询本地数据库中是否已有目标软件的最新变更数据,如果存在预设时间段内的更新数据,则提供目标软件的各种质量证据及其测度分值并返回用户,对已有项目进行定期检查更新相应资源库,重新计算各测度值;如果没有,则在互联网上搜索并确定具有所述目标软件的最新变更数据的远端服务器,下载所述最新变更数据到本地数据库,本地服务器对新下载的所述目标软件的最新变更数据进行解析,从中提取结构化的数据条目并存储,从解析后的结构化数据中提取软件质量测度,提供目标软件的各种质量证据及其测度分值以返回用户。本地资源库定期更新,从而实现开源软件质量证据的自动提取。

【技术实现步骤摘要】

本专利技术涉及一种开源软件质量证据的自动提取方法,主要包含各种软件质量证据的自动化获取方法。
技术介绍
目前开源软件已在众多应用领域发挥着至关重要的作用。但是,由于开源软件缺乏严格规范的功能测试和性能测试,开源软件造成的安全隐患和财产损失也屡见不鲜。随着软件系统规模和复杂程度的迅速增加,及时准确的获取能够反映开源软件正确性、可靠性、安全性等质量特性的数据对于开源软件的选择和正确使用具有重要意义。 互联网开源软件虽然没有软件工程技术强调的有计划有策略的集中测试,但是开源软件在互联网上发布以后,其规模庞大的用户群将在开源软件社区交流、反馈、讨论各种使用体验和故障信息。这些信息本质上是一种大规模的自发的没有固定格式的软件测试报告。国内外学者通过统计分析,发现这些数据具有以下特点和规律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天),则意味着本地服务器中已经获取了与该软件项目有关的用于评价其质量属性的信息。软件项目的质量属性例如可以包括正确性、健壮性、兼容性、可以扩展性、可移植性性等。而不同的质量属性可以利用一个或若干个不同的测度值进行表示,例如如果发现特定的软件项目被基于不同的操作平台具有不同的版本如linu本文档来自技高网
...

【技术保护点】
一种自动化的开源软件质量证据提取方法,包括下列步骤:步骤1、用户请求处理步骤:本地服务器接收到关于某项质量证据或质量测度的用户请求,查询本地数据库中是否已有目标软件的最新变更数据;如果本地数据库中存在目标软件的预设时间段N以内的更新数据,则执行步骤5?6;如果没有,则执行步骤2?6;步骤2、最新变更数据下载步骤:本地服务器在互联网上搜索并确定具有所述目标软件的最新变更数据的一定数量的远端服务器,从远端服务器下载所述最新变更数据到本地数据库;步骤3、数据解析步骤:本地服务器对新下载的所述目标软件的最新变更数据进行解析,从中提取结构化的数据条目存储于后台数据库;步骤4、软件质量测度提取步骤:从解析后的结构化数据中提取软件质量测度,存储于服务器;步骤5、质量证据返回步骤:本地服务器提供目标软件的各种质量证据及其测度分值,返回用户。步骤6、本地服务器数据更新步骤:本地服务器对已有项目进行定期检查,更新相应资源库,重新计算各测度值。

【技术特征摘要】

【专利技术属性】
技术研发人员:王怀民尹刚袁霖李翔史殿习朱沿旭王涛丁博
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1