软件项目风险管理

上传人:公**** 文档编号:555950199 上传时间:2022-11-21 格式:DOC 页数:11 大小:82.50KB
返回 下载 相关 举报
软件项目风险管理_第1页
第1页 / 共11页
软件项目风险管理_第2页
第2页 / 共11页
软件项目风险管理_第3页
第3页 / 共11页
软件项目风险管理_第4页
第4页 / 共11页
软件项目风险管理_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《软件项目风险管理》由会员分享,可在线阅读,更多相关《软件项目风险管理(11页珍藏版)》请在金锄头文库上搜索。

1、.软件工程风险管理一、风险管理概述软件风险是指软件开发过程中及软件产品本身可能造成的伤害或损失。风险关注未来的事情,这意味着,风险涉及选择及选择本身包含的不确定性,在软件开发过程及软件产品都要面临各种决策的选择。风险是介于确定性和不确定性之间的状态,是处于无知和完整知识之间的状态。另一方面,风险将涉及思想、观念、行为、地点等因素的改变。 当在软件工程领域考虑风险时,我们要关注以下的问题:什么样的风险会导致软件工程的彻底失败?用户需求、开发技术、目标计算机、以及所有其它与工程有关的因素的改变将会对按时交付和总体成功产生什么影响?对于采用什么方法和工具,需要多少人员参与工作的问题,我们如何选择和决

2、策?对软件质量要到达什么程度才是足够的? 当没有方法消除风险,甚至连试图降低该风险也存在疑问时,这些风险就是真正的风险了。在我们能够标识出软件工程中的真正风险之前,识别出所有对管理者和开发者而言均为明显得风险是很重要的。二、被动和主动的风险策略被动风险策略是针对可能发生的风险来监视工程,直到它们变成真正的问题时,才会拨出资源来处理它们,更普遍的是,软件工程组对风险不闻不问,直到发生了错误才赶紧采取行动,试图迅速地纠正错误。这种管理模式常常被称为救火模式。当补救的努力失败后,工程就处在真正的危机之中了。 对于风险管理的一个更聪明的策略是主动式的。主动策略早在技术工作开场之前就已经启动了标识出潜在

3、地风险,评估它们出现的概率及产生的影响,对风险按重要性进展排序,然后,软件工程组建立一个方案来管理风险。主动策略风险管理的主要目标是预防风险。但是,因为不是所有的风险都能够预防,所以,工程组必须建立一个应付意外事件的方案,使其在必要时能够以可控的及有效的方式作出反响。三、软件风险1、软件风险包含两个特征:不确定性刻划风险的事件可能发生也可能不发生,没有100发生的风险。 损失如果风险变成了现实,就会产生恶性后果或损失。 2、进展风险分析时,重要的是量化不确定的程度和与每个风险相关的损失的程度。为了实现这点,必须考虑以下几种不同类型的风险: 工程风险:工程风险是指潜在的预算、进度、人力工作人员和

4、组织、资源、客户、需求等方面的问题以及它们对软件工程的影响。工程风险威胁工程方案,如果风险变成现实,有可能会拖延工程的进度,增加工程的本钱。工程风险的因素还包括工程的复杂性、规模、构造的不确定性。 技术风险:是指潜在地设计、实现、接口、验证和维护等方面的问题。此外规约的二义性、技术的不确定性、旧的技术、以及过于先进的技术也是风险因素。技术风险威胁要开发的软件的质量及交付时间。如果技术风险变成现实,则开发工作可能变得很困难或者不可能。 商业风险:商业风险威胁到要开发软件的生存能力。商业风险常常会危害工程或产品。 五个主要的商业风险是:1开发一个没有人真正需要的优秀产品或系统市场风险;2开发的产品

5、不再符合公司的整体商业策略策略风险;3建造了一个销售部门不知道如何去卖的产品;4由于重点的转移或人员的变动而失去了高级管理层的支持管理风险;5没有得到预算或人力上的保证预算风险。 3、风险分为以下方式:1风险,是通过仔细评估工程方案、开发工程的商业及技术环境、以及其它可靠的信息来源如:不现实的交付时间,没有需求或软件围的文档、恶劣的开发环境之后可以发现的那些风险。2可预测风险,能够从过去工程的经历中推测出来如:人员调整,与客户之间无法沟通,由于需要进展维护而使开发人员精力分散。3不可预测风险,它们可能、也会真的出现,但很难事先识别出它们来。四、识别风险识别风险是试图系统化地确定对工程方案估算、

