软件需求全周期的风险监控

时间:2022-07-03 12:04:43

软件需求全周期的风险监控

【摘要】随着社会的发展,个人以及公司对软件的需求越来越多,软件在国内的使用范围越来越广,同时,其风险也越来越大。本文阐述了软件需求概念,然后,分析了软件风险管理的内容,接着,分析了如何进行软件风险监控。最后,本文,进一步分析了降低软件需求风险的思路与方法。

【关键词】软件;需求;全周期;风险;监控

中图分类号:X820.4文献标识码: A 文章编号:

一、前言

分析了软件的需求之后,在软件研发、推出的各个阶段,其风险依然存在,因此,要想提高软件的使用效果,满足当今社会对软件的各种需求,我们必须对软件需求全周期的风险进行必要的监控,使得软件的需求不仅能够得到满足,同时其风险也降到最低。

二、软件需求概念

1、在系统开发过程中,不同角色或不同的人对“需求”的理解是不同的。用户所定义的“需求”对软件开发者来说似乎是一个较高层次的概念,而软件开发人员所说的“需求”对用户来说又象是详细设计了。因此,目前对软件需求还没有一个被公认的、毫无二义性的定义,但从一般意义上讲,软件需求可以理解为:是指明软件系统必须实现的功能的规格说明,它描述了系统的行为、特性或属性,是在软件开发过程中对系统的约束。它可以触发一个程序或一个系统的开发工作的开始。

2、需求工程

需求的全过程叫做需求工程,包括两个方面的内容:需求开发、需求管理。需求管理包括需求的跟踪、需求的变更管理等内容,可以与项目管理相结合来完成。需求开发是需求的建立过程。本文只对需求开发中的方法进行研究与探讨。

需求开发可以进一步分为:问题获取、分析、编写规格说明和验证四个阶段。这些子项包括软件类产品中需求收集、评价、编写文档等所有活动。

3、需求的层次概念

根据需求在系统开发过程中所起的作用,可以将软件需求分为三个层次:业务需求、用户需求和功能需求。

业务需求:反映了用户单位或客户对系统(产品)的高层次的要求,一般用于确定新系统的目标和范围。业务需求一般来源于用户单位或客户的高层领导,在项目视图和范围(项目构想)文档中描述。

用户需求:用户使用软件系统必须要完成的任务,是系统要实现的使用功能。用户需求一般来源于用户单位或客户的底层使用者,他们一般是系统的最终用户。用户需求是用户需求的下一个层次,必须能够实现业务需求。用户需求可以在用例文挡中描述。

功能需求:是需求分析者对用户需求进行分析、抽象而成,它可以满足用户对系统的要求,从而完成其工作任务。而软件开发人员则根据功能需求来设计软件,以实现系统必须的功能。功能需求一般在需求规格说明书中描述。在描述功能需求的文档中,也需要包括非功能需求,用于对功能需求的补充,便于软件开发人员据以设计优秀的软件系统。区分需求层次的意义在于:确定系统的目标、范围和对系统的使用功能的要求,保证用户需求与业务需求相一致,最终使得系统应具备的功能(功能需求)符合用户的要求。

三、软件风险管理

软件风险管理是存在于软件整个开发过程中的诸多风险管理活动。风险管理相关人员可以利用一些相关的工具和方法对软件项目的风险因素进行识别、分析和风险评估,并采用有效的技术和手段对风险进行管理和控制,尽量地消除或减少风险造成的损失和影响,确保项目顺利完成。

风险通常被定义为损失的可能性,并且设定风险具备两大属性:可能性和损失,可能性即为风险发生的概率,而损失则是预期和后果的差异程度。在很长一段时期内,风险评估一直使用风险的可能性和损失的乘积作为风险损失的评价标准,但是这种评估往往并不准确,一个几乎零概率发生的风险存在着灾难性的后果,它的极小发生概率和高风险后果的乘积可能和一些发生频率非常高但风险后果极小的风险评估值相同,因此很难判断孰重孰轻。

