软考中级软件设计师专项-软件工程专题上篇

简介: 本篇章精讲软考中级软件设计师“软件工程”核心内容,涵盖CMM/CMMI成熟度模型、瀑布/螺旋/敏捷等开发模型、系统测试与维护策略及McCabe复杂度等考点,结合例题解析,助力构建全生命周期知识体系,精准突破考试重难点。

简介

本篇章为软考中级软件设计师“软件工程”科目的上篇核心内容精讲,系统覆盖以下重点模块:  

  1. 软件过程与成熟度模型:深度剖析CMM 5级成熟度框架(初始级→优化级)与CMMI阶段式/连续式模型的差异,结合例题掌握过程改进核心逻辑。  
  2. 经典开发模型:从瀑布模型、V模型到增量/原型/螺旋模型,详解各模型的适用场景、优势局限及典型考题解法(如喷泉模型的同步开发特性、统一过程的4阶段迭代)。  
  3. 系统测试与维护:聚焦单元测试5大特征、集成测试策略(自顶向下/自底向上)、白盒测试6大覆盖准则,以及软件维护4大类型(纠错性/适应性/完善性/预防性),结合McCabe复杂度度量强化实战应用。  
  4. 敏捷开发与新兴实践:解析极限编程(XP)的4大价值观、12项实践,对比水晶法、并列争求法的迭代管理差异。

通过知识点梳理+高频例题双轨制解读,助力构建软件工程全生命周期知识体系,精准突破考试重难点。

一、软件过程

功能成熟度模型(CMM)

  1. 5个成熟度级别
  1. 初始级
  1. 项目的成功依赖于一个人的努力和英雄核心人物的作用
  1. 可重复级
  1. 建立了基本的项目管理过程和实践来跟踪项目费用、进度、和功能特性
  1. 已定义级:
  1. 文档化、标准化、标准软件
  1. 已管理级:
  1. 产品质量
  1. 优化级:
  1. 加强了定量分析

  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

能力成熟度模型集成(CMMI)

  1. CMMI提供了2种表示方法
  1. 阶段式模型
  2. 连续式模型
  1. 阶段式模型(了解)
  1. 5个成熟度等级

  1. 连续式模型---(6个过程能力等级)
  1. CL0(未完成的)
  1. 未执行、未得到
  1. CL1(已完成的)
  1. 输入转输出
  1. CL2(已管理的)
  1. 集中于已管理的过程制度化
  1. CL3(已定义的)
  1. 集中于已定义的过程制度化
  1. CL4(定量管理)
  1. 集中于定量管理
  1. CL5(优化)
  1. 使用量化手段改变和优化

  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

二、软件过程模型

瀑布模型

  1. 五个阶段
  1. 每完成一个阶段后,都会进行阶段评审和文档控制,对真个开发过程指导。

  1. 适用:
  1. 需求很明确的软件项目
  1. 优点:
  1. 容易理解,管理成本低
  1. 不足:客户必须能够完整,并且正确和清晰表达出他的需求。

  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

  1. 例题5

  1. 例题6

V模型

  1. 是瀑布模型的一个变体
  2. 描述了质量保证活动和沟通,建模相关活动

增量模型

  1. 第一个增量是核心产品
  2. 客户对每个增量的适用和评估都作为下一个增量发布的新特征和功能
  1. 例如:一直迭代,给客户看后,直到成品完成

  1. 该模型是瀑布模型的一个变体,具有它的所有优点
  2. 优点:
  1. 第一个版本开发成本和时间快
  2. 开发风险不发
  3. 可以减少用户需求的变更
  1. 不足:
  1. 如果没有对用户变更要求规划,初始增量可能出现不稳定
  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

  1. 例题5

  1. 例题6

演化模型

  1. 该模型是迭代过程模型
  2. 适用于:
  1. 对软件需求缺乏准确认识的情况
  1. 分类:
  1. 原型模型
  2. 螺旋模型
  1. 例题1

