真题是最好的老师
大家好,我是小高。
前两期我们聊了生命周期模型和六个阶段,知识点基本都覆盖了。但软考高项毕竟是应试考试,光理解不够,还得会做题。
今天这期,小高就把2017年到2022年软件工程相关的高频考题全部梳理一遍,找出出题规律,教你用什么技巧快速做对。
软件工程在第5章,属于高频考点(2017-2022年共考14题),说多不多,说少不少。但关键是,这14道题里有很多都是"换汤不换药"——同一个知识点翻来覆去地考。
所以,把真题研究透了,这一章基本就是送分题。
一、高频考点一:瀑布模型的适用场景
考频:★★★★★(几乎每年都考)
瀑布模型(预测型)是五种生命周期模型里考得最多的。只要题目描述满足以下几个特征之一,十有八九就要选瀑布模型:
需求在项目开始时就能完整确定,不会变 有明确的法律、行业标准要求 合同是固定总价(Fixed Price) 项目规模大、周期长、涉及多个外部干系人审批
【2017年上半年·第31题】某软件项目开发计划中定义该项目需要开发一种新的控制软件,该软件的需求规格说明书已于半年前完成并通过评审,需求稳定且无变更可能性,适合采用( )生命周期模型。A. 瀑布 B. 迭代 C. 增量 D. 适应答案:A解析: "需求稳定且无变更可能性"——这是瀑布模型最标准的适用条件。
【2020年上半年·第31题】某公司正在开发一个大型信息系统,对于该项目的生命周期模型选择,项目的需求清晰定义且在项目初期不太可能发生变更,应优先选择( )。A. 预测型生命周期 B. 迭代型生命周期 C. 增量型生命周期 D. 适应型生命周期答案:A解析: 同上,"需求清晰定义且不太可能变更",直接选预测型。
【2018年上半年·第33题】适用于大型、复杂项目,或采用新技术的项目生命周期模型是( )。A. 预测型 B. 迭代型 C. 增量型 D. 适应型答案:B解析: 这个题稍有迷惑性。复杂项目或采用新技术的项目,需求往往不清晰,需要"摸着石头过河",适合用迭代型——通过反复迭代来逐步探索和明确需求。
二、高频考点二:V模型中测试与开发阶段的对应关系
考频:★★★★★(年年必考)
V模型的对应关系是整个软件工程里最重要的记忆型考点。记不住这个关系,V模型的题必丢分。
V模型对应关系速记
记住这个口诀:"顶上对顶上,底下对底下"
需求获取 ↔ 验收测试(用户最高层,对应最高层测试) 系统设计 ↔ 系统测试(系统级,对应系统级测试) 架构设计 ↔ 集成测试(模块组装,对应接口级测试) 模块设计 ↔ 单元测试(最小单元,对应最小测试)
或者用另一句话帮助记忆:"验收顶,系统中,集成接口,单元底层"。
为什么这个对应关系这样设计?
验收测试要验证的是"系统是否满足用户最初的需求"——所以对应需求获取阶段。
系统测试要验证的是"整个系统作为一个整体是否满足规格"——所以对应系统设计阶段。
集成测试要验证的是"模块和模块组装在一起是否正常协作"——所以对应架构设计阶段。
单元测试要验证的是"每个代码模块的逻辑是否正确"——所以对应模块设计阶段。
【2021年上半年·第33题】在V模型中,系统测试对应的软件生命周期阶段是( )。A. 需求分析 B. 概要设计 C. 详细设计 D. 编码答案:B解析: 概要设计就是系统设计(架构设计),对应系统测试。
【2019年上半年·第32题】在V模型中,单元测试主要用来验证( )。A. 详细设计 B. 概要设计 C. 需求 D. 编码答案:A解析: 单元测试验证模块设计的正确性,对应详细设计(模块设计)。注意不要选D,编码阶段本身不是单元测试要验证的内容,单元测试的对象是编码产出物是否与详细设计一致。
【2022年上半年·第34题】在V模型中,需求规格说明验证对应的是( )。A. 单元测试 B. 集成测试 C. 系统测试 D. 验收测试答案:D解析: 需求规格说明对应的是验收测试,验证最终交付的系统是否满足用户的原始需求。
三、高频考点三:持续交付 vs 持续部署
考频:★★★★(考过多次)
这个考点本质上考的是两个概念的区分能力。考试时题目通常会设计一个场景,让你判断是"持续交付"还是"持续部署"。
一句话区分
持续交付(CD):自动化完成构建→测试→打包,但不到生产,人工决定何时部署 持续部署(CD):自动化完成构建→测试→打包→自动部署到生产,全程无人干预
【2021年上半年·第34题】某互联网公司采用DevOps理念进行系统运维,要求在代码合并到主干后自动完成构建、测试和打包,但不自动发布到生产环境,需要人工确认后才部署。该公司采用的做法属于( )。A. 持续集成 B. 持续交付 C. 持续部署 D. 持续监控答案:B解析: "不自动发布到生产环境,需要人工确认后才部署"——这正是持续交付(Continuous Delivery)的典型特征。
【2020年上半年·第35题】关于持续交付和持续部署的描述,正确的是( )。A. 持续交付包含持续部署 B. 持续部署包含持续交付 C. 两者是同一概念 D. 两者没有包含关系答案:A解析: 持续交付是"交付到准生产环境但人工部署",持续部署是"自动部署到生产环境"。持续部署比持续交付更进一步,所以持续交付是基础,持续部署是进阶。包含关系选A。
四、高频考点四:CMMI成熟度等级
考频:★★★★(结合质量管理考)
虽然CMMI属于质量管理范畴,但经常和软件工程一起出题考查。CMMI将软件过程能力分为五个等级,这是必须记忆的内容。
CMMI五级速记
记忆口诀
"初管定量化优"——初始、管理(已管理)、定义(已定义)、量化、优化。
或者更生动一点:"随意→有组织→标准→量化→持续改进"
2级和3级的关键区别
2级(已管理级):项目层面建立了基本管理过程,项目的成功是可以重复的 3级(已定义级):组织层面建立了标准过程,并裁剪应用到各个项目,组织的成功是可以重复的
【2021年上半年·第37题】在CMMI中,过程能力处于"已定义级"时,过程被( )并得到一致执行。A. 项目级定制 B. 组织级标准化 C. 量化控制 D. 持续优化答案:B解析: "已定义级"(第3级)的核心特征是组织级标准化,过程被文档化、标准化,并在组织范围内推广使用。
五、高频考点五:需求工程四个子活动
考频:★★★(近年考频上升)
需求过程的四个子活动——获取、分析、规格说明、验证确认——经常以排序题或定义匹配题的形式出现。
【2019年上半年·第34题】需求工程活动不包括( )。A. 需求获取 B. 需求分析 C. 需求验证 D. 需求实现答案:D解析: 需求工程=获取+分析+规格说明+验证确认。需求实现(编码/开发)属于软件实现阶段,不是需求工程的一部分。
六、高频考点六:软件集成的核心技术
考频:★★★(考过多次)
软件集成涉及多种技术栈,考试主要考:
J2EE(Java企业版) .NET(微软平台) CORBA(公共对象请求代理体系结构,跨语言跨平台) COM/DCOM/COM+(微软组件技术) ODBC/ JDBC(数据库连接标准)
【2020年上半年·第36题】在软件集成技术中,CORBA的主要特点是( )。A. 跨平台、跨语言 B. 仅支持Windows平台 C. 仅支持Java语言 D. 仅支持单机环境答案:A解析: CORBA(Common Object Request Broker Architecture)的核心价值就是"对象请求代理",可以实现不同语言、不同平台之间的对象互操作,是分布式的跨平台解决方案。
七、综合解题技巧总结
技巧一:抓住题干的关键词
看到以下关键词组合,直接对应答案:
技巧二:区分"迭代"和"增量"
技巧三:V模型对应关系用"楼梯图"记忆
想象V字是一个楼梯:
验收测试 —— 需求(最高层)系统测试 —— 系统设计集成测试 —— 架构设计单元测试 —— 模块设计(最底层)越往上(需求),对应的测试越"大"(验收测试);越往下(模块),对应的测试越"小"(单元测试)。
一句话口诀
口诀三:"需求稳定选瀑布,变化频繁靠敏捷;V模型顶对顶、底对底,验收对需求、系统对设计;持续交付不自动发,持续部署全自动;CMMI五级,初管定量化优,口诀记住不再愁。"
解析:
瀑布和敏捷的选择本质是"需求稳不稳"的判断; V模型对应关系用"顶对顶、底对底"定位法; 持续交付和持续部署的唯一区别是"是否自动到生产"; CMMI五级口诀"初管定量化优"配合记忆表格使用。
正在备考软考高项?持续关注,持续更新,系统化搞定软件生命周期 🚀