10.2需求分析-获取-定义-验证-管理

一、需求工程 00:03
1. 软件需求 00:45
  • 定义:用户对系统在功能、行为、性能、设计约束等方面的期望,是解决问题或达到目标所需的条件或能力。
  • 两大过程:
    • 需求开发:包括获取→分析→定义(需求规格说明书)→验证
    • 需求管理:包括基线→变更控制→版本控制→需求跟踪→状态跟踪
1)需求的分类 04:36
  • 业务需求 04:52
    • 特征:反映企业/客户高层次目标要求,由非技术人员(投资人/市场部门等)提出
    • 示例:在线教育网站需要题库功能
    • 抽象层次:最高,不涉及具体实现
  • 用户需求 06:33
    • 特征:描述用户具体目标或任务,通过访谈/问卷获取
    • 示例:用户需要在手机和电脑上刷题
    • 抽象层次:中等,比业务需求更具体
  • 系统需求 07:03
    • 功能需求 07:22
      • 特征:开发人员必须实现的具体功能
      • 示例:财务系统每月15号自动发工资
      • 判断技巧:一句话描述功能
    • 非功能需求 07:47
      • 特征:系统必须具备的属性,包括:
        • 性能需求(带数字,如响应时间≤1秒)
        • 质量属性(可维护性、可靠性等)
      • 记忆点:非功能=非具体功能描述
    • 设计约束 09:01
      • 特征:外部强制规定的限制条件
      • 示例:必须使用国产数据库、金钱精度保留2位小数
      • 判断技巧:人为规定且与系统特性无关
2)应用案例 09:51
  • 例题:软件需求开发定义阶段
    • 题目解析
      • 关键对应关系:获取情况=需求获取,编写文档=需求定义(规格说明书)
      • 排除法:B/C/D属于需求管理阶段
      • 答案:A.制订规格说明
  • 例题:需求分类判断 11:17
    • 解题技巧:
      • 排除性能需求(无数字指标)
      • 三问答案必不同(业务/用户/功能维度)
      • 抽象层次分析:
        • "用户能纠正错误"→业务需求(最高层)
        • "找出错误并提供替换"→用户需求(中层)
        • "显示替换对话框"→功能需求(最具体)
    • 答案:C→C→B
2. 需求获取 16:42
1)需求获取定义 16:58
  • 本质:确定和理解项目干系人的需求和约束
  • 重要性:直接影响后续开发质量
2)需求获取法 17:07
  • 用户访谈:
    • 形式:1对1至1对3
    • 优点:深度精准
    • 缺点:需领域知识,记录困难
  • 问卷调查:
    • 适用:用户量大时
    • 缺点:信息杂乱
  • 采样:
    • 原理:数理统计(公式:样本量=0.25*(可信度因子/错误率)^2)
  • 情节串联板:
    • 形式:系列图片讲故事
    • 缺点:耗时
  • 联合需求计划(JRP):
    • 本质:多方参与的正式会议
  • 需求记录技术:
    • 工具:任务卡片、用户故事等
3)应用案例 21:50
  • 例题:需求获取方法
    • 题目解析:
      • 第一空特征:灵活但记录困难→用户访谈(A)
      • 第二空关键词:数理统计→采样(D)
      • 第三空描述:群体会议→JRP©
    • 答案:A→D→C
二、需求分析 23:17
1. 需求特性 23:50
  • 无二义性:需求描述必须明确,避免歧义(如"快速响应"需量化成"响应时间≤2秒")
  • 完整性:需覆盖所有功能和非功能需求(包括异常场景)
  • 可测试性:需求应可验证(如"系统支持1000并发用户"可通过压力测试验证)
2. 分析任务 24:12
  • 上下文范围图:界定系统边界(如ATM机的"取款"功能不包含钞票印刷)
  • 原型设计:低保真原型验证核心流程(如电商平台的结账流程原型)
  • 可行性分析:技术可行性(如刷脸支付需评估摄像头精度)、经济可行性(开发预算≤50万)
3. 结构化分析 25:18
1)三大模型 25:59
  • 功能模型:数据流图DFD(描述"订单处理"从创建到完成的流转)
  • 行为模型:状态转换图STD(如订单状态:待支付→已支付→已发货)
  • 数据模型:E-R图(客户与订单的1:N关系)
2)数据流图 26:42
  • 基本元素 26:54
    • 加工:圆角矩形表示(如"计算运费"加工)
    • 数据存储:双杠或开口矩形(如"用户数据库")
    • 黑洞错误:只有输入无输出(如系统接收请求但无响应)
    • 奇迹错误:无输入却有输出(如凭空生成报表)
3)分层DFD 32:30
  • 顶层图:系统与外部实体的交互(如考生提交报名单)
  • 平衡原则:父图与子图的输入/输出必须一致(顶层输入"报名单"→0层也必须包含)
4)数据字典 35:36
  • 组成符号:
    • +:顺序连接(如姓名=姓+名)
    • \|\]:选择(如支付方式=\[现金\|信用卡\|微信\])

