软考高级 · 架构设计师
Day 3 | 需求分析与规格说明:搞不清需求,后面全白搭
2026-07-03 · 豪哥安全团队
昨天我们聊了软件生命周期和开发模型,今天深入一个最关键的环节:需求分析。
说句大实话:80%的软件项目失败,都是因为需求没搞对。 需求错了,后面设计、编码全错。
需求是什么?不只是"用户要什么"
需求分三层:
1. 业务需求:企业要达到什么目标?比如"提高客户满意度"。
2. 用户需求:用户要用系统干什么?比如"能查订单状态"。
3. 功能需求:系统具体要提供什么功能?比如"提供一个订单查询页面,输入订单号返回状态"。
还有非功能需求:性能、安全性、可用性、可维护性……这些 often 被忽略,但很重要。
需求分析的方法
1. 访谈法:直接和用户聊。问开放性问题,别问"要不要"。
2. 问卷法:适合大量用户,但问题设计要科学。
3. 观察法:看用户怎么工作,比听他们说更准确。
4. 原型法:做个原型给用户看,快速确认需求。
需求规格说明书(SRS)
需求分析的结果要写成需求规格说明书(SRS)。好的SRS要满足:
- 无歧义:一句话只能有一种理解。 - 完整:所有需求都写了。 - 一致:需求之间不矛盾。 - 可测试:能写出测试用例验证需求是否实现。
历年真题解析
【2022年下半年真题】以下哪个不是需求分析阶段的产出? A. 需求规格说明书 B. 可行性研究报告 C. 用户故事 D. 原型
答案:B 解析:可行性研究报告是可行性研究阶段的产出,不是需求分析阶段的。
实战练习
练习题:写一个"在线购物系统"的3个功能需求和2个非功能需求。
备考建议
1. 理解需求的三层结构(业务、用户、功能)。 2. 掌握需求分析方法(访谈、问卷、观察、原型)。 3. 熟悉SRS的质量属性(无歧义、完整、一致、可测试)。
明天我们聊软件设计与模块化,这是把需求变成可实施方案的关键步骤。
夜雨聆风