(案例)软考系统分析师「软件工程」核心知识梳理

软考系统分析师 · 软件工程知识全梳理(考点+应试版)

软件工程是系统分析师综合知识、案例分析的核心必考模块 (综合约8-12分,案例高频),覆盖软件生命周期、开发模型、需求/设计/测试/维护、质量与配置管理、面向对象、UML、设计模式、敏捷与DevOps等全体系。以下按考点层级结构化梳理,适配备考记忆与答题。

软件工程 = 系统规划 → 系统分析 → 系统设计 → 系统实施 → 系统运维

一、软件工程基础(概念+危机+三要素)

1. 定义与核心

  • 软件工程 :将系统化、规范化、可量化 的工程方法应用于软件开发、运行、维护及方法研究。
  • 目标 :解决软件危机 ,实现高质量、低成本、按时交付、易维护
  • 软件危机表现:进度失控、成本超支、质量差、需求不符、维护难、文档缺失。

2. 三大核心要素

  • 方法:技术手段(结构化、面向对象、敏捷)
  • 工具:CASE、IDE、测试/配置管理工具
  • 过程:生命周期流程、管理规范(过程是核心)

3. 基本原则

模块化、抽象、信息隐藏、高内聚低耦合、逐步求精、可复用

二、软件生命周期与开发模型

1. 生命周期标准阶段

  1. 系统规划:可行性(技术/经济/操作/时间)、立项、计划
  2. 需求分析:SRS(需求规格说明书)、需求建模、验证
  3. 软件设计:架构→概要→详细设计
  4. 编码实现:单元测试、编码规范
  5. 软件测试:单元→集成→系统→验收
  6. 部署交付:发布、灰度/蓝绿/金丝雀
  7. 运行维护:纠错/适应/完善/预防性维护

2. 经典开发模型(对比表)

模型 核心特点 适用场景 优缺点
瀑布模型 线性串行、阶段明确、里程碑评审 需求稳定、小型项目 易管理;僵化、变更代价高
原型模型 快速原型→反馈→迭代(抛弃/演化) 需求模糊、创新产品 需求明确快;易范围蔓延
螺旋模型 迭代+风险分析(4阶段:目标→风险→开发→评审) 大型高风险复杂系统 风险可控;复杂、成本高
V模型 测试与开发阶段对应(需求验→集测→单元测) 重视测试、质量严格 测试左移;需求变更难
RUP 用例驱动、架构中心、迭代增量(4阶段9工作流) 大中型OO项目 规范灵活;过程重、成本高
敏捷(Scrum/XP) 拥抱变化、迭代增量、轻文档、人本位 需求多变、互联网产品 快响应;对团队要求高
DevOps 开发+运维一体化、CI/CD、自动化 云原生、持续交付 高效交付;文化与工具门槛高

三、需求工程(案例高频)

1. 需求层次

  • 业务需求 (高层目标)→用户需求 (用户视角)→系统需求(功能/非功能)
  • 非功能需求:性能、安全、易用、可维护、可移植、可靠性

2. 需求获取方法

用户访谈、问卷调查、场景分析、原型法、文档审查、联合需求计划(JRP)

3. 需求分析方法

  • 结构化分析(SA):DFD(数据流图)、DD(数据字典)、判定表/树、E-R图
  • 面向对象分析(OOA):用例模型、领域模型、类图、活动图

4. 需求规格说明书(SRS)

  • 核心:完整性、一致性、无二义、可验证、可修改、可跟踪
  • 需求验证:评审、测试用例设计、原型确认
  • 需求变更管理:变更申请→评估→审批→实施→验证→记录(基线+配置控制)

5. 质量功能部署(QFD)

将用户需求转化为技术需求,分需求层→技术层→部件层→工艺层

四、软件设计(核心:高内聚低耦合)

1. 设计原则

  • 结构化高内聚(功能/顺序/通信/过程/逻辑/偶然)低耦合(内容/公共/外部/控制/标记/数据)
  • 面向对象(SOLID)
    • S:单一职责
    • O:开放封闭
    • L:里氏替换
    • I:接口隔离
    • D:依赖倒置

2. 架构设计(风格)

  • 分层:表示层→业务层→数据访问层(MVC、MVVM)
  • 微服务:独立部署、松耦合、API网关
  • SOA:服务化、ESB、标准化接口
  • 事件驱动客户端-服务器(C/S)浏览器-服务器(B/S)管道-过滤器

3. 详细设计

  • 结构化:IPO图、流程图、PDL、程序流程图
  • 面向对象:类图、对象图、时序图、协作图、状态图、活动图、组件图、部署图(UML)

4. UML(系统分析师必考)

  • 静态图:类图、对象图、组件图、部署图、包图
  • 动态图:用例图、时序图、协作图、状态图、活动图
  • 考点:用例图(参与者/用例/包含/扩展/泛化)、时序图(消息/生命线)、类图(关联/依赖/聚合/组合)

5. 设计模式(23种GOF,高频)

  • 创建型:单例、工厂方法、抽象工厂、建造者、原型
  • 结构型:适配器、桥接、组合、装饰、外观、享元、代理
  • 行为型:观察者、策略、命令、迭代器、模板方法、责任链
  • 考点:模式意图、结构、适用场景、代码意图

