(管理科学与工程专业论文)软件项目开发过程中的风险分析.pdf_第1页
(管理科学与工程专业论文)软件项目开发过程中的风险分析.pdf_第2页
(管理科学与工程专业论文)软件项目开发过程中的风险分析.pdf_第3页
(管理科学与工程专业论文)软件项目开发过程中的风险分析.pdf_第4页
(管理科学与工程专业论文)软件项目开发过程中的风险分析.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 风险管理是软件项目开发过程中的关键,但是大部分管理者对于这方面的认 识不足。相对于一般的项目,软件项目存在很多不确定性。软件项目迫切需要加 强风险管理,这主要表现在以下两个方面:首先,风险管理是各软件项目组的内 在要求。由于软件技术的飞速发展和软件系统在社会生产各方面的广泛应用,使 各种风险因素及风险发生的可能大大增加,这对各项目组所负担的责任提出了更 高的管理要求,从而使风险管理的各种手段倍受青睐。其次,项目风险管理方法 的不断改进及成功应用吸引了许多软件项目组进行自身风险管理。现阶段,风险 管理克服了传统的以某种单一手段处理风险的局限性,综合利用并完善各种控制 风险的措施,使越来越多的项目组争相将改进的风险管理方法应用到软件项目 中。而在软件项目的开发过程中,准确的识别项目中存在的风险并对风险加以分 析是保证项目成功的关键。 本文首先介绍了软件项目管理的特殊性,详细论述了软件项目风险管理的主 要内容,并对国内外软件风险管理的研究进展进行了概述。接着,本文在阐述了 软件风险识别常用技术的基础上,从项目管理的九大知识领域的角度确定了软件 项目开发中涉及的主要风险因素;同时还介绍了风险分析的常用方法,重点说明 了支持向量机在软件项目开发过程中的应用;之后,从回归的定量风险分析的方 法入手,对来源于i s b s g 国际项目的数据进行了实例分析,并给出具体应用说明; 接下来,本文又论述了风险分析后如何对于风险进行控制管理,并设计一个基于 非线性规划原理的模型,运用此模型对软件项目开发过程中用于降低风险而投入 的资金进行优化分配;最后,本文针对收集到的软件项目开发人员给出的数据, 进行分析研究,从而发现通过提高软件项目计划的质量可以实现对于高风险软件 项目的成功改进。 关键词软件项目;风险管理;风险识别;风险分析 a b s t r a c t a b s t r a c t t h er i s km a n a g e m e n ti sav e r ye s s e n t i a lp a r ti ns o f t w a r ed e v e l o p m e n tp r o c e s s , h o w e v e r , m a n yo r g a n i z a t i o n sn e g l e c tt h i s c o m p a r i n g t ot h en o r m a lp r o j e c t s ,t h e r ea r e m u c hm o r eu n c e r t a i n t yi ns o f t w a r ep r o j e c t s t h es o f t w a r ep r o j e c tu r g e n t l yn e e d st o s t r e n g t h e nt h er i s km a n a g e m e n t ,t h i sm a i n l yd i s p l a y si nf o l l o w i n gt w oa s p e c t s :f i r s t l y , t h er i s km a n a g e m e n ti st h ei n t e m a lr e q u e s ti nv a r i o u sp r o je c tg r o u p s a sar e s u l to f t h er a p i dd e v e l o p m e n ti ns o f t w a r et e c h n o l o g ya n dt h ew i d e s p r e a da p p l i c a t i o no f s o f t w a r es y s t e mi nv a r i o u ss o c i a la s p e c t s ,a n dt h el o s ss c a l et h a tt h er i s ke v e n tc r e a t e d h a se x p a n d e d a l lt h e s ei s s u e sh a v ep r o p o s e dh i g h e rm a n a g e m e n tr e q u e s t sf o rt h e p r o j e c tg r o u p s ,a n dc a u s e de a c hm e t h o do ft h er i s km a n a g e m e n tt ob ef a v o r e d 。 s e c o n d l y ,t h eu n c e a s i n gi m p r o v e m e n to fr i s km a n a g e m e n tm e t h o dh a sa t t r a c t e dm a n y s o f t w a r ep r o j e c tg r o u p st oc a r r yo nt h e i ro w nr i s km a n a g e m e n t ,c u r r e n t l y , t h er i s k m a n a g e m e n th a so v e r c o m et h el i m i t a t i o nt h a tt h em e t h o di st r a d i t i o n a la n do n l yu s i n g s o m es o l em e t h o dh a n d l i n gr i s k t h er i s km a n a g e m e n tc o m p r e h e n s i v e l yu t i l i z e se a c h k i n do fc o n t r o lr i s km e a s u r e s ,a n dc o n s u m m a t e st h e s em e t h o d sd a yb yd a y ,s ot h a ta g r o w i n gn u m b e ro fp r o je c t ss e l f - c o n s c i o u s l yu s et h er i s km a n a g e m e n t h o w e v e r ,i n s o f t w a r ed e v e l o p m e n tp r o c e s s ,r i s ki d e n t i f i c a t i o n ,r i s ka s s e s s m e n ti st h ek e y e l e m e n t sa f f e c t i n gp r o j e c ts u c c e s s f i r s t l y , t h i s d i s s e r t a t i o ni n t r o d u c e dt h e p a r t i c u l a r i t y o fs o f t w a r e p r o j e c t m a n a g e m e n t i nd e t a i lt os u m m a r i z et h em a i no b j e c to fp r o j e c tr i s km a n a g e m e n t ,t h e a r t i c l ec a r r i e do nt h eo u t l i n et ot h er e s e a r c hp r o g r e s so fs o f t w a r er i s km a n a g e m e n t b o t ha th o m ea n da b r o a d s e c o n d l y , w i t haf u l le x p o s i t i o no ft h ec o m m o nt e c h n o l o g y , t h ep a p e rm a i n l ya n a l y z e dt h ec o m m o nr i s kr e c o g n i t i o nm o d e la n dp o i n t e do u tt h e m a j o rr i s kf a c t o r so fs o f t w a r ed e v e l o p m e n tp r o j e c tb yt h en i n ep r o j e c tm a n a g e m e n t k n o w l e d g ea r e a s t h i r d l y , i ti n t r o d u c e dt h ec o m m o nm e t h o do fr i s ka n a l y s i sa n dt h e s u p p o r tv e c t o rm a c h i n ea p p l i c a t i o ni nt h es o f t w a r ed e v e l o p m e n t t h e n ,t h ep a p e r a n a l y s i st h ed a t af r o mi s b s gw i t hr e g r e s s i o nr i s ka n a l y s i sm o d e la n de x p l a i nt h e r e s u l t ss p e c i f i c a l l y i td i s c u s s e dh o wt oc o n t r o lr i s ka f t e rr i s ka n a l y s i sa n dp r o p o s e da n o n - l i n e a rm e t h o db a s e dm o d e l ,w h i c hc o u l db eu s e dt oo p t i m a l l ya l l o c a t em o n e yf o r t h es o f t w a r ed e v e l o p m e n t f i n a l l y ,w ef o u n dt h a th i g hq u a l i t yo fs o f t w a r ep r o j e c t p l a n n i n gc a ni m p r o v et h es u c c e s sr a t e ,b a s e do nd a t ac o l l e c t e df r o mp r o j e c tm a n a g e r s k e yw o r d ss o f t w a r ep r o je c t ;r i s km a n a g e m e n t ;r i s kr e c o g n i t i o n ;r i s ka n a l y s i s i i 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名王够日期:丝里墨:茎 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:玉监 导师签名: 日期: 第1 章绪论 第1 章绪论 随着信息化时代的到来,作为信息产业核心的软件产业已经成为推动一个国 家经济发展的支柱产业,因而人们越来越多的意识到软件产业对于国家、社会、 科技发展的推动作用,越来越多的国家开始大力扶持软件产业的发展,与此同时, 我们也应看到由于缺乏有效的风险管理,以及由于软件的规模和复杂性不断增 加,软件项目的风险也在随之增长,而导致软件项目失败的例子比比皆是。 据k p m g 的一项调查指出:5 5 失控的项目没有进行风险管理;3 8 的失控 项目作了一些,但是其中的一半在项目进行后就没有使用风险监督;剩余7 情 况不明n 1 。从失败的教训中人们已经逐步的意识到风险管理的重要性。据i e e e ( 美国电气电子工程师学会) 的研究表明:软件系统中5 0 - - 7 0 的风险可以被 检测到,9 0 的风险可以避免,并且风险管理具有杠杆作用,投资回报率大概是 7 0 0 - - 2 0 0 0 ,风险管理的投资回报率如此之高比1 ,因此,对风险管理的进一步 研究是软件项目管理的迫切需要。 软件项目管理是为了软件项目能够按照预定的成本、进度、质量计划顺利实 现项目目标的管理活动,然而由于软件项目的特殊性使软件项目呈现出超出普通 项目的不确定性及可变性,其开发过程中的各种风险比普通项目更加难以预见和 控制,使得项目往往不能按照预定的目标顺利完成,因此在软件项目中引入风险 管理成为必须的选择乜1 。软件项目风险管理的意义在于运用风险管理手段来减小 项目中的这种不确定性及其所带来的损失,以较小的风险管理成本确保软件项目 目标的顺利实现。 1 。1 选题背景及意义 众所周知,软件产业的发展对于国家经济的发展日趋重要,但是软件项目却 常常被费用超支、进度延迟、未满足客户需求以及质量无法保证等问题困扰。调 查分析表明,大约7 0 的软件项目超出预定开发周期,大型项目平均超出计划交 付时间2 0 5 0 ,9 0 以上的软件项目开发费用超出预算,并且项目越大,超出 项目计划的程度越高口1 。基于此,软件项目迫切需要加强风险管理,这主要表现 在以下两个方面:第一,风险管理方法的不断改进及其在许多典型项目中的成功 应用吸引了许多项目组进行自身风险管理。一方面,风险管理以对风险的预测、 识别、评估和分析为基础,为管理人员运用各种对策的最佳组合对风险进行全面、 合理地处置提供了可能性,是现代管理风险的一种科学而直接的方法:另一方面, 风险管理克服了那种传统的以某种单一手段处理风险的局限性,综合利用各种控 北京工业大学管理学硕士学位论文 制风险的措施,并使处理风险的方法日益完善,这些都使得越来越多的项目组自 发地争相采用风险管理方法。第二,风险管理是各项目组的内在要求。由于软件 技术的飞速发展和软件系统在社会生产各方面的广泛应用,从而使各种风险因素 及风险发生的可能性大大增加,并且扩大了风险事件造成的损失规模,这就对各 项目组所负担的责任提出了更高的管理要求,使风险管理的各种手段倍受青睐。 近年来,越来越多的国家从提高本国资源利用效率出发,纷纷资助研究机构 开展软件项目风险管理的研究,有些甚至明确要求软件企业实施风险管理。而软 件企业从改进软件系统性能,缩短产品生产时间,减少费用和改善管理实践等目 的出发,尽量避免高代价的问题发生,事先采取更有效的风险管理措施。 我国的软件产业起步于上世纪八十年代初,在经历了二十几年的发展之后, 己具备了一定的软件开发和生产能力,但和国际水平相比,我国软件产业的发展 还存在一定差距。我国的软件行业为了加紧步伐,非常重视吸取国外软件行业科 学的管理理念与方法。软件项目风险管理在整合内外部资源、实施全过程监控、 提供决策信息等方面,特别适合行业高动态、高风险的特点。但是纵观国内软件 企业的项目风险管理的整体水平,还存在着众多不足和问题,主要表现在以下几 个方面:一是,我国在项目风险管理的研究和实践方面起步较晚,虽然现在项目 风险管理受到越来越多软件企业的重视,但是往往停留在概念层面,缺乏具体管 理制度和方法的支持。二是,国内软件企业过分依赖项目管理者的个人经验,实 行以定性分析为主的风险管理。因此,风险管理水平参差不齐,具有一定的随意 性,实际效果往往不能得到正确评价和对待,也难以在较大范围内推广。三是, 由于在项目风险管理过程中缺乏定量分析方法的使用,因此有关项目资料和数据 的搜集缺乏目的性,从而导致该领域的知识不能得到有效的积累,影响了管理水 平的提高。四是,现有的一些风险识别和分析方法一般只能解决某一方面的问题, 对项目风险的管理缺乏系统性。 本文研究的主要目的就是将风险管理理论应用到软件项目开发过程中,探讨 如何更好的进行软件项目的风险管理,以减轻软件风险所产生的后果,从而增加 软件项目成功的机会。 第1 章绪论 1 2 国内外相关研究 1 2 1 国外对软件项目风险管理的研究 软件风险的定性分析主要包括调查法和专家评分法,理论概率分布法等。其 主要特点是对风险的严重程度不做精确的数值分析,而是大致将其划分一些等 级。定性分析方法的优点是对风险的发生概率、对不同阶段的影响力等因素的尺 度估计比较容易获得,通常取决于专家或者有关人员根据经验、实际情况或者有 关资料,而且标准制定比较灵活。定性分析方法的缺点是标准尺度范围比较狭窄, 很难用文字准确的表达,有时也很难对某些具体的特性对总体的影响力进行准确 的估计。 软件风险的定量分析比定性方法更精细,也更复杂,形成定量风险分析结果 有多种途径。定量风险评价比定性方法更需要有可靠数据的支持,否则其优越性 会无法发挥。首先是确定型风险分析,主要包括:解析法和模拟法( 蒙特卡罗 m o n t ec a r l o 技术) h 1 。不确定型风险分析隋1 主要有最大可能原则、最大数学期 望原则、最大效用数学期望原则、贝叶斯后验概率法哺1 等。一般来说,对项目进 行风险评估和分析的软件风险定量分析方法的常用方法还有很多,如灰色系统理 论( g r e ys y s t e mt h e o r y ) ,故障树分析法f t a ( f a u l tt r e ea n a l y s i s ) ,模糊分 析方法( f u z z ya n a l y s i s ) ,影响图分析法( i n f l u e n c ed i a g r a m ) 等。定量分析的 优点是可以将风险因素发生的概率、对本阶段目标的影响力、对其它阶段目标的 影响力和对软件开发的综合影响力得以量化,从而大大提高了风险分析、风险排 序以及之后的风险解决和控制的准确性和有效性。定量分析的缺点是对风险发生 的概率等几个因素的估计很难,而且这些估计中也是存在大量的不确定性的,因 为这些估计通常是由专家或者有关人员通过其他资料而进行主观的估计得到的。 为了尽量减少这些估计的不确定性,可以尽量使用与实际相符的信息,努力提高 数据的客观正确性和有效性。 当前国际上有些研究人员对软件风险分析就是针对软件在开发测试过程中 出现的错误数量( f i e l dd e f e c t ) 做研究。也就是说衡量软件好坏的标准是看软件 各个r e l e a s e 版本由用户报告的错误数量,这些错误是必须要由软件开发方来进 行修改才能解决的。风险分析的对象可以是软件系统的个别改动、文件、模块或 者整个软件系统。一是,建立软件风险因素( p r e d i c t o r ) 和软件错误数量之间的 关系,比如在h a r t e r 的文章中建立了一个组织的能力成熟度( c 删) 水平与软件 错误数量之间的关系h 1 。二是,对风险进行分类,该方法假定如果软件错误的数 量大于某一个值则认为该软件是有风险的,否则认为是无风险的,从而将对软件 北京工业大学管理学硕士学位论文 的风险评估转化为分类问题。比如由k h o s h g o f t a a r t 提出的树回归方法,存在过 度拟合的现象,实际上,数据挖掘中很多方法都可以用来做分类阻】。三是,对风 险做定量分析,这些方法是对软件出现的错误数量做出定量的分析。例如 k h o s h g o t a a r t 利用人工神经网络的方法对软件的错误数量做了分析呻1 们。 k h o s h g o t a a r t 在这方面做了很多的研究,他利用基于主元素分析的聚类方法u 、 带有预测子选择( p r e d i c t o rs e l e c t i o n ) 的线形回归、非线性回归n 2 1 来进行软件 风险预测。四是,对软件错误数量随时间出现的规律做出预测,这些方法假定软 件未来某一个时期的软件错误数量来进行预测。比较典型的模型是用到了威布尔 模型、指数平均模型、滑动平均模型n 3 3 等常用的方法。 1 2 2 国内对软件项目风险管理的研究 与国外所作的大量研究相比,国内对软件项目风险管理的研究情况如下: ( 1 ) 软件项目风险管理的整体发展状况 自2 0 世纪7 0 年代出现软件危机以来,学术界和企业界对软件工程环境工具 和技术的研究都倾注了大量的人力、财力和物力,多年来也取得了许多成果,但 并没有达到期望的效果。国际上项目风险管理不断得到发展并普遍用于实践的同 时,在我国,知道项目管理的人还不多,之后才开始慢慢意识到良好有序的管理 是实施新技术的重要保障。这一事实主要体现在国内专门介绍软件项目风险管理 类的书籍的缺少上,到2 0 0 0 年4 月,我国还没有一个正式发行的项目管理专业 刊物。随着各种外文书籍的引入及国际思想的相互融合,风险管理也越来越多地 被国内的软件行业人士所重视。 目前,我国软件项目的发展状况是,一方面,国内本土的软件项目发展迅速, 本土公司需要对项目有较好的风险控制。另一方面,越来越多的跨国公司将中国 视为软件工厂,纷纷将开发基地转移至中国,对于跨国项目的风险控制也突显重 要。再考虑到我国的文化、人才、技术等因素,究竟采用什么样的风险管理模型、 评估方法以及经典理论、才能比较适合我国软件行业的发展,提高软件项目开发 的成功概率,是我们要解决的关键问题。 ( 2 ) 项目风险管理特别是软件项目风险管理的学术性研究 我国对风险评估的研究始于2 0 世纪8 0 年代末,并在g j b 9 0 0 中规定了定性风险 评估的工作内容。之后国内不少人开始不断研究风险问题,并分别运用模糊综合 评价方法n 们,样本量的决定方法n 钔,层次分析法n 制,基于v a r 模型n7 1 ,目标导向 的影响图模型n 刖,基于l e o n t i e f 投入一产出模型n 钉,h o p f i e l d 神经网络啪1 ,基于 r s 瞳,组合赋权法乜2 1 等方法,分别对企业信息化项目、投资项目、金融市场、i t 项目开发等项目的风险进行评估及分析,逐步将风险管理运用到各个领域,但是 第1 章绪论 国内对于软件项目的风险分析以定性分析为主,定量分析比较少。 在软件项目中不进行风险管理,就等于无视软件业几十年的经验他引,因此国 内越来越多的人关注到软件项目的风险管理。其中主要是从软件的风险因子、风 险趋势、生命周期心4 1 、开发过程、需求分析过程等几个方面入手应用基于贝叶斯 网络的方法乜5 1 ,基于c m m i 的方法心刀,基于l v q 评估模型乜引,基于模糊识别啪3 等 方法对软件项目进行风险识别、风险分析以及降低风险从而更好地完成软件项目 的风险管理。上述方法都能够在些方面说明软件风险与风险因素的关系,但也 存在一些缺陷。比如贝叶斯网络方法可以非常合理的说明软件项目各个因素与软 件风险的概率因果关系,但是贝叶斯网络的构造以及拟合都存在计算复杂性的问 题。基于l v q 的模型利用了神经网络的方法研究风险因素,但是模型的可解释性 存在一定问题。层次分析法的过分主观性也使得该方法的应用性受到限制。基于 聚类分析的方法是利用了k - m e a n s 聚类算法,是一种用于事后分析的方法,不能 直接用于风险的未来预测,与其它方法的分析类似。我们希望找到一些方法既满 足可解释性和计算可行性的要求,又能够对未来风险进行预测分析的方法,能够 吸收以上方法的优点并且尽可能的消除上述方法的缺点。 1 3 本文的主要工作 本文旨在建立适用于软件风险管理的合理化的分析模型,在目前已有的国内 外研究成果的基础上,通过对一些风险管理方法的改进,改变国内软件产业界在 应对软件风险时的一些定性分析软件风险的缺点,使软件风险分析具有更可靠的 操作性。本文的主要工作如下: 第一:根据大量的中外参考文献,总结了软件风险管理的基本知识; 第- - :风险定性分析,改进以往在应用支持向量机时运用专家打分确定风险 水平权值的方法; 第三:建立符合实际软件项目风险的模型来对软件风险进行定量分析; 第四:通过对多种数学算法和模型的综合,建立适合软件项目风险分析的数 学模型,使得目前以定性分析为主的风险管理向定量风险分析的发展成为可能; 第五:本文对于风险分析方法的研究是要面向实践,立足于应用和推广,使 得研究成果具有实际操作和使用的价值,当然为了用于实际项目中,本文还涉及 了风险识别及风险控制的内容及方法。 1 4 本文的主要结构 第一章绪论部分,主要介绍了论文的研究背景,进行软件风险管理的必要性, 以及软件风险管理的发展现状;同时介绍了本文的主要工作和主要结构; - 5 北京工业大掌管理学硕士学位论文 第二章软件风险管理的预备知识,主要阐述了风险及风险管理研究中的一些 基本概念,分析了软件风险管理的传统模型;并从项目管理的九大知识领域的角 度确定了软件项目开发中涉及的主要风险因素; 第三章主要介绍了风险分析的常用方法,重点介绍了支持向量机在软件项目 开发过程中的应用: 第四章介绍了基于回归的定量风险分析的方法,并通过来源于i s b s g 国际项 目的数据进行实例分析,同时给出了具体应用说明; 第五章主要阐述了风险分析后如何对于风险进行控制管理,并设计了一个基 于非线性规划原理的模型,运用此模型对软件项目开发过程中用于降低风险而投 入的资金进行优化分配,从而将风险分析得出的结论应用于风险管理之中; 第六章主要提出并验证了“改进软件项目计划的质量对于应对高风险软件项 目可能是一个有效的工具 的假设,并通过收集调查问卷的方法获得数据,验证 了文中提出的三个假设。 第2 章软件风险管理的预备知识 第2 章软件风险管理的预备知识 2 1 风险及风险管理的基本概念 2 1 1 风险的定义 风险的概念可以从工程学、经济学、保险学、管理学角度进行定义,然而目 前还没有一个为学术界普遍接受的定义。综合有关风险的各种学科的观点,本文 采用以下定义:风险是指在特定的客观条件下,特定的时期内,某一事件的实际 结果相对预期结果的不利变化。 这个定义包括了四层含义: 第一,风险是客观存在的,其大小可以度量。虽然有些风险事件不容易量化, 对其的评价依赖风险承受者的主观感受,可能因人而异,但并不能否定风险的客 观性和可度量性。 第二,在这里风险主要指不利的影响,而不考虑其中可能蕴涵的机会。 第三,风险伴随着人类的活动而存在,没有人类活动,就不会有预期结果, 事件发生的任何后果都不能成为风险。 第四,风险的存在与其客观环境和时空条件有关,当客观条件与环境发生变 化时,风险也可能发生变化。这种变化包括风险性质的变化、风险量的变化和在 一定的时空条件下某些风险的产生与消除。 依照风险的定义,可以把软件开发项目的风险定义为:软件项目在整个开发 过程中,由于受各种环境的不确定性因素的影响,实际发生的成本、进度、质量 等与预期结果的不利偏差。 软件项目开发是一个极其复杂的系统工程,期间存在着众多的不确定性,这 些不确定性是造成软件项目风险的直接来源,与其它工程项目风险相比,软件项 目风险具有如下特征: 第一,软件项目风险因素之间,风险因素和风险之间存在着较强的相关性。 在软件项目开发过程中,多个风险因素可能会有交叉,比如质量风险因素和进度 风险因素同时是造成延迟交付和超出预算的风险源。为了便于描述与分析,将风 险因素进行分级,直接导致风险事件发生的风险因素的风险等级为高,其次是风 险等级一般和风险等级较低。另外,一个风险因素可能导致多个风险的发生,一 种风险可能由多种风险因素导致等,这些情况也在软件项目风险分析中经常遇 到。因此,全面了解各个风险因素、风险之间的关系以及它们对整个项目的影响 程度是非常重要的。 北京工业大学管理学硕士学位论文 第二,软件项目开发过程中,风险的出现与生存期阶段具有较强的关联性。 通常,软件项目开发具有其固有的生存期模型( 如瀑布生存期模型,螺旋式生存 期模型等) ,不同的生存期模型会导致开发流程、开发技术乃至开发产品的不同, 比如,瀑布生存期模型开发中就会进行需求过程、设计过程、实施过程,而螺旋 式生存期模型是瀑布模型的多次迭代,将每个阶段进行更细的划分,包括软件需 求、软件产品设计,详细设计,编码,单元测试,集成测试,接受测试,实施。 同时,每种生存期模型、生存期模型的每个重要阶段,会产生不同的风险,各个 阶段的决策也都会对各种风险产生影响,并且还会影响到下一阶段风险的产生, 因此,在软件项目风险管理中,需要对风险定时、持续地跟踪、评估和管理。 第三,在软件项目开发过程中,客户常常在项目开始时只有一些初步的功能 要求,没有明确的想法,也提不出确切的需求,因此软件项目的任务范围很大程 度上取决于项目组所做的系统规划和需求分析。由于客户方对信息技术的各种性 能指标并不熟悉,所以,软件项目所应达到的质量要求也更多地由项目组定义, 客户则担负起审查任务。而随着项目的进行客户需求变更频繁,导致软件项目开 发周期延长、费用增加。尽管已经做好了系统规划、可行性研究,签订了较明确 的技术合同,然而随着系统分析、系统设计和系统实施的进展,客户的需求不断 地被激发,导致程序、界面以及相关文档需要经常修改。而且在修改过程中又可 能产生新的问题,这些问题很可能经过相当长的时间后才会被发现,这就要求项 目经理不断监控和调整项目的计划执行情况。 第四,软件项目是智力密集、劳动密集型项目,受人力资源影响很大,项目 成员的结构、责任心、能力和稳定性对软件项目的质量以及是否成功有决定性的 影响。软件项目工作的技术性很强,需要大量高强度的脑力劳动。尽管近年来信 息系统辅助开发工具的应用越来越多,但是项目各阶段还是需要大量的手工劳 动;软件项目工程管理比其它工程管理更为特殊。首先,软件项目多为知识产 品,进度和质量都难以度量,生产效率也难以保证。其次,计算机系统的复杂程 度超乎人们的想象。此外,由于应用软件是不可见的逻辑实体,如果人员发生流 动,对于没有深入掌握软件知识或缺乏项目开发实践经验的人来说,很难在短时 间里做到承接项目的后续开发工作。 第五,由于软件产品不可见这个特点,从而使得软件项目开发的进展以及软 件的质量是否符合要求难于把握,较之其他有形产品而言难于度量;并且,不同 的软件开发项目可能采用不同的或者说是有针对性的软件开发过程,而真正适合 的软件开发过程是在软件项目的开发完成后才能明确的。因此,在软件项目开发 之初,只能根据项目的特点和开发经验进行选择,并在开发过程中不断的调整, 正因为软件项目的这个特点,使得软件项目较之其他有明确开发过程的项目来 说,产生风险的可能性更大,风险把握难度更高。并且,对于很多大型软件项目 第2 章软件风险管理的预各知识 而言,原来从来没有开发过类似的项目,从而造成以往的经验可以被借鉴的地方 不多,因而规避和控制软件管理风险的办法就是设立监督机制,进行有效的风险 分析、监控和管理。 为了进行风险识别和风险分析,本文还引入了风险因素的概念。风险因素是 指一组项目的基本组成部分,这些基本组成部分的性质和功能以及彼此之间的联 系和相互作用以及它们组成项目整体的方式能够决定项目整体的性质和功能。 2 1 2 风险的属性 ( 1 ) 风险的随机性 风险的发生及其后果都具有偶然性。风险是否发生,何时发生,发生之后会 造成何种后果,对大量项目风险的研究结果表明大多数风险遵循一定的统计规 律,具有随机性。 ( 2 ) 风险的相对性 风险总是相对项目活动主体而言的。同样的风险对于不同的主体有不同的影 响。人们对于风险事件都有一定的承受能力,但是这种能力因活动、人和时间而 异。 ( 3 ) 风险的可变性 根据风险的定义,当客观条件与环境发生变化时,风险也可能在性质、后果 等方面发生变化。 2 1 3 风险的分类 对风险的分类可以从不同的角度、根据不同的标准进行。这里按风险发生的 可预测性把风险分为确定型风险、随机型风险和非确定型风险。 确定型风险指经过认真、严格地分析后就能够明确的那些风险;随机型风险 就是根据经验,可以预见其发生的可能性大小的风险;非确定型风险指即使最有 经验的人也无法预见其发生可能性的那些风险。 2 1 4 风险管理的相关知识内容 一般来说,软件工程师总是非常乐观,当他们在计划软件项目时,经常认为 每件事情都会如计划那样运行,或者,又会走向另外一个极端。软件开发的创造 性本质意味着我们不能完全预测会发生的事情,因此制定一个详细计划的关键点 北京工业大学管理学硕士学位论文 很难确定。当有预想不到的事情引起项目脱离正常轨道时,以上两种观点都会导 致软件项目的失败,基于此,本文引入了评定软件项目计划优劣的指标体系,并 探讨了高风险的存在如何影响软件项目计划的质量和软件项目的成功。 目前,风险管理被认为是软件项目中减少失败的一种重要手段,风险管理意 味着危机还没有发生之前就对它进行处理,这就提高了项目成功的机会和减少了 不可避免风险所产生的后果。 在广义上,项目风险管理( p r o j e c tr i s km a n a g e m e n t ) 是贯穿在项目开发 过程中的一系列管理步骤,其中包括风险识别、风险分析、风险管理策略、风险 规避和风险监控。它能让风险管理者主动“攻击风险,进行有效的风险管理。 在狭义上,项目风险管理是在风险识别和分析后,针对风险做出的决策。在项目 管理中,建立风险管理策略和在项目的开发过程中不断控制风险是非常重要的, 风险管理包括四个相关阶段: 一是,风险识别,识别风险的方法常用的有头脑风暴法,图表法,风险检查 表法等。 二是,风险分析,对已识别的风险要进行估计和评价,风险估计的主要任务 是确定风险发生的概率与后果,风险评价则是对项目各风险因素和项目总体风险 水平的评价,常用的方法有:风险因子法、概率统计方法、模糊综合评价法等。 三是,风险规避,一般而言风险规避有三种方法:风险控制法,即主动采取 措施避免风险,消灭风险,中和风险或采用紧急方案降低风险;风险自留,即当 风险不大时可以余留风险;风险转移。 四是,风险监控,包括对风险发生的监督和对风险管理的监督,前者是对已 识别的风险源进行监视和控制,后者是在项目实施过程中监督人们认真执行风险 管理的组织和技术措施。 在软件项目管理中,应该任命一名风险管理者,该管理者的主要职责是在制 订与评估规划时,从风险管理的角度对项目规划或计划进行审核并发表意见,不 断寻找可能出现的意外情况,试着指出各个风险的管理策略及常用管理方法,以 随时处理出现的风险,风险管理者最好是由项目主管以外的人担任。 2 2 软件项目风险管理经典模型 经典软件项目风险管理理论为软件风险研究奠定了理论基础,是我们继续探 索风险管理理论的基石。下面对软件项目风险管理中的经典理论模型进行分析和 比较捌。 ( 1 ) b a r r yb o e h m 的模型 第2 章软件风险管理的预备知识 该模型的主要思想如下,首先用公式r e = p l 来对风险进行定义,其中r e 表示风险或者风险所造成的影响,p 表示风险发生的概率,l 表示风险产生的后 果。该模型的核心思想是1 0 大风险因素列表,并且针对每个风险因素,b o e h m 都提出了一系列风险管理措施。l o 大风险列表的思想可以将管理层的注意力集 中在高风险因素上,实施风险管理的成本相对较低,适用于规模比较小的项目。 但是忽略了众多优先级低的细节问题,没有提出具体的风险识别的量化方法。作 为软件项目风险管理的先行者,b o e h m 的思想奠定了该领域的理论基础啪3 。 ( 2 ) s ei 的c r m ( c o n tin u o u sr is km a n a g e m e n t ) 模型 s e i 是软件工程研究与应用的权威机构,提出了持续风险管理模型c r m ,如 图2 1 所示。它的主要思想是将风险管理划分为5 个步骤:风险识别、分析、 计划、跟踪、控制,对每一个风险因素都要按照这五个步骤进行管理,强调风险 管理是一个在项目开发过程中反复持续进行的活动序列。在项目生命期的所有阶 段都关注风险管理,不断地评估引起风险事件发生的因素,确定最迫切需要处理 的风险,确定实现控制风险的策略,并评测风险策略实施的有效性。并且强调沟 通在风险管理中的作用。它是一种动态风险管理的理论,注重了与软件开发过程 的紧密结合,可操作性强。 图2 1c r m 模型 f i g 2 一l c r mm o d e l ( 3 ) 螺旋模型 1 9 8 6 年,b a r r yb o e h m 提出了软件开发的螺旋模型。它是一种以风险管理为 导向的生存模型。它是把早期s e i 模型中反复进行风险管理的思想与软件项目的 生命周期相结合提出的。该模型可以使风险管理者及早发现风险,相对来讲比在 后期发现的成本较低。但它的过程显得比较复杂,对于复杂程度不是很高的小型 软件项目采用此模型成本比较高。 ( 4 ) r js k i t 模型 r i s k i t 模型是由m a r y l a n d 大学提出的,旨在对风险的起因、触发事件及其 影响等进行完整的体现和管理,并使用合理的步骤评估风险。该方法使用图形化 的方法,支持在定量分析前进行风险情景的定性分析,其评估方法可以基于历史 数据或者对当前项目的预测。 北京工业大学管理学硕士学位论文 ( 5 ) l e a v i t t 模型 l e a v i t t 模型从系统的角度出发将软件项目管理看作一个系统,把该系统划 分为四个部分:任务、结构、角色和技术。这四个部分和软件开发的各个风险因 素能很好的对应起来,任何引起风险发生的因素都可归结到以上四个组成部分, 然后可以分别采用不同的方法进行风险管理。该模型主要思路是:模型是一个有 机的整体,各个组成部分联系密切,某一个组成部分的变化会影响其它的组成部 分,任何一个组成部分的状态和其它的状态不一致,都会造成比较严重的后果, 并可能降低整个系统的性能,甚至导致整个系统的崩溃瓦解。其特点是提供了多 方面多层次的风险管理过程,为风险管理研究开辟了新的思路。 上述理论模型都具有各自的特点,适用于不同的范围和条件,但都考虑到了 了软件项目的特点。b a r r yb o e h m 的模型,s e i 的c r m 模型,螺旋模型,r i s k i t 模型,都强调以过程为主体的,持续的风险管理。而l e a v i t t 模型则是从系统角 度对风险管理进行了研究,它把软件项目作为一个大的系统,任务、结构、角色 和技术作为其子系统来进行研究的。过程化的风险管理和系统角度的风险管理实 际上是对风险管理研究的两个方向,即纵向和横向。并且s e i 的c r m 模型和螺旋 模型都注重与软件开发过程的结合。 风险管理的基本步骤大体相同,一般都分为风险识别、风险分析、风险计 划、风险监控、风险应对,并以此作为风险管理活动的基本框架,但也会根据研 究和应用的需要略有不同。 经典模型给出了风险管理的基本理论思想、基本过程、基本方法和基本步骤, 奠定了风险管理研究的基础,并且通过实践证明这些基本过程方法和步骤是实用 且高效的。 2 3 软件项目的风险识别 风险识别的目的是减少项目的结构不确定性,风险识别首先要弄清项目的组 成、各项目组成部分的性质和相互关系、项目与环境之间的关系。风险识别是风 险分析和风险管理的基础,只有全面、正确地识别软件项目所面临的风险,对风 险的分析和对风险管理技术的选择才有实际意义。 风险识别的方法有很多,本文介绍几种常见的方法,并引入了评定软件项目 计划优劣的指标体系,同时给出了软件项目的四个基本风险因素。 2 3 1 风险识别的程序 风险识别的程序可分为三个步骤,第一步,搜集资料;第二步,确定项目风 第2 章软件风险管理的预各知识 险因素;第三步,识别并描述项目风险驱动因子。下面就每个步骤进行说明: ( 1 ) 搜集资料 完整的搜集项目数据和资料是进行有效风险识别的基础,因此任何可能显示 潜在问题的资料都可用于风险的识别,这些资料主要包括: 第一:成本分析; 第二:计划或工作分解结构: 第三:进度分析; 第四:文件记录的事件教训; 第五:项目的前提、假想分析和制约因素; 第六:技术绩效测评计划或分析; 第七:模型和影响图; 第八:专家判断和头脑风暴结果: ( 2 ) 确定风险因素 确定风险因素的过程是要明确项目和环境的变数,即项目各组成部分和彼此 间的关系。确定风险因素常常与风险形势估计结合在一起,通过风险形式估计明 确项目的前提和假设,以便减少许多不必要的风险分析工作。 ( 3 ) 识别风险驱动因子 识别风险驱动因子的过程就是要识别出影响每个风险因素的风险评价指标 的过程。 2 3 2 风险识别的常用工具和方法 软件项目风险的多样性决定了识别风险方法的多样化。关于风险识别有许多 常用的工具和方法,如风险识别专题讨论会、头脑风暴法、德尔菲法、s w o t 法、 检查表法、假设分析法等,以及运用可靠性工程研究中的故障树分析法进行风险 识别和分析。 ( 1 ) 风险检查表法 检查表是管理中用来记录和整理数据的常用工具,用它进行风险识别时,将 项目可能发生的许多潜在风险列于一个表上,供识别人员进行检查核对,用来判 别某项目是否存在表中所列或类似的风险。检查表中所列都是历史上类似项目曾 发生过的风险,是项目风险管理经验的结晶,对项目管理人员具有开阔思路、启 发联想的作用。 ( 2 ) 头脑风暴法 头脑风暴法是通过营造一个无批评的自由的会议环境,使与会者畅所欲言, 充分交流、互相启迪,产生出大量创造性意见的过程。头脑风暴法以共同目标为 北京工业大学管理学硕士学位论文 中心,参会人员在他人的看法上提出自己的意见。它可以充分发挥集体的智慧, 提高风险识别的正确性和效率。 头脑风暴法包括收集意见和对意见进行评价,具体过程是: 第一:人员选择。参加头脑风暴会议的人员主要由风险分析专家、风险管理 专家、相关专业领域的专家以及具有较强逻辑思维能力和总结分析能力的主持人 组成。主持人是一个非常重要的角色,要求具有较高的素质,反映灵敏,且具有 较高的归纳力和较强的综合能力。 第二

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论