6、进度、资源分配的威胁。通过识别和可预测的风险,工程管理者就有可能防止这些风险,且当必要时控制这些风险。 每一类风险可以分为两种不同的类型:一般性风险和特定产品的风险。一般性风险对每一个软件工程而言都是一个潜在地威胁。特定产品的风险只有那些对当前工程的技术、人员、及环境非常了解的人才能识别出来。为了识别特定产品的风险,必须检查工程方案及软件围说明,从而了解本工程中有什么特殊的特性可能会威胁到工程方案。 一般性风险和特定产品的风险都应该被系统化地标识出来。识别风险的一个方法是建立风险条目检查表。该检查表可以用来识别风险,并可以集中来识别以下常见子类型中的及可预测的风险: 产品规模与要建造或要修改的

7、软件的总体规模相关的风险。 商业影响与管理或市场所加诸的约束相关的风险。 客户特性与客户的素质以及开发者和客户定期通信的能力相关的风险。 过程定义与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险。 开发环境与用以建造产品的工具的可用性及质量相关的风险。 建造的技术与待开发软件的复杂性以及系统所包含技术的新奇性相关的风险。 人员数目及经历与参与工作的软件工程师的总体技术水平及工程经历相关的风险。 风险条目检查表能够以不同的方式来组织。与上述话题相关的问题可以由每一个软件工程来答复。这些问题的答案使得方案者能够估算风险产生的影响。1、产品规模风险工程风险是直接与产品规模成正比的。下面

8、的风险检查表中的条目标识了产品软件规模相关的常见风险: 是否以LOC或FP估算产品的规模; 对于估算出的产品规模的信任程度如何; 是否以程序、文件或事务处理的数目来估算产品规模; 产品规模与以前产品的规模的平均值的偏差百分比是多少; 产品创立或使用的数据库大小如何; 产品的用户数有多少; 产品的需求改变多少?交付之前有多少?交付之后有多少? 复用的软件有多少? 2、商业影响风险销售部门是受商业驱动的,而商业考虑有时会直接与技术实现发生冲突。下面的风险检查表中的条目标识了与商业影响相关的常见风险: 本产品对公司的收入有何影响; 本公司是否得到公司高级管理层的重视; 交付期限的合理性如何; 将会使

9、用本产品的用户数及本产品是否与用户的需要相符合; 本产品必须能与之互操作的其它产品/系统的数目; 最终用户的水平如何; 政府对本产品开发的约束; 延迟交付所造成的本钱消耗是多少; 产品缺陷所造成的本钱消耗是多少; 对于待开发产品的每一个答复都必须与过去的经历加以比拟。如果出现了较大的百分比偏差或者如果数字接近过去很不令人满意的结果,则风险较高。 3、客户相关风险客户有不同的需要。一些人只知道他们需要什么;而另一些人知道他们不需要什么。一些客户希望进展详细的讨论,而另客户则满足于模糊的承诺。 客户有不同的个性。一些人喜欢享受客户的身份,而另一些人则根本不喜欢做为客户。一些人会快乐地承受几乎任何交

10、付的产品,并能充分利用一个不好的产品;而另一些人则会对质量差的产品猛烈抨击。一些人会对质量好的产品表示赞赏;而另一些人则不管怎样都抱怨不休。 客户和供给商之间也有各种不同的通信方式。一些人非常熟悉产品及生产厂商;而另一些人则可能素未谋面,仅仅通过信件来往和与生产厂商沟通。 一个不好的客户可能会对一个软件工程组能否在预算完成工程产生很大的影响。对于工程管理者而言,不好的客户是对工程方案的巨大威胁和实际的风险。下面的风险检查表中的条目标识了与客户特征相关的常见风险: 你以前是否曾与这个客户合作过; 该客户是否很清楚需要什么;他能否化时间把需求写出来; 该客户是否同意花时间召开正式的需求收集会议,以

