本文取自2027版高项72讲课程第16讲,编号仅表示原课程位置。当前作为免费专题储备,暂不安排公众号或博客发布日期;文中的上下讲、作业和封面数字均沿用原课程编号。

本次全文免费公开。 本文保留完整课程、练习和解析,供同学按顺序学习。
【虚构案例声明】 本课程中的"美好家园"物业集团、"清华园社区"、"智慧邻里2.0"项目及全部人物均为教学所用的虚拟项目与虚构人物,详见第 01 讲首次声明。
一、上节作业讲评
1.1 二期平台选什么架构
上一讲的核心作业:方姐提了两个方案,集中式把所有小区的系统统一部署在集团云上,面向服务的架构把门禁、停车、报修、缴费拆成服务各小区按需组合;赵副总担心集中式"一挂全挂",李经理担心面向服务"太复杂谁来维护"。要你用教材表 4-3 的"什么时候使用"和"治理模式与架构匹配"两个标准给意见。
先用表 4-3 量一遍。集中式的使用条件是"当需要系统易于管理时;当业务本身高度集中的时候"。美好家园的业务是集中的吗?集团统管标准和平台,但五十个小区各自有业主服务,业务是"统分结合",不是高度集中。面向服务的使用条件是"当希望系统成为敏捷架构,可重用性和组件化利于创造新应用;当业务对新应用和快速设计迭代要求较高时"。二期要的正是这个:门禁、停车、报修先做成服务,三期增值服务再组合,每个小区可以按需开通模块。所以表 4-3 指向面向服务的架构。
再用治理模式量一遍。第 15 讲说过教材把架构选型和治理挂钩:集中式架构适合高度集中式治理,分布式提供多中心化的治理机制。美好家园的治理是集团定标准、区域做执行,这种混合治理和"集团提供服务、区域组合使用"的面向服务架构最匹配。
结论:二期集团平台按面向服务的架构建,但业主主数据和人脸库这两类核心数据集中存储、集中治理,服务可以分散,数据源必须唯一。这一句既回答了赵副总,设计上需要隔离故障、控制共享依赖,并通过演练验证影响范围,不能仅因拆成服务就保证互不影响,也回答了李经理,区域公司不维护服务,只使用服务,维护在集团。
再看这个选择对模块二相关讲次的影响。对第 11 讲的运维方案:配置管理数据库里的配置项从"一套系统"变成"十几个服务和它们的接口关系",服务级别要按服务分别定,门禁服务 99.9%、增值服务 99.5%。对第 12 讲的数据治理:权威数据源落在集团的业主主数据服务上,各服务以权威源为准;如保留缓存或副本,必须约定同步、版本与冲突规则,面向服务本身不能保证数据一致。对第 13 讲的等保定级:先根据独立业务、责任主体和资源边界识别定级对象,不能按服务数量机械拆分,也不能当然认定所有服务必为同一对象。人脸库是否独立定级另行论证;拆服务不自动降低所需保护水平。
这道作业最值钱的一句是"架构是给谁选的"。架构不是给程序员选的,是给组织选的,它要匹配治理模式、运维能力、数据责任和合规要求。这就是今天要讲的教材 5.1.1 节里那句话:架构的选择往往会成为一个系统设计成败的关键。
二、从管系统到建系统:本讲目标
2.1 施工图是什么
模块二讲的是集团怎么管信息系统,模块三讲信息系统怎么建。教材第 5 章叫"信息系统工程",四节:软件工程、数据工程、系统集成、安全工程。模块三七讲按这四节走,本讲讲软件工程。
建房子先有施工图,建系统先有架构。周总批了二期一千万,方姐的团队进场,第一件事不是写代码,是拿出一套"施工图":系统由哪些构件组成、构件之间怎么连、用什么风格、怎么评估这个架构好不好、代码怎么管、怎么测、怎么上线、乙方的过程能力够不够。这些问题全在教材 5.1 节里。
高项考这一节,综合知识每年两到三道,2024 年上半年第 1 批第 45、49 题考了 CMMI 和软件过程能力成熟度模型的能力域,2025 年上半年第 12、48 题考了文档分类和黑盒测试,2026 年上半年第 1 批第 8 题考了配置管理的角色;案例分析偶尔出判断题,2025 年上半年第 2 批案例的判断题就有一条"人工检查代码属于黑盒测试"。
本讲要拿下三件事:
第一,教材 5.1.1 和 5.1.3 的架构与设计:软件工程三要素、架构定义、五类架构风格、评估三方式、场景三要素、敏感点和权衡点、结构化设计与面向对象设计、七条设计原则、三类设计模式。
第二,教材 5.1.4 到 5.1.6 的实现、交付与过程:配置管理六活动、编码四方面、静态动态测试与覆盖标准、持续交付与持续部署、部署原则和两种部署方式、CSMM 与 CMMI。
第三,把这些变成"智慧邻里2.0"二期的施工图:架构风格、评估场景、设计原则落到报修模块、测试计划、部署方案,以及给乙方的过程能力要求。
2.2 本讲任务地图
| 任务 | 教材位置 | 考试形态 | 项目落点 |
|---|---|---|---|
| 软件工程三要素、架构定义与风格 | 5.1 开头、5.1.1 | 三要素不属于、风格归类 | 二期架构说明书 |
| 架构评估 | 5.1.1 | 三方式、三场景法、敏感点权衡点 | 架构评审会 |
| 结构化与面向对象设计、设计模式 | 5.1.3 | 高内聚低耦合、七原则、模式归类 | 报修模块设计 |
| 配置管理、编码、测试 | 5.1.4 | 六活动、静态动态、白盒黑盒 | 乙方开发规范 |
| 部署交付 | 5.1.5 | 持续交付优势、部署原则、蓝绿金丝雀 | 上线方案 |
| 过程管理 | 5.1.6、20.5.1 | CSMM 四域五级、CMMI 四类别 | 乙方资质要求 |
三、核心内容精讲:软件架构
3.1 软件工程三要素与软件架构的定义
教材口径:软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件生产率、提高软件质量、降低软件成本。软件工程由方法、工具和过程三个部分组成。
三要素各一句:方法是完成软件工程项目的技术手段,支持整个软件生命周期;工具是人们在开发软件的活动中智力和体力的扩展与延伸;过程贯穿于软件开发的各个环节,管理人员要对质量、进度和成本进行评估、管理和控制,包括人员组织、计划跟踪与控制、成本估算、质量保证和配置管理等。你会发现"过程"这一要素就是项目经理的活,这也是为什么软件工程放在高项教材里。

