系统需求分析
需求分析是软件生存周期中相当重要的一个阶段。由于开发人员熟悉计算机但不熟悉应用
领域的业务,用户熟悉应用领域的业务但不熟悉计算机,因此对于同一个问题,开发人员和用
户之间可能存在认识上的差异。在需求分析阶段,通过开发人员与用户之间的广泛交流,不断澄清一些模糊的概念,最终形成一个完整的、清晰的、一致的需求说明。可以说,需求分析的
好坏将直接影响到所开发的软件的成败。
1 需求分析的任务
需求分析主要是确定待开发软件的功能、性能、数据和界面等要求。具体来说,可有以下
五个方面:
- 确定软件系统的综合要求,主要包括系统界面要求、系统的功能要求、系统的性能要
求、系统的安全和保密性要求、系统的可靠性要求、系统的运行要求,异常处理要求和将来可
能提出的要求。其中,系统界面要求是指描述软件系统的外部特性,即系统从外部输入哪些数
据,系统向外部输出哪些数据;系统的功能要求是要列出软件系统必须完成的所有功能;系统
的性能要求是指系统对响应时间、吞吐量、处理时间,对主存和外存的限制等方面的要求;系
统的运行要求是指对硬件、支撑软件和数据通信接口等方面的要求;异常处理要求通常是指在
运行过程中出现异常情况时应采取的行动以及希望显示的信息,例如临时性或永久性的资源故
障,不合法或超出范围的输入数据、非法操作和数组越界等异常情况的处理要求;将来可能提
出的要求主要是为将来可能的扩充和修改做准备。 - 分析软件系统的数据要求,包括基本数据元素、数据元素之间的逻辑关系、数据量和
峰值等。常用的数据描述方法是实体-关系模型(E-R模型)。 - 建立系统的逻辑模型。在结构化分析方法中可用数据流图来描述:在面向对象分析方
法中可用类模型来描述。 - 修正项目开发计划。在明确了用户的真正需求后,可以更准确地估算软件的成本和进
度,从而修正项目开发计划。 - 如有必要,可开发一个原型系统。对一些需求不够明确的软件,可以先开发一个原型
系统,以验证用户的需求。
在此需要强调的是,需求分析阶段主要解决“做什么”的问题,而“怎么做”则是由设计
阶段来完成。
2 需求的分类
软件需求就是系统必须完成的事以及必须具备的品质。软件需求包括功能需求、非功能需
求和设计约束三方面的内容。
- 功能需求:所开发的软件必须具备什么样的功能,可以用结构化的功能文档来展示。
- 非功能需求:是指产品必须具备的属性或品质,如可靠性、性能、响应时间、容错性
和扩展性等。 - 设计约束:也称为限制条件、补充规约,这通常是对解决方案的一些约束说明。