原型模型

  1. 适用性:
  1. 用户需求经常变化
  2. 系统规模不大也不复杂
  1. 目的:快速、低成本地构建原型,帮助用户确定需求

  1. 注意点:原型模型开始于沟通
  2. 例题1

  1. 例题2

螺旋模型

  1. 适用:
  1. 大规模软件
  2. 需要风险分析
  3. 庞大、复杂且高风险的系统

  1. 例题1

  1. 例题2

喷泉模型

  1. 是一种以用户需求为动力、以对象为驱动的模型
  2. 适用:
  1. 面向对象的开发方法
  1. 特征:
  1. 各个阶段没有明显的界限,开发人员可以同步进行
  1. 优点:
  1. 提高开发效率、节约开发时间
  1. 缺点:
  1. 各个开发阶段是重合的,在开发阶段需要大量的开发人员,不利于项目管理

  1. 例题1

  1. 例题2

  1. 例题3

统一过程(UP)模型

  1. 是一种用例和风险驱动,以架构为中心,迭代并且增量的开发过程
  2. 4个阶段

  1. 4个阶段的重要里程碑

  1. 扩展题1

  1. 扩展题2

  1. 例题1

  1. 例题2

  1. 例题3

敏捷方法(5种)

极限编程
  1. 由4个组成:价值观、原则、实践、行为
  2. 4大价值观:
  1. 沟通、简单性、反馈、勇气
  1. 5大原则:
  1. 快速反馈 、简单性假设、逐步修改、提倡更改和优质工作。
  1. 12个最佳实践

水晶法
  1. 水晶法认为每一个不同的项目都需要一套不同的策略、约定和方法论
并列争求发
  1. 30天一次的迭代为一个冲刺
自适应软件开发(了解)

敏捷统一过程

例题
  1. 题1

  1. 题2

  1. 题3

  1. 题4

  1. 题5

结对编程实例图:

两个人使用一台电脑进行开发

  1. 题6

  1. 题7

  1. 题8

  1. 题9

三、需求分析

1. 软件需求

  1. 例题1

  1. 例题2

四、系统设计

1. 概要设计

  1. 设计软件总体结构是概要设计的关键步骤
  2. 数据结构级数据库设计(了解)
  3. 编写概要设计文档

2. 详细设计

  1. 对每个模块进行详细的算法设计

3. 总结:

概要设计:总体结构

详细:算法

4. 例题

  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

五、系统测试

1. 意义和目的

2. 九个测试原则

3. 例题

  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

  1. 例题5

六、单元测试

  1. 别名:模块测试
  2. 在模块编写完成且无编译错误后九可以及进行
  3. 单元测试主要检查的5个特征
  1. 模块接口:保证数据可以正确流入、流出
  2. 局部数据结构
  3. 主要的执行路径
  4. 出错处理
  5. 边界条件
  1. 单元测测试的过程

  1. 例题1

  1. 例题2

七、集成测试

1. 自顶向下集成测试

  1. 是一种增量方法
  2. 记:不用编写驱动模块,需要编写桩模块

2. 自底向上集成测试

  1. 记:不用编写桩模块,需要编写驱动模块

3. 回归测试

总结:软件变更了,就要重新测试。

4. 冒烟测试(了解)

5. 例题

  1. 例题1

  1. 例题2

  1. 例题3

八、测试方法

  1. 分类
  1. 静态测试
  1. 以人工检测
  1. 例如:计算机辅助静态分析
  1. 动态测试
  1. 黑盒测试(功能测试):
  1. 测试方法有:边界值分析、有效、无效等价类划分
  1. 白盒测试
  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

九、McCabe度量法

重点公式:弧总数-结点总数+2

代码行数是度量软件复杂读的一个主要参数

  1. 例题1

8-7+2=3

  1. 例题2

10-7+2=5

  1. 例题3
  1. 注意:需要补起点结点或少算一条弧

11-9+2=4

  1. 例题4

十、白盒测试

  1. 别称:结构测试
  2. 原则

1. 逻辑测试

