第13章 · 播客 第2集

开发管理 · 配置管理:SCM 七大功能与四大工具

🎙️ 本集播客第2集:接上集范围时间成本,这集进配置管理——SCM 是什么、IEEE 729-1983 定义的七大功能逐条过,ISO9000.3 的五条要求,然后是版本管理、问题跟踪、建立管理三核心(版本管理是基础),最后 ClearCase、PVCS、VSS、CVS 四款工具各自的功能定位。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
🎙️ 第13章播客 第2集
⬇ 下载本集 点击播放
阿明
师姐,上集说好这集讲配置管理。为什么大型项目非有它不可?
小雅
原文给的背景:随着软件规模和复杂性的增大,许多大型开发项目往往都会延迟和超出预算,软件开发不得不直面越来越多的问题,表现为开发的环境日益复杂,代码共享日益困难,需跨越的平台增多;软件的重用性需要提高;软件的维护越来越困难。为了解决这些问题,作为控制软件系统一系列变化的学科,软件配置管理,英文 Software Configuration Management,缩写 SCM,应运而生。
小雅
它的主要作用是:通过结构化的、有序化的、产品化的管理软件工程的方法来维护产品的历史,鉴别和定位产品独有的版本,并在产品的开发和发布阶段控制变化;通过有序管理和减少重复性工作,配置管理保证了生产的质量和效率。它涵盖了软件生命周期的所有领域并影响所有数据和过程。
阿明
那 SCM 的正式定义?我记得是 IEEE 给的。
小雅
IEEE 的定义:SCM 是指在软件系统中确定和定义构件,构件包括源代码、可执行程序、文档等,在整个生命周期中控制发布和变更,记录和报告构件的状态和变更请求,并定义完整的、正确的系统构件的过程。在 IEEE 标准 729-1983 中,软件配置管理包括七个方面的功能,这七条是本集的主菜,一条条来。
小雅
第一,配置标识:产品的结构、产品的构件及其类型,为其分配唯一的标识符,并以某种形式提供对它们的存取。第二,版本控制:通过建立产品基线,控制软件产品的发布和在整个软件生命周期中对软件产品的修改,例如它将解决哪些修改会在该产品的最新版本中实现的问题。
小雅
第三,状态统计:记录并报告构件和修改请求的状态,并收集关于产品构件的重要统计信息,例如它将解决修改这个错误会影响多少个文件的问题。第四,审计和审查:确认产品的完整性并维护构件间的一致性,即确保产品是一个严格定义的构件集合,例如它将解决目前发布的产品所用的文件的版本是否正确的问题。
小雅
第五,生产:对产品的生产进行优化管理,它将解决最新发布的产品应由哪些版本的文件和工具来生成的问题。第六,过程管理:确保软件组织的规程、方针和软件周期得以正确贯彻执行,例如它将解决要交付给用户的产品是否经过测试和质量检查的问题。第七,小组协作:控制开发统一产品的多个开发人员之间的协作,例如它将解决是否所有本地程序员所做的修改都已被加入新版本的产品中的问题。
阿明
七条记住了,但最怕考「哪条功能解决哪个问题」这种配对题。
小雅
教你抓句尾的例句:影响多少个文件是状态统计;所用文件版本是否正确是审计和审查;由哪些版本的文件和工具生成是生产;是否经过测试和质量检查是过程管理;本地修改是否都加入新版本是小组协作。出题人就是从这五个例句里抽一个当题干,把另外几条当干扰项。
阿明
这个抓手好使。IEEE 之外还有别的标准管这事儿吗?
小雅
有,ISO9000.3 对软件配置管理系统做了五条要求:唯一地标识每个软件项的版本;标识共同构成一个完整产品的特定版本的每一软件项的版本;控制由两个或多个独立工作的人员同时对一个给定软件项的更新;按要求在一个或多个位置对复杂产品的更新进行协调;标识并跟踪所有的措施和更改——这些措施和更改是在从开始直到放行期间,由于更改请求或问题引起的。
小雅
而两个文件,IEEE 729-1983 和 ISO9000.3,都强调了配置管理的三个核心部分:版本管理、问题跟踪和建立管理,其中版本管理是基础。这三个名字要一字不差——练习题就问「软件配置管理的三个核心部分是版本管理、问题跟踪和什么」,选项混进需求管理、质量管理、进度管理,正确答案是建立管理。再强调一遍定位:版本管理是基础。
阿明
建立管理这个名字有点怪,它就是变更控制吧?
小雅
可以这么理解,练习选项里就写作「建立管理(变更控制)」。版本管理这层是基础,原文列了它的主要任务:建立项目;重构任何修订版的某一项或某一文件;利用加锁技术防止覆盖;当增加一个修订版时要求输入变更描述;提供比较任意两个修订版的使用工具;采用增量存储方式;提供对修订版历史和锁定状态的报告功能;提供归并功能;允许在任何时候重构任何版本;权限的设置;晋升模型的建立;提供各种报告。加锁防覆盖、增量存储、随时重构任意版本,这几个词是高频干扰点。
阿明
道理明白了。那市面上都有哪些工具?
小雅
常用的软件配置管理工具主要有四款:Rational ClearCase、Merant PVCS、Microsoft VSS、CVS。大部分软件具备版本控制、建立管理、构造管理、问题追踪这些基本功能模块,有些软件还融合了需求管理、需求变更管理技术,并支持工作流程,以至 Internet 和 Intranet 应用的异地通信和管理功能。趋势是涉及面越来越广,将影响软件开发环境、软件过程模型、配置管理系统的使用者、软件产品的质量和用户的组织机构。
阿明
先说 ClearCase 吧,这名字考试里出现率最高。
小雅
ClearCase 是 Rational 公司的主要配置管理工具,可以用于 Windows 和 UNIX 开发环境,主要应用于复杂的产品发放、分布式团队合作、并行的开发和维护任务,支持 Client/Server 网络结构。它提供全面的配置管理功能,包括四大块:版本控制、工作空间管理、建立管理和过程控制,而且无须软件开发者改变他们现有的环境、工具和工作方式。
小雅
最重要的定性句来了:ClearCase 的核心功能是版本控制。练习题原样考「ClearCase 作为主流配置管理工具,其核心功能是」,选项放进度跟踪、成本核算、人员分配来捣乱,答案版本控制。它是对软件开发进程中一个文件或一个目录发展过程进行追踪的手段,通过分支和归并功能支持并行开发,可以对每一种对象类型——包括源代码、二进制文件、目录内容、可执行文件、文档、测试包、编译器、库文件等——实现版本控制。
阿明
它那个「View」技术是干嘛的?
小雅
工作空间管理:保证开发人员拥有自己独立的工作环境、拥有自己的私人存储区,同时可以访问成员间的共享信息。ClearCase 给每一位开发者提供了一致、灵活的可重用工作空间域,采用名为 View 的新技术,通过设定不同的视图配置规格,帮助程序员选择特定任务的每一个文件或目录的适当版本并显示它们。View 可以让开发者在资源代码共享和私有代码独立的不断变更中达到平衡。
小雅
建立管理方面,ClearCase 自动产生软件系统构造文档信息清单,而且可以完全、可靠地重建任何构造环境,也可以通过共享二进制文件和并发执行多个建立脚本的方式支持有效的软件构造。它的建立工具有两个:clearmake 支持 UNIX,omake 支持 NT。过程控制方面,ClearCase 为团队通信、质量保证、变更管理提供了非常有效的过程控制和策略控制机制,体现在为对象分配属性、超级链接、历史记录、定义事件触发机制、访问控制查询功能等几个方面。
阿明
PVCS 呢?听说它是「工业标准」。
小雅
原文原话:Merant 的 PVCS 是世界领先的软件开发管理工具,在软件生命周期管理市场占有绝大多数市场份额,是公认的工业标准。它包含多种工具,几乎覆盖了软件开发管理中的所有问题,共 8 个模块:VersionManager 完整、详细地记录开发过程中出现的变更和修改,可快速得到系统中任何文件的各个版本,并使修订版本自动升级;ConfigurationBuilder 为软件系统提供可靠的自动重建过程;Tracker 在整个开发过程中确定和追踪软件的每一变更的要求。
小雅
Notify 将软件状态的变更通过 E-mail 通知组织机构中的其他成员;Reporter 为 GUI 界面环境提供一个客户报表工具;ProductionGateway 提供了局域网间与大型机 MVS 系统双向同步互联;Developer's Toolkit 为 PVCS 客户提供应用程序开发接口 API,使项目信息通过编程访问;RequisitePro 提供了一个独特的 Microsoft Word 界面和需求数据库,对需求及需求变更进行追踪和管理。这 8 个模块既可以单独安装使用,也可以相互集成。
阿明
VSS 和 CVS 这两个我熟一点,但考点在哪?
小雅
微软的 VSS,全名 Visual SourceSafe,提供了基本的认证安全和版本控制机制,包括 CheckIn 入库、CheckOut 出库、Branch 分支、Label 标定等功能。这四个功能名要能对上号。VSS 是一种源代码控制系统,它带有专业的文档、代码管理库,可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型;它可以同 Visual Studio 开发环境及 Microsoft Office 应用程序集成;客户端既可以连接服务器运行,也可以在本机运行,非常适合于个人程序开发的版本管理。
小雅
CVS,并发版本系统 Concurrent Versions System,是主流的开放源码的版本控制系统,Linux 和 UNIX 下系统自带的版本控制工具,对于从个人开发者到大型、分布式团队都是有用的。考点一句:与微软 VSS 在实现功能上属于同一个级别,不过支持的操作平台不一样。也就是问「CVS 和 VSS 什么关系」,答功能同级别、平台不同。
阿明
四款工具各有各的标签,帮我串一遍。
小雅
本集必背:SCM 是控制软件系统一系列变化的学科,IEEE 729-1983 七大功能——配置标识、版本控制、状态统计、审计和审查、生产、过程管理、小组协作;ISO9000.3 五条要求;三核心是版本管理、问题跟踪、建立管理,版本管理是基础,任务含加锁防覆盖、增量存储、随时重构任意版本。
小雅
工具四款接着背:ClearCase 用于 Windows 和 UNIX,四大功能版本控制、工作空间管理、建立管理、过程控制,核心功能是版本控制,View 管工作空间,clearmake 用于 UNIX、omake 用于 NT;PVCS 是公认的工业标准,8 个模块,Tracker 追踪变更、RequisitePro 挂着 Word 界面管需求;VSS 有 CheckIn、CheckOut、Branch、Label,适合个人开发;CVS 开放源码,Linux 和 UNIX 自带,与 VSS 同级别。
阿明
都串起来了。下一集?
小雅
下一集讲文档管理与需求管理——文档的七大作用、三类文档怎么分、质量五特征,还有需求变更要跟投入挂钩、需求跟踪五大活动。这集先到这。