9.0 KiB
9.0 KiB
期末考试复习指南
课程:软件需求分析与设计
考试结构:选择30分 + 填空15分 + 解答25分 + 案例30分 = 100分
📋 考试题型与分值
| 题型 | 题量 | 分值 | 考察内容 |
|---|---|---|---|
| 选择题 | 15题 | 30分(2分/题) | 基础知识点 |
| 填空题 | 15空 | 15分(1分/空) | 基础知识点 |
| 解答题 | 5题 | 25分(5分/题) | 需求管理 + UML图理解 |
| 案例题 | 2题 | 30分 | 综合建模能力 |
📎 各章笔记链接:第1章 需求工程 | 第3章 用例图 | 第4章 类图 | 第5章 顺序图与协作图 | 第6章 状态图与活动图 | 第7章 组件图与部署图 | 第9章 数据建模 | 第11章 RUP 📎 速查:期末速记(考前必看) | UML九图速查 | 设计原则与术语 | 课后习题汇编
🎯 考试范围与重点
重点考察(约占70分)
| 模块 | 重点内容 | 题型 |
|---|---|---|
| 需求工程 | 需求定义 | 第1章、层次分类、需求开发与需求管理过程域、需求获取技术、SRS、优秀需求特性、需求变更控制流程 |
| 用例图 | 参与者与用例识别 | 第3章、包含/扩展/泛化关系、用例描述编写、系统边界 |
| 类图 | 类与对象、六大关系 | 第4章、多重性、边界类/控制类/实体类、抽象类与接口 |
| 顺序图与协作图 | 消息类型 | 第5章、调用vs异步、生命线与控制焦点、消息编号、顺序图与协作图互转 |
| 活动图 | 活动、泳道 | 第6章、分支、分叉与汇合、对象流 |
| 状态图 | 状态、转移 | 第6章、事件类型、组合状态、历史状态 |
简要了解(约占30分)
| 模块 | 重点内容 | 题型 |
|---|---|---|
| 组件图与部署图 | 组件概念 | 第7章、组件与类的关系、正向/逆向工程、结点 |
| 包图 | 包的概念 | 第8章、四大设计原则(REP/CCP/CRP/ADP) |
| 数据建模 | 对象模型到数据模型转换 | 第9章、多重性映射、三大范式 |
| RUP | 三大特点 | 第11章、四个阶段、九个工作流、六大最佳实践 |
🔑 必背简答题(4选1 + 其他)
题1:需求的层次
📎 详见:第1章 需求工程(按层次分)
答案:需求按层次主要分为业务需求、用户需求、功能需求和非功能需求。
- 业务需求:描述组织或客户的高层次目标,主要目的是对企业目前的业务流程进行评估,得出一个业务前景。
- 用户需求:用户使用系统而完成的任务的集合,在用户案例文档或方案脚本中予以说明。
- 功能需求:定义了开发人员必须实现的软件功能,源于用户需求。
- 非功能需求:描述了系统展现给用户的行为和执行的操作等,包括产品/质量需求、机构需求和外部需求。
题2:优秀需求的特性
📎 详见:第1章 需求工程 - 优秀需求的七个标准
答案:优秀需求通常具备以下特性:
- 正确性:准确反映利益相关方的真实需要。
- 无歧义性:不同读者都要理解一致,不能有歧义。
- 可行性:每一项需求都必须在已知的系统和环境的权能和限制范围内可以实施。
- 有优先级:区分需求的优先级别,更好地管理项目。
- 必要性:每一项需求都应把客户真正需要的和最终系统所需遵从的标准记录下来。
- 可验证性:每项需求都能通过设计测试用例或其他验证方法,来确定产品是否确实按需求实现了。
题3:需求变更控制流程
📎 详见:第1章 需求工程 - 需求变更控制
答案:典型的需求变更流程包括:
- 提出变更:任何人(客户、用户、开发等)提交变更申请。
- 初步评估:项目经理或需求分析人员评估变更的合理性与影响范围。
- 评审与决策:变更控制委员会(CCB)或相关决策者审核,决定是否批准。
- 更新需求文档:若批准,更新需求规格说明书,保持版本记录。
- 通知相关方:将变更内容告知开发、测试、项目管理等团队。
- 调整计划与执行:修改设计、代码、测试用例,并更新项目计划。
- 验证变更:测试确认变更已正确实现且无负面副作用。
题4:需求管理包含的内容
📎 详见:第1章 需求工程 - 需求管理
答案:需求管理应该包含以下内容:
- 需求确认:开发方和客户共同对需求文档进行评审,达成共识并作出书面承诺,使需求文档具有商业合同效果。
- 需求跟踪:通过比较需求文档与后续工作成果之间的对应关系,建立与维护"需求跟踪矩阵",确保产品依据需求文档进行开发。
- 需求变更控制:依据"变更申请—审批—更改—重新确认"的流程处理需求的变更,防止需求变更失去控制而导致项目发生混乱。
📊 UML九图速查
| UML图 | 分类 | 核心用途 | 核心元素 |
|---|---|---|---|
| 用例图 | 功能 | 描述系统功能全景 | 参与者、用例、系统边界、关系 |
| 类图 | 静态结构 | 描述类及其关系 | 类、属性、操作、六大关系 |
| 对象图 | 静态结构 | 某一时刻的快照 | 对象、属性值、链 |
| 顺序图 | 动态交互 | 按时间顺序的消息交互 | 对象、生命线、控制焦点、消息 |
| 协作图 | 动态交互 | 按空间关系的消息交互 | 对象、链、消息序号 |
| 状态图 | 动态行为 | 单个对象的状态变迁 | 状态、转移、事件 |
| 活动图 | 动态行为 | 业务流程/工作流 | 活动、泳道、分支、分叉 |
| 组件图 | 物理实现 | 代码文件组织 | 组件、接口、依赖 |
| 部署图 | 物理实现 | 硬件拓扑 | 结点、组件、连接 |
⚠️ 考前易错提醒
- 包含 vs 扩展:包含=必然执行(箭头基本→包含),扩展=条件执行(箭头扩展→基本)
- 聚合 vs 组合:聚合=空心菱形(部分可独立存在),组合=实心菱形(部分随整体消亡)
- 调用消息 vs 异步消息:调用=同步等待返回,异步=发出后继续执行
- 状态图 vs 活动图:状态图管一个对象的状态变化,活动图管多对象参与的流程
- 消息编号:
1.1.1表示嵌套——1.1.1必须在1.1完成之前完成 - 类图关系判断:属性里放了另一个类=关联,方法参数用了另一个类=依赖
- 用例描述:核心6要素——用例名、参与者、前置条件、后置条件、主事件流、子事件流
- RUP四阶段顺序:初始→细化→构造→移交(不是初始→构造→细化→移交!)
🛠️ 案例题备考建议
- 用例图:能根据文字描述识别参与者(人/外部系统/设备)和用例(动宾短语),正确标注包含/扩展关系
- 类图:能从需求陈述中提取实体类,标注属性和关系,正确标注多重性
- 顺序图:能根据用例描述画出对象间的消息交互,正确使用消息编号(嵌套层级)
- 活动图:能画带泳道的活动图,正确使用分支和分叉/汇合
- 状态图:能识别对象的关键状态,标注触发状态转移的事件
复习策略:选择题+填空题→刷课后习题汇编;解答题→背诵本页4道简答题;案例题→回顾实验和Middle Subjective练习