目的
确定软件系统必须 做什么,确定软件系统的 功能、性能、数据 和 界面 等要求,从而确定系统的逻辑模型
需求包括
(1)功能需求。考虑系统要做什么,在何时做,在何时以及如何修改或升级。
(2)性能需求。考虑软件开发的技术性指标。例如,存储容量限制、执行速度、响应时间
及吞吐量。
(3)用户或人的因素。考虑用户的类型。例如,各种用户对使用计算机的熟练程度,需要接受的训练,用户理解、使用系统的难度,用户错误操作系统的可能性等。
(4)环境需求。考虑未来软件应用的环境,包括硬件和软件。对硬件设备的需求包括机型、外设、接口、地点、分布、湿度、磁场干扰等;对软件的需求包括操作系统、网络、数据库等。
(5)界面需求。考虑来自其他系统的输入,到其他系统的输出,对数据格式的特殊规定,对数据存储介质的规定。
(6)文档需求。考虑需要哪些文档,文档针对哪些读者。
(7)数据需求。考虑输入、输出数据的格式,接收、发送数据的频率,数据的准确性和精度,数据流量,数据需保持的时间。
(8)资源使用需求。考虑软件运行时所需要的数据、其他软件、内存空间等资源;软件开发、维护所需的人力、支撑软件、开发设备等。
(9)安全保密要求。考虑是否需要对访问系统或系统信息加以控制,隔离用户数据的方法,用户程序如何与其他程序和操作系统隔离以及系统备份要求等。
(10)可靠性要求。考虑系统的可靠性要求,系统是否必须检测和隔离错误;出错后,重启系统允许的时间等。
(11)软件成本消耗与开发进度需求。考虑开发是否有规定的时间表,软/硬件投资有无限制等。
(12)其他非功能性要求。如采用某种开发模式,确定质量控制标准、里程碑和评审、验收标准、各种质量要求的优先级等,以及可维护性方面的要求。
分类
- 业务需求(整体全局)
- 用户需求(用户视角)
- 系统需求(计算机化)
- 功能需求
- 性能需求,如:1s必须响应
- 设计约束,如:不能使用Python语言
QFD
- 基本需求(明示,常规需求)
- 期望需求 (隐含)
- 兴奋需求 (不需要,多余)
需求工程
获取方法
- 收集资料
- 联合讨论会
- 用户访谈
- 书面调查
- 现场观摩
- 参加业务实践
- 阅读历史文档
- 抽样调查
需求分析与协商
258页
系统建模
着重于描述 系统要做什么,而不是如何去做
目标软件的模型 不应涉及软件的实现细节
常用的分析方法有以下两种:
- 面向 数据流 的结构化分析方法(SA)
- 面向对象 的分析方法(OOA)
需求规约
259页
需求验证
目的:是要检验需求功能的正确性、完整性和清晰性,是否能够反映用户的意愿
259页
需求管理
获取、组织并记录系统需求的系统化方案,以及一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程。
需求的任务和需求的过程
1、问题识别,定位当前问题
2、分析与综合,确定大致 解决方案、功能方案
3、编制 需求分析文档,把功能方案记下来
4、需求分析与 评审,确保功能方案的可行性
真题
某企业财务系统的需求中,属于功能需求的是()
A、每个月特定的时间发放员工工资
B、系统的响应时间不超过3秒
C、系统的计算精度符合财务规则的要求
D、系统可以允许100个用户同时查询自己的工资
分析
A:是功能需求,正确
B:性能需求
C:性能需求
D:性能需求
答案
A