【软件工程】需求工程:需求规格说明与需求验证

📅2026/7/13 14:28:13 👁️次浏览
【软件工程】需求工程:需求规格说明与需求验证
考点频率★★★★☆选择题常考SRS特征验证与确认的辨析是高频易错点难度⭐⭐建议重点掌握SRS的六大质量特征、需求验证的常用方法以及“验证”与“确认”的本质区别1️⃣ 需求规格说明把“蓝图”写成“合同”承接上篇文章需求分析阶段产出了数据流图、用例图等模型但这些模型还不能直接交给开发人员编码——因为图是分散的需要一份完整的、结构化的、无二义性的文档来统一所有人的认知。软件需求规格说明书SRSSoftware Requirements Specification就是这份文档。它是需求工程的核心产出物是开发团队和用户之间的一份“技术合同”——开发团队承诺按SRS实现功能用户承诺验收标准以SRS为准。SRS包含哪些内容一份典型的SRS通常包含以下部分章节主要内容引言项目背景、术语定义、适用范围总体描述系统主要功能、用户角色、硬件/软件环境、设计约束如必须使用特定数据库、遵守特定法规外部接口需求用户界面、硬件接口、软件接口、通信接口功能需求系统“必须做什么”——每个功能模块的详细描述非功能需求性能响应时间、吞吐量、安全性、可靠性、可维护性等质量属性数据需求数据字典、数据格式、数据库要求附录业务流程图、补充说明等SRS的六大质量特征软考高频考点一份合格的SRS必须满足以下特征这也是选择题中常考的考点特征含义反例正确性每条需求都真实反映了用户的意图用户说要“导出Excel”你写成了“导出PDF”完整性包含所有需求没有遗漏漏掉了“密码输错3次锁定账号”的规则一致性需求之间不矛盾前面说“支持1000并发”后面说“内存限制只支持100并发”明确性每条需求无二义性只有一种解释“系统响应要快” ❌ → “系统响应时间≤2秒” ✅可验证性每条需求都可以通过测试或评审来验证“用户体验好” ❌ → “用户可在3步内完成下单” ✅可追踪性每条需求都有唯一编号可从设计追溯到测试需求编号 REQ-101对应设计文档 SD-101对应测试用例 TC-101软考常考题目给出一句需求描述让你判断它违反了SRS的哪个特征。比如“系统应具有良好的用户界面” → 违反明确性什么叫“良好”没法量化。2️⃣ 需求验证怎么确认“蓝图画对了”需求规格说明书写完后不能直接就扔给开发团队开干——因为里面可能有错误、遗漏、矛盾。需求验证就是检查SRS“是否正确”的过程。需求验证的常用方法方法说明适用场景正式评审组织各方代表用户、需求分析师、架构师、测试代表召开会议逐条评审SRS大型项目、安全关键系统同行评审由同级别需求分析师互相检查找出逻辑漏洞和遗漏点常规项目走查需求撰写人向相关人员逐条解释需求发现不一致和含糊之处需求复杂、难理解的场景原型验证构建快速原型低保真/高保真让用户试用验证需求是否符合用户真实预期需求不明确、用户难以具象化的场景测试用例预编写在编码前先编写验收测试用例如果某个需求写不出测试用例说明该需求不可验证违反了“可验证性”特征检验SRS的可测试性3️⃣ 需求验证 vs 需求确认极容易混淆在软考中验证Verification和确认Validation是两张极易混淆的“面孔”。很多同学看到“确认”就以为是“验证”结果丢分。记住这个经典定义概念英文核心问题关注点检查对象验证Verification“Are we building the product right?”我们正确地构建了产品吗过程是否正确、文档是否规范需求文档、设计文档、代码是否符合规范确认Validation“Are we building the right product?”我们构建了正确的产品吗最终产品是否满足用户真实需求原型、可运行系统是否符合用户预期打个比方验证Verification检查你手里的设计图纸——每根线有没有画歪尺寸有没有标错这就像老师检查你的作业有没有语法错误。确认Validation把你盖好的房子给客户看——客户说“我要的是三室一厅你给我整了个两室一厅”这就像用户试用产品后反馈是否满意。放在需求工程中需求验证检查SRS文档本身——需求写全了吗前后矛盾吗有没有歧义检查“图纸”需求确认把原型或最终产品拿给用户看——用户满意吗这是你想要的吗检查“成品”考试口诀验证看文档过程确认看用户结果。验证明“对不对”确认问“好不好”。4️⃣ 经典例题例题1在需求工程中需求规格说明书SRS的“明确性”特征是指 。A. 每条需求都有唯一的编号B. 每条需求都真实反映了用户的意图C. 每条需求只有一种解释不存在二义性D. 每条需求都可以通过测试来验证解析A是可追踪性B是正确性D是可验证性C是明确性。选C。例题2某项目团队在SRS中写道“系统应具备良好的扩展性。”以下说法正确的是 。A. 该需求符合“明确性”特征B. 该需求不符合“明确性”特征C. 该需求符合“可验证性”特征D. 该需求符合“一致性”特征解析“良好的扩展性”是一个模糊的描述——什么叫“良好”是支持增加新模块还是支持数据库迁移没有量化标准违反了“明确性”特征。选B。例题3判断需求验证和需求确认本质上是同一回事都是检查需求是否正确。 解析错误。需求验证检查SRS文档本身是否正确、规范验证需求确认检查最终产品是否满足用户真实需求确认。两者对象不同、目的不同。5️⃣ 记忆口诀SRS六大特征正完一明可追正正确完完整一一致明明确可可验证追可追踪。验证与确认验文档、认用户验过程、认结果。需求验证四方法评同走原测正式评审、同行评审、走查、原型验证、测试用例预编写。6️⃣ 小测验评论区对答案某项目团队在需求规格说明书SRS中描述需求为“用户登录后系统应显示最近的通知。”在需求评审时测试工程师指出该需求无法编写明确的测试用例因为“最近”没有定义。这违反了SRS的哪个特征该阶段属于验证还是确认A. 完整性验证B. 明确性验证C. 完整性确认D. 明确性确认本专栏日更点击头像 → 专栏《软考中级高频考点》订阅第一时间接收新内容#软考中级 #软件设计师 #需求规格说明 #需求验证 #软件工程 #软考备考