1.1. 语句覆盖

每条语句至少执行一次

例如:a=1,b=1,c=1

1.2. 判断覆盖

条件整体的真和假,都执行一次

例如:用例1:a=1,b=1,c=1

  用例2:a=0,b=0,c=0

1.3. 条件覆盖

条件整体中的每个部分条件的真和假都执行一次

1.4. 判定/条件覆盖

条件的整体和部分条件的真假都执行一次

1.5. 条件组合覆盖

判定中条件的各种可能值的组合都至少出现一次

1.6. 路径覆盖

覆盖被测试程序中所有可能的路径

1.7. 例题

  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

  1. 例题5

  1. 例题6

  1. 例题7

  1. 例题8

  1. 例题9

  1. 例题10

2. 白盒测试+McCabe度量法

  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

  1. 例题5

3. 伪代码+白盒测试+McCabe度量法

  1. 示例1

  1. 示例2

  1. 示例3

  1. 例题1

  1. 例题2

  1. 例题3

十一、运行和维护

1. 系统可维护性的评价指标

  1. 可测试性
  2. 可理解性
  3. 可修改性
  4. 例题1

2. 维护与软件文档

  1. 文档是软件可维护性的决定因素
  2. 文档分为:
  1. 用户文档
  2. 系统文档
  1. 例题1

  1. 例题2

  1. 例题3

3. 软件文档

  1. 例题1

  1. 例题2

十二、系统维护内容

  1. 3类
  1. 硬件维护
  2. 软件维护(重点)
  3. 数据维护

软件维护(重点)

  1. 4个类型:
  1. 正确性维护
  1. 关键词:错误
  2. 改正开发阶段发生而测试阶段未发现的错误
  1. 适应性维护
  1. 为了适应某种变化
  1. 完善性维护
  1. 扩充功能,改善性能
  1. 预防性维护
  1. 为了改进应用软件的可靠性和和维护性
  2. 为了使用未来的软件、硬件环境的变化
  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

  1. 例题5

  1. 例题6

  1. 例题7

  1. 例题8

  1. 例题9

  1. 例题10

  1. 例题11

  1. 例题12

  1. 例题13

十三、可靠性、可用性、可维护性

背:

  1. 可靠性、可用性、可维护性是软件啊的质量属性
  2. 软件工程中,用0、1之间的树来度量

  1. 例题1

  1. 例题2

选:B

  1. 例题3

  1. 例题4

十四、沟通路径

考题形式1(没有主程序员)

重点公式:(n-1)*n/2

4+3+2+1=10

考题形式2:(有主程序员)

公式:n-1

例题

  1. 例题1

(8-1)*8/2=56/2=28

  1. 例题2

  1. 例题3

十五、软件项目估算

COCOMO估算模型

记:

  1. 分类:
  1. 基本cocomo模型:
  1. 静态单变量模型
  1. 中级cocomo模型:
  1. 静态多变量模型
  1. 详细cocomo模型(了解)

COCOMOII模型

记 :

  1. 分类
  1. 应用组装模型:
  1. 对象点
  1. 早期设计阶段模型:
  1. 功能点
  1. 体系结构阶段模型:
  1. 代码行

例题

  1. 例题1

  1. 例题2

  1. 例题3

  1. 例题4