11、确定工程围; 该客户是否愿意建立与开发者之间的快速通信渠道; 该客户是否愿意参加复审工作; 该客户是否具有改产品领域的技术素养; 该客户是否愿意你的人来做他们的工作; 该客户是否了解软件过程; 如果对于这些问题中的任何一个答案是否认的,则需要进一步的调研,以评估潜在地风险。4、过程风险如果软件过程定义得不清楚;如果分析、设计、测试以无序的方式进展;如果质量是每个人都认为很重要的概念,但没有人切实采取行动来保证它,则这个工程就处在风险之中。 过程问题: 高级管理层是否有一份已经写好的政策述,该述中强调了软件开发标准过程的重要性; 开发组织是否已经拟定了一份已经成文的、用于本工程开发的软件过程的说

12、明; 开发人员是否同意按照文档所写的软件过程进展开发工作,并自愿使用它; 该软件过程是否可以用于其它工程; 管理者和开发人员是否承受过一系列的软件工程培训; 是否为每一个软件开发者和管理者提供了印好的软件工程标准; 是否为作为软件过程一局部而定义的所有交付物建立了文档概要及例如; 是否认期对需求规约、设计和编码进展正式的技术复审; 是否认期对测试过程和测试情况进展复审; 是否对每一次正式技术复审的结果建立了文档,其中包括发现的错误及使用的资源; 有什么机制来保证按照软件工程标准来指导工作; 是否使用配置管理来维护系统/软件需求、设计、编码、测试用例之间的一致性; 是否使用一个机制来控制用户需求

13、的变化及其对软件的影响; 对于每一个承包出去的子合同,是否有一份文档化的工作说明、一份软件需求规约和一份软件开发方案; 是否有一个可遵循的规程,来跟踪及复审子合同承包商的工作; 技术问题 是否使用方便易用的规格说明技术来辅助客户与开发者之间的通信; 是否使用特定的方法进展软件分析; 是否使用特定的方法进展数据和体系构造的设计; 是否90以上的代码都是使用高级语言编写的; 是否认义及使用特定的规则进展代码编写; 是否使用特定的方法进展测试用例的设计; 是否使用配置管理软件工具控制和跟踪软件过程中的变化活动; 是否使用工具来创造软件原型; 是否使用软件工具来支持测试过程; 是否使用软件工具来支持文

14、档的生成和管理; 是否收集所有软件工程的质量度量值; 是否收集所有软件工程的生产率度量值; 如果对于上述问题的答案多数是否认的,则软件过程是薄弱的,且风险很高5、技术风险突破技术的极限极具挑战性和令人兴奋,但这也是有风险的。下面的风险检查表中的条目标识了与建造的技术相关的常见风险: 该技术对于你的公司而言是新的吗; 客户的需否需要创立新的算法或输入、输出技术; 待开发的软件是否需要使用新的或未经证实的硬件接口; 待开发的软件是否需要与开发商提供的未经证实的软件产品接口; 待开发的软件是否需要与功能和性能均未在本领域得到证实的数据库系统接口; 产品的需否要求采用特定的用户界面; 产品的需求中是否

15、要求开发*些程序构件,这些构件与你的公司以前开发的构件完全不同; 需求中是否要求采用新的分析、设计、测试方法; 需求中是否要求使用非传统的软件开发方法; 需求中是否有过分的对产品的性能约束; 客户能确定所要求的功能是可行的吗? 如果对于这些问题中的任何一个答案是肯定的,则需要进一步的调研,以评估潜在地风险。 6、开发环境风险软件工程环境支持工程组、过程及产品,但是,如果环境有缺陷,它就有可能成为重要的风险源。下面的风险检查表中的条码标识了与开发环境相关的风险: 是否有可用的软件工程管理工具; 是否有可用的软件过程管理工具; 是否有可用的分析及设计工具; 分析和设计工具是否适用于待建造产品; 是否有可用的编译器或代码生成器; 是否有可用的测试

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号