找论文网 > 计算机论文 > 计算机理论 >

基于支持向量机的软件项目风险评价(1)

摘  要 本文针对软件项目中的风险问题,根据信息熵给出项目各风险因素的重要性评价并且利用支持向量机评估软件项目的风险类别,此方法完全依赖数据进行客观分析,排除了人为的主观因素,因此其结果优于利用模糊综合评判方法得出的结果。
    关键词 软件项目;风险;信息熵;支持向量机;
 
1 引言
    软件风险是指软件开发过程中及软件产品本身可能造成的伤害损失,由于软件项目开发和管理中存在着诸如技术、内部管理及外部环境等种种不确定因素, 使软件行业成为高风险的产业,如果风险变成了现实,就会产生恶性后果或损失,因此应对软件项目风险进行评价以便于更好地进行软件项目地开发及管理。目前的风险评价及分析方法主要有调查和专家打分法、模糊数学法[1]、层次分析法[2],定性方法、基于树的方法;专家打分法、模糊数学法、层次分析法人为因素多而且手工计算繁琐。定性方法用于辨识系统中的潜在危险和失效是有效的,但缺乏考察事件之间依赖性的能力。基于树的方法弥补了这一缺陷,考虑了事件之间的依赖关系,但基于树的方法主要用于找出导致不期望事件的截集,然而这种方法只能用于事故场景的静态、逻辑的建模,并且影响人类行为的因素不能被明确地建模,这就影响了事件之间独立性的评估。本文提出的信息熵的方法用来对软件各个风险因素重要性进行计算,它具有运算量小,结果直观易解释以及易评估的性质,排除了人为的主观因素。
    本文利用支持向量机(Support Vector Machine简称SVM)方法来预测软件风险,它是建立在统计学习理论的VC维理论和结构风险最小原理(SRM)基础上[3]。兼顾训练误差和泛化能力,根据有限的样本信息在模型的复杂性和学习能力之间寻求最佳折衷。在解决小样本、非线性、高维数、局部极小值等模式识别问题中表现出许多特有的优势。因而在许多领域得到了成功的应用。同时,为了评估各个风险因素的重要程度,本文采取了信息熵的方法,这种方法具有计算量小和易解释性,弥补了专家打分法中因人为因素造成的主观性。
    本文其它内容如下。第二部分介绍软件项目风险评价指标体系的建立,进而从各个侧面较完整地反映出软件项目的风险。第三部分和第四部分分别描述了基于信息熵的软件项目各风险因素的重要性评判以及基于支持向量机的软件项目风险类别的评估。第五部分是根据建立的模型利用数据进行实例研究。第六部分对本文进行了总结。
2 软件项目风险评价指标体系的建立
    软件项目的风险评估指标应能从各个侧面较完整地反映软件项目的风险,同时需要按照一定的标准将风险分类。在软件项目开发过程中,一般有以下六个风险因素会直接影响软件的风险,分别如下:
    1)软件产品规模(F1
    根据以往开发项目的经验所知项目的风险是直接与产品的规模成正比的。软件产品规模有以下几个因素决定:产品规模估算的信任度、软件产品的用户数、复用的软件数、产品规模与以前产品规模平均值的偏差。
    2)业主需求(F2
    每位业主都有自己不同的需求,开发商为了满足不同业主的不同需求。决定业主需求的因素有:业主供应条目或信息、内部或外部转包商的关系、交互成员或交互团体依赖性、经验丰富人员的可得性。
    3)软件项目需求分析(F3
    软件项目需求分析就是分析人员在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的全面性、精确性和一致性,若此工作进行不好,就会对项目的成功造成很大的阻碍。主要包含以下几个方面的风险因素:产品需求的认知程度、需求分析中客户的参与程度、需求变化的分析程度、安全性及可靠性需求的分析程度。
    4)技术(F4
    技术对于一个软件项目的顺利完成是至关重要的,所以说如果技术出现问题那么就会引发一系列的风险问题。主要有下面这些风险因素:对方法、工具的使用状况、应用领域的经验状况、系统的稳定性状况。
    5)开发方式与开发环境(F5
    开发方式和开发环境风险是由于软件项目所处的环境与自身的开发方式状况而导致实现软件项目预期目标中所带来的不确定性。主要风险因素有:软件项目团队的稳定性、项目过程的控制程度、项目资金的稳定程度。
    6)人力资源管理( F6
    人力资源管理风险是由于在软件项目开发过程中由于对开发人员及相关人员管理不当及管理混乱从而对软件项目开发造成的风险。其主要的风险因素包括:人员职能设置之间的协调性、项目所有者与决策者的关系。
    总体项目的风险等级分为3个类别,分别为风险较小(y=1 )、风险一般( y=2)、风险较大(y=3)三类。在所建立模型中,总体项目的风险等级对应于y的取值,而六个风险因素——软件产品规模、业主需求、软件项目需求分析、技术、开发方式与开发环境、人力资源管理所属的风险类别对应于六维向量x的取值。
3 基于信息熵的软件项目各风险因素的重要性评判
    设已知有n个软件项目,矩阵 的列向量Xj表示各项目的风险因素Fj(j=1.2...6),行向量xi表示每个软件项目(i=1.2,...n),要衡量每个风险因素Fj(j=1.2...6)的重要性,本文利用信息论中信息熵的方法来评判。列向量 中的分量 分别表示第i个项目的风险等级:yi=1表示第i个项目的风险等级较小, yi=2表示第i个项目的风险等级一般, yi=3表示第i个项目的风险等级较大。则
                                 
    对于项目的风险等级 Fj,它的熵为
    对于项目各风险因素 Fj,它的熵为
;(
    对于项目各风险因素 Fj中在各个风险等级的风险为:
;(
    则各风险因素 Fj的重要性评分为:
;(
    越高表示该因素重要性越高。
4  基于支持向量机的软件项目风险类别的评估
    支持向量机是一种分类方法,假定软件项目风险评估问题 ,其中xi(i=1.2,...n)代表第 i 个项目的六个风险因素,为六维向量, 代表每个项目的风险类别,最简单的线性分类器是希望找到一条直线, 其中βn为一个数量β为一个六维向量,这样对一个新样本 x' 的分类可以用 来表示。为此还需要解决如下问题:
   使得          
    支持向量机很容易就可以用来解决多点分类问题,实际运用中支持向量机可能不是线性的,它通过核函数将原来的样本映射到另外一个核空间中,这里我们对核函数不做深入讨论,我们选择了线性核函数在本文的研究中,先从已有的软件项目数据作为训练样本来训练支持向量机,然后用训练好的支持向量机来预测新的软件项目样本,从而进行准确性验证。
 

共2页: 1 [2] 下一页


基于ANSYS的管道交变电磁场仿真分析
面向空间信息服务的WebGIS分布式体系结构及关键技术
工商管理 | 工科论文 | 财务管理 | 管理学 | 公共管理 | 财政税收 | 证券金融 | 会计审计 | 计算机 | 法律论文 | 医药学 | 汉语言文学
社会论文 | 工科论文 | 理科论文 | 文化论文 | 艺术论文 | 文学论文 | 哲学论文 | 政治论文 | 英语论文 | 写作指导 | 计算机应用
www.zlunwen.com 找论文网 ® 版权所有 网站地图