(一)需求分析
通过广泛交流,弥合开发人员(懂技术)和用户(懂业务)之间可能存在的认识差异。
最终形成一个完整、清晰、一致的需求说明。
需求分析的好坏,将直接影响项目成败。
(二)需求分析的任务
主要是确定待开发软件的功能、性能、数据和界面等要求。
步骤 | 说明 | |
1 | 确定系统综合要求 | 包括系统界面要求(外部特性:输入输出数据)、功能要求、性能要求(响应时间、吞吐量、处理时间、主外存限制等)、安全和保密性要求、可靠性要求、运行要求(软硬件和数据通信接口等)、异常处理(资源故障、不合法输入、非法操作和数组越界等)要求和未来可能的要求。 |
2 | 分析系统数据要求 | 包括基本数据元素、数据元素之间的逻辑关系、数据量和峰值等。 常用数据描述方法:实体-关系模型(E-R模型) |
3 | 导出系统逻辑模型 | 在结构化分析方法中可用数据流图来描述; 在面向对象分析方法中可用类模型来描述。 |
4 | 修正项目开发计划 | 更准确地估算软件成本和进度,从而修正项目开发计划 |
5 | 开发演示原型 | 需求不明确时,可先开发原型系统,用于验证用户需求 |
(三)需求分类
ID | 分类 | 说明 | 举例 |
1 | 功能需求 | 软件必须具备什么样的功能 | |
2 | 非功能需求 | 产品必须具备的属性或品质, 如可靠性、性能、响应时间、容错性和扩展性等 | 系统2万人同时在线、99.9999%可靠性、响应时间在2s以内、语音识别准确度98% |
3 | 设计约束 | 也称为限制条件、补充规约,通常是对解决方案的约束说明 | ①业务环境(客户):预算、法律法规 ②使用环境(用户):用户群体、喜好 ③构建环境(开发者):团队实力、管理能力 ④技术环境:服务器、开发语言、技术趋势 |