第三章 软件需求分析基础
软件需求分析是软件生存周期中最关键一步,是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
第一节 需求分析的任务与步骤
软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求。
需求分析阶段研究的对象是软件项目的用户要求。一方面,必须全面理解用户的各项要求,但又不能全盘接受所有的要求,另一方面,要准确地表达被接受的用户要求。只有经过确切描述的软件需求才能成为软件设计的基础。
软件需求分析的任务是准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用《需求规格说明书》规范的形式准确地表达用户的需求。它具体包括深入描述软件的功能和性能、确定软件设计的约束和软件同其他系统元素的接口细节、定义软件的其他有效性需求、需求分析研究的对象是软件项目的用户要求、准确地表达被接受的用户要求、确定被开发软件系统的系统元素、将功能和信息结构分配到这些系统元素中。
需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。通常软件开发项目是要实现目标系统的物理模型。作为目标系统的参考,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。
需求分析阶段的工作,可以分成以下四个方面:
1.问题识别
首先系统分析人员要确定对目标系统的综合要求,即软件的需求。并提出这些需求实现条件 ,以及需求应达到的标准 。这些需求包括功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求,并预先估计以后系统可能达到的目标。此外,还需要注意其他非功能性的需求。如针对采用某种开发模式,确定质量控制标准、里程碑和评审、验收标准、各种质量要求的优先级等,以及可维护性方面的需求。
此外,要建立分析所需要的通信途径,以保证能顺利地对问题进行分析。分析所需的通信途径如图3-1-1所示。
图 3-1-1 软件需求分析的通信途径
2.分析与综合
问题分析和方案的综合是需求分析的第二方面的工作。分析员必须从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系 、接口特性和设计上的限制 ,判断是否存在因片面性或短期行为而导致的不合理的用户要求,是否有用户尚未提出的真正有价值的潜在要求 。剔除其不合理的部分 ,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。
3.编制需求分析阶段的文档
已经确定下来的需求应当得到清晰准确的描述。通常我们把描述需求的文档叫做软件需求说明书。同时,为了确切表达用户对软件的输入输出要求,还需要制定数据要求说明书及编写初步的用户手册。
4.需求分析评审
作为需求分析阶段工作的复查手段,应该对功能的正确性,文档的一致性、完备性、准确性和清晰性,以及其他需求给予评价。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格进行。评审结束应有评审负责人的结论意见及签字。除分析员之外,用户/需求者,开发部门的管理者,软件设计、实现、测试的人员都应当参加评审工作。