五、软件实现(编码+测试)

1. 编码规范

命名、注释、风格、复用、异常处理、防御性编程

2. 软件测试(综合+案例双高频

(1)测试级别
  • 单元测试:模块内部、白盒、桩/驱动
  • 集成测试:模块间接口(自顶向下/自底向上/三明治)
  • 系统测试:全功能、非功能(性能/安全/压力)
  • 验收测试:α(内部)、β(用户)、合同验收
(2)测试方法
  • 白盒(结构):语句覆盖、判定、条件、判定-条件、路径、McCabe圈复杂度
  • 黑盒(功能) :等价类、边界值(必考)、错误推测、因果图、场景法
  • 静态/动态人工/自动化(Selenium/Appium/JMeter)
(3)测试策略

回归测试、冒烟测试、探索性测试、压力/负载/性能测试

(4)测试用例设计

核心:输入、预期输出、前置条件、步骤、覆盖项

六、软件维护(必考分类)

  • 纠错性维护:修复Bug(占比约20%)
  • 适应性维护:适配新环境(OS/硬件,约25%)
  • 完善性维护 :功能增强/优化(约50%,占比最高
  • 预防性维护:提前优化防故障(约5%)

七、软件质量与管理

1. 质量模型(ISO 9126/25010)

  • 特性:功能性、可靠性、易用性、效率、可维护性、可移植性
  • 子特性:成熟性、容错性、易恢复性等

2. 软件质量保证(SQA)

  • 活动:评审、审计、过程改进、标准执行、缺陷管理
  • 工具:SonarQube、质量管理体系(ISO 9001、CMMI)

3. CMMI(过程能力成熟度)

5级:初始级→可重复级→已定义级→定量管理级→优化级

4. 软件配置管理(SCM)

  • 核心:配置项、基线、版本控制、变更控制、配置审计
  • 工具:Git、SVN、VSS、CC

八、面向对象技术(核心概念)

  • 类/对象:抽象/实例
  • 封装:信息隐藏、访问控制
  • 继承:单/多继承、泛化
  • 多态:重载、重写
  • 关联/依赖/聚合/组合(UML关系)

九、敏捷与先进方法(近年热点)

1. Scrum

  • 角色:PO(产品负责人)、SM(Scrum Master)、Dev Team
  • 事件:Sprint(2-4周)、计划会、每日站会、评审、回顾
  • 工件:产品待办、Sprint待办、增量

2. 极限编程(XP)

12实践:用户故事、测试先行(TDD)、结对编程、持续集成、简单设计、重构、小发布等

3. DevOps

CI/CD、自动化、容器(Docker)、编排(K8s)、监控、日志、微服务、云原生

十、系统分析师软件工程考点速记(应试)

综合知识(选择)高频

  1. 开发模型特点与适用(瀑布/V/螺旋/敏捷)
  2. 内聚/耦合类型判断
  3. UML图用途、关系(包含/扩展/聚合/组合)
  4. 测试方法(边界值/等价类/覆盖)、维护分类
  5. 设计模式意图与场景
  6. CMMI、SQA、SCM核心概念
  7. 需求层次、QFD、变更管理

案例分析高频

  1. 需求分析:建模(DFD/UML用例/类图)、需求问题解决
  2. 系统设计:架构选型、高内聚低耦合、UML建模、设计模式应用
  3. 测试:用例设计、测试策略、缺陷管理
  4. 过程管理:模型选择、配置/变更/风险管理
  5. 质量与维护:质量问题、维护类型、优化方案

论文常见主题

  • 论软件架构设计与应用
  • 论需求工程方法与实践
  • 论软件测试策略与质量保证
  • 论敏捷/DevOps在项目中的应用
  • 论面向对象分析与设计

十一、备考建议

  1. 模型+UML+设计模式:必须画表对比、记关键词
  2. 测试:重点黑盒(边界/等价类)、白盒覆盖、测试级别
  3. 案例:练"问题定位→理论依据→解决方案→总结"结构
  4. 真题:近10年软件工程选择+案例必刷,总结答题模板
相关推荐
大迪deblog2 小时前
软件工程-③结构化分析与设计
系统架构·软件工程
大迪deblog4 小时前
软件工程-⑥面向对象
系统架构·软件工程
sensen_kiss4 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.4 设计模式(下)
设计模式·软件工程
威尔逊·柏斯科·希伯理5 小时前
软考-软件工程(2-需求工程与系统设计)
软件工程
大迪deblog5 小时前
软件工程-②需求工程
系统架构·软件工程
大迪deblog5 小时前
软件工程-⑤系统运行与维护
系统架构·软件工程
高翔·权衡之境6 小时前
主题3:天线与耦合——近场与远场
网络·嵌入式硬件·物联网·软件工程·信息与通信
数字时代全景窗1 天前
数字的长征:从蒸汽机到智能体——可计算化革命的底层演进脉络
人工智能·架构·软件工程
极创信息1 天前
信创软件快速适配信创改造,实战落地思路
java·大数据·数据库·人工智能·mvc·软件工程·hibernate