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

简介: 本篇章精讲软考中级软件设计师“软件工程”核心内容,涵盖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

目录
相关文章
|
存储 机器学习/深度学习 人工智能
软考中级软件设计师专项-数据结构与算法上篇
软件设计师考试数据结构模块涵盖数组、链表、栈、队列、树、图等基础结构及其操作,重点考查二分查找、快排与归并排序、树/图的DFS/BFS遍历算法,要求掌握时间与空间复杂度分析,理解哈希、堆的应用场景,强调通过合理选择数据结构优化程序性能,解决存储管理与计算效率问题,为系统设计奠定核心逻辑基础。
1111 1
软考中级软件设计师专项-数据结构与算法上篇
|
设计模式 算法 Java
软考中级软件设计师专项-设计模式篇
备战软考中级软件设计师?本文聚焦高分设计模式模块,详解23种模式的核心意图与场景,结合UML图、Java代码实例及历年真题,覆盖创建型、结构型、行为型三大类,助你打通理论到实战。
1421 1
软考中级软件设计师专项-设计模式篇
|
1月前
|
人工智能 自然语言处理 运维
AI实战见真章:2026大模型客服系统深度横评与实测
本文深度解析2026年大模型驱动的智能客服演进趋势,以阿里云瓴羊Quick Service为样本,指出行业正从“能否答对”转向“能否办完”。文章系统拆解其三层架构、AI Agent闭环执行、RAG知识增强、人机协同等核心能力,并通过长城汽车、申通快递等实测案例,验证其在任务完成率、满意度及降本增效上的显著成效。(239字)
|
3月前
|
自然语言处理 安全 API
越狱攻击为什么难防?大模型安全围栏关键能力拆解
企业 AIGC 应用防越狱攻击,需要从“模型拒答”升级为“安全围栏”。安全围栏不是单一审核接口,而是输入检测、风险分级、输出审核、安全代答、账号风控、权限控制和运营闭环的组合。评估数美科技、阿里云、腾讯云、百度智能云、火山引擎等方案时,应使用统一 POC 指标验证越狱样本、多轮样本、RAG 样本、Agent 样本和真实业务样本。
|
6月前
|
运维 JavaScript Java
如何开发一套患者随访管理系统?附现成源码方案
本文提供患者随访管理系统从规划到落地的全流程指南:涵盖需求调研、架构选型(单体/微服务)、核心功能开发(MVP→扩展→集成)、数据安全合规(等保、HIPAA)、测试部署运维,并推荐基于Spring Boot+Vue的现成源码方案,助医院高效落地。
419 5
|
8月前
|
人工智能 JavaScript 网络安全
2026年零基础轻量服务器部署 OpenClaw (Clawdbot) 教程
在AI自动化工具爆发式发展的2026年,OpenClaw(原Clawdbot,曾用名Moltbot)凭借开源免费、低门槛上手、全场景适配的核心优势,成为个人办公提效、轻量团队数字化转型的首选AI工具。与普通聊天AI不同,OpenClaw并非单纯的对话助手,而是一套能够实现“需求解析-任务规划-工具调用-结果反馈”的完整自动化系统,可轻松完成邮件管理、日程规划、网页抓取、多工具协同等实操任务,真正实现解放双手、提升效率的核心需求。
891 3
|
安全 网络协议 网络安全
软考中级软件设计师专项-网络安全篇
本文介绍了网络安全核心技术,包括防火墙技术(包过滤、应用代理、状态检测)、病毒类型(蠕虫、木马、宏病毒)及特征、常见网络攻击手段,并涵盖SSL/TLS、HTTPS、IPSec等安全协议,结合实例解析防护机制与应用。
728 1
软考中级软件设计师专项-网络安全篇
|
存储 算法 定位技术
软考中级软件设计师专项-操作系统篇
专为软考打造的操作系统终极攻略,涵盖进程管理、死锁、存储系统等核心考点,结合20+真题与答题模板,助你高效掌握命题规律,提升应试能力。
712 1
软考中级软件设计师专项-操作系统篇
|
测试技术 数据库 uml
软考中级软件设计师专项-UML图篇
UML(统一建模语言)是一种用于软件系统建模的标准化语言,能够清晰表达系统的静态结构与动态行为。其核心包括三类构造块:事物、关系和图。事物分为结构事物、行为事物、分组事物和注释事物;关系包括依赖、关联、泛化和实现;图则涵盖了类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图和部署图等,分别用于静态建模、动态建模和物理建模。
1277 1
软考中级软件设计师专项-UML图篇
|
SQL 安全 关系型数据库
渗透技术--sqlmap使用
Sqlmap是一款自动化SQL注入工具,支持MySQL、Oracle、PostgreSQL等多种数据库。它可扫描并利用URL中的SQL注入漏洞,提供丰富的参数选项,如查询数据库、表、字段,支持POST注入、代理设置及写入文件等功能,适用于安全测试与漏洞评估。
1305 1
渗透技术--sqlmap使用

热门文章

最新文章