Skip to content

第7章 系统开发基础

📚 本章课程

课程内容
7.1.1 软件工程概述
7.1.2 软件的基本生存周期
7.1.3 软件过程
7.2 软件开发方法
7.3 软件开发模型 (7课时)
7.3.1 软件开发模型知识点概述模型分类和选择原则
7.3.2 瀑布模型与V模型传统的线性开发模型
7.3.3 演化模型(原型模型、螺旋模型)迭代式开发模型
7.3.4 增量模型分批交付的开发模式
7.3.5 喷泉模型面向对象的开发模型
7.3.6 统一过程UPRUP统一软件开发过程
7.3.7 敏捷方法Scrum、XP等敏捷实践
7.4 需求分析 (4课时)
7.4.1 需求分析知识点概述需求工程的重要性
7.4.2 需求分析的基本概念功能需求和非功能需求
7.4.3 需求的分类业务需求、用户需求、系统需求
7.4.4 需求分析的工具用例图、数据流图、状态图
7.5 系统设计 (5课时)
7.5.1 系统设计知识点概述设计的目标和原则
7.5.2 系统设计概述概要设计和详细设计
7.5.3 模块设计模块化设计原理和方法
7.5.4 人机界面设计用户界面设计原则
7.5.5 架构设计软件架构模式和风格
7.6 软件测试 (6课时)
7.6.1 软件测试概述测试的目的和重要性
7.6.2 软件测试的基本概念及分类测试类型和级别
7.6.3 黑盒测试等价类划分、边界值分析
7.6.4 白盒测试语句覆盖、分支覆盖、路径覆盖
7.6.5 系统测试阶段单元测试、集成测试、系统测试
7.6.6 McCabe环路复杂度计算复杂度度量方法
7.7 软件维护
7.8 软件文档
7.9 软件质量保证模型
7.10 章节概述知识点梳理和重点回顾
7.11 章节回顾典型题目分析和解题技巧

📚 章节概述

系统开发基础是软考中级软件设计师考试的核心内容,涵盖软件工程的基本理论、开发方法、过程模型和质量保证。本章将系统学习软件开发的完整生命周期和工程化方法。

🎯 学习目标

通过本章学习,你将掌握:

  • 软件工程的基本概念和原理
  • 软件开发生命周期和过程模型
  • 需求分析和系统设计方法
  • 软件测试的理论和技术
  • 软件质量保证和项目管理

📖 课程安排

7.1 软件工程基础 (6课时)

7.1.1 软件工程概述

  • 软件工程的定义和目标
  • 软件危机和软件工程的产生
  • 软件工程的基本原理和方法
  • 软件工程的发展趋势

7.1.2 软件的基本生存周期

  • 软件生命周期的概念
  • 生命周期各阶段的任务
  • 阶段间的关系和依赖
  • 生命周期模型的选择

7.1.3 软件过程

  • 软件过程的定义和要素
  • 过程改进和成熟度模型
  • CMM/CMMI能力成熟度模型
  • ISO 9000质量管理体系

7.2-7.3 开发方法与模型 (8课时)

7.2 软件开发方法

  • 结构化方法:自顶向下、模块化设计
  • 面向对象方法:封装、继承、多态
  • 敏捷开发方法:迭代、增量、适应性
  • DevOps方法:开发运维一体化

7.3 软件开发模型 (7课时)

  • 7.3.1 软件开发模型知识点概述 - 模型分类和选择原则
  • 7.3.2 瀑布模型与V模型 - 传统的线性开发模型
  • 7.3.3 演化模型(原型模型、螺旋模型) - 迭代式开发模型
  • 7.3.4 增量模型 - 分批交付的开发模式
  • 7.3.5 喷泉模型 - 面向对象的开发模型
  • 7.3.6 统一过程UP - RUP统一软件开发过程
  • 7.3.7 敏捷方法 - Scrum、XP等敏捷实践

7.4-7.9 系统开发过程 (18课时)

7.4 需求分析 (4课时)

  • 7.4.1 需求分析知识点概述 - 需求工程的重要性
  • 7.4.2 需求分析的基本概念 - 功能需求和非功能需求
  • 7.4.3 需求的分类 - 业务需求、用户需求、系统需求
  • 7.4.4 需求分析的工具 - 用例图、数据流图、状态图

7.5 系统设计 (5课时)

  • 7.5.1 系统设计知识点概述 - 设计的目标和原则
  • 7.5.2 系统设计概述 - 概要设计和详细设计
  • 7.5.3 模块设计 - 模块化设计原理和方法
  • 7.5.4 人机界面设计 - 用户界面设计原则
  • 7.5.5 架构设计 - 软件架构模式和风格