软件风险指从项目启动包括开发过程以及软件产品中出现损失的可能性。软件风险可以划分为三类风险:软件项目风险、过程风险和产品风险。软件风险管理即在软件开发过程中持续地进行软件风险的识别、分析和评估,从而制定解决问题的措施并不断监视风险状态的过程,保证风险始终处于开发组织的控制之内。它主要包括了风险识别、风险分析、风险规划和风险监控四个阶段。风险分析和管理人员通过风险识别和风险分析尽可能地挖掘和认识项目中存在的各种风险,再通过风险评估预测风险的影响程度,并根据结果制定相应的措施和管理方法,利用有效的手段和技术对项目风险进行高效的管理和监控,减少风险可能造成的损失。

四、软件风险监控

风险监控采用审核检查法、监视单、项目风险报告、费用偏差分析法等方法,利用直方图、因果分析图、帕累托图等工具直观体现。在雷达软件系统中,为了弥补软件测试工作的不足,雷达软件系统成立了软件质量保证(SQA)小组,准确的方式应该称过程与产品质量保证(PPQA),主要完成以下2项任务:软件项目的第3方审计和过程审计,防患于未然。

1、需求阶段的产品审计为确认能够正确构建系统,PPQA对需求的正确性、一致性、无二义性、完备性、相关性、可测试性、可跟踪性等通过检查单方式确认,针对用户需求5W1H(why,what,who,when,where,how),明确是否正确反映客户意图。进行:

(一)需求文档检查:对需求分析人员提供的文档或者原型以完整性、正确性和可行性为基础进行严格评审;

(二)需求确认记录检查;

(三)需求不符合项报告。

2、需求阶段过程审计

(一)对于需求变更的管理:制定有关系统需求变更流程体系文件,并严格执行。

(二)采用变更7步法

(1)变更申请:客户口述、电话、当面交流进行记录,确认变更的必要性;

(2)评价对工期、成本、质量等的影响,进行细化、量化和图形化;

(3)评价对于不同项目阶段的影响:稳定性、可靠性、安全性、测试性、缺陷密度等;

(4)进行风险分析,包括人员、效率、变数等;

(5)估算成本:人员、工时等人力成本及材料、软硬件、差旅、调研等非人力成本;

(6)进行技术评审;

(7)记录变更决定并登记变更记录。

五、降低需求分析风险的思路与方法

1、设法与用户建立友好的沟通环境

在与用户方的沟通中,要善于倾听,尽量不做无谓的抢话。当然不仅仅是分析需求,如果能在理解用户的需求上,做一些创新则更好。比如,可以优化用户的审批流程,减少用户对机器设备的使用等等。

成功的项目需要有序、频繁的客户反馈。不是依赖于合同或者关于工作的陈述,而是让软件的客户和开发团队密切地在一起工作,并尽量经常地提供反馈信息。

2、可行性分析

在既有可利用资源(包括时间,成本、人员)的条件下,分析每项需求实施的可行性,提出需求实现的有关风险,包括需求间的冲突,技术难点和设备要求以及软件性能需求。

3、需求等级划分

在平时的调研中,确定各项需求实现的优先级别,以优先级为基础进行功能点的开发。特别是用户的核心需求一定要花大力气去做。

4、需求范围界定

确认哪些是一期,哪些是二期或是未来要做的功能;并且保证需求具有可重用性和可扩展性。

5、定期向用户决策层汇报

引导用户需求向开发方有利的地方发展。向用户决策层汇报时间可视项目的情况而定,一般可以一周做一次周报,一月做一次月报。

六、结束语:

我们了解软件需求全过程具有风险性是为了提高我们对风险的防范意识,同时,我们需要根据当今软件需求过程中的风险制定出可行性的应对措施,这样才能够尽可能的避免软件需求的风险,提高软件的使用效果。

【参考文献】

[1]罗晓沛,候炳辉主编.系统分析师教程[M].清华大学出版社,2003.

[2]RobertC.Martin著,邓辉译.敏捷软件开发原则、模式与实践[M].清华大学出版社,2003.

[3]刘芳.软件需求风险管理及控制在雷达系统中的应用[J].信息化研究.2012(04)

上一篇:农村供水工程规划设计中应注意的问题 下一篇:对我国企业人力资源管理的探讨