APP下载

高质量软件需求文档的生成之道

2018-02-25井涛

电子技术与软件工程 2018年12期
关键词:需求分析

井涛

摘要 需求是软件开发的基础,其载体是需求文档,文档质量的高低就决定了软件的质量高低和生存周期的长短,因此任何单位都会下大力气提升软件需求文档质量。

【关键词】需求开发 需求分析 需求评审

软件开发过程中,需求开发和分析是最早开始的工作,需求文档是整个软件开发的依据和基础,其质量高低决定了软件的成败。众所周知,越到开发的后期,为纠正或弥补需求错误所付出的代价就越大,且会呈几何级数增长。据相关研究表明,在信息传递过程中,如果没有采取措施,信息衰减的最大值能达到60%。即使是面对面交流,需求分析人员也难以100%理解客户的真是意图,有数据甚至显示,经过多层沟通后,软件开发人员仅能获得用户真实意图的8.4%。因此将用户的需求固化在软件需求文档,并提高需求文档的质量是每个单位特别关注的重点。

1 需求文档的产生过程

软件开发一般需要经历需求分析阶段、设计阶段、编码阶段、测试阶段、验收交付阶段五个阶段,后续还有维护阶段,而需求分析阶段产生的需求文档,是后续几个阶段的依据和必备条件。需求文档是需求分析阶段的工作产品,是需求开发和分析的结果,是用户和开发人员之间交流的桥梁,也是设计和编码的基础,又是测试和验收的依据。需求文档需精确地阐述一个软件必须提供的功能、性能、设计和实现的限制条件,并尽可能完整地描述软件预期的外部行为和用户可视化行为,还需包括设计、构造、测试或工程管理的细节。一般需经历如下几个过程:

1.1 需求开发过程

需求开发的主要目的是全面发掘用户的需求,尽量避免后期的需求变动,一般采用现场调研、调查问卷、样机、样例等方式,此时的需求都是从用户的角度提出,尽量保证全面,不要求详细、具体。一般采用任务书的书面形式确定开发任务,任务书是后续需求分析、软件系统测试、软件验收的重要依据。

1.2 需求分析过程

软件需求分析就是解答软件做什么的问题,本过程是需求文档形成的主要过程,是在前述任务书确定了开发任务的基础上,对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。这个过程中需要明确每个功能的具体要求,例如,如何操作、如何展示结果、界面的样式、要求、通信协议、接口、处理的数据、功能间的交互关系等等,最后一般是以软件需求规格说明书的形式呈现全部分析结果。

1.3 需求评审过程

主要是从用户的角度和软件设计的角度,由用户、软件设计人员共同对需求规格说明和初步的用户手册进行评审,以确保软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格说明和初步的用户手册的理解达成一致。因此,任务书和需求规格说明形成后,均需进行需求评审,评审文档中的每一条需求是否符合用户要求、是否有遗漏、是否模糊、前后是否一致、是否无歧义等,使開发方和用户方的理解达成一致,并固定用户需求。

2 需求文档产生过程易忽视的问题

需求文档的产生的三个过程,理论上可以保证需求文档的质量,实际实施时会有较多的原因导致控制失效,甚至会导致需求与用户的要求南辕北辙,造成这种情况的主要原因存

2.1 需求不是来自直接用户

例如,征集需求时只收集了订购方的意见,未能面对真正的使用用户,导致订购方的需求不能代表最终用户的需求;而对那些无特定用户的软件,则采取闭门造需求等。

2.2 需求分析人员技能不足

分析需求时未能真正了解到用户的具体要求,例如,用户要求保密功能,需求人员对保密缺乏相关知识,使得只设计了密码登陆的功能,未能提出更多的需求分析问题征集到用户的不同角色权限不同、数据保密、密码长度、强度等要求全面的保密需求。

3 提高需求文档质量的措施

为解决上述需求过程中发生的问题,需要加强质量控制,不仅对最终产品控制质量,更加需要从过程中进行控制质量,主要的控制点:

3.1 需求开发过程是否合理

(1)是否制定了需求开发计划,计划的合理性经过评审;

(2)需求开发的执行人是否有相应的技能;

(3)选择的调查对象是否能代表最终用户的意见;

(4)是否采用了规定的方法、流程、模板、表格等;

(5)是否未经调查直接编制需求文档。

3.2 需求分析过程是否合理

(1)是否制定了需求分析计划,计划的合理性经过评审;

(2)需求分析人员是否具备相应技能;

(3)是否采用了规定的或者合适的需求分析方法;

(4)是否采用了规定的模板、表格;

(5)是否针对软件的行业特性制定了相应的分析措施。

4 需求文档质量的制度和资源保障

需求文档的质量,除了具备过程质量控制、工作产品质量控制的技术条件,更需要健全的制度、充足的资源保障,需考虑建立以下制度:

4.1 建立合理的制度

需求文档的质量一般在软件研发的后期才能体现,需求形成过程的所有检查都要以制度的形式固化,并对需求开发、分析、评审等过程规定具体、可行的方法;

4.2 制定需求指南

从需求的获取方法、分析方法、表述方法等方面制定适合本单位的详细的指南,比如,尽量采用图、表、原型;构建业务场景;建立术语表,由于需求采用自然语言的特性,同一词语,在不同语境下的意思会完全不同,因此术语表,不止是对业务领域内特有的专用术语,对一些平常可见的、通用的术语,同样要定义,避免歧义。如“系统”一词,有时是软件本身,有时有指软、硬件结合体、有时又是指多个组件的结合体。

5 高质量需求文档具备的特征

好的需求文档应具备如下特征:

5.1 完整、正确性

每一项需求的功能都描述清楚、准确、无冲突,使后续开发、测试人员获得所有必要信息。

5.2 可行性

每一项需求都必须能在己知能力和约束条件内实现,对于技术上无法实现,或者成本上无法负担的需求,则不可行。

6 结束语

高质量的需求文档是软件研发成功的基础,在实践过程中,需持续进行经验总结和改进并以模板、指南、制度的形式固化,是一个不断改进的长期过程。

参考文献

[1]覃征,软件项目管理[M].北京:清华大学出版社,2009.

[2]张海潘.软件工程导论[M].北京:清华大学出版社,2005.

[3](澳)麦斯阿塞克,需求分析与系统设计[M].北京:机械工业出版社,2009-09.

猜你喜欢

需求分析
基于智能手机的高职学生移动学习需求分析研究
大学师生需求发展分析
基于UML技术的高校贫困生管理系统建模分析
学习者需求对独立学院大学英语教学的启示