【虚构案例声明】 本课程中的"美好家园"物业集团、"清华园社区"、"智慧邻里2.0"项目及全部人物均为教学所用的虚拟项目与虚构人物,详见第 01 讲首次声明。
一、上节作业讲评
1.1 五个人五种诉求怎么分
上一讲的核心作业:方姐说报修模块的需求是一笔糊涂账,李经理要工单统计报表,客服要一键派单,维修工要手机上看图片,业主要能催单,张主管要和门禁联动。要你回答这五种诉求是谁的需求、什么层面、先做哪个、用什么方法变成需求文档。提示是"谁要、要什么、系统怎么做"三层。
先分层。教材把需求分成业务需求、用户需求和系统需求三个层次,"从目标到具体,从整体到局部,从概念到细节"。李经理要统计报表,她是物业总经理,她的真实目标是"报修 24 小时解决率从七成提到九成",报表只是看这个目标的窗口,这是业务需求。客服的一键派单、维修工的看图片、业主的催单,是三类用户各自"使用产品必须要完成的任务",这是用户需求。张主管的门禁联动,说的是"维修工上门时门禁自动放行",这已经是系统怎么做的层面,是系统需求。
再定先后。业务需求是根,先定它:24 小时解决率九成。然后看哪些用户需求直接支撑这个根:一键派单缩短派单时间,看图片减少跑空,这两个直接支撑;催单是业主体验,间接支撑;门禁联动是锦上添花。所以二期做派单和图片,催单做简化版,门禁联动放三期。这不是拍脑袋,是用业务需求当尺子量用户需求。
最后答方法。教材的需求过程四步:需求获取、需求分析、需求规格说明书编制、需求验证与确认。方姐的团队现在停在第一步,把五个人的话记下来了,但没做第二步。第二步是把"杂乱无章的用户要求和期望转化为用户需求",教材说这些要求"有重复的地方,也有矛盾的地方",不能直接当设计依据。方法上,用面向对象分析建用例模型:先识别参与者,李经理、客服、维修工、业主、门禁系统,再为每个参与者合并需求得到用例,"查看工单统计""派单""查看现场图片""催单",然后为每个用例写用例规约,最后按教材 GB/T 8567 的模板编成需求规格说明书,开评审会验证。
这道作业的关键不在答案,在那把尺子:所有需求都要能追到业务需求。谁的诉求追不到,谁就先等等。
二、需求是一笔糊涂账的根源:本讲目标
2.1 为什么需求最难
教材在需求获取那段说了一句实话:"需求获取是一件看上去很简单,做起来却很难的事情",原因是"大部分用户无法完整地描述需求,而且也不可能看到系统的全貌"。清华园一期就是这么来的:业主说"能刷脸就行",上线以后才发现逆光识别不了、访客没法进、老人不会用二维码。需求没做透,后面的架构、设计、测试再好也是在错的地基上盖楼。
高项对这一节的考法很稳定:需求三层次、获取方法、结构化分析的三个模型分别用什么图、面向对象分析的用例关系、统一建模语言的基本概念。2015 到 2022 年这一节几乎年年有题,2023 年以后综合知识的题转到了项目管理部分的"收集需求"过程,但教材第 5 章课后练习六道选择题里有四道出在这一节,命题人从课后练习取材的趋势第 8 讲说过。
本讲要拿下三件事:
第一,教材 5.1.2 节前半部分:需求定义、三层次、质量功能部署三类需求、需求过程四步、获取五方法、好需求八特性、结构化分析三模型、面向对象分析的用例模型和分析模型。
第二,教材 5.1.2 节后半部分统一建模语言的概念骨架:结构三部分、事物四类、关系四种、十四种图的名字和分组、五个视图。十四种图逐图怎么画,第 18、19 讲。
第三,把报修模块的五种诉求变成一份需求文档:参与者、用例、用例规约、需求规格说明书的结构。
2.2 本讲任务地图
| 任务 | 教材位置 | 考试形态 | 项目落点 |
|---|---|---|---|
| 需求定义、三层次、质量功能部署 | 5.1.2 第 1 点 | 层次归属、三类需求 | 需求分层表 |
| 需求过程四步与获取方法 | 5.1.2 第 2 点 1)至 4) | 不属于获取方法、八特性 | 需求获取计划 |
| 结构化分析三模型 | 5.1.2 第 2 点 2) | 哪个图表示哪个模型 | 数据字典 |
| 用例模型四阶段、用例三关系 | 5.1.2 第 4 点 1) | 关系判断、阶段顺序 | 用例图与用例规约 |
| 分析模型与类关系 | 5.1.2 第 4 点 2) | 六种关系辨析 | 领域模型 |
| 统一建模语言结构、事物、关系、图、视图 | 5.1.2 第 3 点 | 不属于、定义配对 | 需求文档的图 |
三、核心内容精讲:需求的定义、层次与过程

3.1 软件需求的定义与三个层次
教材口径:软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据 IEEE 的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
简单版是教材自己给的:"软件需求就是系统必须完成的事以及必须具备的品质"。完成的事是功能,具备的品质是性能、安全这些非功能。
教材口径:需求是多层次的,包括业务需求、用户需求和系统需求,这三个不同层次从目标到具体,从整体到局部,从概念到细节。
三层次是这一节的第一考点。2015 年上半年第 6 题和 2015 年下半年第 5 题连考两次:业务需求"反映了组织结构或客户对系统、产品高层次的目标要求",用户需求"描述了用户使用产品必须要完成的任务"。注意那两道老题里第三层叫"功能需求"或"功能及非功能需求",教材第 4 版统一叫"系统需求",考试按第 4 版。
教材还引入了一个工具。教材口径:质量功能部署是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度,它将软件需求分为三类,分别是常规需求、期望需求和意外需求。2021 年上半年第 9 题就考这三类,缺的那个是期望需求。三类的意思:常规需求是用户说得出来的,"能报修";期望需求是用户不说但默认该有的,"报修以后有人回电话";意外需求是用户没想到、给了会惊喜的,"维修工到门口时业主手机弹出他的照片和工号"。做产品的人常说"超预期",说的就是意外需求。