还剩3页未读,继续阅读
文本内容:
项目风险评估报告本文档的范围和目的本文主要针对软件开发涉及到的风险,包括在软件开发周期过程中可能出现的风险以及软件实施过程中外部环境的改变可能引起的风险等进行评估在文中对所提到的风险都一一做了具体的分析,并提出了相应的风险回避措施由于风险是在项目起先之后才起先对项目的开发起负面的影响,所以风险分析的不足,或是风险回避措施不得力,都很有可能造成软件开发的失败风险分析是在事前的一种估计,凭借确定的技术手段和丰富的阅历,基本能够对项目的风险做出比较精确的估计,经过慎重的考虑提出可行的风险回避措施,是避开损失的重要环节主要风险综述任何软件的开发,其主要风险均来自于两个方面,一是软件管理,二是软件体系结构软件产品的开发是工程技术与个人创作的有机结合软件开发是人的集体才智依据工程化的思想进行发挥的过程软件管理是保证软件开发工程化的手段软件体系结构的合理程度是取决于集体才智发挥的程度和阅历的运用软件管理将影响到软件的下列因素软件是否能够按工期的要求完成软件的工期经常是制约软件质量的主要因素许多状况下,软件开发商在工期的压力下,放弃文档的书写,组织,结果在工程的晚期,大量须要文档进行协调的工作时.,致使软件进度越来越慢软件的开发不同于其他的工程,在不同的工程阶段,须要的人员不同,须要协作的方面也不同,全部这些都须要行之有效的软件管理的保证软件需求的调研是否深化透彻软件的需求是确保软件正确反映用户的对软件运用的重要的文档,探讨软件需求是软件开发的起始点,但软件的需求却会贯穿整个软件的开发过程,软件管理须要对软件需求的改变进行限制和管理,一方面保证软件需求的改变不至于造成软件工程的一改再改而无法按期完成;同时又要保证开发的软件能够为用户所接受软件管理须要限制软件的每个阶段进行的成度,不能过细造成时间的奢侈,也不能过粗,造成软件缺陷软件的实现技术手段是否能够同时满意性能要求软件的构造须要对软件构造过程中的运用的各种技术进行评估软件构造技术通常是这样最成熟的技术,往往不能体现最好的软件性能;先进的技术,往往人员对其熟识程度不够,对其中隐含的缺陷不够明白软件管理在制定软件开发安排和定义里程碑时必需考虑这些因素,并做出合理的权衡决策软件质量体系是否能够被有效地保证:任何软件管理忽视软件质量监督环节都将对软件的生产构成巨大的风险而制定卓有成效的软件质量监督体系,是任何软件开发组织必不行少的软件质量保证体系是软件开发成为可限制过程的基础,也是开发商和用户进行沟通的基础和依据软件体系结构影响到软件的如下质量因素软件的可伸缩性是指软件在不进行修改的状况下适应不同的工作环境的实力由于硬件的飞速发展和软件开发周期较长的冲突,软件升级的须要显得特别迫切假如软件的升级和移植特别困难,软件的生命期必定很短,使得化费巨大人力物力开发出的软件系统只能在低性能的硬件或网络上运行,甚至被废弃不用,造成巨大的奢侈软件的可维护性软件的维护也是必定的事情,为了保证软件的较长运用寿命,软件就必需适应不断的业务需求改变,依据业务需求的改变对软件进行修改修改的成本和周期都干脆和软件的体系结构相关一个好的软件体系结构可以尽可能地将系统的改变放在系统的配置上,即软件代码无需修改,仅仅是在系统供应的配置文件中进行适当的修改,然后软件重新加载进入运行状态,就完成了系统部分功能和性能要求的改变对于重大改动须要打开源代码进行修改的,也仅仅是先继承原先的代码,然后用新的功能接替原先的调用接口,这样将把软件改动量减小到最低软件易用性软件的易用性是影响软件是否被用户接受的关键之关键因素在软件产品中,设计困难,功能强大而完备,但因为操作繁复而被搁置者屡见不鲜造成的主要缘由在于缺乏软件开发中软件体系结构的宏观把握实力另一方面,缺乏有效的手段进行软件需求的确定和对潜在需求的挖掘项目管理的风险软件项目管理的风险来自于软件项目自身的特点软件产品不行见开发的进展以及软件的质量是否符合要求难于度量,从而使软件的管理难于把握软件的生产过程不存在确定正确的过程形式可以确定的是不同的软件开发项目应当采纳不同的或者说是有针对性的软件开发过程而真正合适的软件开发过程是在软件项目的开发完成才能明白的因此项目开发之初只能依据项目的特点和开发阅历进行选择,并在开发过程中不断的调整大型软件项目往往是〃一次性〃的以往的阅历可以被借鉴的地方不多回避和限制软件管理风险的唯一方法就是设立监督制度,项目开发中任何较大的确定都必需有主要技术环节甚至是由用户参加进行的在该项目中项目监督由项目开发中的质量监督组来实施一般参加软件开发的人员(包括管理者和技术人员)和其责任进行分析如下:参加者项目经理1人主要职责进行全局把握,侧重于项目的商务方面,充当项目组同客户正式沟通的接口环节项目负责人1人主要职责制定项目开发安排和开发策略,参加项目核心系统的分析设计,同时努力保证开发安排的按时完成和开发策略的真正实行领域专家1或2人主要职责在软件分析阶段帮助分析人员界定系统实现边界和实现的功能,对特定检测点进行算法审核,同时对测试策略和软件操作界面提出参考看法质量监督组1或2人主要职责编制软件质量限制安排,并负责落实;限制必要文档的生产,通过文档,监督项目实施过程中软件的质量,并产生软件质量报告,提请项目经理和项目负责人批阅;对于项目中出现的质量问题,主持召开质量复审会议系统分析员1或2人主要职责协同项目负责人进行软件系统的分析和设计工作,书写软件需求分析和系统设计相关文档在软件实现阶段进行测试策略的编制和对性能测试的指导程序员2或3人主要职责帮助分析人员进行具体设计,和软件系统的代码实现,并进行适当的白盒测试测试员2或3人主要职责已经实现的软件组件、构件或系统进行正确性验证测试,整合后的系统的性能测试等书写测试报告和测试统计报告提请质量监督组复审技术支持2或3人主要职责协同系统分析人员听取用户需求,对需求分析进行参考性复审协同测试人员进行测试,书写操作手册和在线帮助,在项目交付用户之后进行跟踪服务文档组1或2人主要职责对各部门产生的文档进行格式规范、版本编号和限制、存档文件的检索;帮助质量监督组进行软件质量监督通过适当的人员配备和职责划分,能有效的降低软件开发在后期的失控的可能性,和软件对关键人员的依靠性软件技术风险本系统拟订采纳的两个重大的软件技术是面对对象的构件和基于微软的COM组件技术组件和构件技术都是为了提高软件的牢靠性和软件的可扩展性而采纳的技术手段从技术成熟度上说不存在风险,但为了实现良好的软件构架和稳定的组件,与传统开发方法比较,有相当的多的额外工作须要做,这会给项目工期带来较大的风险回避和限制这部分风险的方法是在项目进行的过程不断的对该阶段进行风险估计和指定有效的里程碑同时采纳〃范例〃方式提高开发人员的构件组件的分析识别实力,适时调整构件组件的数量和粒度软件过程风险软件需求阶段的风险软件的开发是以用户的需求起先,在大多数状况下,用户需求要靠软件开发方诱导才能保证需求的完整,再以书面的形式形成《用户需求》这一重要的文档需求分析更多的是开发方确认需求的可行性和一样性的过程,在此阶段须要和用户进行广泛的沟通和确认需求和需求分析的任何疏漏造成的损失会在软件系统的后续阶段被一级一级地放大,因此本阶段的风险最大设计阶段的风险设计的主要目的在于软件的功能正确的反映了需求可见需求的不完整和对需求分析的不完整和错误,在设计阶段被成倍地放大设计阶段的主要任务是完成系统体系结构的定义使之能够完成需求阶段的即定目标;另一方面也是检验需求的一样性和需求分析的完整性和正确性设计本身的风险主要来自于系统分析人员分析人员在设计系统结构时过于定制,系统的可扩展性较弱,会给后期维护带来巨大的负担,和维护成本的激增对用户来说系统的运用比例会有明显的折扣,甚至造成软件寿命过短反之,软件结构的过于敏捷和通用,必定引起软件实现的难度增加,系统的困难度会上升,这乂会在实现和测试阶段带来风险,系统的稳定性也会受到影响从另一个角度上看,业务规则的改变,或说用户需求和将来软件运行环境的改变都是必定的状况,目前软件设计的所谓〃通用性〃是否就能很好的适应将来需求和运行环境的的改变,是须要仔细折衷的这种折中也蕴涵着很大的风险设计阶段蕴涵的另一种风险来自于设计文档文档的不健全不仅会造成实现阶段的困难,更会在后期的测试和维护造成灾难性的后果,例如根本无法对软件系统进行版本升级甚至是发觉的简洁错误都无从更正实现阶段引入的风险软件的实现从某种意义上讲是软件代码的生产原代码本身也是文档的一部分,同时它又是将来运行于计算机系统之上的实体源代码书写的规范性,可读性是该阶段的主要风险来源规范的代码生产会把属于程序员自身特性风格的成分引入代码的比例降到最低限度从而减小了系统整合的风险维护阶段的风险软件维护包含两个主要的维护阶段,一个是软件生产完毕到软件试运行阶段的维护,这个阶段是一种实环境的测试性维护,其主要目的是发觉在测试环境中不能或未发觉的问题;另一个阶段是当软件的运行不再能适应用户业务需求或是用户的运行环境(包括硬件平台,软件环境等)时进行的软件维护,具体可能是软件的版本升级或软件移植等从软件工程的角度看,软件维护费用约占总费用的55%~70%系统越大,该费用越高对系统可维护性的轻视是大型软件系统的最大风险在软件漫长的运营期内,业务规则确定会不断发展,科学的解决此问题的做法是不断对软件系统进行版本升级,在确保可维护性的前提下逐步扩展系统在软件系统运营期间,主要的风险源自于技术支持体系的无效运转科学的方法是有一支客户支持队伍不断收集运行中发觉的问题,并将解决问题的方法传授给软件系统的全部运用者项目风险表风险评估表中所提到的风险是一般项目在开发过程中都客观存在的,表中所列出的风险系数是指在不对风险进行深化的分析和有效的规避的状况下,该风险项发生的概率比如软件产品的设计目标是运行十年,体系结构不合理的风险是40%的含义是,假如不对系统进行深化的分析,未采纳最合理的软件技术进行设计,则生产出一个不具备可扩展性的软件系统的概率是40%由于客户公司是仍将不断发展的,在十年内,该软件系统都能满意公司运营要求的可能性极低由此而可能产生的灾难性后果是公司在业务发展的时候,必需重新开发新系统向客户供应风险评估,是依据国际惯例进行的例行操作,一方面让客户对潜在的风险有更充分的了解,表明公司诚信为本的看法,另一方面也用以鞭策和激励全体开发人员严格执行开发标准,共同监督项目开发过程,努力避开风险的发生。