Files
obsidian/软件需求分析/期末重要知识点速记.md

16 KiB
Raw Permalink Blame History

期末重要知识点速记

课程:软件需求分析与设计 | 总分选择30 + 填空15 + 解答25 + 案例30 = 100分 成绩构成平时40% + 期末60%(平时作业和实验截止前还可补交)


🎯 一、试卷结构与分值分布

1.1 题型总览

题型 数量 分值 说明
选择题 15题 × 2分 30分 重点刷教材课后有答案的题目
填空题 15空 × 1分 15分 各章基本概念和理论知识
解答题 5题 × 5分 25分 ⚠️ 只考读图分析,不考画图
案例大题 2~3题 30分 ⚠️ 给出需求描述,动手画图

1.2 各章分值权重(按比例分配复习时间!)

章节 分值 权重 复习优先级
需求管理 13分 ★★★★ 选择填空为主,含一道解答简答题
用例图 22分 ★★★★★ 读图分析 + 画图大题必考
类图 23分 ★★★★★ 读图分析 + 画图大题必考
顺序图与协作图 19分 ★★★★★ 读图分析 + 画图大题必考
状态图与活动图 14分 ★★★★ 读图分析 + 选考画图
组件图与部署图 7分 ★★ ⚠️ 仅出选择题和填空题
RUP统一过程 2分 ⚠️ 仅出1个选择或填空

📋 二、解答题 5 道详细拆解

第1题用例图分析5分

考点:给一幅用例图,分析:

  • 参与者之间是什么关系?(泛化关系)
  • 用例之间的关系(包含 <<include>> / 扩展 <<extend>> / 泛化)
  • 识别参与者类型、用例描述要素

第2题类图分析5分

考点:给一幅类图,分析:

  • 类之间的关系类型(依赖、关联、聚合、组合、泛化、实现)
  • 识别类的类型(边界类/控制类/实体类)
  • 多重性含义

第3题交互图分析5分

考点:给时序图(顺序图)或协作图,分析:

  • 消息类型(同步调用/异步/返回/简单消息)
  • 消息传递流程
  • 可能要求:协作图 ↔ 时序图互转

第4题活动图或状态图分析5分

考点:给活动图或状态图,分析流程/状态转移

第5题简答题5分—— 四选一,必考一道!

⚠️ 老师明确给了四道范围,现在就背!

Q1需求的层次有哪些并简述

答案

业务需求(最高层)
  → 用户需求(中间层)
    → 系统需求(底层)
        ├── 功能需求:系统必须提供的功能
        ├── 非功能需求:性能、可靠性、安全性等质量属性
        └── 领域需求:特定行业领域的规则和约束
  • 业务需求:组织或客户的高层目标,回答"为什么要做这个系统"
  • 用户需求:用户使用系统要完成的任务,从用户视角描述
  • 系统需求:详细描述系统必须做什么,包括功能和非功能需求

Q2如何判定优秀需求的特性

答案7大特性

  1. 完整性:需求描述完整无遗漏
  2. 正确性:真实反映用户需要
  3. 无歧义性:不同人读理解一致
  4. 可行性:技术和资源上可实现
  5. 有优先级:明确需求的轻重缓急
  6. 必要性:是必须的,不是"锦上添花"
  7. 可验证性:能通过测试验证需求是否被满足

Q3需求发生变更时的管理流程

答案

提出变更请求 → 初步分析评估 → CCB变更控制委员会评审决策
  → 批准后更新需求文档 → 通知所有受影响的相关方
    → 调整项目计划和开发任务 → 执行变更 → 验证变更结果

关键点CCB 评审是核心环节,决定变更是否接受;变更后必须重新确认需求。

Q4需求管理应包含的内容

答案(三个核心模块):

模块 内容
需求确认 需求评审 → 获得承诺 → 建立需求基线
需求跟踪 建立 RTM需求跟踪矩阵正向跟踪需求→设计→代码→测试和逆向跟踪
需求变更控制 变更申请 → 变更审批 → 执行更改 → 重新确认

🔑 三、各章核心考点速记

需求管理 ★★★★★约13分

需求三层金字塔

业务需求(老板视角:为什么要做)
  → 用户需求(用户视角:能干什么)
    → 系统需求 = 功能需求 + 非功能需求 + 领域需求
概念 一句话
业务需求 组织的高层目标
用户需求 用户使用系统完成的任务
功能需求 系统必须提供的功能
非功能需求 性能/可靠性/安全性等质量属性
领域需求 特定行业规则的约束

需求工程 = 需求开发 + 需求管理

  • 开发:获取 → 分析 → 定义(规格说明)
  • 管理:验证 → 跟踪 → 变更控制

六大获取/验证技术

  1. 联合分析小组JAD
  2. 用户访谈
  3. 问卷调查
  4. 观察工作流程
  5. 原型法
  6. 文档分析

📝 填空重点:需求三层 = 业务/用户/系统获取技术6种优秀需求7特性需求变更流程步骤


用例图 ★★★★★约22分含大题