7.6 软件测试 (6课时)

  • 7.6.1 软件测试概述 - 测试的目的和重要性
  • 7.6.2 软件测试的基本概念及分类 - 测试类型和级别
  • 7.6.3 黑盒测试 - 等价类划分、边界值分析
  • 7.6.4 白盒测试 - 语句覆盖、分支覆盖、路径覆盖
  • 7.6.5 系统测试阶段 - 单元测试、集成测试、系统测试
  • 7.6.6 McCabe环路复杂度计算 - 复杂度度量方法

7.7 软件维护

  • 维护的定义和分类
  • 维护活动的管理
  • 维护成本控制
  • 遗留系统的处理

7.8 软件文档

  • 文档的分类和作用
  • 文档编写规范
  • 文档管理和版本控制
  • 用户手册和技术文档

7.9 软件质量保证模型

  • 软件质量的定义和特性
  • ISO/IEC 25010质量模型
  • 质量保证活动
  • 质量度量和评估

7.10-7.11 章节总结 (2课时)

  • 7.10 章节概述 - 知识点梳理和重点回顾
  • 7.11 章节回顾 - 典型题目分析和解题技巧

⏰ 学习时间安排

  • 总学习时间:34课时
  • 建议学习周期:4-5周
  • 每日学习时间:1-2课时
  • 重点难点:开发模型、需求分析、软件测试

🔍 重点难点

重点内容

  1. 软件生命周期 - 理解各阶段的任务和产物
  2. 开发模型比较 - 掌握各种模型的特点和适用场景
  3. 需求分析方法 - 熟练使用需求分析工具
  4. 测试技术 - 掌握黑盒和白盒测试方法
  5. 质量保证 - 理解软件质量模型和度量

难点突破

  1. 模型选择 - 根据项目特点选择合适的开发模型
  2. 需求建模 - 使用UML进行需求建模
  3. 测试用例设计 - 设计有效的测试用例
  4. 复杂度计算 - 掌握McCabe复杂度计算方法

📝 考试要点

选择题考点

  • 软件工程基础 (3-4分)
  • 开发模型 (4-5分)
  • 需求分析 (3-4分)
  • 系统设计 (3-4分)
  • 软件测试 (4-5分)
  • 质量保证 (2-3分)

应用题考点

  • 开发模型选择 (5-8分)
  • 需求分析建模 (8-10分)
  • 测试用例设计 (8-10分)
  • 复杂度计算 (5-8分)

🏗️ 开发模型对比

瀑布模型

  • 特点:线性顺序、阶段清晰
  • 优点:管理简单、文档完整
  • 缺点:缺乏灵活性、风险较高
  • 适用:需求明确、技术成熟的项目

螺旋模型

  • 特点:风险驱动、迭代开发
  • 优点:风险控制好、适应性强
  • 缺点:复杂度高、成本较大
  • 适用:大型复杂、高风险项目

敏捷模型

  • 特点:迭代增量、快速响应
  • 优点:适应变化、交付快速
  • 缺点:文档较少、需要高素质团队
  • 适用:需求变化频繁的项目

🧪 软件测试技术

黑盒测试方法

等价类划分法
1. 确定等价类
   - 有效等价类:满足规格说明的输入
   - 无效等价类:不满足规格说明的输入
2. 设计测试用例
   - 每个等价类至少一个测试用例
   - 优先覆盖多个有效等价类

边界值分析法
1. 确定边界值
   - 输入域的边界
   - 输出域的边界
2. 设计测试用例
   - 边界值及其邻近值
   - 最小值、最大值、典型值

白盒测试方法

语句覆盖
- 要求每个语句至少执行一次
- 覆盖率 = 已执行语句数 / 总语句数

分支覆盖
- 要求每个分支至少执行一次
- 覆盖率 = 已执行分支数 / 总分支数

路径覆盖
- 要求每条路径至少执行一次
- 覆盖率 = 已执行路径数 / 总路径数

📊 McCabe复杂度计算

计算公式

V(G) = E - N + 2P

其中:
E = 边的数量
N = 节点的数量
P = 连通分量的数量(通常为1)

简化公式:V(G) = E - N + 2

复杂度等级

  • 1-10:简单程序,风险很小
  • 11-20:复杂度适中,风险中等
  • 21-50:复杂程序,风险较高
  • >50:极其复杂,风险很高

预计完成时间:34课时 | 难度等级:★★★★★

🎯 本章课程总览

课程内容时长
7.1.1 软件工程概述从软件危机出发理解软件工程方法论与生命周期管理。45分钟
7.1.2 软件的基本生存周期从软件危机出发理解软件工程方法论与生命周期管理。45分钟
7.1.3 软件过程从软件危机出发理解软件工程方法论与生命周期管理。45分钟
7.2 软件开发方法从软件危机出发理解软件工程方法论与生命周期管理。45分钟
7.3 软件开发模型 (7课时)比较主流软件开发模型的特点、适用场景与考试辨析点。45分钟
7.3.1 软件开发模型知识点概述比较主流软件开发模型的特点、适用场景与考试辨析点。45分钟
7.3.2 瀑布模型与V模型比较主流软件开发模型的特点、适用场景与考试辨析点。45分钟
7.3.3 演化模型(原型模型、螺旋模型)比较主流软件开发模型的特点、适用场景与考试辨析点。45分钟
7.3.4 增量模型比较主流软件开发模型的特点、适用场景与考试辨析点。45分钟
7.3.5 喷泉模型比较主流软件开发模型的特点、适用场景与考试辨析点。45分钟
7.3.6 统一过程UP比较主流软件开发模型的特点、适用场景与考试辨析点。45分钟
7.3.7 敏捷方法比较主流软件开发模型的特点、适用场景与考试辨析点。45分钟
7.4 需求分析 (4课时)掌握需求工程核心概念、分类体系与建模工具。45分钟
7.4.1 需求分析知识点概述掌握需求工程核心概念、分类体系与建模工具。45分钟
7.4.2 需求分析的基本概念掌握需求工程核心概念、分类体系与建模工具。45分钟
7.4.3 需求的分类掌握需求工程核心概念、分类体系与建模工具。45分钟
7.4.4 需求分析的工具掌握需求工程核心概念、分类体系与建模工具。45分钟
7.5 系统设计 (5课时)掌握系统设计阶段目标、模块划分原则与架构设计方法。45分钟
7.5.1 系统设计知识点概述掌握系统设计阶段目标、模块划分原则与架构设计方法。45分钟
7.5.2 系统设计概述掌握系统设计阶段目标、模块划分原则与架构设计方法。45分钟
7.5.3 模块设计掌握系统设计阶段目标、模块划分原则与架构设计方法。45分钟
7.5.4 人机界面设计掌握系统设计阶段目标、模块划分原则与架构设计方法。45分钟
7.5.5 架构设计掌握系统设计阶段目标、模块划分原则与架构设计方法。45分钟
7.6 软件测试 (6课时)掌握软件测试理论、方法体系与复杂度度量应用。45分钟
7.6.1 软件测试概述掌握软件测试理论、方法体系与复杂度度量应用。45分钟
7.6.2 软件测试的基本概念及分类掌握软件测试理论、方法体系与复杂度度量应用。45分钟
7.6.3 黑盒测试掌握软件测试理论、方法体系与复杂度度量应用。45分钟
7.6.4 白盒测试掌握软件测试理论、方法体系与复杂度度量应用。45分钟
7.6.5 系统测试阶段掌握软件测试理论、方法体系与复杂度度量应用。45分钟
7.6.6 McCabe环路复杂度计算掌握软件测试理论、方法体系与复杂度度量应用。45分钟
7.7 软件维护梳理系统开发后期保障能力:维护、文档与质量体系。45分钟
7.8 软件文档梳理系统开发后期保障能力:维护、文档与质量体系。45分钟
7.9 软件质量保证模型梳理系统开发后期保障能力:维护、文档与质量体系。45分钟
7.10 章节概述从生命周期、开发模型、需求设计到测试维护构建系统开发章节的完整知识框架。45分钟
7.11 章节回顾聚焦开发模型、需求分析、系统设计与测试维护的高频考点,完成章节冲刺复盘。45分钟

🧭 本章定位(命题老师视角)

  • 本章以“概念辨析 + 计算/推理”混合题为主,强调关键词与方法匹配。
  • 命题常把相近概念放在同题干干扰,需要先判边界再下结论。

🧱 命题主线

  • 主线1:核心概念定义、边界与场景映射。
  • 主线2:典型机制/流程的步骤化理解与应用。
  • 主线3:高频易错点识别与反向排除。

⏱️ 复习优先级(时间不足时)

  1. 先做本章高频计算题与判定题。
  2. 再做章节概述与回顾中的综合题。
  3. 最后复盘错题并补齐概念盲区。

📝 一页速记

模块快速记忆
核心概念先记定义,再记边界,再记反例
常用方法先识别题型,再调用方法模板
易错点关注关键词、单位、约束条件
作答步骤条件提取 -> 过程推导 -> 结果校验

⚠️ 高频坑位

  • 概念名词相近但边界不同,容易“看着像就选”。
  • 计算题忘记统一单位、位宽或默认条件。
  • 过程题跳步骤,导致中间量错而全题失分。

🧪 作答模板(客观题/综合题)

  • 第一步:识别题型(概念、流程、计算、综合)。
  • 第二步:提取关键词(对象、条件、约束、目标)。
  • 第三步:调用方法并写出关键中间步骤。
  • 第四步:检查边界(符号、范围、单位、合理性)。

🛣️ 学习路线建议

  • 第一轮:按课程顺序建立知识骨架。
  • 第二轮:按题型专题训练并沉淀模板。
  • 第三轮:只看错题与速记表做考前冲刺。