知识点详解
一、软件需求的三个层次
- 业务需求(Business Requirement):组织机构或客户对系统、产品高层次的目标要求;
- 用户需求(User Requirement):用户使用产品必须完成的任务,是用户的期望;
- 功能需求(Functional Requirement):从系统操作角度定义开发人员必须实现的软件功能。
记忆:业务需求 + 用户需求 = 用户原始需求文档;批准的 SRS 是需求开发和需求管理之间的桥梁。SRS 包括功能需求、非功能需求和约束(设计约束+过程约束)。
二、需求工程五阶段
需求获取基本步骤:① 开发高层的业务模型 → ② 定义项目范围和高层需求 → ③ 识别用户角色和用户代表 → ④ 获取具体需求 → ⑤ 确定目标系统业务工作流。常用获取方法:访谈、问卷调查、观察(跟班作业)、原型法、联合需求计划 JRP、抽样等。
三、结构化分析:DFD 与数据字典
数据流图(DFD)四种元素:外部实体(方框)、加工/处理(圆或圆角矩形)、数据存储(双横线/开口矩形)、数据流(箭头)。
建模步骤:确定系统边界 → 画顶层 DFD(0 层图)→ 逐层分解画下层 DFD → 开发 DFD 层次结构图 → 检查确认 DFD 图。
DFD 合法性规则(案例找错考点):
- 父图数据流必须在子图中出现(父子平衡);
- 一个处理至少有一个输入流和一个输出流(黑洞/奇迹错误);
- 一个存储必定有流入和流出;
- 一个数据流至少有一端是处理端(实体不能直连实体/存储);
- 模型表达的信息应是全面、完整、正确和一致的。
数据字典(DD):对系统中使用的所有数据元素定义的集合,包括数据项、数据结构、数据流、数据存储和处理过程。
四、面向对象分析 OOA 与用例关系
- OOA 模型 5 层次:主题层、对象类层、结构层、属性层、服务层;5 活动:标识对象类、标识结构、定义主题、定义属性、定义服务。
- 用例间三种关系:包含(从两个以上用例中提取公共行为,箭头指向被包含用例,如"课程学习"→"检查权限");扩展(混合了多种场景分支,如"课程学习"←"缴纳学费");泛化(多个用例共性抽象为父用例,如"课程注册"与"电话注册/网络注册")。
- 类的三种类型(OOD):实体类(名词,永久存储,如教师、学生);控制类(控制用例工作、协调其他对象,如登录验证);边界类(封装用例内外流动的信息/数据流,如窗口、通信协议、接口)。
- OOP 三特点:封装、继承(取代/包含/受限/特化四类)、多态。
五、需求管理与变更控制(案例高频)
需求管理是对系统需求变更、了解和控制的过程,主要活动:变更控制、版本控制、需求跟踪("文档管理"不属于需求管理主要活动——真题考点)。需求跟踪通常使用需求跟踪矩阵(跟踪需求来源与实现对应关系)。需求变更管理过程:问题分析和变更描述 → 变更分析与成本计算 → 变更实现(修改)。
考法:①"不属于需求管理活动"选文档管理;②DFD 找错(黑洞:只有入没有出;奇迹:只有出没有入;父图子图不平衡);③用例关系判断(包含/扩展/泛化);④SRS 是需求开发与管理的桥梁。