目录
相关文章
|
7月前
|
设计模式 算法 Java
软考中级软件设计师专项-设计模式篇
备战软考中级软件设计师?本文聚焦高分设计模式模块,详解23种模式的核心意图与场景,结合UML图、Java代码实例及历年真题,覆盖创建型、结构型、行为型三大类,助你打通理论到实战。
559 1
软考中级软件设计师专项-设计模式篇
|
7月前
|
存储 机器学习/深度学习 人工智能
软考中级软件设计师专项-数据结构与算法上篇
软件设计师考试数据结构模块涵盖数组、链表、栈、队列、树、图等基础结构及其操作,重点考查二分查找、快排与归并排序、树/图的DFS/BFS遍历算法,要求掌握时间与空间复杂度分析,理解哈希、堆的应用场景,强调通过合理选择数据结构优化程序性能,解决存储管理与计算效率问题,为系统设计奠定核心逻辑基础。
697 1
软考中级软件设计师专项-数据结构与算法上篇
|
7月前
|
测试技术 开发工具 数据库
软考中级软件设计师专项-软件工程专题下篇
本文精讲软考中级软件设计师核心内容,涵盖进度管理、风险管理、质量模型、容错技术及工具链,结合图表、例题与知识图谱,助力考生掌握关键考点,高效备考冲刺。
294 1
软考中级软件设计师专项-软件工程专题下篇
|
7月前
|
存储 算法 定位技术
软考中级软件设计师专项-操作系统篇
专为软考打造的操作系统终极攻略,涵盖进程管理、死锁、存储系统等核心考点,结合20+真题与答题模板,助你高效掌握命题规律,提升应试能力。
345 1
软考中级软件设计师专项-操作系统篇
|
7月前
|
安全 网络协议 网络安全
软考中级软件设计师专项-网络安全篇
本文介绍了网络安全核心技术,包括防火墙技术(包过滤、应用代理、状态检测)、病毒类型(蠕虫、木马、宏病毒)及特征、常见网络攻击手段,并涵盖SSL/TLS、HTTPS、IPSec等安全协议,结合实例解析防护机制与应用。
327 1
软考中级软件设计师专项-网络安全篇
|
7月前
|
测试技术 数据库 uml
软考中级软件设计师专项-UML图篇
UML(统一建模语言)是一种用于软件系统建模的标准化语言,能够清晰表达系统的静态结构与动态行为。其核心包括三类构造块:事物、关系和图。事物分为结构事物、行为事物、分组事物和注释事物;关系包括依赖、关联、泛化和实现;图则涵盖了类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图和部署图等,分别用于静态建模、动态建模和物理建模。
592 1
软考中级软件设计师专项-UML图篇
|
7月前
|
SQL 存储 JavaScript
软考中级软件设计师专项-数据库篇
本资料涵盖数据库核心概念,包括结构数据模型(层次、网状、关系模型)、三级模式结构(概念模式、外模式、内模式)、关系模型术语与完整性约束(实体、参照完整性)、笛卡尔积及关系代数操作(投影、选择、连接)、SQL语言基础与查询优化、关系模式规范化(范式1NF、2NF、3NF、BCNF)、E-R图设计与数据库设计流程、事务管理(ACID特性)、并发控制与分布式数据库等内容,适合数据库学习与考试复习。
395 1
软考中级软件设计师专项-数据库篇
|
7月前
|
存储 缓存 算法
软考通关密钥:计算机系统核心原理全解剖——软件设计师必懂的底层逻辑
专为软考中级软件设计师打造,深入解析CPU架构、存储体系、进制转换、原码补码、浮点数、寻址方式、校验码、RISC/CISC、流水线、Cache、中断、I/O控制、总线及加密技术等核心知识点,结合真题剖析高频考点,构建计算机系统底层知识体系,提升应试与实践能力。
519 1
软考通关密钥:计算机系统核心原理全解剖——软件设计师必懂的底层逻辑
|
7月前
|
设计模式 算法 测试技术
软考中级软件设计师专项-面向对象篇
软件设计师考试中,面向对象是核心考点,涵盖类与对象、继承、封装、多态等概念,重点考查UML建模、设计模式及SOLID原则,强调高内聚低耦合与实际应用能力。
466 1
|
7月前
|
SQL 安全 关系型数据库
渗透技术--sqlmap使用
Sqlmap是一款自动化SQL注入工具,支持MySQL、Oracle、PostgreSQL等多种数据库。它可扫描并利用URL中的SQL注入漏洞,提供丰富的参数选项,如查询数据库、表、字段,支持POST注入、代理设置及写入文件等功能,适用于安全测试与漏洞评估。
977 1
渗透技术--sqlmap使用

热门文章

最新文章