CN111767212B - 一种软件代码质量评价方法、装置、设备及存储介质 - Google Patents
一种软件代码质量评价方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111767212B CN111767212B CN202010551985.2A CN202010551985A CN111767212B CN 111767212 B CN111767212 B CN 111767212B CN 202010551985 A CN202010551985 A CN 202010551985A CN 111767212 B CN111767212 B CN 111767212B
- Authority
- CN
- China
- Prior art keywords
- software
- quality
- target
- conforming
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000013441 quality evaluation Methods 0.000 title claims abstract description 29
- 238000005259 measurement Methods 0.000 claims abstract description 49
- 239000011159 matrix material Substances 0.000 claims abstract description 26
- 238000011156 evaluation Methods 0.000 claims description 61
- 238000013442 quality metrics Methods 0.000 claims description 20
- 230000003068 static effect Effects 0.000 claims description 18
- 238000012360 testing method Methods 0.000 claims description 17
- 230000007547 defect Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims 4
- 238000001303 quality assessment method Methods 0.000 claims 1
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出一种软件代码质量评价方法,根据软件关键性等级矩阵确定目标软件关键性等级;根据目标软件关键性等级确定目标软件的质量度量指标权值;根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率;通过目标质量指标不符合项数与目标软件代码行数计算目标软件质量不符合项的概率;则根据质量度量指标权值、目标软件质量不符合项的概率、软件质量数据库中软件质量评分、软件质量数据库中质量不符合项的平均概率参数计算目标软件质量评分。通过上述方案,提高了软件质量评分的准确性与充分性。此外,本发明的实施方式提供了一种软件代码质量评价装置、设备及存储介质。
Description
技术领域
本发明属于计算机应用技术领域,更具体地,涉及一种软件代码质量评价方法、装置、设备及存储介质。
背景技术
近年来,随着计算机技术、数据融合技术、网络技术和通讯技术的飞速发展,软件产业的发展实现了平稳增长,其具备高增长、高智力投入、服务性强、高附加值、与国民经济关系密切、全球性强的特点。随着对软件的依赖程度的日益增加,对软件功能提出的要求也越来越高,软件代码质量问题成为当下的热点话题。例如首次开发的软件一般会存在各种缺陷,此时,如果直接将开发的软件进行发布,则会影响用户的使用效果,所以需要对开发的软件的质量进行评估,在完善软件代码质量后再进行使用,以此保证用户体验。
目前,还没有一套完整有效的软件代码质量评价方法,因此,业内亟需一种软件代码质量评价方法来解决上述技术问题。
发明内容
本发明的目的是提供一种软件代码质量评价方法,通过软件质量数据库中的软件质量平均分、软件的质量度量指标权值、软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率参数计算在软件质量数据库为空与不为空情况下的软件质量评分,其基于历史软件的质量数据,提高了软件质量评分的准确性与充分性。
为解决上述技术问题,本发明提供如下技术方案,包括:
创建软件安全等级评估表与软件规模评估标表;
根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;
设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;
根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;
对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;
判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;
若否,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤。
优选地,创建软件安全等级评估表与软件规模评估标表包括:根据软件允许缺陷数量创建软件安全等级评估表;所述软件安全等级评估表包括超大型等级、大型等级、中型等级、小型等级以及微型等级;根据软件代码行数创建软件规模评估标表。
优选地,设置软件代码质量度量指标包括单个代码文件行数、单个代码单元行数、单元代码注释率、单元代码覆盖率、单元圈复杂度、单元控制结构嵌套深度以及单元递归数。
优选地,根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率包括:通过公式统计所述软件质量数据库中质量不符合项的平均概率,其中Pi为所述软件质量数据库中质量不符合项的平均概率,∑Ni为所述软件质量数据库软件质量指标不符合项数总量,∑Li为软件质量数据库中软件代码总行数。
优选地,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率包括:通过公式Ai=n/l计算所述目标软件某项质量不符合项的概率,其中n为所述目标软件质量不符合项数,l为所述目标软件代码行数;Ai为目标软件某项质量不符合项的概率。
优选地,判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤包括:根据公式Si=∑100*Va*Ai计算所述目标软件质量评分,其中,Va为所述目标软件的质量度量指标权值,Ai为目标软件质量不符合项的概率,Si为软件质量评分。
优选地,若否,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤包括:根据公式计算所述目标软件质量评分,其中,/>为所述软件质量数据库中的软件质量平均分,Va为所述目标软件的质量度量指标权值,Ai为目标软件质量不符合项的概率,Si为软件质量评分,Pi为所述软件质量数据库中质量不符合项的平均概率。
此外,为实现上述目的,本发明还提供一种软件代码质量评价装置,包括:
第一创建单元,用于创建软件安全等级评估表与软件规模评估标表;
第二创建单元,用于根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;
第三创建单元,用于设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;
第一计算单元,用于根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;
第二计算单元,用于对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;
第一质量评分单元,用于判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;
第二质量评分单元,用于若否的情况下,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤。
此外,为实现上述目的,本发明还提出一种计算机设备,所述计算机设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件代码质量评价程序,所述软件代码质量评价程序配置为实现如上文所述的软件代码质量评价方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有软件代码质量评价程序,所述软件代码质量评价程序被处理器执行时实现如上文所述的软件代码质量评价方法的步骤。
本发明提出一种软件代码质量评价方法,包括:创建软件安全等级评估表与软件规模评估标表;根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;若否,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤。通过上述方案,提出一种软件代码质量评价方法,综合了软件质量数据库中历史软件的数据,提高了软件质量评估的准确性与充分性。
附图说明
图1为本发明实施例一种软件代码质量评价方法流程图;
图2为本发明实施例一种软件代码质量评价装置示意图;
图3为本发明实施例一种计算机设备的结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
实施例一
参见图1所示,为本发明实施例一种软件代码质量评价方法流程图,具体包括:
S110:创建软件安全等级评估表与软件规模评估标表;
S120:根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;
S130:设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;
S140:根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;
S150:对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;
S160:判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;
S170:若否,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤。
步骤S110,创建软件安全等级评估表与软件规模评估标表;
在本发明实施例中,首先制定软件安全等级评估表与软件规模评估标表,其中软件安全等级评估表是根据软件允许的缺陷数量指标制定的,共分为五个等级,具体如表1所示:
序号 | 软件重要性等级 | 软件允许的缺陷数量 |
1 | 1 | 一个软件缺陷会带来死亡后果 |
2 | 2 | 一个软件缺陷有可能带来死亡后果 |
3 | 3 | 一个软件缺陷导致任务失败 |
4 | 4 | 一个软件缺陷可能导致任务失败 |
5 | 5 | 其他 |
表1
软件重要性等级1,其软件允许的缺陷数量为一个软件缺陷会带来死亡后果;软件重要性等级2,其软件允许的缺陷数量为一个软件缺陷有可能带来死亡后果;软件重要性等级3,其软件允许的缺陷数量为一个软件缺陷导致任务失败;软件重要性等级4,其软件允许的缺陷数量为一个软件缺陷可能导致任务失败;软件重要性等级5,其他情形。在实际应用中,软件重要性等级还可以根据其他分为其他指标制定不同的安全重要性等级,在此不做限定。
软件规模评估标表是根据不同类型软件的代码行数进行定义的,分为5种规模等级,具体如表2所示:
软件规模评估标表
表2
具体地,软件类型分为行业应用软件、嵌入式软件、通用应用软件以及其他软件,根据上述软件类型划分为超大型、大型、中型、小型以及微型5个等级。
步骤S120,根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;
在本发明实施例中,根据安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,具体如表3所示:
软件关键性等级矩阵
表3
制定软件关键性等级矩阵,根据软件安全性等级和软件规模将软件划分为5个关键性等级,分别为A级、B级、C级、D级以及E级。软件关键性等级定义了软件的关键性,软件的关键性取决于软件的安全性等级和软件的规模。例如,软件安全性等级为3的中型软件,通过软件关键性等级矩阵能够确定该软件的关键性等级为C级。需要注意的是,本发明并不限定具体的软件关键性等级矩阵划分方式。
步骤S130,设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;
在本发明实施例中,设置软件代码质量度量指标,包括了7种度量指标具体包括单个代码文件行数、单个代码单元行数、单元代码注释率、单元代码覆盖率、单元圈复杂度、单元控制结构嵌套深度以及单元递归数。
具体如表4所示:
软件代码质量度量指标
表4
软件代码质量度量指标是为了指导开展软件静态测试,不同关键等级的软件,开展静态测试度量指标不同,例如C级软件,那么开展静态测试的具体指标就如表5所示:
C级软件静态测试度量值
表5
除此之外,还可以确定各个度量指标的权值,例如,单个代码文件行数权值为10%,单个代码单元行数为15%、单元代码注释率为20%、单元代码覆盖率为20%、单元圈复杂度为15%、单元控制结构嵌套深度为15%、单元递归数为5%。需要注意的是,本发明实施例中,各个度量指标的权值并非固定,可以根据实际情况进行调整。
步骤S140,根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;
在本发明实施例中,根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率。具体地,建立软件质量数据库,用来管理历史被测软件质量指标不符合项数Ni、代码行数Li以及质量评分等数据,通过公式统计所述软件质量数据库中质量不符合项的平均概率,这里,Pi为所述软件质量数据库中质量不符合项的平均概率,∑Ni为所述软件质量数据库软件质量指标不符合项数总量,∑Li为软件质量数据库中软件代码总行数。
步骤S150,对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;
在本步骤中,首先对目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并从静态测试中获取目标软件的代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率。具体地,静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。静态测试具有的发现缺陷早、降低返工成本、覆盖重点和发现缺陷的概率高的优点。
获取到的目标软件质量不符合项数n与目标软件代码行数l计算目标软件某项质量不符合项的概率Ai,具体公式为Ai=n/l。
步骤S160,判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;
在本发明实施例中,在进行评估软件质量之前需要判断软件质量数据库是否为空,若为空,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤。判断为空的情况一般为第一次对软件质量做评估,此时,根据公式Si=∑100*Va*Ai计算所述目标软件质量评分,其中,Va为所述目标软件的质量度量指标权值,Ai为目标软件质量不符合项的概率,Si为软件质量评分。上述计算步骤没有参考历史软件质量评分。
步骤S170,若否,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤。
在本发明实施例中,若判断软件质量数据库不为空,则根据历史软件质量数据计算目标软件质量评分。具体地,根据公式计算所述目标软件质量评分,其中,/>为所述软件质量数据库中的软件质量平均分,Va为所述目标软件的质量度量指标权值,Ai为目标软件质量不符合项的概率,Si为软件质量评分,Pi为所述软件质量数据库中质量不符合项的平均概率。
通过上述计算方式,综合了软件质量数据库中历史软件的数据,提高了软件质量评估的准确性与充分性。
进一步地,创建软件安全等级评估表与软件规模评估标表包括:根据软件允许缺陷数量创建软件安全等级评估表;所述软件安全等级评估表包括所述软件安全等级评估表包括超大型等级、大型等级、中型等级、小型等级以及微型等级;根据软件代码行数创建软件规模评估标表。具体内容已在实施例一中详细描述,此处不再赘述。
进一步地,创建软件安全等级评估表与软件规模评估标表包括:根据软件允许缺陷数量创建软件安全等级评估表;所述软件安全等级评估表包括所述软件安全等级评估表包括超大型等级、大型等级、中型等级、小型等级以及微型等级;根据软件代码行数创建软件规模评估标表。具体内容已在上文中详细描述,此处不再赘述。
进一步地,设置软件代码质量度量指标包括单个代码文件行数、单个代码单元行数、单元代码注释率、单元代码覆盖率、单元圈复杂度、单元控制结构嵌套深度以及单元递归数。具体内容已在上文中详细描述,此处不再赘述。
进一步地,根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率包括:通过公式统计所述软件质量数据库中质量不符合项的平均概率,其中Pi为所述软件质量数据库中质量不符合项的平均概率,∑Ni为所述软件质量数据库软件质量指标不符合项数总量,∑Li为软件质量数据库中软件代码总行数。具体内容已在上文中详细描述,此处不再赘述。
进一步地,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率包括:通过公式Ai=n/l计算所述目标软件某项质量不符合项的概率,其中n为所述目标软件质量不符合项数,l为所述目标软件代码行数;Ai为目标软件某项质量不符合项的概率。具体内容已在上文中详细描述,此处不再赘述。
进一步地,判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤包括:根据公式Si=∑100*Va*Ai计算所述目标软件质量评分,其中,Va为所述目标软件的质量度量指标权值,Ai为目标软件质量不符合项的概率,Si为软件质量评分。具体内容已在上文中详细描述,此处不再赘述。
进一步地,若否,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤包括:根据公式计算所述目标软件质量评分,其中,/>为所述软件质量数据库中的软件质量平均分,Va为所述目标软件的质量度量指标权值,Ai为目标软件质量不符合项的概率,Si为软件质量评分,Pi为所述软件质量数据库中质量不符合项的平均概率。具体内容已在上文中详细描述,此处不再赘述。
本发明提出一种软件代码质量评价方法,包括:创建软件安全等级评估表与软件规模评估标表;根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;若否,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤。通过上述方案,提出一种软件代码质量评价方法,综合了软件质量数据库中历史软件的数据,提高了软件质量评估的准确性与充分性。
实施例二
参见图2,为本发明实施例一种软件代码质量评价装置示意图。
具体包括:
第一创建单元,用于创建软件安全等级评估表与软件规模评估标表;
第二创建单元,用于根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;
第三创建单元,用于设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;
第一计算单元,根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;
第二计算单元,用于对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;
第一质量评分单元,用于判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;
第二质量评分单元,用于若否的情况下,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤。
本发明提出一种软件代码质量评价装置,包括:第一创建单元,用于创建软件安全等级评估表与软件规模评估标表;第二创建单元,用于根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;第三创建单元,用于设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;第一计算单元,根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;第二计算单元,用于对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;第一质量评分单元,用于判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;第二质量评分单元,用于若否的情况下,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤。通过上述方案,提出一种软件代码质量评价方法,综合了软件质量数据库中历史软件的数据,提高了软件质量评估的准确性与充分性。
实施例三
本实施例提供一种计算机设备,包括:存储器以及处理器。
其中,存储器用于存储程序;
处理器用于执行程序时实现如上述软件代码质量评价方法的步骤,具体可参照上述实施例中对软件代码质量评价方法的介绍,在此不再赘述。
请参考图3,为本实施例提供的一种计算机设备的结构示意图,该计算机设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在计算机设备301上执行存储介质330中的一系列指令操作。
计算机设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上面图1所描述的软件代码质量评价方法中的步骤可以由本实施例中计算机设备的结构实现。
实施例四
本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如软件代码质量评价方法的步骤,具体可参照上述实施例中对软件代码质量评价方法的介绍。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的软件代码质量评价方法、装置、计算机设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种软件代码质量评价方法,其特征在于,包括:
创建软件安全等级评估表与软件规模评估标表;
根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;
设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;
根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;
对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;
判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;
若否,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤;
设置软件代码质量度量指标包括单个代码文件行数、单个代码单元行数、单元代码注释率、单元代码覆盖率、单元圈复杂度、单元控制结构嵌套深度以及单元递归数;
目标软件质量评分的步骤包括:
根据公式计算所述目标软件质量评分,其中,/>为所述软件质量数据库中的软件质量平均分,Va为所述目标软件的质量度量指标权值,Ai为目标软件质量不符合项的概率,Si为软件质量评分,Pi为所述软件质量数据库中质量不符合项的平均概率。
2.根据权利要求1所述的一种软件代码质量评价方法,其特征在于,创建软件安全等级评估表与软件规模评估标表包括:
根据软件允许缺陷数量创建软件安全等级评估表;
所述软件安全等级评估表包括超大型等级、大型等级、中型等级、小型等级以及微型等级;
根据软件代码行数创建软件规模评估标表。
3.根据权利要求1所述的一种软件代码质量评价方法,其特征在于,根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率包括:
通过公式统计所述软件质量数据库中质量不符合项的平均概率,其中Pi为所述软件质量数据库中质量不符合项的平均概率,∑Ni为所述软件质量数据库软件质量指标不符合项数总量,∑Li为软件质量数据库中软件代码总行数。
4.根据权利要求1所述的一种软件代码质量评价方法,其特征在于,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率包括:
通过公式Ai=n/l计算所述目标软件某项质量不符合项的概率,其中n为所述目标软件质量不符合项数,l为所述目标软件代码行数;Ai为目标软件某项质量不符合项的概率。
5.根据权利要求1所述的一种软件代码质量评价方法,其特征在于,判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤包括:
根据公式Si=∑100*Va*Ai计算所述目标软件质量评分,其中,Va为所述目标软件的质量度量指标权值,Ai为目标软件质量不符合项的概率,Si为软件质量评分。
6.一种软件代码质量评价装置,其特征在于,包括:
第一创建单元,用于创建软件安全等级评估表与软件规模评估标表;
第二创建单元,用于根据所述安全等级评估表与所述软件规模评估标表制定软件关键性等级矩阵,并通过所述软件关键性等级矩阵确定目标软件关键性等级;
第三创建单元,用于设置软件代码质量度量指标,根据所述目标软件关键性等级确定所述目标软件的质量度量指标权值;
第一计算单元,用于根据软件质量指标不符合项数与代码行数统计软件质量数据库中质量不符合项的平均概率,所述软件质量数据库还包括软件质量评分;
第二计算单元,用于对所述目标软件进行静态测试,得到所述目标软件的目标质量指标不符合项数,并获取目标软件代码行数,通过所述目标质量指标不符合项数与所述目标软件代码行数计算目标软件质量不符合项的概率;
第一质量评分单元,用于判断所述软件质量数据库是否为空,若是,则执行根据所述质量度量指标权值与所述目标软件质量不符合项的概率计算目标软件质量评分的步骤;
第二质量评分单元,用于若否的情况下,则执行根据所述软件质量数据库中软件质量评分、质量度量指标权值、目标软件质量不符合项的概率以及软件质量数据库中质量不符合项的平均概率计算目标软件质量评分的步骤;
设置软件代码质量度量指标包括单个代码文件行数、单个代码单元行数、单元代码注释率、单元代码覆盖率、单元圈复杂度、单元控制结构嵌套深度以及单元递归数;
目标软件质量评分的步骤包括:
根据公式计算所述目标软件质量评分,其中,/>为所述软件质量数据库中的软件质量平均分,Va为所述目标软件的质量度量指标权值,Ai为目标软件质量不符合项的概率,Si为软件质量评分,Pi为所述软件质量数据库中质量不符合项的平均概率。
7.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述软件代码质量评价方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述软件代码质量评价方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010551985.2A CN111767212B (zh) | 2020-06-17 | 2020-06-17 | 一种软件代码质量评价方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010551985.2A CN111767212B (zh) | 2020-06-17 | 2020-06-17 | 一种软件代码质量评价方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767212A CN111767212A (zh) | 2020-10-13 |
CN111767212B true CN111767212B (zh) | 2024-05-14 |
Family
ID=72722629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010551985.2A Active CN111767212B (zh) | 2020-06-17 | 2020-06-17 | 一种软件代码质量评价方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767212B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116820912A (zh) * | 2022-03-21 | 2023-09-29 | 中兴通讯股份有限公司 | 代码度量方法、装置、设备及介质 |
CN115983719B (zh) * | 2023-03-16 | 2023-07-21 | 中国船舶集团有限公司第七一九研究所 | 一种软件综合质量评价模型的训练方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261604A (zh) * | 2008-04-09 | 2008-09-10 | 中兴通讯股份有限公司 | 一种软件质量评价装置及软件质量评价的定量分析方法 |
WO2015088066A1 (ko) * | 2013-12-10 | 2015-06-18 | 슈어소프트테크주식회사 | 소프트웨어 품질 평가 모듈과 방법 및 소프트웨어 품질 평가 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
CN106406870A (zh) * | 2016-09-06 | 2017-02-15 | 北京航空航天大学 | 一种基于软件复杂网络的四维软件演化度量分析方法 |
CN109117380A (zh) * | 2018-09-28 | 2019-01-01 | 中国科学院长春光学精密机械与物理研究所 | 一种软件质量评价方法、装置、设备及可读存储介质 |
CN110196814A (zh) * | 2019-06-12 | 2019-09-03 | 王轶昆 | 一种软件质量评价方法 |
-
2020
- 2020-06-17 CN CN202010551985.2A patent/CN111767212B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261604A (zh) * | 2008-04-09 | 2008-09-10 | 中兴通讯股份有限公司 | 一种软件质量评价装置及软件质量评价的定量分析方法 |
WO2015088066A1 (ko) * | 2013-12-10 | 2015-06-18 | 슈어소프트테크주식회사 | 소프트웨어 품질 평가 모듈과 방법 및 소프트웨어 품질 평가 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
CN106406870A (zh) * | 2016-09-06 | 2017-02-15 | 北京航空航天大学 | 一种基于软件复杂网络的四维软件演化度量分析方法 |
CN109117380A (zh) * | 2018-09-28 | 2019-01-01 | 中国科学院长春光学精密机械与物理研究所 | 一种软件质量评价方法、装置、设备及可读存储介质 |
CN110196814A (zh) * | 2019-06-12 | 2019-09-03 | 王轶昆 | 一种软件质量评价方法 |
Non-Patent Citations (1)
Title |
---|
软件程序代码质量度量技术研究;孙梦;宋晓秋;巢翌;;计算机工程与设计;20060228(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111767212A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111767212B (zh) | 一种软件代码质量评价方法、装置、设备及存储介质 | |
Maydeu-Olivares | Evaluating the fit of IRT models | |
US11915311B2 (en) | User score model training and calculation | |
CN113837596B (zh) | 一种故障确定方法、装置、电子设备及存储介质 | |
US20200226220A1 (en) | Computational accelerator architecture for change control in model-based system engineering | |
CN113536081A (zh) | 基于人工智能的数据中心数据管理方法及系统 | |
CN111737555A (zh) | 热点关键词的选取方法、设备和存储介质 | |
CN113112126B (zh) | 基于人工智能的供水管漏损预警方法及系统 | |
JP2017068293A (ja) | テストdbデータ生成方法及び装置 | |
WO2022198835A1 (zh) | 电子地图的测试方法、装置、电子设备及存储介质 | |
CN114003475A (zh) | 软件产品成熟度评估方法、装置、计算机设备和存储介质 | |
CN114240177A (zh) | 一种政务数据质量评估方法及系统 | |
CN116739742A (zh) | 信贷风控模型的监控方法、装置、设备及存储介质 | |
CN115455091A (zh) | 数据生成方法、装置、电子设备和存储介质 | |
CN105989095A (zh) | 顾及数据不确定性的关联规则显著性检验方法及装置 | |
CN105719181A (zh) | 风险等级评估方法及装置 | |
CN108805603A (zh) | 营销活动质量评估方法、服务器及计算机可读存储介质 | |
CN109446481B (zh) | 一种对数正态型单元寿命分布参数估计方法 | |
CN113919609A (zh) | 一种配电网模型质量综合评估方法和系统 | |
CN112434839B (zh) | 一种配电变压器重过载风险的预测方法及电子设备 | |
CN113656267B (zh) | 设备能效的计算方法、装置、电子设备及存储介质 | |
CN117632436A (zh) | 一种针对铁路信息系统的应用程序迁移评估方法及装置 | |
CN115344477A (zh) | 划分代码的代码测试方法、装置、计算机设备及存储介质 | |
CN115630309A (zh) | 虚拟对象匹配方法、虚拟对象匹配装置以及存储介质 | |
CN115221066A (zh) | 基于版本的代码测试方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |