Skip to content

考点清单

  • [x] CMMI 5 级阶段式表示
  • [x] 内聚性排序(7 级从高到低)
  • [x] DFD 4 元素 + 3 种逻辑符号
  • [x] 逆向工程 4 级别(实现→结构→功能→领域)
  • [x] 测试覆盖关系(条件覆盖 ⊅ 判断覆盖)
  • [x] RUP 4 阶段 + 用例驱动
  • [x] 设计模式 3 大类分类
  • [x] 软件复用(横向 vs 纵向)
  • [x] 4+1 视图模型
  • [x] 净室软件工程(正确性验证 + 统计测试)
  • [x] 需求跟踪(正向 vs 逆向)
  • [x] 软件维护 4 类型
  • [x] 软件产品线双生命周期
  • [x] SysML 需求图 vs UML 用例图

笔记

一、内聚性排序(高→低)★

功能内聚 > 顺序内聚 > 通信内聚 > 过程内聚 > 时间内聚 > 逻辑内聚 > 偶然内聚

二、DFD 数据流图

4 种基本元素:外部实体、加工(处理)、数据存储、数据流。

3 种逻辑符号:

符号含义
异或(互斥产生,不能同时)
+与(同时产生)
*** **或(至少产生一个)

DFD 加工 3 种逻辑错误:黑洞(只有输入无输出)、奇迹(只有输出无输入)、灰洞(输入不足以产生输出)。

平衡原则:子图输入输出数据流必须与父图对应加工保持一致。

DFD 用于建立功能模型;E-R 图用于建立数据模型

三、逆向工程 4 级别

级别内容特点
实现级语法/源代码可完全自动(反编译)
结构级程序结构(模块/调用关系)自动变换得到
功能级计算逻辑需用户指导
领域级业务语义需专家规则

用户指导下的搜索与变换方法可导出功能级和领域级

四、测试覆盖关系 ★

条件覆盖与判断覆盖互不包含(经典反例:A∨B 仅两个条件真值即可满足条件覆盖,但均使判断为真,未覆盖假分支)。

覆盖强度:路径覆盖 > 条件/判定覆盖 > 判定覆盖 ? 条件覆盖 > 语句覆盖(最弱)。

覆盖方法关注点
语句覆盖每条语句至少执行一次(最弱)
判断覆盖每个判断真/假至少各一次
条件覆盖每个条件真/假至少各一次
条件/判定组合覆盖每个条件真/假 + 整个判定真/假
路径覆盖所有可能执行路径(最强,难以实现)

五、设计模式 3 大类速记

类型核心目的常见模式
创建型对象创建机制,隐藏创建细节单例、工厂方法、抽象工厂、建造者、原型
结构型类/对象组合成更大结构适配器、桥接、组合、装饰、代理、外观、享元
行为型对象间职责分配和通信观察者、策略、命令、解释器、迭代器、模板方法、状态、责任链、中介者、备忘录、访问者

装饰模式 = 结构型(非行为型);观察者 = 行为型(非结构型);原型 = 创建型。

六、RUP 统一软件开发过程 ★

4 阶段:初始(确定范围)→ 细化(设计体系结构、制订计划)→ 构造(构建产品)→ 移交(交付)。

核心特征用例驱动

七、软件复用

类型说明速记
横向重用跨不同应用领域重用通用元素(算法、数据结构、UI组件)"横向跨行业"
纵向重用同一应用领域内重用特定业务组件或领域模型"纵向同一域"

软件产品线双生命周期:领域工程(共性资产开发)+ 应用工程(个性系统组装)。

软件架构复用过程:开发可复用资产 → 管理可复用资产 → 使用可复用资产。

八、4+1 视图模型 ★

视图关注点
逻辑视图功能需求(类、模块、关系)
开发视图静态组织结构(包、库、依赖管理)
进程视图并发、同步、通信(运行时行为)
物理视图软件到硬件映射(节点、网络连接)
场景视图用例串联其他视图

"用例视图"非标准说法,标准为"场景"通过用例体现。

九、软件维护 4 类型

类型内容
改正性维护修复发现的错误或缺陷
适应性维护适应变化的外部环境(新 OS、新硬件)
完善性维护响应用户新需求,扩充功能或提升性能效率
预防性维护改进未来可维护性或可靠性

十、其他速记要点

知识点速记
CMMI 5 级初始→已管理→已定义→量化管理→优化
单元测试依据详细设计("单元看详设,模块看概设")
系统测试依据需求分析("系统测需求,单元测编码")
螺旋模型核心强调风险分析,每个迭代含风险评估
Scrum Backlog 排序依据商业价值
净室软件工程形式化方法正确性验证 + 统计测试
需求跟踪正向:需求→后续;逆向:后续→需求
SysML 需求图7 种关系:包含/扩展/泛化/跟踪/复制/满足/验证
结构化分析核心面向数据流
UML 参与者的关系只能泛化(继承),用例才能包扩(包含+扩展)
AB 测试同时段、同特征用户、随机分组、对比不同版本

十一、UML 用例关系

关系适用对象
包含 <<include>>用例之间(必选)
扩展 <<extend>>用例之间(可选)
泛化参与者之间 / 用例之间

聚合是类图关系,不属于用例模型。

十二、数据驱动测试

核心思想:测试数据与测试脚本分离,数据存储在外部文件(CSV、Excel、XML),脚本从文件读取数据。