软考中级:第5章 软件工程 学习笔记
一、章节核心内容摘要根据最新考纲及占分分析本章节“第5章软件工程”在2024下半年至2025上半年新大纲稳定期的考查占分约为2~4 分。考查形式包含综合知识案例分析。趋势分析指出本章的重点内容主要集中在软件生命周期、开发模型等且作为“软硬体系基础”经常结合案例进行考查。【核心内容摘要】本章详细阐述了软件工程的系统化理论框架。主要内容涵盖软件工程基本概念方法、工具、过程软件需求需求的层次、QFD、需求获取、结构化与面向对象分析方法、需求规格说明书SRS、需求变更与跟踪软件设计结构化设计中的高内聚低耦合原则、面向对象设计的7大原则、UML统一建模语言及设计模式软件实现配置管理SCM、软件测试方法及分类部署交付持续交付与部署、蓝绿部署与金丝雀部署软件质量管理SQA以及软件过程能力成熟度模型CSMM的4个能力域与5个等级。二、核心学习笔记一、软件工程定义与组成要素软件工程由方法、工具和过程3个部分组成。方法完成软件项目的技术手段支持整个软件生命周期。工具为开发提供自动或半自动的支持支持文档生成。过程贯穿开发的各个环节是获得软件产品的一系列活动。二、软件需求管理1. 需求的3个层次层次核心含义业务需求反映组织机构或系统高层次的目标要求为什么要达到某种效应。用户需求描述用户具体目标体现系统能带来的业务价值用户用系统做什么。系统需求从系统角度说明包括功能需求行为特征、非功能需求质量属性如易用性、效率、规范等和约束设计和过程上的限制如必须用国产数据库。2. 质量功能部署 (QFD)将用户要求转化为软件需求的技术最大限度提升用户满意度。需求类型核心特征常规需求用户认为应该做到的实现越多越满意。期望需求用户想当然认为应具备的没实现会很不满。意外需求兴奋需求用户要求范围外的高级特性实现了会很高兴不实现也不影响决策。3. 需求分析方法比较分析方法核心与基础常用模型与工具核心原则与特征结构化分析 (SA)以数据字典为核心数据模型E-R图、功能模型DFD数据流图、行为模型STD状态图面向数据流自顶向下逐层分解。面向对象分析 (OOA)针对OO方法所需的素材进行归类整理5个层次主题、对象类、结构、属性、服务抽象、封装、继承、分类、聚合、关联、消息通信、粒度控制、行为分析。4. 需求变更与跟踪变更控制过程问题分析和变更描述 ➔ 变更分析和成本计算 ➔ 变更实现 ➔ 修改后的需求。变更控制委员会 (CCB)是项目所有者权益代表负责裁定接受哪些变更。CCB是决策机构而非作业机构通常通过评审决定是否变更但不提出变更方案。需求跟踪正向跟踪检查SRS中的需求是否在后继工作成果如代码、测试中找到对应点。逆向跟踪检查设计文档、代码、测试用例等是否能在SRS中找到出处。三、软件设计1. 结构化设计 (SD) 的模块化原则遵循“高内聚、低耦合”的设计原则。耦合类型从低到高非直接耦合 ➔ 数据耦合 ➔ 标记耦合 ➔ 控制耦合 ➔ 通信耦合 ➔ 公共耦合 ➔ 内容耦合。内聚类型从高到低功能内聚 ➔ 顺序内聚 ➔ 通信内聚 ➔ 过程内聚 ➔ 时间内聚 ➔ 逻辑内聚 ➔ 偶然内聚。2. 面向对象设计 (OOD) 七大原则原则核心含义单职原则一个类应该有且仅有一个引起它变化的原因。开闭原则对扩展开放对修改封闭。里氏替换原则子类可以替换父类扩展功能但不改变父类原有功能。依赖倒置原则依赖于抽象针对接口编程不针对实现编程。接口隔离原则使用多个专门的接口比使用单一的总接口要好。组合重用原则尽量使用组合而不是继承关系。迪米特原则最少知识法则对象应对其他对象有尽可能少的了解降低耦合。3. UML 统一建模语言交互图注重消息/时序顺序图强调时间次序、通信图强调结构组织、定时图强调实际时间约束。动态行为图状态图基于事件反应、活动图控制流和数据流本质是流程图。UML 5个视图逻辑视图功能实现、进程视图并发同步、实现视图文件和构件、部署视图硬件映射、用例视图外部角色展示系统功能。四、软件实现与测试1. 软件配置管理 (SCM)核心内容包括版本控制追踪文件变更、并行开发同步和变更控制防范失控特别是外部需求变更。包含活动配置管理计划、配置标识、配置控制、配置状态记录、配置审计、发布管理与交付。2. 软件测试方法与类型测试方法静态测试不运行程序靠审查文档和代码如桌前检查、代码走查、代码审查。动态测试在机器上运行。包含白盒测试结构测试主要技术为逻辑覆盖看重内部逻辑结构和黑盒测试功能测试根据SRS规定设计等价类、边界值等实例。测试类型流程单元测试模块设计说明书 ➔ 集成测试概要设计文档 ➔ 确认测试用户需求 ➔ 系统测试在真实环境下检测 ➔ 配置项测试 ➔ 回归测试。五、部署交付与质量管理1. 部署模式部署模式核心特征蓝绿部署准备新旧两个版本环境通过域名解析无缝切换。有问题快速切回旧版。金丝雀部署灰度先让少量用户试用新版无问题后再逐步扩大适配范围。容器部署原则不可变服务器、整体部署由运维人员执行、所有的环境使用相同的部署脚本。2. 软件质量保证 (SQA)主要目标事前预防工作防缺陷产生、作用于过程而非产品、贯穿于所有活动。主要任务SQA审计与评审、SQA报告、处理不合格问题。六、软件过程能力成熟度 (CSMM)四大能力域治理、开发与交付、管理与支持、组织管理。五个成熟度等级等级名称核心特征1级初始级软件过程和结果具有不确定性依赖个人能力。2级项目规范级基本可按计划实现预期结果有基础过程规范。3级组织改进级依据组织标准过程和资产稳定实现目标。4级量化提升级使用统计分析技术建立量化的质量与过程绩效目标。5级创新引领级通过技术和管理创新实现持续提升引领行业。三、本章精选习题及详细解析题目1___不是软件需求的常用层次。A. 业务需求B. 数据需求C. 用户需求D. 系统需求答案B详细解析需求是多层次的包括业务需求、用户需求和系统需求。这3个不同层次的需求从目标到具体从整体到局部从概念到细节展开。数据需求不属于常用的标准三大层次。教材页码第203页题目2___不属于软件需求规格说明书SRS的内容。A. 业务功能B. 应用系统性能C. 交互界面D. 算法的详细过程答案D详细解析SRS需求规格说明书主要说明“做什么”而算法的详细过程说明的是“怎么做”它属于详细设计阶段的主要任务需要在模块的详细设计文档过程或伪代码中体现而非需求阶段的SRS。教材页码第209页、第215页题目3以下软件需求变更策略中不正确的是___。A. 所有需求变更必须遵循变更控制过程B. 对于未获得批准的变更不应该做设计和实现工作C.应该由项目经理决定实现哪些变更D. 项目风险承担者应该能够了解变更的内容答案C详细解析控制需求变更策略明确指出应该由项目变更控制委员会CCB决定实现哪些变更而不是单由项目经理决定。教材页码第211页题目4软件过程能力成熟度分为___级。A. 2B. 3C. 4D.5答案D详细解析CSMM软件过程能力成熟度模型定义了5个等级1级初始级、2级项目规范级、3级组织改进级、4级量化提升级、5级创新引领级。教材页码第231页题目5关于蓝绿部署的描述正确的是___。A.蓝绿部署是指在部署的时候准备新旧两个部署版本通过域名解析切换的方式将用户使用环境切换到新版本中B. 蓝绿部署是先让少量的用户使用新版本并且观察新版本是否存在问题C. 蓝绿部署当出现问题的时候可以使用新版本但业务逻辑和数据不受影响D. 蓝绿部署如果出现问题就及时处理并重新发布答案A详细解析选项A是蓝绿部署的标准定义。选项B描述的是“金丝雀部署”先让少量用户使用。教材页码第228页题目6质量功能部署 (QFD) 将软件需求分为3类其中不包括___。A. 常规需求B. 期望需求C. 意外需求D.基础需求答案D详细解析为了最大限度地提升用户的满意度QFD将软件需求分为3类分别是常规需求、期望需求和意外需求兴奋需求。不包含“基础需求”。教材页码第203页题目7在结构化设计中为了提高模块的独立性应遵循“高内聚、低耦合”的设计原则。在以下模块的耦合类型中耦合程度最低、独立性最好的是___。A. 数据耦合B.非直接耦合C. 控制耦合D. 内容耦合答案B详细解析耦合度从低到高排序为非直接耦合、数据耦合、标记耦合、控制耦合、通信耦合、公共耦合、内容耦合。其中“非直接耦合”是指两个模块之间没有直接关系联系完全通过上级模块实现耦合度最低。教材页码第214页表5-1题目8UML语言包含多种图用来表示系统设计的不同方面。以下图表中哪一种不属于强调时间次序或消息收发的“交互图”A. 顺序图 (Sequence Diagram)B. 通信图 (Communication Diagram)C. 定时图 (Timing Diagram)D.状态图 (State Diagram)答案D详细解析UML中顺序图、通信图和定时图都明确被定义为“交互图”交互图展现了对象之间发送消息的交互过程。状态图描述的是一个实体基于事件反应的动态行为属于展示对象动态行为的图但不属于经典的交互图类别。教材页码第219页表5-5题目9软件动态测试方法中___主要用于单元测试中将程序看作一个透明的盒子按照程序内部逻辑结构设计测试用例最常用的技术是逻辑覆盖。A. 黑盒测试B.白盒测试C. 静态分析D. 随机测试答案B详细解析白盒测试也称为结构测试主要用于软件单元测试中。其主要思想是将程序看作透明的白盒测试人员完全清楚程序的结构和算法从内部逻辑结构出发设计用例最常用技术是逻辑覆盖。黑盒测试则是把程序看作不透明的黑盒只关注功能。教材页码第223页题目10在软件过程能力成熟度模型 (CSMM) 中“组织和项目使用统计分析技术建立了量化的质量与过程绩效目标”属于哪一个成熟度等级的行为特征A. 2级项目规范级B. 3级组织改进级C.4级量化提升级D. 5级创新引领级答案C详细解析第4级量化提升级的核心特征是在3级充分实施的基础上使用“统计分析技术”进行管理建立过程绩效基线与过程绩效模型。看到“量化”和“统计分析技术”即可对应4级。教材页码第231页表5-7 备考小贴士第5章内容系统性强是软考中级的核心章节之一。建议重点关注需求的三个层次业务、用户、系统与QFD三类需求常规、期望、意外结构化设计的耦合与内聚排序尤其是最低耦合非直接耦合OOD七大原则尤其是开闭原则、里氏替换、依赖倒置UML交互图顺序图、通信图、定时图与状态图的区别测试流程单元→集成→确认→系统及白盒/黑盒测试的适用场景部署模式蓝绿部署 vs 金丝雀部署CSMM五个等级的核心特征特别是4级量化提升级把这些核心考点记牢2-4分轻松到手案例分析也能从容应对