3.软件工程——关键过程与工具.md 3.4 KB

软件工程考研复试——关键过程与工具终极整理版


一、需求分析与建模

1.1 需求分析核心任务

  • 任务目标:明确功能/性能需求、数据需求,建立逻辑模型(数据流图DFD、E-R图)
  • 关键步骤
    1. 问题定义:确定系统边界与用户核心诉求
    2. 需求建模:使用DFD描述数据流动(加工节点、数据存储、外部实体)
    3. 数据字典:明确定义数据元素(如"订单号=客户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 必背考点

  1. 模块独立性:结合电商系统模块划分案例说明高内聚低耦合的优势
  2. 测试覆盖率:解释路径覆盖与条件覆盖的区别(结合流程图示例)
  3. 需求变更管理:用原型模型应对需求频繁变化的场景分析

5.2 复试技巧

  • 案例结合:用"微信支付模块的测试流程"说明黑盒测试方法
  • 开放题策略:采用"定义→工具→案例"三步法(如回答UML应用)
  • 代码题规范:注释清晰 + 边界处理(如输入参数校验)