本发明专利技术涉及一种用于软件缺陷预测的方法和装置,其中,该装置包括:计算模块,用于根据与软件架构项相关的软件项目管理信息,计算可指示所述软件架构项的复杂度的至少一个度量值;以及,执行模块,用于根据所计算的至少一个度量值,执行所述软件架构项的缺陷预测。利用该方法和装置,能够在没有历史数据的情况下进行软件缺陷预测。
【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种用于软件缺陷预测的方法和装置,其中,该装置包括:计算模块,用于根据与软件架构项相关的软件项目管理信息,计算可指示所述软件架构项的复杂度的至少一个度量值;以及,执行模块,用于根据所计算的至少一个度量值,执行所述软件架构项的缺陷预测。利用该方法和装置,能够在没有历史数据的情况下进行软件缺陷预测。【专利说明】一种用于软件缺陷预测的方法和装置
本专利技术涉及软件缺陷预测领域,尤其涉及一种用于软件缺陷预测的方法和装置。
技术介绍
软件己经成为影响国民经济、军事、政治乃至社会生活的重要因素,高可靠和复杂的软件系统非常依赖于其采用的软件的可靠性。然而,软件本身固有的属性使得软件系统中的缺陷是软件开发过程中不可避免的“副产品”,并且软件的缺陷通常会导致相关系统出错、失效甚至崩溃。为此,人们通常会对编制出来的软件进行测试以发现软件中存在的缺陷并修正这些缺陷。然而任何检测技术并不能发现和排除所有的缺陷,总会有一些不为人知的原因导致缺陷产生,而这些潜在却不被发现的缺陷影响了软件的质量。如果能预测出软件中尚未发现但仍存在的缺陷数目及缺陷分布,那么测试人员就能够快速地、准确地定位并纠正缺陷,从而提高软件的可靠性。为此,自20世纪70年代起,人们就开始发展软件缺陷预测技术,以对软件的缺陷数量或者缺陷分布进行预测。现有的软件缺陷预测技术通常基于例如非线性回归分析等这样的常规建模方法利用历史数据,即对所开发软件的过去版本,或与所开发软件相类似的软件以及相关项目的度量数据,来预测软件中的缺陷。例如,采集软件所有过去版本的缺陷数量统计以及软件规模的度量值(常用的比如代码行数,L0C)做回归分析,建立统计模型,并以此为依据来预测新版本软件的缺陷密度。然而,在实际的软件项目开发环境中,常常没有历史数据或者没有足够的历史数据可用,从而无法使用现有的软件缺陷预测技术来进行软件缺陷预测。
技术实现思路
考虑到现有技术的以上问题,本专利技术实施例提供一种用于软件缺陷预测的方法和装置,其能够在没有历史数据的情况下进行软件缺陷预测。按照本专利技术实施例的一种由计算机实现的用于软件缺陷预测的方法,包括:根据与软件架构项相关的软件项目管理信息,计算可指示所述软件架构项的复杂度的至少一个度量值;根据所述计算的至少一个度量值,确定影响因子,其中所述影响因子表示所述软件架构项对所述软件架构项所属的软件的质量的影响;以及根据所确定的影响因子,确定所述软件架构项存在缺陷的可能性。其中,所述影响因子由所述度量值的乘积确定。其中,所述至少一个度量值可以包括以下至少一个:参与开发和修改所述软件架构项的开发人员数目;开发和修改所述软件架构项所花费的时间;以及,开发和修改所述软件架构项所涉及的任务数目。其中,所述软件架构项可以是软件的任一源文件、构成软件的任一软件模块或软件的任一软件版本。其中,所述根据所确定的影响因子,确定所述软件架构项存在缺陷的可能性的步骤具体包括:根据所述计算的至少一个度量值,确定所述软件架构项的缺陷密度;以及,根据所确定的缺陷密度,确定所述软件架构项存在缺陷的可能性。按照本专利技术实施例的一种用于软件缺陷预测的装置,包括:计算模块,用于根据与软件架构项相关的软件项目管理信息,计算可指示所述软件架构项的复杂度的至少一个度量值;以及缺陷可能性确认模块,用于根据所计算的至少一个度量值,确定影响因子,其中所述影响因子表示所述软件架构项对所述软件架构项所属的软件的质量的影响;以及根据所确定的影响因子,确定所述软件架构项存在缺陷的可能性。其中,所述影响因子由所述度量值的乘积确定。其中,所述至少一个度量值可以包括以下至少一个:参与开发和修改所述软件架构项的开发人员数目;开发和修改所述软件架构项所花费的时间;以及,开发和修改所述软件架构项所涉及的任务数目。其中,所述软件架构项可以是软件的任一源文件、构成软件的任一软件模块或软件的任一软件版本。其中,所述缺陷可能性确认模块包括:缺陷密度确认模块,用于根据所述计算的至少一个度量值,确定所述软件架构项的缺陷密度,从而确定所述软件架构项存在缺陷的可能性。从上面的描述可以看出,本专利技术实施例的方案不使用历史数据而是利用软件项目管理信息来进行软件缺陷预测。因此,相对于现有技术,本专利技术实施例的方案能够在没有历史数据的情况下进行软件缺陷预测。并且,本专利技术实施例所使用的软件项目管理信息,在大多数的软件研发项目中都能够很方便的获取(比如通过项目管理软件,或是软件项目中常见的配置管理系统来获取),因而具有较高的实用性。【专利附图】【附图说明】本专利技术的其它特点、特征、优点和益处通过以下结合附图的详细描述将变得更加显而易见。其中:图1示出了按照本专利技术一个实施例的用于软件缺陷预测的方法的流程图;图2示出了按照本专利技术一个实施例的计算影响因子的示例;图3示出了按照本专利技术一个实施例的用于软件缺陷预测的装置的示意图;图4A示出了按照本专利技术一个实施例的执行模块的示意图;图4B示出了按照本专利技术另一实施例的执行模块的示意图;以及图5示出了按照本专利技术一个实施例的用于软件缺陷预测的设备的示意图。【具体实施方式】专利技术人经过调查发现:目前在开发软件时,通常把所开发的软件作为一个项目来看待,并且在软件的整个开发过程中,会把软件的各种软件项目管理信息存储在项目开发数据库中。这里,软件项目管理信息可以包括但不局限于:参与开发软件的每一个软件架构项的各个开发人员、参与修改软件的每一个软件架构项的各个开发人员、每一个开发人员在开发所参与的每一个软件架构项时所付出的时间、每一个开发人员在修改所参与的每一个软件架构项时所付出的时间、开发每一个软件架构项所涉及的各个任务、修改每一个软件架构项所涉及的各个任务等。这里,软件架构项可以是软件的任一源文件、构成软件的任一软件模块或者软件的任一软件版本。此外,专利技术人经过大量研究还发现:软件的缺陷往往与软件的复杂度有关。软件越复杂,软件存在缺陷的概率越大,出现缺陷的数量也越多。基于以上发现,专利技术人提出了本专利技术实施例的方案:首先根据与软件架构项相关的软件项目管理信息来计算可指示该软件架构项的复杂度的至少一个度量值,然后根据所计算的至少一个度量值来执行该软件架构项的缺陷预测。可见,本专利技术实施例的技术方案不使用历史数据而是利用软件项目管理信息来执行软件缺陷预测。因此,与现有技术相比,本专利技术实施例的技术方案能够在没有历史数据的情况下进行软件缺陷预测。下面,将结合附图详细描述本专利技术的各个实施例。现在参见图1,其示出了按照本专利技术一个实施例的用于软件缺陷预测的方法的流程图。本领域技术人员应当理解,图1所示的方法可以由计算机来实现。如图1所示,在步骤S100,从软件R的项目开发数据库中查找出与软件R的软件架构项X相关的以下软件项目管理信息:参与开发软件R的软件架构项X的各个开发人员、参与修改软件R的软件架构项X的各个开发人员、参与开发软件架构项X的每个开发人员开发软件架构项X的时间、参与修改软件架构项X的每个开发人员修改软件架构项X的时间、开发软件架构项X所涉及的各个任务、修改软件架构项X所涉及的各个任务。这里,软件架构项X可以是软件R的任一源文件、构成软件R的任一软件模块或者软件R的任一软件版本。在步骤S110,利用所查找的软件本文档来自技高网...
【技术保护点】
一种由计算机实现的用于软件缺陷预测的方法,包括:根据与软件架构项相关的软件项目管理信息,计算可指示所述软件架构项的复杂度的至少一个度量值;以及根据所述计算的至少一个度量值,确定影响因子,其中所述影响因子表示所述软件架构项对所述软件架构项所属的软件的质量的影响;以及根据所确定的影响因子,确定所述软件架构项存在缺陷的可能性。
【技术特征摘要】
【专利技术属性】
技术研发人员:彭飞,
申请(专利权)人:西门子公司,
类型:发明
国别省市:德国;DE
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。