3.1.4 需求分析的具体任务
需求分析阶段的具体任务可以划分为六个方面。
(1)确定对系统的综合要求。
对系统的综合要求主要包括以下九个方面。
①功能需求。指所开发的软件系统必须向用户提供的服务。通过分析应该划分出软件系统必须完成的所有功能。
②性能需求。指系统必须满足的定时或容量约束,通常包括系统响应时间、所占用磁盘容量、所需内存量以及精度等。例如,“人事管理系统查询程序必须在30秒内反馈查询结果,占用内存不应超过200MB”。
③可靠性和可用性需求。可靠性需求描述需定量描述系统的可靠性,例如,“自动驾驶系统一万公里内不应出现两次以上故障”。
可用性需求则是从系统可正常使用的角度定量描述了软件系统可以使用的程度。例如,“自动分拣系统一周之内可以正常使用的天数在6天以上”。
④环境需求。指设计或实现软件系统所需要遵守的外部限制条件。如机型、外设、硬件配置、操作系统平台和数据库管理系统以及其他支撑软件、实现语言。
⑤接口需求。指应用系统与它的环境通信的格式。常见的接口需求包括:用户接口需求,硬件接口需求,软件接口需求,通信接口需求。
⑥出错处理需求。指系统对运行中出现的错误应该怎样响应。此类错误可以分为两类:一类是系统在运行中有关环境出现外部问题,系统应该如何响应;一类是系统自身运行产生错误,应该如何响应。但是,应该有选择地提出此类需求,毕竟成本和效率也是软件工程的主要目标之一,况且人们所开发出的相关系统也是以正确性为导向的。为了控制成本和提高效率,应对系统本身错误的检测仅限于系统的关键部分或核心部分,而且应该尽可能少。(https://www.daowen.com)
⑦安全性需求。指系统对数据安全、操作安全方面的需求。例如,软件功能使用中的权限边界要去,数据防泄漏、防篡改要求、功能防越权使用要求以及极端条件(物理环境、遭受恶意攻击)下可以正常使用的需求等。
⑧逆向需求。指系统不应该做什么。理论上这类需求有无限多个,为了控制成本和设计实现效率,应该仅选取为了澄清真实需求而消除需求误解的那些逆向需求。
⑨将来可能提出的要求。应该明确列出根据分析将来很可能会提出的要求。目的是在设计过程中对系统将来的可能扩展做预先准备,方便将来的系统扩充和完善。
(2)分析系统的数据需求。任何一个软件系统本质上都是一个信息处理系统,它所必须提供的服务,实质上可以归纳为信息变换和信息输出,这在很大程度上决定了系统的面貌,对系统的设计与实现具有深远的影响,因此,必须分析系统的数据要求,这项工作也是需求分析的一个重要内容。分析系统的数据需求通常采用建立数据模型的方法,主要描述系统所需要的静态数据、动态数据、数据库结构、数据字典。
(3)建立系统的逻辑模型。通过以上两项的分析结果可以建立系统的详细的逻辑模型(即系统所包含的处理、处理之间的逻辑关系以及系统所需处理的数据结构)。系统的逻辑模型通常包括数据流图、实体联系图、状态转换图、数据字典及主要处理的算法。
(4)修订系统开发计划。依据在需求分析过程中获得的对系统更深入、更具体、更准确的了解,可以更可靠地估计系统的成本和进度,以修正以前制订的开发计划。
(5)编写软件需求规格说明书。编写软件需求规格说明书(Software Requirement Specification,SRS)的目的是建立用户和开发者对未来软件的共同理解,相当于两者之间的一份技术合同,是进一步设计和实现软件的基础,也是进行确认测试和验收测试的基准。需求说明书应当具有准确、一致、完整、清晰、可检验、直观、易读和可修改特性。书写软件需求规格说明书应当尽量采用标准的图形、表格和简单的符号,尽量不用用户不易理解的术语,使不熟悉计算机的用户也能一目了然。
编写软件需求规格说明书可以参照GB/T 9835—2008《计算机软件需求规格说明规范》,此标准给出了软件需求规格说明(SRS)的编制要求、内容框架和提纲示例。该规范不提倡把软件需求说明书划分成等级,避免把SRS定义成更小的需求子集。该规范既适用于软件客户,也适用于软件开发者。
(6)需求分析评审。评审需求分析结果的目的是发现其中的错误、遗漏和矛盾,需要对需求分析的各项内容进行全面仔细的审查,以确认“软件需求规格说明书”,使其成为合格的软件设计和实现的基础。