【系统分析师】11.3 软件需求获取

🎯 一、概述:挖掘用户真实需求的"探矿工程"

软件需求获取是需求工程的第一阶段,其核心任务是通过系统化的方法与用户、客户及其他利益相关者进行沟通,全面收集、理解并记录他们对目标系统的期望和约束。它是连接用户与开发团队的"第一座桥梁",决定了后续所有工作的基础质量。

如果把软件比作一座建筑,那么需求获取就是地质勘探和地基勘察------只有准确掌握地质条件(用户需求),才能设计出稳固的建筑(系统)。如果这个阶段出错,后期所有的设计、开发、测试都会建立在错误的基础上,导致灾难性的返工。

需求获取的挑战:

· 用户往往说不清自己真正想要什么

· 不同利益相关者之间的需求可能冲突

· 隐性需求难以被发现

· 业务环境不断变化,需求也在变

对于系统分析师而言,需求获取是你展现沟通能力、洞察力和分析能力的关键环节。你需要像侦探一样,从用户模糊的描述中挖掘出真实的需求。

需求获取在需求工程中的位置:

```

需求获取\] → \[需求分析\] → \[需求文档化\] → \[需求确认和验证\] → \[需求管理

↑ │

└──────────────────── [变更管理] ←──────────────────┘

```

🏗️ 二、详细讲解:需求获取的四大核心维度

1️⃣ 需求获取的目标与困难

需求获取的目标:

· 全面识别所有利益相关者及其关注点

· 收集与系统相关的业务需求、用户需求和系统需求

· 发现并记录业务规则和约束条件

· 挖掘用户的隐性需求

· 为后续的需求分析提供原始素材

需求获取的困难(为什么需求这么难获取?):

困难类型 具体表现 典型例子

用户表达障碍 用户难以清晰描述需求,或描述不完整 "我要一个智能系统"------什么是"智能"?

知识转移障碍 用户懂业务不懂技术,开发懂技术不懂业务 用户用业务术语,开发用技术术语,互相听不懂

认知偏差 用户基于现有系统描述需求,限制了创新 "就像现在这样,只是快一点"------忽略了流程优化的可能

利益冲突 不同用户的需求相互矛盾 财务要严格审批,销售要快速下单

隐性需求 用户认为"理所当然"而未提及 用户没说,但系统必须支持------如断电保护

环境变化 需求在获取过程中不断变化 竞争对手推出新功能,业务策略调整

📌 速记口诀:"说不清、听不懂、有限制、有冲突、有隐藏、有变化,六大困难需求获取难"。

2️⃣ 需求获取的方法与技术

需求获取有多种方法,系统分析师需要根据项目特点、用户情况、资源约束灵活选择和组合使用。

方法 描述 适用场景 优点 缺点

访谈 一对一或一对多的直接交流 深入了解关键用户需求 信息丰富,可深入追问 耗时,样本有限

问卷调查 结构化问题收集大量用户反馈 用户群体分散、数量大 高效覆盖,便于统计分析 问题固定,难以深入

观察法 观察用户实际工作过程 用户难以清晰表达需求时 发现真实工作模式 可能影响用户行为

文档分析 研究现有系统文档、流程文件 系统改进、知识转移 获取权威信息 文档可能过时

工作坊 多方利益相关者共同研讨 需求复杂、需多方共识 快速达成共识,激发创新 组织难度大

原型法 通过原型与用户迭代验证 需求模糊、界面复杂 直观沟通,快速反馈 可能误解为最终产品

用户故事 从用户视角描述功能 敏捷开发环境 简单易用,聚焦用户价值 可能遗漏细节

头脑风暴 集体自由讨论,激发创意 创新项目、探索性需求 产生新思路 可能偏离实际

场景分析 描述用户使用系统的具体场景 理解用户交互过程 情景化,易理解 可能忽略非典型情况

现有系统分析 研究老系统的优缺点 系统升级换代 发现问题,借鉴经验 可能受老系统局限

重点方法详解:

(1)访谈

· 结构化访谈:预先准备问题列表,按顺序提问

· 非结构化访谈:开放式对话,鼓励用户自由表达

· 优点:能够深入了解用户想法,可及时追问澄清

· 技巧:多听少说,保持中立,使用开放式问题,避免引导性提问

(2)问卷调查

· 设计要点:问题清晰明确,避免歧义;选项完整;匿名可选

· 样本选择:确保覆盖不同用户群体

· 分析:定量统计分析,辅助定性判断

(3)观察法

· 旁站观察:观察用户日常工作,记录问题

· 参与式观察:亲自体验用户工作,感受痛点

· 优点:发现用户自己都未意识到的需求

(4)原型法

· 低保真原型:纸面原型、线框图,快速沟通概念

· 高保真原型:可交互的仿真界面,更接近最终产品

· 迭代验证:用户试用原型,反馈改进,循环往复

(5)工作坊

· 形式:邀请关键用户、业务专家、技术人员共同参与

· 常用技术:头脑风暴、分组讨论、场景演练、需求优先级投票

· 产出:需求清单、业务流程图、共识纪要

📌 速记口诀:"访问卷观文,工原故头场;十法各有妙,组合效果强"。

3️⃣ 需求获取的策略与过程

需求获取的总体策略:

策略类型 描述 适用场景

主动式获取 系统分析师主动深入业务,引导用户表达需求 需求模糊、用户被动

被动式获取 等待用户提出需求,仅作记录 需求明确、用户主导

合作式获取 分析师与用户共同探讨,共同构建需求 复杂项目、创新项目

