软件项目的风险分析

上传人:枫** 文档编号:511300594 上传时间:2023-12-04 格式:DOCX 页数:9 大小:119.09KB
返回 下载 相关 举报
软件项目的风险分析_第1页
第1页 / 共9页
软件项目的风险分析_第2页
第2页 / 共9页
软件项目的风险分析_第3页
第3页 / 共9页
软件项目的风险分析_第4页
第4页 / 共9页
软件项目的风险分析_第5页
第5页 / 共9页
点击查看更多>>
资源描述

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

1、软件项目的风险分析软件工程项目的开发也存在各种各样的风险,有些风险 甚至是灾难性的。R.Charette认为,风险与将要发生的事情 有关,它涉及诸如思想、观念、行为、地点、时间等多种因 素;风险随条件的变化而改变,人们改变、选择、控制与风 险密切相关的条件可以减少风险,但改变、选择、控制条件 的策略往往是不确定的。在软件开发过程中,人们关心的问 题是,什么风险会导致软件项目的彻底失败?顾客需求、开 发环境、目标机、时间、成本的改变对软件项目的风险会产 生什么影响?人们必须抓住什么机会、采取什么措施才能有 效地减少风险、顺利完成任务?所有这些问题都是软件开发 过程中不可避免并需要妥善处理的。软件

2、工程的风险分析包 括:风险标识、风险估算、风险评价和风险管理四部分1、风险标识从宏观上看,风险可以分为项目风险、技术风险和商业 风险三类。由于项目在预算、进度、人力、资源、顾客和需 求等方面的原因对软件项目产生的不良影响称为项目风险。 软件在设计、实现、接口、验证和维护过程中可能发生的潜 在问题,如规格说明的二义性、采用陈旧或尚不成熟的技术 等等,对软件项目带来的危害称技术风险。开发了一个没人 需要的优质软件,或推销部门不知如何销售这一软件产品, 或开发的产品不符合公司的产品销售战略,等等,称为商业风险。这些风险有些是可以预料的,有些是很难预料的。为 了帮助项目管理人员、项目规划人员全面了解软

3、件开发过程 存在的风险,Boehm建议设计并使用各类风险检测表标识各 种风险。2、风险估算软件项目管理人员可以从影响风险的因素和风险发生 后带来的损失两方面来度量风险。为了对各种风险进行估 算,必须建立风险度量指标体系;必须指明各种风险带来的 后果和损失;必须估算风险对软件项目及软件产品的影响; 必须给出风险估算的定量结果。3、风险评价和管理在风险分析过程中,经常使用三元组RI,LI,X I描述风 险。其中RI代表风险,LI表示风险发生的概率,XI是风险 带来的影响,I二1, 2,L是风险序号,表示软件项目共 有L种风险。软件开发过程中,由于项目超支、进度拖延和 软件性能下降都会导致软件项目的

4、终止,因此多数软件项目 的风险分析都需要给出成本、进度和性能三种典型的风险参 考量。当软件项目的风险参考量达到或超过某一临界点时, 软件项目将被迫终止。在软件开发过程中,成本、进度、性 能是相互关联的。例如,项目投入成本的增长应与进度相匹 配,当项目投入的成本与项目拖延的时间超过某一临界点 时,项目也应该终止进行。通常风险估算过程可分为四步:定义项目的风险参考量;定义每种风险的三 元组RI,LI,XI ;定义项目被迫终止的临界点;预测几 种风险组合对参考量的综合影响。三元组RI,LI,X I是风险管理的基础。设高级职员流动给项 目带来的风险为R。根据历史的经验或直观感觉,高级职员 离开课题组的

5、概率:LI = 70%。这一事件的出现带来的影响 XI是项目开发时间延长15%, 项目成本增加20%。于是项目 负责人可以采取下列风险管理措施:高性能* P=30%, outcome550,000实施后:EMV=55O,OOO3O%=1 65000EMV=-200,000*30%=-60000(1)项目开始以前应控制产生风险的原因,在项目开工后 应想方设法减轻风险影响。(2)了 解导致项目开发人员变动的原因,在项目开发期间 应控制上述原因,尽量减少人员的流动。(3)在工作方法和技术上应采取适当措施,防止因人员流 动给工作带来损失。(4) 项目在开发过程中应及时公布并交流项目开发的信息。(5)

