论文部分内容阅读
软件开发过程的不确定性,给客户方和承建方都带来了巨大的风险。如果能够在项目事前和事中阶段对可能影响软件项目的成本,质量和进度的风险进行估计和监控,则可以大大的减少风险带来的损失。贝叶斯网络是针对不确定推理的理想工具,但是在软件项目的风险管理中给出准确的网络结构和条件概率表是解决问题的难点和核心。
本文参考前人的调查结果来建立网络结构。我们首先根据文献中对因子重要程度和相关事件的描述,对因子进行筛选,并用筛选得到的因子根据相关性对前人的网络结构进行扩充,并使网络的结果输出结点统一为时间延迟,质量问题和成本超支的概率分布。最终,根据因子的分类,我们建立了开发团队相关风险,开发工程相关风险,项目环境相关风险,组织相关风险等4个软件风险分析子网络。综合4个子网络的风险指标水平,便得到总体风险水平。
为了使分析模型具有更高的可信度,本文通过贝叶斯参数学习来获取条件概率表。通过引入贝叶斯参数学习,能够根据样本数据进行学习并且更新条件概率表初值,得到更客观的分析网络,并且能够在应用中不断地调整条件概率表,使分析模型适应不断变化的软件项目开发环境。同时,本文在参数学习时引入EM算法,提高对由于软件项目差异而存在隐含结点情况的处理能力。
通过实验,我们发现贝叶斯网络本身强大的分析推理给软件风险分析提供了有力的支持。我们利用贝叶斯推理进行软件风险的预测,利用贝叶斯网络置信更新功能进行软件风险的模拟和原因分析。为了获得完整的网络和验证分析模型,我们进行了问卷调查。样本验证的结果表明,本文的分析模型具有较高的置信度。