教材口径:软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。软件架构研究的主要内容涉及软件架构描述、软件架构风格、软件架构评估和软件架构的形式化方法等。解决好软件的复用、质量和维护问题,是研究软件架构的根本目的。
架构定义里四个词:构件、连接件、模式、约束。用二期平台说:门禁服务、报修服务、主数据服务是构件;服务之间的接口调用是连接件;"所有服务通过统一网关调用、通过主数据服务取业主信息"是模式;"任何服务不得自存业主手机号"是约束。架构的根本目的三个词:复用、质量、维护,考试出"研究软件架构的根本目的"就答这三个。
先辨生命周期和架构。 教材第1章说明,软件生命周期通常涵盖可行性分析与开发计划、需求分析、概要设计、详细设计、编码、测试、维护。生命周期回答“系统从提出到维护经历哪些工作”;架构回答“系统由哪些重要部分组成、怎样协作、受哪些约束”。迭代中也要做需求、设计和测试,只是可反复细化,不能把生命周期理解为只准走一次的单向清单。
集中部署与面向服务是不同维度:一组服务可以集中部署在集团云,也可以分布在多个节点;集中部署可以配冗余和故障隔离,并非必然“一挂全挂”;拆成服务也会增加接口治理、可观测性和故障定位的责任。选型要先列质量场景、资源条件与运维能力,再比较方案,不能用一个架构名称直接作出“先进”或“落后”的判断。
3.2 软件架构五类风格
教材口径:软件架构设计的一个核心问题是能否达到架构级的软件复用。软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一个系统"家族",即一个架构定义、一个词汇表和一组约束。
教材按 Garlan 和 Shaw 的分类给了五类风格,每类下面有具体风格,这是选择题的直接考点:
| 风格类别 | 包含的具体风格 | 二期平台里的例子 |
|---|---|---|
| 数据流风格 | 批处理序列、管道/过滤器 | 每晚把五十个小区的工单汇总到集团的批处理作业 |
| 调用/返回风格 | 主程序/子程序、数据抽象和面向对象、层次结构 | 报修服务内部的分层:界面层、业务层、数据层 |
| 独立构件风格 | 进程通信、事件驱动的系统 | 门禁开门事件发布出去,停车和访客服务订阅 |
| 虚拟机风格 | 解释器、基于规则的系统 | 派单规则引擎,规则可配置不改代码 |
| 仓库风格 | 数据库系统、黑板系统、超文本系统 | 集团主数据库是所有服务共享的仓库 |
考试的出法是给一个具体风格问它属于哪一类,或者给一类问哪个不属于。记法:数据流是"流水线",调用/返回是"打电话",独立构件是"各干各的靠消息",虚拟机是"翻译官",仓库是"大家往一个地方存"。二期平台一个系统里五类风格都会用到,教材说"甚至一个系统的不同子系统也需要不同的架构",就是这个意思。
3.3 软件架构评估:三方式、三场景法、敏感点与权衡点
教材口径:架构的选择往往会成为一个系统设计成败的关键。在架构评估过程中,评估人员所关注的是系统的质量属性。
评估之前先记两个概念。教材口径:敏感点是一个或多个构件(或之间的关系)的特性,权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。教材的例子是加密级别:提高加密级别可以提高安全性,但可能要耗费更多的处理时间,影响系统性能,如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点。二期平台最典型的权衡点就是人脸数据的加密级别:第 7 讲和第 13 讲要求人脸加密存储,第 11 讲的服务级别要求门禁 30 分钟响应、识别延迟不能让业主在门口等,加密级别同时影响安全性和性能,这就是权衡点。架构评审会上要把它单独列出来定一个值。
教材口径:从目前已有的软件架构评估技术来看,可以归纳为三类主要的评估方式,分别是基于调查问卷(或检查表)的方式、基于场景的方式和基于度量的方式,其中基于场景的评估方式最为常用。
基于场景的方式包括三种方法:架构权衡分析法、软件架构分析法和成本效益分析法,缩写分别是 ATAM、SAAM、CBAM。场景怎么描述?教材口径:一般采用刺激、环境和响应三方面来对场景进行描述。刺激是干系人怎样引发与系统的交互,环境描述的是刺激发生时的情况,响应是系统如何通过架构对刺激做出反应。
给二期平台写一个评估场景:刺激是"早上七点半到八点,清华园两千业主集中刷脸出门";环境是"云端认证服务正常,网络带宽正常,人脸库加密存储";响应是"每次识别在一秒内完成,识别失败率低于千分之一"。这个场景代表的是性能这个质量属性。再写一个:刺激是"集团新增一个小区,要在一周内开通门禁和报修服务",环境是"该小区门禁硬件是另一个品牌",响应是"通过配置和适配器接入,不改核心服务代码",这代表易修改性。教材说基于场景的评估"考虑到了所有与系统相关人员对质量的要求",并且"是特定于领域的",评估人员"一方面需要有丰富的领域知识,另一方面必须对待评估的软件架构有一定的了解"。物业行业的场景要物业的人来写,这就是你和张主管在架构评审会上的角色。
四、核心内容精讲:软件设计
4.1 结构化设计与面向对象设计七原则
教材口径:软件设计是需求分析的延伸与拓展。需求分析阶段解决"做什么"的问题,而软件设计阶段解决"怎么做"的问题。从方法上来说,软件设计分为结构化设计与面向对象设计。
结构化设计是一种面向数据流的方法,以需求规格说明和结构化分析阶段产生的数据流图和数据字典为基础,是一个自顶向下、逐步求精和模块化的过程。它分为概要设计和详细设计两个阶段:概要设计又称总体结构设计,主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成系统结构图;详细设计是为每个具体任务选择适当的技术手段和处理方法,包括输入/输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等。
结构化设计的基本原则是高内聚,低耦合。教材口径:内聚表示模块内部各成分之间的联系程度,一个好的内聚模块应当恰好做目标单一的一件事情;耦合表示模块之间联系的程度,紧密耦合表示模块之间联系非常强,松散耦合表示模块之间联系比较弱,非耦合则表示模块之间无任何联系。
面向对象设计是面向对象分析的延续,基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。主要任务是对类和对象进行设计,结果是设计模型。教材说面向对象设计需要解决的核心问题之一是"如何同时提高软件的可维护性和可复用性"。常用的设计原则七条,每条一句,考试出定义配对:
| 原则 | 教材定义 | 对应结构化原则 |
|---|---|---|
| 单职原则 | 设计功能单一的类 | 与高内聚一致 |
| 开闭原则 | 对扩展开放,对修改封闭 | |
| 李氏替换原则 | 子类可以替换父类 | |
| 依赖倒置原则 | 要依赖于抽象,而不是具体实现;要针对接口编程,不要针对实现编程 | |
| 接口隔离原则 | 使用多个专门的接口比使用单一的总接口要好 | |
| 组合重用原则 | 要尽量使用组合,而不是继承关系达到重用目的 | |
| 迪米特原则(最少知识法则) | 一个对象应当对其他对象有尽可能少的了解 | 与低耦合一致 |
教材第 5 章课后练习第 4 题问面向对象方法描述不正确的,错误选项是"封装性、继承性、模块性是面向对象的三大特征",三大特征是封装、继承、多态,没有模块性。另一个选项"面向对象设计中,应把握高内聚、低耦合的原则"是对的,教材明确说单职原则和迪米特原则分别与高内聚、低耦合一致。
报修模块用七原则过一遍:工单类只管工单的状态和数据,派单逻辑单独一个类,这是单职;新增一种派单策略不改原有代码,只加一个策略类,这是开闭;报修服务只依赖"业主信息接口",不依赖客服系统的具体实现,这是依赖倒置;门禁服务不需要知道工单的内部结构,只收一个"工单已关闭"的消息,这是迪米特。
4.2 设计模式三类
教材口径:设计模式是前人经验的总结,它使人们可以方便地复用成功的软件设计。设计模式包含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式等基本要素。
两种分类。按处理范围:类模式处理类和子类之间的关系,通过继承建立,编译时刻确定,属于静态关系;对象模式处理对象之间的关系,运行时刻变化,更具动态性。按目的和用途分三种,这是考点:
| 类型 | 用途 | 包含的模式 |
|---|---|---|
| 创建型模式 | 主要用于创建对象 | 工厂方法、抽象工厂、原型、单例、建造者 |
| 结构型模式 | 主要用于处理类或对象的组合 | 适配器、桥接、组合、装饰、外观、享元、代理 |
| 行为型模式 | 主要用于描述类或对象的交互以及职责的分配 | 职责链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者 |
考试出"哪个模式属于创建型"这类题,记法:创建型五个都和"造对象"有关,工厂、原型、单例、建造者,名字里就带着造东西的意思;结构型七个是"怎么拼",适配器接口不合拼一下、外观给一堆接口套一个门面、代理找个代理人;行为型十一个是"怎么互动",观察者一个变了通知一群、策略换算法、状态换状态、命令把请求打包。
二期平台里三个例子:不同品牌门禁硬件接入用适配器模式(结构型);工单状态变化通知业主和维修工用观察者模式(行为型);派单算法可切换用策略模式(行为型);同一进程内配置读取对象使用单例模式(创建型);集团分布式配置服务的唯一性和高可用需要另外的协调机制,不能靠单例模式保证。这些例子不是让你去写代码,是让你在架构评审会上听得懂方姐的团队在说什么,并且能问出"新品牌门禁接入要不要改核心代码"这种对的问题。
五、核心内容精讲:软件实现与测试
5.1 配置管理六活动与编码
教材口径:软件配置管理通过标识产品的组成元素、管理和控制变更、验证、记录和报告配置信息,来控制产品的演进和完整性。软件配置管理活动包括软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动。
六活动各一句:计划要了解组织结构环境并明确配置控制任务;标识识别要控制的配置项并为配置项及其版本建立基线;控制关注的是管理软件生命周期中的变更;状态记录标识、收集、维护并报告配置状态信息;审计是独立评价软件产品和过程是否遵从已有的规则、标准、指南、计划和流程;发布管理和交付通常需要创建特定的交付版本,完成此任务的关键是软件库。
这里把三个"配置管理"对齐一下,因为它们在教材里出现在三个地方,考试也从三个角度考:第 11 讲运维视角的配置管理,核心是配置管理数据库,管的是运行环境里的硬件软件网络和它们的关系;本讲软件工程视角的软件配置管理,核心是基线和软件库,管的是代码和文档的版本;第 59 讲项目管理视角的项目配置管理,核心是角色分工,配置管理负责人、配置管理员、配置项负责人。2026 年上半年第 1 批第 8 题考的是第三个视角,"评估配置管理过程并持续改进"是配置管理负责人的职责,不是配置管理员。2025 年上半年第 12 题考的是文档分类:信息系统开发项目的文档分开发文档、产品文档和管理文档,配置管理计划属于管理文档,需求规格说明属于开发文档,这个分类在教材项目管理部分讲文档管理时给出,第 59 讲展开。
编码教材讲了四方面:程序设计语言的选择、程序设计风格、程序复杂性度量、编码效率。程序设计风格包括源程序文档化、数据说明、语句结构和输入/输出方法四个方面;编码效率包括程序效率、算法效率、存储效率、输入输出效率四项。教材有一句值得项目经理记住:"程序的质量主要取决于软件设计的质量",代码写得烂多半是设计没做好,不要只怪程序员。还有一句"读程序的时间比写程序的时间还要多",所以你给乙方的开发规范里要写编码风格要求。
5.2 软件测试:静态动态、白盒黑盒
教材口径:根据国家标准 GB/T 15532《计算机软件测试规范》,软件测试的目的是验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、需求规格说明、软件设计说明和软件产品说明等规定的软件质量要求。软件测试方法可分为静态测试和动态测试。
静态测试是被测试程序不在机器上运行,采用人工检测和计算机辅助静态分析的手段对程序进行检测。它包括对文档的静态测试和对代码的静态测试:对文档的静态测试主要以检查单的形式进行,对代码的静态测试一般采用桌前检查、代码走查和代码审查。教材给了一个数字:"使用这种方法能够有效地发现 30% 至 70% 的逻辑设计和编码错误"。教材第 5 章课后练习第 6 题问哪个属于静态测试,答案是代码走查。
动态测试是在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。
白盒测试也称为结构测试,主要用于软件单元测试中,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例。方法主要有控制流测试、数据流测试和程序变异测试等;最常用的技术是逻辑覆盖,覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。教材还有一句容易出判断题的话:使用静态测试的方法也可以实现白盒测试,例如使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。2025 年上半年第 2 批案例题的判断题正是这句,题目写成"也属于黑盒测试的范畴",是错的。
黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中,完全不考虑程序的内部结构,只检查程序功能是否能按照需求规格说明的要求正常使用。方法一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交试验法等。2025 年上半年第 48 题两个空:黑盒测试对应功能测试、属于动态测试。
一张表把四个词摆正:
| 分类 | 运不运行程序 | 看不看内部结构 | 主要用在哪个阶段 | 主要方法 |
|---|---|---|---|---|
| 静态测试 | 不运行 | 看文档和代码 | 全过程 | 检查单、桌前检查、代码走查、代码审查 |
| 白盒测试(结构测试) | 运行 | 看 | 单元测试 | 控制流、数据流、程序变异、逻辑覆盖 |
| 黑盒测试(功能测试) | 运行 | 不看 | 集成、确认、系统测试 | 等价类、边界值、判定表、因果图、状态图等 |
报修模块的测试计划照这张表写:乙方交付前做代码走查(静态);每个服务的单元测试要求判定覆盖(白盒);集成测试用等价类和边界值测报修表单,比如位置字段必填、手机号 11 位、报修描述最多两百字,边界值就测 0 字、1 字、200 字、201 字(黑盒);系统测试跑第 3.3 节写的早高峰刷脸场景。
六、核心内容精讲:部署交付与过程管理
6.1 部署交付:持续交付、部署原则、蓝绿与金丝雀
教材口径:软件部署是一个复杂过程,包括从开发商发放产品,到应用者在他们的计算机上实际安装并维护应用的所有活动,包括软件打包、安装、配置、测试、集成和更新等。教材说部署和交付"不再是一个一劳永逸的过程,而是一个持续不断的过程",并且"应用系统的配置是整个部署过程中的主要错误来源"。
教材列了部署与交付常见的八种困境:分支冗余导致合并困难、缺陷过多导致阻塞测试、开发测试部署环境不统一、代码提交版本混乱无法回溯、等待上线周期过长、部署操作复杂经常失败、上线之后紧急回滚、架构不合理导致错误无法定位。这八条每一条都是一期上线时方姐团队踩过的坑,你可以拿它当二期部署方案的检查表。
持续交付是解决这些困境的一系列开发实践方法,"用来确保让代码能够快速、安全地部署到生产环境中",教材在这里强调自动化交付过程;工程实践仍须区分“随时可部署”与“每次改动自动进入生产”,生产批准和风险检查可以保留。它在三个阶段的做法:需求阶段用用户故事代替传统需求文档;开发测试阶段做持续集成,让测试人员尽早进入;运维阶段打通开发和运维,保持环境统一。持续交付的五项优势:缩短提交代码到部署上线的时间并降低部署风险、自动快速地提供反馈、让软件在整个生命周期内都处于可部署的状态、简化部署步骤使版本更清晰、让交付过程成为可靠的可预期的可视化的过程。评价交付能力的两个指标:仅涉及一行代码的改动需要花费多少时间才能部署上线(核心指标),开发团队是否在以一种可重复、可靠的方式执行软件交付。
持续部署教材讲了五块。持续部署方案,容器技术是目前最流行的部署技术,容器对比虚拟机的优点是上手简单轻量级、集合性更好易于打包复制发布、能把环境中的各种依赖完整打包。部署原则八条,教材口径:部署包全部来自统一的存储库;所有的环境使用相同的部署方式;所有的环境使用相同的部署脚本;部署流程编排阶梯式晋级;整体部署由运维人员执行;仅通过流水线改变生产环境,防止配置漂移;不可变服务器;部署方式采用蓝绿部署或金丝雀部署。部署层次,教材说部署的目的"并不是部署一个可工作的软件,而是部署一套可正常运行的环境",完整的镜像部署包括构建、装载、运行三个环节。不可变服务器是"除了更新和安装补丁程序以外,不对服务器进行任何更改"的部署模式。
蓝绿部署和金丝雀部署。教材口径:蓝绿部署是指在部署的时候准备新旧两个部署版本,通过域名解析切换的方式将用户使用环境切换到新版本中,当出现问题的时候,可以快速地将用户环境切回旧版本;金丝雀部署是指当有新版本发布的时候,先让少量用户使用新版本,并且观察新版本是否存在问题,如果一切正常,就稳步地将新版本适配给所有的用户。2023 年下半年第 4 批第 11 题考的就是金丝雀的定义,第 11 讲提过一句,出处在这里。二期推广五十个小区,最合适的就是金丝雀:先清华园一个小区上新版本,观察一周,再分批推。
部署与交付的三个新趋势:工作职责和人员分工的转变,运维人员逐步并入开发人员的行列;大数据和云计算基础设施的普及给部署带来新的飞跃;研发运维的融合。
6.2 过程管理:CSMM 与 CMMI
教材口径:软件过程能力是组织基于软件过程、技术、资源和人员能力达成业务目标的综合能力,包括治理能力、开发与交付能力、管理与支持能力、组织管理能力等方面。常见的软件过程管理方法和实践包括国际常用的能力成熟度模型集成 CMMI 和中国电子工业标准化技术协会发布的 T/CESA 1159《软件过程能力成熟度模型》团体标准,简称 CSMM。
CSMM 由 4 个能力域、20 个能力子域、161 个能力要求组成。四个能力域教材口径:治理包括战略与治理、目标管理能力子域;开发与交付包括需求、设计、开发、测试、部署、服务、开源应用能力子域;管理与支持包括项目策划、项目监控、项目结项、质量保证、风险管理、配置管理、供应商管理能力子域;组织管理包括过程管理、人员能力管理、组织资源管理、过程能力管理能力子域。2024 年上半年第 1 批第 49 题问四个能力域里缺的那个,答案是组织管理。
CSMM 五个等级,教材表 5-6:1 级初始级,软件过程和结果具有不确定性;2 级项目规范级,项目基本可按计划实现预期的结果;3 级组织改进级,在组织范围内能够稳定地实现预期的项目目标;4 级量化提升级,在组织范围内能够量化地管理和实现预期的组织和项目目标;5 级创新引领级,通过技术和管理的创新实现组织业务目标的持续提升、引领行业发展。五级的记法和第 12 讲 DCMM 一样,看"范围"和"手段"两个词升级:项目级、组织级、量化、创新。
CMMI 教材放在第 20 章 20.5.1 节,当前版本为 CMMI 2.0。教材口径:CMMI 将所有收集并论证过的最佳实践按逻辑归为 4 大能力域类别:行动,用于生产和提供优秀解决方案的能力域;管理,用于策划和管理解决方案实施的能力域;使能,用于支持解决方案实施和交付的能力域;提高,用于维持和提高效率效能的能力域。4 大类别共包含 9 个能力域,196 条实践分组形成 20 个实践域。2024 年上半年第 1 批第 45 题问"用于生产和提供优秀解决方案"的是哪一类,答案是行动。
两个模型对项目经理的用处是一样的:给乙方定门槛。二期招标时要求投标方具备 CSMM 三级或 CMMI 同等能力,理由是三级意味着"在组织范围内能够稳定地实现预期的项目目标",不是靠某个厉害的程序员。第 51 讲讲招投标时会讲怎么把它写进评标标准。
七、核心内容精讲:智慧邻里2.0 二期施工图
7.1 一页施工图
把本讲内容装配成一份你在架构评审会上要看到的施工图,五部分:
第一部分,架构说明。 总体采用面向服务的架构,服务之间以调用/返回风格分层,门禁、停车、访客之间以事件驱动风格解耦,派单用基于规则的系统,集团主数据库是共享仓库。构件清单、接口清单、模式和约束各一页。
第二部分,评估场景。 至少六个场景,每个写清刺激、环境、响应,覆盖性能、安全性、易修改性、可用性四个质量属性;单列敏感点和权衡点,人脸加密级别对安全性和性能的权衡要定一个值。评估方法用基于场景的架构权衡分析法。
第三部分,设计规范。 结构化的部分高内聚低耦合;面向对象的部分按七原则;新品牌硬件接入用适配器,工单通知用观察者,派单算法用策略;概要设计给系统结构图,详细设计给输入输出、处理流程、数据存储、界面、安全可靠性五类文档。
第四部分,实现与测试规范。 软件配置管理六活动,基线和软件库由乙方建、集团可查;编码风格四方面写进开发规范;测试分静态(代码走查)、白盒(单元测试判定覆盖)、黑盒(集成和系统测试用等价类边界值)三层,早高峰刷脸场景进系统测试。
第五部分,部署与过程。 持续交付,一行代码改动到上线的时间作为核心指标;部署按八条原则,容器化,金丝雀方式先清华园后分批;乙方过程能力 CSMM 三级或同等。
这份施工图交上去,方姐看到的是集团懂行、要求明确,赵副总看到的是服务隔离、一个挂了不全挂,李经理看到的是维护在集团不在小区。
7.2 施工图和项目管理的关系
施工图是技术文档,它在项目管理里的位置有三处。
第一,架构说明和设计规范是范围基准的一部分。第 31 讲范围管理会讲,可交付成果不只是"一个能用的平台",还包括架构说明书、设计文档、测试报告,这些要进工作分解结构。
第二,评估场景就是质量测量指标。第 41 讲质量管理会讲,场景里的响应"一秒内识别、失败率低于千分之一"直接写进质量管理计划,系统测试拿它验收。
第三,过程能力要求进采购。第 50 讲采购管理会讲,CSMM 等级写进评标标准,配置管理和测试规范写进合同的技术附件。
八、考点锚定
本讲对应教材第 4 版 5.1 节软件工程(5.1.1、5.1.3、5.1.4、5.1.5、5.1.6)和 20.5.1 节 CMMI。近年真题落点如下:
| 年份 | 题号 | 考点 | 出题方式与答案 |
|---|---|---|---|
| 2023 下 第 4 批 | 第 11 题 | 部署方式 | 少量用户先用新版本再逐步推广是金丝雀部署 |
| 2024 上 第 1 批 | 第 45 题 | CMMI 四大能力域类别 | 用于生产和提供优秀解决方案的是行动 |
| 2024 上 第 1 批 | 第 49 题 | CSMM 四个能力域 | 治理、开发与交付、管理与支持、组织管理 |
| 2025 上 | 第 12 题 | 文档分类 | 配置管理计划属于管理文档,需求规格说明属于开发文档(第 59 讲展开) |
| 2025 上 | 第 48 题 | 黑盒测试 | 黑盒测试是功能测试,属于动态测试 |
| 2025 上 第 2 批 | 案例判断题 | 白盒与静态测试 | "人工检查代码属于黑盒测试"错,教材说属于白盒测试的范畴 |
| 2026 上 第 1 批 | 第 8 题 | 配置管理角色 | 评估配置管理过程并持续改进是配置管理负责人的职责(第 59 讲展开) |
本讲考法总结,五句话:
- 软件工程目的三项提高生产率提高质量降低成本,三要素方法工具过程;架构四组成构件连接件模式约束,根本目的复用质量维护。
- 架构风格五类:数据流含批处理和管道过滤器,调用返回含主程序子程序数据抽象面向对象层次结构,独立构件含进程通信事件驱动,虚拟机含解释器规则系统,仓库含数据库黑板超文本。
- 评估三方式问卷场景度量,场景最常用;场景三法权衡分析法、架构分析法、成本效益分析法;场景三要素刺激环境响应;敏感点单属性权衡点多属性。
- 结构化设计高内聚低耦合、概要详细两阶段;面向对象七原则单职开闭替换倒置隔离组合迪米特,单职对高内聚、迪米特对低耦合;设计模式创建型五结构型七行为型十一。
- 配置管理六活动计划标识控制状态记录审计发布交付;静态测试三法桌前检查走查审查,白盒是结构测试用于单元,黑盒是功能测试用于集成确认系统;部署原则八条,蓝绿切域名金丝雀少量用户;CSMM 四域五级,CMMI 四类别行动管理使能提高。
九、论文跨界一段
软件工程在论文里最适合放进质量管理和范围管理,说明"技术上怎么保证交付物合格"。如果论文题是"论信息系统项目的质量管理",可以这样接:
本项目在规划质量管理阶段,我把架构评估的场景直接转化为质量测量指标:早高峰两千业主集中通行时人脸识别一秒内完成、失败率低于千分之一,新增小区一周内通过配置接入而不修改核心服务代码,这两个场景分别对应性能和易修改性两个质量属性,并经架构权衡分析确认了人脸加密级别这一权衡点的取值。在管理质量阶段,我要求乙方按软件配置管理六项活动建立基线与软件库,代码交付前执行代码走查,单元测试达到判定覆盖。在控制质量阶段,集成测试以等价类划分和边界值分析设计报修表单用例,系统测试按评估场景执行。这使质量管理从"验收时检查"前移到了"架构评审时定义",交付检查能够追到场景、基线和测试记录。该段为虚构教学示例,实际论文的上线结果须由本人项目记录支持,不能把这里的目标数值当成真实统计。
一段话,把架构评估、设计规范、配置管理、测试方法四件事变成了质量管理三个过程的具体动作。第 41 讲质量管理会把这段接下去。
十、课后作业
第 1 题,联系生活(对应设计原则)。 找一个你用过的手机应用,想一想它更新版本时哪些功能变了、哪些没变。用开闭原则和单职原则各解释一个现象,比如"加了新功能但老功能没坏"说明了什么。
第 2 题,案例思考(对应架构评估与测试)。 为二期平台的停车服务写两个评估场景,每个写清刺激、环境、响应,一个对应可用性,一个对应安全性;再为"车牌识别缴费"功能设计黑盒测试用例,用等价类划分和边界值分析各给三条。
第 3 题,高级项目经理视角(核心作业,下一讲讲评)。 架构评审会开完,方姐说:"架构定了,但报修模块的需求还是一笔糊涂账:李经理要的是工单统计报表,客服要的是一键派单,维修工要的是手机上能看图片,业主要的是能催单,张主管要的是和门禁联动。这五个人的话我们都记了,但不知道先做哪个、怎么写进需求文档。"请你回答:这五种诉求分别是谁的需求、属于什么层面的需求;哪些是必须做的、哪些可以放到三期;你打算用什么方法把这些话变成一份乙方能照着开发的需求文档。提示:下一讲讲需求分析,你先用"谁要、要什么、系统怎么做"三层想。
十一、老孙总结与下讲预告
三个心智模型:
模型一:架构是给组织选的。 考点是架构定义四组成、五类风格、评估三方式与场景三要素、敏感点权衡点。高项认知是架构要匹配治理、运维、数据责任和合规,评审会上你问的是"新品牌接入改不改核心代码"。
模型二:设计定质量,代码只是翻译。 考点是高内聚低耦合、七原则、设计模式三类、配置管理六活动、编码四方面。高项认知是程序的质量主要取决于设计的质量,开发规范要在设计阶段定。
模型三:测试分三层,部署走流水线,能力看等级。 考点是静态动态白盒黑盒、覆盖标准、持续交付优势、部署原则八条、蓝绿金丝雀、CSMM 四域五级、CMMI 四类别。高项认知是金丝雀先一个小区、乙方门槛写 CSMM 三级。
下讲预告: 第 17 讲《搞清楚业主到底要什么?需求分析与 UML》。今天作业里方姐那笔"糊涂账",答案在教材 5.1.2 节需求分析:需求的层次、需求获取、结构化分析与面向对象分析、统一建模语言的基本概念。教材第 5 章课后练习里关于面向对象方法的三道题都出在这一节。五个人五种诉求怎么变成一份需求文档,下一讲讲透。
文中的下讲预告对应原课程内容顺序,专题公开日期另行安排。
#高项 #信息系统项目管理师 #软考