迭代式获取 分轮次获取,逐步细化 大型项目、需求多变

需求获取的一般过程:

```

启动\] → \[准备\] → \[执行\] → \[整理\] → \[验证\] → \[纳入管理

↓ ↓ ↓ ↓ ↓ ↓

组建团队 确定干系人 实施获取 记录整理 反馈确认 纳入需求库

选择方法 深入沟通 分析归类 补充完善 建立基线

```

步骤 主要活动 产出

启动 组建需求获取团队,明确目标和范围 需求获取计划

准备 识别利益相关者,研究背景资料,选择获取方法 干系人清单、访谈提纲

执行 实施访谈、问卷、观察等活动,记录原始信息 访谈纪要、问卷数据、观察记录

整理 对获取的信息进行初步整理、分类、编码 原始需求列表

验证 与用户确认整理后的需求是否准确 确认纪要

纳入管理 将确认的需求纳入需求库,建立跟踪关系 需求条目、跟踪矩阵

📌 速记口诀:"启准执整验纳,六步获取流程化"。

4️⃣ 需求获取的注意事项与最佳实践

(1)识别所有利益相关者

· 不仅要识别直接用户,还要考虑间接用户、管理者、维护人员、监管部门等

· 绘制干系人地图,分析各自的关注点

(2)多方法结合

· 单一方法往往有局限,组合使用可相互补充

· 例如:先问卷(广泛覆盖)→再访谈(深入挖掘)→再原型(验证澄清)

(3)区分需求与解决方案

· 用户常直接提出"解决方案"("我要一个按钮"),而不是"需求"("我需要快速保存数据")

· 深挖背后的真实需求,避免被表象束缚

(4)关注业务规则

· 业务规则是需求的来源,要单独记录,与功能需求分开管理

(5)建立有效沟通

· 使用用户的语言,避免技术术语

· 多倾听,不急于下结论

· 用可视化工具(流程图、原型)辅助沟通

(6)及时记录,避免遗忘

· 访谈后立即整理纪要

· 使用工具管理需求(如Jira、Confluence、Excel)

(7)管理期望

· 引导用户理解技术限制,避免不切实际的期望

· 明确哪些需求可实现,哪些需要取舍

(8)保持迭代

· 需求获取不是一次性活动,需要在整个项目生命周期中持续进行

📌 速记口诀:"识别干系人,方法多组合;区分需与解,业务规则记;有效沟通清,及时记录好;期望要管理,迭代不能少"。

📝 三、重点总结与速记方法

✅ 核心重点

  1. 需求获取的目标:全面收集、理解并记录利益相关者对系统的期望和约束。

  2. 六大获取困难:表达障碍、知识转移、认知偏差、利益冲突、隐性需求、环境变化。

  3. 十大获取方法:访谈、问卷、观察、文档分析、工作坊、原型、用户故事、头脑风暴、场景分析、现有系统分析。必须能根据场景选择合适的方法。

  4. 获取策略:主动、被动、合作、迭代,根据项目特点选择。

  5. 获取过程六步:启动、准备、执行、整理、验证、纳入管理。

  6. 最佳实践八条:识别干系人、多方法结合、区分需求与解决方案、关注业务规则、有效沟通、及时记录、管理期望、保持迭代。

⚡ 速记口诀

1️⃣ 十大方法"十全大补"口诀

"访问卷观文,工原故头场"(访谈、问卷、观察、文档分析、工作坊、原型、用户故事、头脑风暴、场景分析、现有系统分析)

2️⃣ 获取困难"六座山"口诀

"表达不清知识差,认知局限利益叉;隐性藏深山,环境还在变"

3️⃣ 获取过程"六步曲"口诀

"启准执整验纳,六步走到家"

4️⃣ 最佳实践"八要"口诀

"干系人要识全,方法要多用;需求方案要分清,业务规则要单记;沟通要有效,记录要及时;期望要管理,迭代要持续"

5️⃣ 一句话总纲

软件需求获取 = (识别干系人 + 十种方法 + 六步过程 + 八条实践),是挖掘用户真实需求的"探矿工程",方法越得当,需求越精准。


掌握11.3节,意味着你能够像专业侦探一样,运用多种方法从用户那里挖掘出真正的、完整的需求,为后续的分析和设计打下坚实基础。

相关推荐
盐水冰2 小时前
【烘焙坊项目】后端搭建(7)- 套餐管理界面
java·学习
小红卒2 小时前
Go语言安全开发学习笔记5:tls反弹shell升级到C2指令执行马
笔记·学习·网络安全·golang
峥嵘life2 小时前
Android16 EDLA更新25-12补丁导致【CTS】CtsWindowManagerDeviceAnimations存在fail项
android·linux·学习
做cv的小昊5 小时前
大语言模型系统:【CMU 11-868】课程学习笔记02——GPU编程基础1(GPU Programming Basics 1)
人工智能·笔记·学习·语言模型·llm·transformer·agent
炽烈小老头10 小时前
【每天学习一点算法 2026/03/08】相交链表
学习·算法·链表
red_redemption12 小时前
自由学习记录(130)
学习·soa·aos·ecs已成核心包·shading!=ps
双叶83612 小时前
(Python)Python爬虫入门教程:从零开始学习网页抓取(爬虫教学)(Python教学)
后端·爬虫·python·学习
天外来鹿13 小时前
Map/Set/WeakMap/WeakSet学习笔记
前端·javascript·笔记·学习
峥嵘life13 小时前
Android16 【GTS】 GtsDevicePolicyTestCases 测试存在Failed项
android·linux·学习