正文
在进行需求获取之前,首先要明确需要获取什么,也就是需求包含哪些内容。软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通常这些需求包括功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密需求、可靠性需求、软件成本消耗与开发进度需求等,并预先估计以后系统可能达到的目标。此外,还需要注意其他非功能性的需求。具体内容如下。
需求 | 说明 |
功能需求 | 考虑系统需要做什么,在何时做,在何时以及如何修改或升级 |
性能需求 | 考虑软件开发的技术性指标。例如,存储容量限制、执行速度、响应时间及吞吐量 |
用户或人的因素 | 考虑用户的类型。例如,各种用户对使用计算机的熟练程度,需要接受的训练,用户理解、使用系统的难度,用户错误操作系统的可能性等等(千万不要把用户当做和你一样的专业人士) |
环境需求 | 考虑未来软件应用的环境,包括硬件和软件。对硬件设备的需求包括机型、外设、接口、地点、分布、湿度、磁场干扰等;对软件的需求包括操作系统、网络、数据库等 |
界面需求 | 考虑来自其他系统的输入,到其他系统的输出,对数据格式的特殊规定,对数据存储介质的规定 |
文档需求 | 考虑需要哪些文档,文档针对哪些读者。 |
数据需求 | 考虑输入、输出数据的格式,接收、发送数据的频率,数据的准确性和精度,数据流量,数据需保持的时间。 |
资源使用需求 | 考虑软件运行时所需要的数据、其他软件、内存空间等资源;软件开发、维护需要的人力、支撑软件、开发设备等 |
安全保密需求 | 考虑是否需要对访问系统或系统信息加以控制,隔离用户数据的方法,用户程序如何与其他程序和操作系统隔离以及系统备份要求等。 |
可靠性需求 | 考虑系统的可靠性要求,系统是否必须检测和隔离错误;出错后,重启系统允许的时间等 |
软件成本消耗与开发进度需求 | 考虑开发是否有规定的时间表,软/硬件投资有无限制等 |
其他非功能性需求 | 如采用某种开发模式,确定质量控制标准、里程碑和评审、验收标准、各种质量要求的优先级等,以及可维护性方面的要求。 |