4. 需求定义 38:58
  • 严格定义:适用于需求明确场景(如银行利息计算公式)
  • 原型法:适用于模糊需求(通过低保真原型逐步确认UI布局)
5. 需求验证 40:41
  • 需求评审:交叉检查SRS文档(如验证"搜索响应时间≤1秒"是否写入)
  • 需求基线:签字确认后的需求变更需走正式流程(如新增需求需评估工期影响)

注:所有图形符号均按最新ISO/IEC 24744标准规范绘制,数据流图中加工编号采用"子系统.模块.功能"三级编号法(如3.1.2表示第3子系统第1模块的第2功能)

三、需求管理 42:12
1. 定义需求基线 42:20
  • 基线概念:通过评审的需求说明书即成为需求基线,此时需求进入受控状态
  • 变更要求:基线确立后如需变更,必须严格按照变更流程执行
  • 状态图示:展示需求从提出到交付的全生命周期状态变化
2. 需求变更流程 43:26
  • 完整流程:
    • 提出变更请求
    • PM和团队评估影响(成本/进度等)
    • 通知相关干系人评估结果
    • 提交CCB(变更控制委员会)审批
    • 执行变更
    • 验证变更结果
  • 流程特点:
    • 步骤可简化但顺序不可逆
    • CCB由具有决策权的相关人员组成(项目经理/客户代表等)
  • 变更风险:
    • 用户参与不足
    • 需求分类遗漏
    • 需求范围蔓延
    • 需求描述模糊
3. 需求跟踪 47:46
  • 正向跟踪:
    • 检查用户原始需求是否完整转化为需求文档
    • 验证需求文档内容是否全部实现
    • 发现"需求遗漏"问题
  • 反向跟踪:
    • 确认产品功能是否严格对应需求
    • 检查是否存在"多余实现"
    • 采用需求跟踪矩阵进行验证
  • 矩阵应用:
    • 行无对勾:需求未实现(正向问题)
    • 列无对勾:存在多余功能(反向问题)
四、应用案例 50:59
1. 例题:需求管理说法
  • 题目解析:
    • A选项:CMM二级实际包含6个关键过程域
    • B选项:稳定性是重要需求属性
    • C选项:正确顺序应为变更描述→影响分析→实现
    • D选项:CCB确实拥有基线变更决策权
    • 正确答案:D
2. 例题:数据流图应用 53:42
  • 题目解析:
    • 数据流图本质描述功能模型(B正确)
    • 图书馆系统中"读者"是典型外部实体(A正确)
    • 易错点:容易混淆数据流图与ER图的功能区别
五、知识小结
知识点 核心内容 考试重点/易混淆点 难度系数
需求工程概念 需求获取→需求分析→需求定义→需求验证的完整流程 需求基线形成时机(需求验证后)混淆点:需求验证≠需求评审 ★★★
需求分类体系 业务需求(战略层)→用户需求(场景层)→系统需求(技术层)系统需求细分为:功能/非功能/设计约束 易错题:"纠正拼写错误"属于用户需求"显示替换对话框"属于功能需求 ★★★★
结构化分析方法 数据流图(功能模型)状态转换图(行为模型)ER图(数据模型) 关键考点:数据流必须经过加工黑洞/奇迹/灰洞错误判断 ★★★★★
需求获取技术 用户访谈(深度精准)问卷调查(广度覆盖)联合需求计划(多方协同) 对比记忆:采样方法=数理统计应用情节串联板=可视化故事呈现 ★★★
需求变更控制 变更请求→影响分析→CCB审批→执行变更→验证结果 典型错误:跳过影响分析直接审批未经验证即交付 ★★★★
需求跟踪矩阵 正向跟踪(需求覆盖率)反向跟踪(功能必要性) 特殊规则:外部实体不进入数据字典 ★★★
需求文档标准 需求规格说明书必须包含:功能/非功能/设计约束说明 致命缺陷:需求条目无唯一标识符 ★★
相关推荐
Trouvaille ~2 小时前
【MySQL篇】从零开始:安装与基础概念
linux·数据库·mysql·ubuntu·c·教程·基础入门
周末也要写八哥2 小时前
追求性能极致为何不用Redis?
数据库·redis·缓存
JosieBook2 小时前
【Redis】Redis如何修改密码?
数据库·redis·bootstrap
gihigo19982 小时前
基于MSComm控件的PC串口通信程序(中断方式接收数据)
数据库·mongodb
十五年专注C++开发3 小时前
达梦数据库在Linux备份报错 -8003: 缺少本地或者远程归档 解决方案
数据库·c++·dm·备份复原
Leo.yuan3 小时前
经营分析如何联动业务与财务?4步打通业财经营分析指标
数据库·数据分析·经营分析
Yana.nice3 小时前
MySQL 事务的四大特性(ACID)
数据库·mysql·oracle
coder阿龙3 小时前
基于SpringAI+Qdrant+Ollama本地模型和向量数据库开发问答和RAG检索
java·数据库·spring boot·ai·数据库开发
小小程序员.¥3 小时前
oracle--视图、序列、索引
服务器·数据库·oracle