软件需求分析
需求分析是软件生存周期中相当重要的一个阶段。
由于开发人员熟悉计算机但不熟悉应用领域的业务,用户熟悉应用领域的业务但不熟悉计算机,因此对于同一个问题,开发人员和用户之间可能存在认识上的差异。
在需求分析阶段,通过开发人员与用户之间的广泛交流,不断澄清一些模糊的概念,最终形成一个完整的,清晰的,一致的需求说明。
可以说,需求分析的好坏将直接影响到所开发的软件的成败。
1、需求分析的任务
需求分析主要是确定待开发的软件的功能、性能、数据和界面等要求。
具体来说,可有以下几点。
(1)确定软件系统的综合要求
①系统界面要求。
描述软件系统的外部特性,即入系统从外部输入哪些数据,系统向外部输出哪些数据
②系统的功能要求。
列出软件系统必须完成的所有功能。
③系统的性能要求。
如响应时间、吞吐量、处理时间等。
④安全性、保密性和可靠性方面的要求。
⑤系统的运行要求。
如对硬件、支撑软件和数据通信接口等的要求。
⑥异常处理要求。
在运行过程中出现一场情况(如临时性或永久性的资源故障,不合法或超出范围的输入数据、非法炒作和数组越界等)时应采取的行动以及希望显示的信息。
⑦将来可能提出的要求。
主要是为将来可能的扩充和修改做准备。
(2)分析软件系统的数据要求。
包括基本数据元素、数据元素之间的逻辑关系、数据量和峰值等。
常用的数据描述手段是实体——关系模型。
(3)导出系统的逻辑模型。
在结构化分析方法中可用数据流图来描述;在面向对象分析方法中可用类模型来描述。
(4)修正项目开发计划。
在明确了用户的真正需求之后,可以更准确地估算软件的成本和进度,进而修正项目开发计划。
(5)如有必要,可开发一个原型系统。
对一些需求不够明确的软件,可以先开发一个原型系统,以验证用户的需求。
需要再次强调的是,需求分析阶段主要解决“做什么”的问题,而“怎么做”则由设计阶段来完成。
2、需求的分类
软件需求就是系统必须完成的事以及必须具备的品质。
软件需求包括功能需求、肺功能需求和设计约束三方面的内容。
(1)功能需求。
所开发的软件必须具备什么样的功能。
(2)非公能需求。
是指软件必须具备的属性或品质,如可靠性、性能、响应时间、容错性和扩展性等。
(3)设计约束。
也成为限制条件、补充规约,这通常是对解决方案的一些约束说明。
3、软件需求分析方法
需求分析方法由对软件的数据域和功能与的系统分析过程及其表示方法组成。
它定义了表示系统逻辑视图和物理视图的方式。
大多数的需求分析方法是由数据驱动的,也就是说,这些方法提供了一些表示数据域的机制,开发人员根据这种表示,确定软件的功能及其他特
性,最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。
数据域具有三种属性:数据流、数据内容和数据结构。
通常一种需求分析方法总要利用其中一种或几种属性。
目前已经出现了许多需求分析方法,每一种分析方法都引入了不同几号和分析策略,但是他们都具有以下的共性。
(1)支持数据与分析的机制。
(2)功能表示的方法。
(3)接口的定义。
(4)问题分解的机制以及抽象的支持。
(5)逻辑视图和物理视图。
(6)系统抽象模型。
P.S.仅供参考!。