四要素:参与者(火柴人) + 用例(椭圆) + 系统边界(方框) + 关联(连线)

三种关系对比(必考!):

关系 UML标记 箭头方向 执行时机
包含 <<include>> 虚线+箭头 基本 → 包含 必然执行
扩展 <<extend>> 虚线+箭头 扩展 → 基本 条件触发时才执行
泛化 实线+空心三角 子 → 父 可单独执行

记忆:包含箭头指向被包含的(基→含),扩展箭头指向被扩展的(扩→基)

参与者三类型:人、外部系统、外部设备

用例描述6要素:用例名、参与者、前置条件、后置条件、主事件流、子事件流(备选流)

📝 重点:三种关系的箭头方向和区别、用例描述要素


类图 ★★★★★约23分含大题

六大关系速判口诀

关系 UML符号 口诀
依赖 虚线箭头 ----> "方法参数用了你"
关联 实线 —— "属性里放了你"
聚合 空心菱形 ◇—— "整体-部分,部分可独立存活"
组合 实心菱形 ◆—— "整体-部分,同生共死"
泛化 空心三角 ——▷ "一般-特殊 / 父-子继承"
实现 虚线空心三角 ----▷ "接口-实现类"

多重性速记1 恰好1 | 0..1 可选 | */0..* 零到多个 | 1..* 至少1个

类三要素:名称、属性、操作 | 可见性+public -private #protected

MVC版型(分析类三类型):

  • <<boundary>> 边界类:与外部交互的界面
  • <<control>> 控制类:业务逻辑处理
  • <<entity>> 实体类:持久化数据

聚合 vs 组合:聚合整体端多重性可为*;组合整体端多重性必须=1

📝 选择高频:类间关系判断、多重性含义、版型识别、关联 vs 依赖


顺序图与协作图 ★★★★★约19分含大题

顺序图核心元素:对象(矩形+下划线) + 生命线(虚线) + 控制焦点(矩形条) + 消息(箭头)

四种消息类型

类型 箭头 特点
调用消息(同步) 实心箭头 → 发送后等待返回
异步消息 开放箭头 → 发送后不等待,继续执行
返回消息 虚线箭头 ⇢ 返回值
简单消息 普通箭头 不区分同步/异步

消息编号嵌套规则1 → 1.1 → 1.1.1(子消息必须在父消息完成前完成)

协作图 = 顺序图的另一种视角

  • 顺序图强调时间顺序(生命线+控制焦点)
  • 协作图强调空间关系(对象间的链+消息序号)
  • 两者可以互相转换

⚠️ 画图大题画顺序图的硬性要求

不能画得太简单!必须完整区分并画出:

  • 边界类(界面层,接收用户输入)
  • 控制类(业务逻辑层,协调处理)
  • 实体类(数据层,数据存取)

三个层次的对象之间的详细交互都要体现!

主动对象 vs 被动对象:主动对象拥有进程/线程可主动发起消息;被动对象须被消息触发

📝 重点:四种消息类型区分、消息编号规则、顺序图与协作图的区别、三层次交互画法


状态图与活动图 ★★★★约14分

状态图(管一个对象的状态变化):

元素 符号
状态 圆角矩形(简单/复合/子状态)
转移 箭头:事件[条件]/动作
初始状态 ● 实心圆
终态 ⊙ 圆圈+实心圆
历史状态 Hⓗ 圆圈+H
并发 同步并发转移符号(粗线分叉)

四种事件类型:调用事件、信号事件、变化事件、时间事件

