CN111967774B - 软件质量风险预测方法及装置 - Google Patents
软件质量风险预测方法及装置 Download PDFInfo
- Publication number
- CN111967774B CN111967774B CN202010832475.2A CN202010832475A CN111967774B CN 111967774 B CN111967774 B CN 111967774B CN 202010832475 A CN202010832475 A CN 202010832475A CN 111967774 B CN111967774 B CN 111967774B
- Authority
- CN
- China
- Prior art keywords
- risk
- software development
- stage
- development stage
- probability
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0635—Risk analysis of enterprise or organisation activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Educational Administration (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种软件质量风险预测方法及装置,方法包括:基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,风险模型包括多个软件开发阶段的多个风险分析指标;基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;计算每个软件开发阶段的风险影响程度;根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。本发明可以对软件质量风险进行准确地量化预测。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件质量风险预测方法及装置。
背景技术
当前软件质量风险预测有主要通过统计与经验评估的分析方法,来确定软件质量风险的发生可能性与重要程度,以此来度量软件质量风险。风险量化公式为:风险发生可能性×重要程度,但两个指标都需要通过经验估计或者计算获得(如对线上问题进行统计),存在不准确且量化不够的问题。
发明内容
本发明实施例提出一种软件质量风险预测方法,用以对软件质量风险进行准确地量化预测,该方法包括:
基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,所述风险模型包括多个软件开发阶段的多个风险分析指标,所述多个软件开发阶段包括需求分析阶段、开发阶段、测试阶段、运维阶段和交付阶段;
基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;
计算每个软件开发阶段的风险影响程度;
根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。
本发明实施例提出一种软件质量风险预测装置,用以对软件质量风险进行准确地量化预测,该装置包括:
数据采集模块,用于基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,所述风险模型包括多个软件开发阶段的多个风险分析指标,所述多个软件开发阶段包括需求分析阶段、开发阶段、测试阶段、运维阶段和交付阶段;
阶段性风险概率确定模块,用于基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;
风险影响程度计算模块,用于计算每个软件开发阶段的风险影响程度;
风险预测模块,用于根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。
本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述软件质量风险预测方法。
本发明实施例还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述软件质量风险预测方法的计算机程序。
在本发明实施例中,基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,所述风险模型包括多个软件开发阶段的多个风险分析指标,所述多个软件开发阶段包括需求分析阶段、开发阶段、测试阶段、运维阶段和交付阶段;基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;计算每个软件开发阶段的风险影响程度;根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。在上述实施例中,采集了每个软件开发阶段的风险分析指标对应的风险因素数据,从而确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,即不止考虑了每个开发阶段的阶段性的当前风险概率,还考虑了之前阶段的风险分析指标值流转至该软件开发阶段的风险概率,使得确定的阶段性风险概率非常准确,另外,风险预测值是通过风险影响程度和风险概率量化确定的,结果准确,便于应用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中软件质量风险预测方法的流程图;
图2为本发明实施例中软件质量风险预测方法的详细流程图;
图3为本发明实施例中软件质量风险预测装置的示意图;
图4为本发明实施例中软件质量风险预测装置的另一示意图;
图5为本发明实施例中计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
图1为本发明实施例中软件质量风险预测方法的流程图,如图1所示,该方法包括:
步骤101,基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,所述风险模型包括多个软件开发阶段的多个风险分析指标,所述多个软件开发阶段包括需求分析阶段、开发阶段、测试阶段、运维阶段和交付阶段;
步骤102,基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;
步骤103,计算每个软件开发阶段的风险影响程度;
步骤104,根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。
在本发明实施例中,采集了每个软件开发阶段的风险分析指标对应的风险因素数据,从而确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,即不止考虑了每个开发阶段的阶段性的当前风险概率,还考虑了之前阶段的风险分析指标值流转至该软件开发阶段的风险概率,使得确定的阶段性风险概率非常准确,另外,风险预测值是通过风险影响程度和风险概率量化确定的,结果准确,便于应用。
具体实施时,软件质量风险是指软件交付过程中可能出现的不利于软件交付质量的事件。在步骤101中,要采集每个软件开发阶段的风险分析指标对应的风险因素数据,风险分析指标可分为三大类,即功能缺陷风险、非功能缺陷风险和项目风险,每个风险分析指标具体可以包括多个,例如表1的风险分类表,共列举出了功能遗漏风险、架构设计不合理风险、项目延期风险、性能缺陷风险、生产缺陷风险、系统无法启动风险等6个风险分析指标。
表1
风险因素数据包括多种,例如需求分析风险因素数据、资源风险因素数据、人员风险因素数据、开发规范风险因素数据、测试规范风险因素数据,为了保障数据质量,对上述各类风险因素数据的数据结果进行结构化管理。
需求分析风险因素数据的结构化:对需求分析风险因素数据中的功能等数据进行分类分层管理;
资源风险因素数据的结构化:对交付过程中所需要的资源进行分类分层管理;
人员风险因素数据的结构化:对交付过程中相关团队、工程师等信息进行分类分层管理;
开发规范风险因素数据的结构化:建立开发规范模型;
测试规范风险因素数据的结构化:建立测试规范模型。
在一实施例中,在基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率之前,还包括:
对每个软件开发阶段的风险分析指标对应的数据进行预处理,所述预处理包括异常数据剔除与修复、数据标准化和数据归一化中的至少一种;
基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,确定每个软件开发阶段的阶段性风险概率,包括:
基于预处理后的每个软件开发阶段的风险分析指标对应的数据,确定每个软件开发阶段的阶段性风险概率。
在上述实施例中,预处理包括异常数据剔除与修复、数据标准化和数据归一化等,这些处理可以同时使用,也可以按需求选择使用,处理后的数据便于后续使用。
在一实施例中,基于所述风险分析指标对应的数据,确定风险模型中每个软件开发阶段的阶段性风险概率,包括:
对每个软件开发阶段,基于该软件开发阶段的风险分析指标对应的风险因素数据,采用第一机器学习算法模型,预测该软件开发阶段的当前风险概率,所述第一机器学习算法模型是利用风险因素数据训练获得的;
采用蒙特卡洛模拟方法对软件开发过程中多个软件开发阶段的风险传递过程进行仿真,基于该软件开发阶段的风险分析指标对应的风险因素数据和该软件开发阶段的之前阶段的风险分析指标值,利用第二机器学习算法模型,预测该软件开发阶段的累积风险概率,所述第二机器学习算法模型是利用风险因素数据和风险分析指标值训练获得的。
在上述实施例中,对于每个软件开发阶段来说,该软件开发阶段的阶段性风险概率包括两部分,一部分是当前风险概率,一部分是累积风险概率,而且是一般是先计算完上一个软件开发阶段的阶段性风险概率,再计算下一个软件开发阶段的阶段性风险概率。在计算当前风险概率时,要用到第一机器学习算法模型,第一机器学习算法模型是利用大量历史风险因素数据训练获得的,训练时以大量历史风险因素数据为输入,以已经确定的当前风险概率为输出,训练出第一机器学习算法模型的参数,之后,即可使用训练好的第一机器学习算法模型。第一机器学习算法模型可以是XGBoost模型或神经网络模型,当然,也可以使用其他训练模型,相关变化例均应落入本发明的保护范围。
在计算累积风险概率时,采用蒙特卡洛模拟方法对软件开发过程中多个软件开发阶段的风险传递过程进行仿真,即采用蒙特卡洛模拟仿真的思想,在一实施例中,采用蒙特卡洛模拟方法对软件开发过程中多个软件开发阶段的风险传递过程进行仿真,基于该软件开发阶段的风险分析指标对应的风险因素数据和该软件开发阶段的之前阶段的风险分析指标值,利用第二机器学习算法模型,预测该软件开发阶段的累积风险概率,包括:
采用蒙特卡洛模拟方法对软件开发过程中多个软件开发阶段的风险传递过程进行仿真时,选择该软件开发阶段的之前阶段的数值大于预设值的前设定数量的风险分析指标值;
将数值大于预设值的前设定数量的风险分析指标值、该软件开发阶段的风险分析指标对应的风险因素数据输入至第二机器学习算法模型,获得该软件开发阶段的累积风险概率。
在上述实施例中,若计算测试阶段的累积风险概率,要获得需求分析阶段、开发阶段的风险分析指标值,然后,从这些风险分析指标值中选取数值大于预设值(例如p%)的前设定数量(例如前3个)风险分析指标值,以提高计算效率,但是蒙特卡洛模拟过程中为了尽量贴近实际情况,对于数值的风险分析指标值,也需要覆盖,以免在后续过程中导致严重风险,因此,在所有软件开发阶段中,选择上述风险分析指标值时,需满足对于未选中风险分析指标值至少保证选中一次。与第一机器学习模型类似,第二机器学习模型也是通过训练获得的,训练时以大量历史风险因素数据和该软件开发阶段的之前阶段的风险分析指标值为输入,以已经确定的累积风险概率为输出,训练出第二机器学习算法模型的参数,之后,即可使用训练好的第二机器学习算法模型。第二机器学习算法模型可以是XGBoost模型或神经网络模型,当然,也可以使用其他训练模型,相关变化例均应落入本发明的保护范围。
由于风险分析指标有多个,例如,前面列举出了功能遗漏风险、架构设计不合理风险、项目延期风险、性能缺陷风险、生产缺陷风险、系统无法启动风险等6个风险分析指标,那么最后得到的当前风险概率和累积风险概率一般为矩阵形式,阶段性风险概率为当前风险概率与累积风险概率之和,也为矩阵形式,那么后续计算时,可以以阶段性风险概率的数学期望作为每个软件开发阶段的阶段性风险概率。
在一实施例中,计算每个软件开发阶段的风险影响程度,包括:
采用如下公式计算交付阶段的风险影响程度:
f=t×m×n
其中,f为交付阶段的风险影响程度,t为业务影响时间,m为资金损失,n为交付成本;
采用如下公式计算需求分析阶段、开发阶段、测试阶段或运维阶段的风险影响程度:
g=a×f
其中,a为需求分析阶段、开发阶段、测试阶段或运维阶段的相关系数;
g为需求分析阶段、开发阶段、测试阶段或运维阶段的风险影响程度。
上述两个公式给出了每个软件开发阶段计算风险影响程度的公式,计算交付阶段的风险影响程度时,要对收集到的业务影响时间、资金损失、交付成本进行归一化处理后再计算。需求分析阶段、开发阶段、测试阶段或运维阶段的相关系数可以是不同的,这样需求分析阶段、开发阶段、测试阶段或运维阶段的风险影响程度是不同的。
在一实施例中,采用如下公式,根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值:
y=p×q
y为风险预测值;
p为风险发生概率;
q为风险影响程度。
通过上述计算,可以量化描述软件质量开发的风险,若选择特定的维度,还可以描述一项功能的风险情况,或者一个任务的风险情况。
在一实施例中,所述方法还包括:
在每个软件开发阶段的风险预测值超过设定阈值时,生成风险预警信息。
在上述实施例中,可以展示每个软件开发阶段的风险预测值,还可以以任务、功能、需求、团队等多个维度进行汇总,通过可视化图表进行展示,生成的风险预警信息可以通过接入短信、邮件等渠道通知关系人。
基于上述实施例中,下面给出一个软件质量风险预测方法的详细流程图,如图2所示,包括:
步骤201,基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据;
步骤202,对每个软件开发阶段的风险分析指标对应的数据进行预处理;
步骤203,对每个软件开发阶段,基于该软件开发阶段的风险分析指标对应的风险因素数据,采用第一机器学习算法模型,预测该软件开发阶段的当前风险概率,所述第一机器学习算法模型是利用风险因素数据训练获得的;
步骤204,对每个软件开发阶段,选择该软件开发阶段的之前阶段的数值大于预设值的前设定数量的风险分析指标值;
步骤205,将数值大于预设值的前设定数量的风险分析指标值、该软件开发阶段的风险分析指标对应的风险因素数据输入至第二机器学习算法模型,获得该软件开发阶段的累积风险概率;
步骤206,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和;
步骤207,计算每个软件开发阶段的风险影响程度;
步骤208,根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。
当然,可以理解的是,还可有其他具体实施例,相关变化例均应落入本发明的保护范围。
综上所述,在本发明实施例提出的方法中,基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,所述风险模型包括多个软件开发阶段的多个风险分析指标,所述多个软件开发阶段包括需求分析阶段、开发阶段、测试阶段、运维阶段和交付阶段;基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;计算每个软件开发阶段的风险影响程度;根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。在上述实施例中,采集了每个软件开发阶段的风险分析指标对应的风险因素数据,从而确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,即不止考虑了每个开发阶段的阶段性的当前风险概率,还考虑了之前阶段的风险分析指标值流转至该软件开发阶段的风险概率,使得确定的阶段性风险概率非常准确,另外,风险预测值是通过风险影响程度和风险概率量化确定的,结果准确,便于应用。
本发明实施例还提出一种软件质量风险预测装置,其原理与软件质量风险预测方法类似,这里不再赘述。
图3为本发明实施例中软件质量风险预测装置的示意图,如图3所示,该装置包括:
数据采集模块301,用于基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,所述风险模型包括多个软件开发阶段的多个风险分析指标,所述多个软件开发阶段包括需求分析阶段、开发阶段、测试阶段、运维阶段和交付阶段;
阶段性风险概率确定模块302,用于基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;
风险影响程度计算模块303,用于计算每个软件开发阶段的风险影响程度;
风险预测模块304,用于根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。
在一实施例中,所述装置还包括预处理模块305,如图4所示,为本发明实施例中软件质量风险预测装置的另一示意图,预处理模块305用于:
对每个软件开发阶段的风险分析指标对应的数据进行预处理;
阶段性风险概率确定模块302具体用于:基于预处理后的每个软件开发阶段的风险分析指标对应的数据,确定每个软件开发阶段的阶段性风险概率。
在一实施例中,阶段性风险概率确定模块302具体用于:
对每个软件开发阶段,基于该软件开发阶段的风险分析指标对应的风险因素数据,采用第一机器学习算法模型,预测该软件开发阶段的当前风险概率,所述第一机器学习算法模型是利用风险因素数据训练获得的;
采用蒙特卡洛模拟方法,基于该软件开发阶段的风险分析指标对应的风险因素数据和该软件开发阶段的之前阶段的风险分析指标值,利用第二机器学习算法模型,预测该软件开发阶段的累积风险概率,所述第二机器学习算法模型是利用风险因素数据和风险分析指标值训练获得的。
在一实施例中,阶段性风险概率确定模块302具体用于:
选择该软件开发阶段的之前阶段的数值大于预设值的前设定数量的风险分析指标值;
将数值大于预设值的前设定数量的风险分析指标值、该软件开发阶段的风险分析指标对应的风险因素数据输入至第二机器学习算法模型,获得该软件开发阶段的累积风险概率。
在一实施例中,所述第一机器学习算法模型为XGBoost模型或神经网络模型;所述第二机器学习算法模型为XGBoost模型或神经网络模型。
在一实施例中,风险影响程度计算模块303具体用于:
采用如下公式计算交付阶段的风险影响程度:
f=t×m×n
其中,f为交付阶段的风险影响程度,t为业务影响时间,m为资金损失,n为交付成本;
采用如下公式计算需求分析阶段、开发阶段、测试阶段或运维阶段的风险影响程度:
g=a×f
其中,a为需求分析阶段、开发阶段、测试阶段或运维阶段的相关系数;
g为需求分析阶段、开发阶段、测试阶段或运维阶段的风险影响程度。
在一实施例中,风险预测模块304具体用于:
采用如下公式,根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值:
y=p×q
y为风险预测值;
p为风险发生概率;
q为风险影响程度。
在一实施例中,所述装置还包括风险预警信息生成模块306,用于:
在每个软件开发阶段的风险预测值超过设定阈值时,生成风险预警信息。
综上所述,在本发明实施例提出的装置中,基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,所述风险模型包括多个软件开发阶段的多个风险分析指标,所述多个软件开发阶段包括需求分析阶段、开发阶段、测试阶段、运维阶段和交付阶段;基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;计算每个软件开发阶段的风险影响程度;根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。在上述实施例中,采集了每个软件开发阶段的风险分析指标对应的风险因素数据,从而确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,即不止考虑了每个开发阶段的阶段性的当前风险概率,还考虑了之前阶段的风险分析指标值流转至该软件开发阶段的风险概率,使得确定的阶段性风险概率非常准确,另外,风险预测值是通过风险影响程度和风险概率量化确定的,结果准确,便于应用。
本申请的实施例还提供一种计算机设备,图5为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的软件质量风险预测方法中全部步骤,所述计算机设备具体包括如下内容:
处理器(processor)501、存储器(memory)502、通信接口(CommunicationsInterface)503和通信总线504;
其中,所述处理器501、存储器502、通信接口503通过所述通信总线504完成相互间的通信;所述通信接口503用于实现服务器端设备、检测设备以及用户端设备等相关设备之间的信息传输;
所述处理器501用于调用所述存储器502中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的软件质量风险预测方法中的全部步骤。
本申请的实施例还提供一种计算机可读存储介质,能够实现上述实施例中的软件质量风险预测方法中全部步骤,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的软件质量风险预测方法的全部步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种软件质量风险预测方法,其特征在于,包括:
基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,所述风险模型包括多个软件开发阶段的多个风险分析指标,所述多个软件开发阶段包括需求分析阶段、开发阶段、测试阶段、运维阶段和交付阶段;
基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;
计算每个软件开发阶段的风险影响程度;
根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。
2.如权利要求1所述的软件质量风险预测方法,其特征在于,在基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率之前,还包括:
对每个软件开发阶段的风险分析指标对应的数据进行预处理,所述预处理包括异常数据剔除与修复、数据标准化和数据归一化中的至少一种;
基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,确定每个软件开发阶段的阶段性风险概率,包括:
基于预处理后的每个软件开发阶段的风险分析指标对应的数据,确定每个软件开发阶段的阶段性风险概率。
3.如权利要求1所述的软件质量风险预测方法,其特征在于,基于所述风险分析指标对应的数据,确定风险模型中每个软件开发阶段的阶段性风险概率,包括:
对每个软件开发阶段,基于该软件开发阶段的风险分析指标对应的风险因素数据,采用第一机器学习算法模型,预测该软件开发阶段的当前风险概率,所述第一机器学习算法模型是利用风险因素数据训练获得的;
采用蒙特卡洛模拟方法对软件开发过程中多个软件开发阶段的风险传递过程进行仿真,基于该软件开发阶段的风险分析指标对应的风险因素数据和该软件开发阶段的之前阶段的风险分析指标值,利用第二机器学习算法模型,预测该软件开发阶段的累积风险概率,所述第二机器学习算法模型是利用风险因素数据和风险分析指标值训练获得的。
4.如权利要求3所述的软件质量风险预测方法,其特征在于,采用蒙特卡洛模拟方法对软件开发过程中多个软件开发阶段的风险传递过程进行仿真,基于该软件开发阶段的风险分析指标对应的风险因素数据和该软件开发阶段的之前阶段的风险分析指标值,利用第二机器学习算法模型,预测该软件开发阶段的累积风险概率,包括:
采用蒙特卡洛模拟方法对软件开发过程中多个软件开发阶段的风险传递过程进行仿真时,选择该软件开发阶段的之前阶段的数值大于预设值的前设定数量的风险分析指标值;
将数值大于预设值的前设定数量的风险分析指标值、该软件开发阶段的风险分析指标对应的风险因素数据输入至第二机器学习算法模型,获得该软件开发阶段的累积风险概率。
5.如权利要求4所述的软件质量风险预测方法,其特征在于,所述第一机器学习算法模型为XGBoost模型或神经网络模型;所述第二机器学习算法模型为XGBoost模型或神经网络模型。
6.如权利要求1所述的软件质量风险预测方法,其特征在于,计算每个软件开发阶段的风险影响程度,包括:
采用如下公式计算交付阶段的风险影响程度:
f=t×m×n
其中,f为交付阶段的风险影响程度,t为业务影响时间,m为资金损失,n为交付成本;
采用如下公式计算需求分析阶段、开发阶段、测试阶段或运维阶段的风险影响程度:
g=a×f
其中,a为需求分析阶段、开发阶段、测试阶段或运维阶段的相关系数;
g为需求分析阶段、开发阶段、测试阶段或运维阶段的风险影响程度。
7.如权利要求1所述的软件质量风险预测方法,其特征在于,采用如下公式,根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值:
y=p×q
y为风险预测值;
p为风险发生概率;
q为风险影响程度。
8.如权利要求1所述的软件质量风险预测方法,其特征在于,还包括:
在每个软件开发阶段的风险预测值超过设定阈值时,生成风险预警信息。
9.一种软件质量风险预测装置,其特征在于,包括:
数据采集模块,用于基于软件开发的风险模型,采集每个软件开发阶段的风险分析指标对应的风险因素数据,所述风险模型包括多个软件开发阶段的多个风险分析指标,所述多个软件开发阶段包括需求分析阶段、开发阶段、测试阶段、运维阶段和交付阶段;
阶段性风险概率确定模块,用于基于每个软件开发阶段的风险分析指标对应的风险因素数据,确定每个软件开发阶段的阶段性风险概率,其中,每个软件开发阶段的阶段性风险概率为当前风险概率与累积风险概率之和,所述累积风险概率为每个软件开发阶段的之前阶段的风险分析指标值流转至该软件开发阶段的风险概率;
风险影响程度计算模块,用于计算每个软件开发阶段的风险影响程度;
风险预测模块,用于根据每个软件开发阶段的阶段性风险概率和风险影响程度,获得每个软件开发阶段的风险预测值。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至8任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010832475.2A CN111967774B (zh) | 2020-08-18 | 2020-08-18 | 软件质量风险预测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010832475.2A CN111967774B (zh) | 2020-08-18 | 2020-08-18 | 软件质量风险预测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111967774A CN111967774A (zh) | 2020-11-20 |
CN111967774B true CN111967774B (zh) | 2023-08-22 |
Family
ID=73388738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010832475.2A Active CN111967774B (zh) | 2020-08-18 | 2020-08-18 | 软件质量风险预测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111967774B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117273552B (zh) * | 2023-11-22 | 2024-02-13 | 山东顺国电子科技有限公司 | 一种基于机器学习的大数据智能治理决策方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111160662A (zh) * | 2019-12-31 | 2020-05-15 | 咪咕文化科技有限公司 | 一种风险预测方法、电子设备及存储介质 |
CN111222790A (zh) * | 2020-01-06 | 2020-06-02 | 深圳前海微众银行股份有限公司 | 风险事件发生概率的预测方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180032929A1 (en) * | 2016-07-29 | 2018-02-01 | Ca, Inc. | Risk-adaptive agile software development |
-
2020
- 2020-08-18 CN CN202010832475.2A patent/CN111967774B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111160662A (zh) * | 2019-12-31 | 2020-05-15 | 咪咕文化科技有限公司 | 一种风险预测方法、电子设备及存储介质 |
CN111222790A (zh) * | 2020-01-06 | 2020-06-02 | 深圳前海微众银行股份有限公司 | 风险事件发生概率的预测方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111967774A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wen et al. | Degradation modeling and RUL prediction using Wiener process subject to multiple change points and unit heterogeneity | |
CN110009171B (zh) | 用户行为模拟方法、装置、设备及计算机可读存储介质 | |
Hu et al. | Engineering design under uncertainty and health prognostics | |
Asadzadeh et al. | An integrated systemic model for optimization of condition-based maintenance with human error | |
CN104254848B (zh) | 动态离群值偏倚减少系统和方法 | |
CN110417721A (zh) | 安全风险评估方法、装置、设备及计算机可读存储介质 | |
JPH10510385A (ja) | ソフトウエア品質のアーキテクチャに基づく分析のための方法およびシステム | |
CN109522962B (zh) | 一种化工厂安全定量评估方法 | |
CN113010389A (zh) | 一种训练方法、故障预测方法、相关装置及设备 | |
WO2017071369A1 (zh) | 一种预测用户离网的方法和设备 | |
JP2009086896A (ja) | コンピュータの障害予測システムおよび障害予測方法 | |
CN112907026A (zh) | 一种基于可编辑网状指标体系的综合评估方法 | |
CN107480703B (zh) | 交易故障检测方法及装置 | |
Caesarita et al. | Identifying bottlenecks and fraud of business process using alpha++ and heuristic miner algorithms (Case study: CV. Wicaksana Artha) | |
CN104022899A (zh) | 一种网络管理系统的三维评估方法及系统 | |
CN113723747A (zh) | 分析报告生成方法、电子设备及可读存储介质 | |
CN111967774B (zh) | 软件质量风险预测方法及装置 | |
CN117319223A (zh) | 一种基于数字孪生技术的领导驾驶舱可视化方法及系统 | |
Żuławiński et al. | Framework for stochastic modelling of long-term non-homogeneous data with non-Gaussian characteristics for machine condition prognosis | |
CN105787136A (zh) | 数据挖掘方法和装置 | |
CN113569374B (zh) | 钢铁产品可制造性评估的方法和系统 | |
JP6192432B2 (ja) | リスク計量システム | |
CN115151920A (zh) | 驾驶评估方法、装置及非暂态计算机可读存储介质 | |
CN116384680A (zh) | 研发质量的可视化监测方法、装置、设备及可读存储介质 | |
CN116383048A (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 |