软件工程考研复试——关键过程与工具终极整理版
一、需求分析与建模
1.1 需求分析核心任务
- 任务目标:明确功能/性能需求、数据需求,建立逻辑模型(数据流图DFD、E-R图)
- 关键步骤:
- 问题定义:确定系统边界与用户核心诉求
- 需求建模:使用DFD描述数据流动(加工节点、数据存储、外部实体)
- 数据字典:明确定义数据元素(如"订单号=客户ID+日期+序列号")
1.2 建模工具对比
| 工具 |
用途 |
核心元素 |
| 数据流图 |
描述系统数据处理流程 |
加工、数据流、存储、外部实体 |
| E-R图 |
设计数据库逻辑结构 |
实体、属性、联系 |
| 用例图 |
描述系统功能与参与者交互 |
参与者、用例、关联关系 |
二、设计阶段核心过程
2.1 结构化设计方法
- 模块划分原则:高内聚低耦合(功能内聚最优,数据耦合最优)
- 耦合类型(由低到高):数据耦合 → 控制耦合 → 公共耦合 → 内容耦合
- 内聚类型(由低到高):偶然内聚 → 逻辑内聚 → 功能内聚
2.2 设计工具与启发式原则
- 结构图:描述模块调用关系(方框表示模块,箭头表示调用)
- 层次图:展示系统分层结构(顶层模块分解至底层)
- 设计原则:
- 模块规模适中(建议50-200行代码)
- 扇入/扇出合理(扇出建议3-5个模块)
- 作用域在控制域内
三、测试方法与工具
3.1 测试分类与策略
| 测试阶段 |
目标 |
常用方法/工具 |
| 单元测试 |
验证模块功能 |
白盒测试(JUnit、语句覆盖) |
| 集成测试 |
验证模块接口 |
自顶向下/自底向上集成 |
| 系统测试 |
验证整体性能 |
黑盒测试(Selenium、Postman) |
| 验收测试 |
用户验证需求符合性 |
α测试(内部)、β测试(外部) |
3.2 测试用例设计
- 白盒测试:路径覆盖(McCabe方法计算环形复杂度)
- 黑盒测试:
- 等价类划分(有效/无效类)
- 边界值分析(如输入范围0-100时测试-1,0,100,101)
四、维护与项目管理
4.1 软件维护类型
| 维护类型 |
占比 |
典型案例 |
| 改正性维护 |
20% |
修复支付接口超时问题 |
| 适应性维护 |
25% |
适配新操作系统版本 |
| 完善性维护 |
50% |
新增用户积分系统 |
| 预防性维护 |
5% |
重构核心模块提升可维护性 |
4.2 项目管理工具
- CMMI成熟度模型:初始级 → 可重复级 → 已定义级 → 已管理级 → 优化级
- 敏捷工具:Scrum看板(JIRA)、持续集成(Jenkins)
五、高频考点与答题策略
5.1 必背考点
- 模块独立性:结合电商系统模块划分案例说明高内聚低耦合的优势
- 测试覆盖率:解释路径覆盖与条件覆盖的区别(结合流程图示例)
- 需求变更管理:用原型模型应对需求频繁变化的场景分析
5.2 复试技巧
- 案例结合:用"微信支付模块的测试流程"说明黑盒测试方法
- 开放题策略:采用"定义→工具→案例"三步法(如回答UML应用)
- 代码题规范:注释清晰 + 边界处理(如输入参数校验)