6、建立组织机构,确定文档标准,并及时生成文档。(6) 对工作进行集体复审,使多数人都能了解工作的细节, 跟上工作进度。(7) 为关键技术准备后备人员。软件项目,尤其是大型项目有二项非常重要的因素,会 影响整个项目的进度与质量,它们分别是:“人” “流程” 与“技术”“人”是项目中最难预料与掌控的一项要素,人可分成两部 份,一是客户,二是开发团队。“技术”是指软件项目所使用的开发半台,主要指开发环境 及开发语言。是最容易掌握的部份。“流程”是指软件开发流程或是项目流程,定义流程的目的 是要掌控所有的情况。项目的最大敌人是时间及预算,这两 者都是有限的,如何在有限预算内准时完成项目,可说是一 项艺术

7、。“人”因素分析“人”是指客户和开发团队,其中开发团队的因素对项 目影响很大,对于这方面影响因素主要分析如下:人员技能未达到要求在项目开始之初,我们假设项目成员都能够达到组织级 的要求,但往往并不是每个成员都能够达到要求。而且项目 中每个成员的生产率差异可能很大,也给项目进度安排造成 影响。所以在项目始之初,应该对项目成员的技能进行一次 总体的评估,对于大家都欠缺的技能,应该安排统一的培训, 后续需要对培训的效果进行跟踪;对于个别人员技能欠缺 的,应该单独预留自我学习时间或通过以师带徒的方式进行 培养,使其技能能够尽快达到要求:对于项目新员的工作和 任务,应该加強评审和检查,保证输出不出现大的

8、偏差而导 致后续大量的返工。对于这方影响因素主要分析如下:项目成员责任心不強态度决定一切,细节决定成败。对于项目过程中的各项 任务,经常出现由于项目成员责任心不強敷衍了事,导致产 出的工件质量较差,引起大量返工的情况。在这种情况下, 项目更应该加強项目规范的建设,项目经理应加強同这些成 员的单独沟通,加強项目的团队建设和集体荣誉感。让项目 成员感觉到做的系统是他们自己的产品,而不是公司的项 目,项目经理的项目。项目沟通问题在软件项目中,保证项目各种角色和成员中的高效沟通 是很重要的,如何建立起快捷顺畅的沟通渠道,采用最佳的 沟通方式来解决问题,必须在项目中经常強调。如果一周的 项 目任务花存实

9、际做事情上有2天,而花在沟通上却 占用了 3天,这时必须及时分析和总结原因。沟通最重要的就是要 在最短的时间里面,采用各种方法或工具,使交流双方或多 方达成一致。项目人员流失项目人员特别是项目关键成员在项目进行过程中的流 失,对项目影响很大,对于这种情况,应该在项目开始之初, 就作为专门的风险进行跟踪,并考虑具体的应对措施。“流程”因素分析软件的开发流程般定义为:需求分析一可行性分析一概 要设 一结构化设 一详细设 一编码一软件测试一软件 维护。“流程”中软件项目的风险,主要体现存4个阶段:软 件需求阶段、软件设计阶段、软件实现阶段和软件维护阶段 软件需求阶段软件的开发是以用户的需求开始,在大

10、多数情况下,用 户需求要靠软件开发方诱导,才能保证需求的完整,再以的 形式形成用户需求这一重要的文档。需求分析更多的是 开发方确认需求的可行性和一致性的过程,在此阶段需要和 用户进行广泛的交流和确认。需求和需求分析的任何疏漏造 成的损失,会在软件系统的后续阶段被一级级地放大,因此 本阶段的风险最大。软件设计阶段设计的主要目的在于软件功能正确地反映了需求,需求 的不完整和对需求分析的不完整或者错误,在设计阶段将被 成倍地放大。设计阶段的主要任务是完成系统体系结构的定 义,使之能够完成需求阶段的即定目标;另一方面也是检验 需求的致性和需求分析的完整性和正确性。设计阶段的风险主要来自于系统分析人员。