活动图(管多对象参与的流程

元素 符号 用途
活动 圆角矩形 流程步骤
分支 ◇ 菱形 条件选择(只走一条)
分叉/汇合 ≡ 粗横线 并发执行(多条同时走)
泳道 纵向分区 按职责/参与者分组
对象流 虚线箭头 数据传输/传递

⚠️ 核心区分

  • 状态图 → 一个对象的状态变化
  • 活动图 → 多个对象参与的流程
  • 分支 → 单路条件选一
  • 分叉 → 多路并发
  • 活动图的状态转移不需要事件触发,上一个活动完成自动进入下一个

📝 选择高频状态图vs活动图区分、分支vs分叉、泳道功能


组件图与部署图 ★★约7分仅选填

组件图 = 代码层面

  • 三种组件:源代码组件、二进制代码组件、可执行代码组件
  • 正向工程:类图→代码 | 逆向工程:代码→类图

部署图 = 硬件层面

  • 结点3D立方体分两种处理器(有计算能力) / 设备(无计算能力)
  • 结点可驻留组件实例

📝 填空重点组件3种类型两种物理图名称


包图 ★★(选择题)

四大包设计原则

缩写 原则 一句话
REP 重用等价原则 一起复用的放一起
CCP 共同闭包原则 一起改的放一起
CRP 共同重用原则 不一起用的分开
ADP 非循环依赖原则 包间不能环状依赖

RUP统一软件开发过程 ★约2分仅1个选填

RUP三维特点:用例驱动 + 以体系结构为中心 + 迭代和增量

⚠️ 四阶段顺序(易错!)

初始(Inception) → 细化(Elaboration) → 构造(Construction) → 移交(Transition)

不是"初始→构造→细化→移交"

9个核心工作流 = 6过程 + 3支持

  • 6过程业务建模、需求、分析与设计、实现、测试、部署
  • 3支持配置管理、项目管理、环境

六大最佳实践:迭代增量开发、管理需求、基于构件架构、可视化建模、持续质量验证、控制变更

RUP的4W:角色(Who) + 活动(How) + 制品(What) + 工作流(When)

📝 选择/填空RUP三大特点、四阶段顺序、九个工作流、六大最佳实践


⚠️ 四、高频易错易混点

易混概念 区分
包含 vs 扩展 包含箭头基→含(必然执行);扩展箭头扩→基(条件执行)
聚合 vs 组合 聚合空心◇(部分可独立);组合实心◆(同生共死)
关联 vs 依赖 关联=属性里放了;依赖=方法参数用了
泛化 vs 实现 泛化=父类-子类继承;实现=接口-实现类
调用消息 vs 异步消息 调用=同步等待返回;异步=发出后继续
状态图 vs 活动图 状态图=一个对象;活动图=多个对象
分支 vs 分叉 分支◇=单选一路;分叉≡=多路并发
功能需求 vs 非功能需求 功能=做什么;非功能=做多好
RUP四阶段顺序 初始→细化→构造→移交(别写反细化/构造!)
顺序图 vs 协作图 顺序图强调时间;协作图强调空间

🛠️ 五、案例大题画图模板

⚠️ 不考的图

组件图、包图、部署图 — 案例大题明确不考!

1. 用例图(必考)

4步法

  1. 找参与者:从文字中找名词——人、外部系统、设备
  2. 找用例:动宾短语(用户能做的操作)
  3. 画包含A 必然触发 B → A ---<<include>>--→ B
  4. 画扩展:条件触发 C 插入 A → C ---<<extend>>--→ A

2. 类图(必考,尤其实体类图)

4步法

  1. 提取实体类:文字中的核心名词(客户、订单、商品...
  2. 标注属性:每个类的特征数据字段
  3. 判断关系:属性里放了=关联;整体部分=聚合/组合;父子=泛化
  4. 标注多重性1 / 0..* / 1..*

3. 顺序图(必考,拉分关键!)

⚠️ 老师特别要求:不能画得太简单!要体现三层次交互:

┌─ 边界类层UI ─────────────────────────────┐
│  用户 → 界面: 发起操作()                        │
│    → 界面 → 控制类: 处理请求()                  │
├─ 控制类层(业务逻辑) ─────────────────────────┤
│      → 控制类 → 实体类: 查询数据()              │
│      ← 实体类 → 控制类: 返回数据                │
│      → 控制类 → 实体类: 保存结果()              │
├─ 实体类层(数据) ─────────────────────────────┤
│      ← 控制类 → 界面: 返回处理结果              │
│    ← 界面 → 用户: 显示结果                      │
└──────────────────────────────────────────────┘

消息编号规则1 → 1.1 → 1.1.1 → 1.2 → 2

4. 状态图(选考)

要素:初始● → 关键状态节点(圆角矩形) → 终态 ⊙

  • 转移标注:触发事件[条件]/动作
  • 有并发用同步并发转移符号

5. 活动图(选考,带泳道)

要素:开始● → 活动(圆角矩形) → 分支◇ → 分叉≡ → 汇合≡ → 结束◎

  • 泳道按参与者/职责分列

🔢 六、关键数字速记(填空高频)

数字 对应内容
3 需求三层、用例关系3种、类三要素、可见性3种、数据库设计3阶段、RUP三大特点、参与者3类型、组件3类型、3种分析类(边界/控制/实体)
4 包设计4原则(REP/CCP/CRP/ADP)、RUP四阶段、事件4类型、消息4类型、RUP的4W
6 六大获取技术、六大关系、六大最佳实践、用例描述6要素、9工作流=6过程+3支持
7 优秀需求7特性
9 UML 9种图、RUP 9个工作流
N+3 9核心工作流 = 6过程 + 3支持

📝 七、考前30分钟自检

  • 4道简答题能默写要点稳拿5分
  • 需求三个层次:业务→用户→系统?
  • 用例三种关系箭头方向不混?(包含=基→含,扩展=扩→基)
  • 类图六大关系秒判?
  • 聚合空心◇ vs 组合实心◆ 不混?
  • 调用消息(同步/实心箭头) vs 异步消息(开放箭头) 能区分?
  • 消息编号 1 → 1.1 → 1.1.1 嵌套规则?
  • 状态图(单对象) vs 活动图(多对象/流程) 区分?
  • 分支◇(单选) vs 分叉≡(并发) 不混?
  • RUP四阶段顺序初始→细化→构造→移交
  • 画顺序图能区分边界类/控制类/实体类三层?
  • 多重性 1 0..1 * 1..* 会读会标?
  • 组件图/部署图仅出选填,不用练画图?

📎 相关笔记期末复习指南 | 课后习题汇编