11、分析人员存 设计系统结构时过于定制,系统的可扩展性较弱,会给后期 维护带来巨大的负担和维护成本的激增。对用户来说系统的 使用比例会有明显的折扣,甚至会造成软件寿命过短。反之, 软件结构的过于灵活和通用,必然引起软件实现的难度增 加,系统的复杂度上升,可靠性降低,给实现和测试阶段带 来风险,系统的稳定性也会受到影响。从另一个角度上看, 用户需求和将来软件运行环境的变化都是必然的,目前软件 设计的所渭的“通用性”是否就能很好的适应将来需求和运 行环境的变化,都是需要认真折衷的,而这种折中也蕴涵着 彳艮大的风险。设计阶段蕴涵的另一种风险来自于设计文档。文档的不 健全不仅会造成实现阶段的困难,更会在后

12、期的测试和维护 造成灾难性的后果,例如根本无法对软件系统进行版本级, 甚至是发现的简单错误都无从更正。软件实现阶段软件的实现从某种意义上讲是软件代码的生产。源代码木身也是文档的一部分,同时它又是将来运行于计算机系统 之上的实体。源代码书的规范性,可读性是该阶段的主要风 险来源。规范的代码生产会把属于程序员自身个性风格的成 分引入代码的比例降到最低限度,从而减小了系统整合的风 险。软件维护阶段软件维护包含两个主要的维护阶段,一个是软件生产完 毕到软件试运行阶段的维护,这个阶段是一种实环境的测试 性维护,其主要目的是发现在测试环境中不能或末发现的问 题;另一个阶段是当软件的运行不再能适应用户业务需

13、求或 是用户的运行环境(包括硬件平台、软件环境等)时进行的软 件维护,具体可能是软件的版本升级或软件移植等。素分析存软件项目开发和建设的过程中,技术因素是一个非常 重要的因素。项 目组一定要本着项目 的实际要求,选用合适、 成熟的技术,千万不要无视项目的实际情况选用一些虽然先 进但并非项目所必须且自己又不熟悉的技术。如果项目所要 求的技术项目成员不具备或掌握不够,则需要重点关注该风 险因素。建立项目管理流程那么如何解决这些问题,实际上很多模型已经给出了答 案,比如RUP、QoS、XP等,但是大家在学习和使用这些模 型的时候,往往觉得这些模型提出的概念和实施比较难以操 作,另外就是不管是RUP、

14、Q0S还是XP,既然是-个方法 型,就不可避免要描述为一个完整的、系统化的理论模型, 否则就体现不出理论的完整和逻辑的严谨。下面我们只是把 以软件设计为核心的开发管理流程化,避免在频繁发生外界 变化的情况下,变被动为主动。软件项目管理除了按照既定的管理流程进行有效的控 制,还要对各阶段的文档进行标准化管理,保证文档的完整 和标准化,为软件后期的维护提供有力的支持。排序输入风险事件可能 性影响风险 值釆取的措施1客户的sow需求不明确,增 加需求,导致需 求蔓延。70%50%35%请专业需求分析师和客户代表具体 深入细节的交谈,多了解客户的想 法,站在客户的角度上思考问题。2合同进度要求紧,合

15、同金额和日期30%50%15%可以请一些实习的学生做辅助工 作,一来降低成本,二来可以加快有限。进度。3历史项 目信息开发人员对测 试工作不重视30%40%12%1)强制性要求每段代码保留测试单 元,由SQA检查。4WBS对需求的开放 式系统标准没 有合适的测试 案例20%80%16%找专业的测试公司完成测试工作5历史项 目信息开发人员的流 动15%60%9%1) 注意项目团队的沟通,及时 了解开发人员的动态。2) 控制好项目过程中的文档3) 从其它的项目组解调人员4) 从外部招聘有过此类开发经 验人员6系统设 计评审没有足够的时 间进行产品测 试50%50%25%1) 釆取加班的方法2) 修改计划去掉一些任务3) 与客户商量延长一些时间7需求和 计划采用新技术可 能导致进度的 延期50%30%15%1) 培训开发人员2) 找专家作指导3) 釆取边开发边学习的方法, 要求他们必须在规定的时间 内掌握技术风险分析表为了降低高级职员流动给软件项目带来的风险,管理人 员可以采取培养后备人才的措施。在软件开发过程中,尽量 让更多的人参与总体设计和关键技术的攻关工作。实施这些 措施需要一定的人力、时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

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