1.手把手带你学webpack(6)--source-map
2.基于Embedded Coder 的目源码项目源码下AUTOSAR代码生成及MIL SIL PIL验证
3.详解MiL、SiL、目源码项目源码下HiL测试环境
4."MIL"代表什么,目源码项目源码下它在软件开发中具体是目源码项目源码下什么意思?
5.Firmament(FMT)——下一代开源自驾仪
6.什么是配置标识
手把手带你学webpack(6)--source-map
本篇文章对应源码:JvcicpO1xuXG4gIHRocmIG5ldyBFcnJvcignctZXRoaW5nIHdybnLi4uJyk7XGXG5cbm1vZHVsZS5leHBvcnRzID0geyBlcnJvckZuIHXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSbIjoiIn0=\n//#sourceURL=webpack-internal:///./src/utils.js\n");这种方式适用于在开发模式下需要精确的source-map时使用,相比直接的目源码项目源码下eval,会更加精确些
3.4inline-source-map顾名思义,目源码项目源码下php源码投票下载就是目源码项目源码下以内联方式存放source-map文件,它会将source-map文件的目源码项目源码下内容编码成base后直接放在打包结果的最后
constHtmlWebpackPlugin=require('html-webpack-plugin');const{ CleanPlugin}=require('webpack');/***@type{ import('webpack').Configuration}*/module.exports={ mode:'development',devtool:'inline-source-map',plugins:[newHtmlWebpackPlugin(),newCleanPlugin()],};//#sourceMappingURL=data:application/json;charset=utf-8;base,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsbUJBQW1COzs7Ozs7O1VDTm5CO1VBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7O1VBRUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7Ozs7Ozs7OztBQ3RCQSxRQUFRLFVBQVUsRUFBRSxtQkFBTyxDQUFDLCtCQUFTOztBQUVyQyIsInNvdXJjZXMiOlsid2VicGFjazovLzA2X3dlYnBhY2tfccmNlXhcC8uL3NyYydGlscy5qcyIsIndlYnBhY2s6Ly8wNlZWJwYWNrX3NvdXJjZV9tYXAvd2VicGFjay9ibc3RyYXAiLCJ3ZWJwYWNrOi8vMDZfd2VicGFjazb3VyY2VfbWFwLy4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDbZWIjpbImZ1bmN0aW9uIGVycm9yRm4oKSB7XG4gIGNvbnNvbGUubG9nKCdoZWxsbyBlcnJvcicpO1xuXG4gIHRocmIG5ldyBFcnJvcignctZXRoaW5nIHdybnLi4uJyk7XGXG5cbm1vZHVsZS5leHBvcnRzID0geyBlcnJvckZuIHXG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXGYXIgXZWJwYWNrXvZHVsZV9jYWNoZV9fID0geXG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gXZWJwYWNrXvZHVsZV9jYWNoZV9fWvZHVsZUlkXTtcblWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaWbyB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlXbbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdHXG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFjatb2R1bGVzXbbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFjayZXF1aXJlXpO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiYuc3QgeyBlcnJvckZuIH0gPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbmVycm9yRm4oKTtcbiJdLCJuYW1lcyI6WsInNvdXJjZVJvb3QiOiIifQ==从官方文档可以看到,这种方式的目源码项目源码下构建速度是最慢的,只适用于构建单个文件的目源码项目源码下时候使用
3.5cheap-source-map这种方式相比source-map而言,没有建立列映射,目源码项目源码下也就是目源码项目源码下说遇到报错的时候,只会告诉你哪一行代码出错了,目源码项目源码下而不会告诉你哪一列出错了,目源码项目源码下如果开发时对列映射没有太高要求的目源码项目源码下话可以使用这种方式,毕竟不用生成列映射,比起source-map来说会快一些
constHtmlWebpackPlugin=require('html-webpack-plugin');const{ CleanPlugin}=require('webpack');/***@type{ import('webpack').Configuration}*/module.exports={ mode:'development',devtool:'cheap-source-map',plugins:[newHtmlWebpackPlugin(),newCleanPlugin()],};3.6cheap-module-source-map官方文档对这种方式的devtool并没有进行任何详细介绍,事实上这种方式适用于js代码被loader转换过的场景,比如被babel进行了转换,又比如源码是用typescript写的,后来经过loader转成了js代码,而我们又希望在运行的时候出现报错信息时能够对应回typescript代码像这种有loader对js进行转换的场景下,想要保证正确的source-map就需要使用到带有module的devtool了,因为除了cheap-module-source-map,还有很多别的方式也是有module的,只要是在官方文档中看到带有module的devtool都是具有这种特性
下面就以babel为例,我们通过babel-loader对js进行转换,然后看看能否正确对应到转换前的代码首先安装如下依赖
pnpmi@babel/core@babel-preset-envbabel-loader@babel/core是babel的核心,所有功能都要在这个包的基础上运行
@babel-preset-env让我们可以不需要考虑转换成什么版本的js,它会根据要适配的浏览器自动转换成能兼容相应浏览器的版本,这里我们使用它主要是能够将我们写的es6代码转成es5,从而让我们的源码和打包后的结果有差异,方便观察source-map是否生效
babel-loader,用于和webpack搭配使用,转换js文件
接下来配置loader
constHtmlWebpackPlugin=require('html-webpack-plugin');const{ CleanPlugin}=require('webpack');/***@type{ import('webpack').Configuration}*/module.exports={ mode:'development',devtool:'eval',//默认就是eval,因此development模式下不写devtool配置项也可以plugins:[newHtmlWebpackPlugin(),newCleanPlugin()],};0然后我们写一个具有es6特性的语法的函数
constHtmlWebpackPlugin=require('html-webpack-plugin');const{ CleanPlugin}=require('webpack');/***@type{ import('webpack').Configuration}*/module.exports={ mode:'development',devtool:'eval',//默认就是eval,因此development模式下不写devtool配置项也可以plugins:[newHtmlWebpackPlugin(),newCleanPlugin()],};1使用到了const、箭头函数,经过babel转换成es5后,代码的位置会和源码中不一样,那么在浏览器中如果仍然能够找到转换前的源码,则说明cheap-module-source-map生效了可以看到,在浏览器中确实能够看到转换前的源码,这就是cheap-module-source-map中module的作用,事实上官方文档中这么多的配置项我们不需要害怕,只需要知道每个关键字是什么意思,那么它们组合起来无非就是各种特性的叠加而已
3.7hidden-source-map也是一个见名知意的配置项,相比于source-map,就是将最后的//#sourceMappingURL=main.js.map这句注释删除了,这也就意味着source-map不会生效了,但是仍然会生成source-map文件的官方文档中给我们的建议是在只需要知道有错误出现时给我们在控制台输出出来的话就可以使用这种方式
3.8nosources-source-map这种方式能够在出现错误的时候告诉我们是源码中哪个文件第几行出错了,但是搜索目录文件 源码不会在浏览器中给我们生成源码
总结了解完以上这几个devtool配置项,就足够了,官网的个配置项就是根据eval、hidden、inline、cheap、module、nosources这几个关键字组合出来的
但是组合也是有规则的,官方文档中给出的规则如下:
[inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map
原文:/post/基于Embedded Coder 的AUTOSAR代码生成及MIL SIL PIL验证
生成符合 AUTOSAR 标准的 C 代码和 ARXML 描述,通过使用 Simulink 编码器和 Embedded Coder 软件,可以构建 AUTOSAR 组件模型。此模型将生成算法 C 代码,并导出符合 AUTOSAR 经典平台规范的 ARXML 描述。在 Simulink 中进行测试或集成到 AUTOSAR 运行时环境中。
首先打开要从中生成 AUTOSAR C 代码和 ARXML 说明的组件模型。使用 open_system(“autosar_swc”) 来打开一个示例模型。若要优化代码生成的模型配置设置,推荐使用 Embedded Coder 快速入门。通过从“应用”选项卡中打开该应用,并在 “AUTOSAR” 选项卡上单击“快速启动”来完成快速启动过程。选择“输出”窗口中的符合 AUTOSAR 的输出选项 C 代码。快速入门软件将指导您完成配置步骤。
在生成代码之前,请检查 AUTOSAR 字典中的 XML 选项设置。在“AUTOSAR”选项卡上,选择“代码接口”> AUTOSAR 字典”。在 AUTOSAR 字典中,选择“XML 选项”。配置参数包括将“导出的 XML 文件”打包设置为“模块化”,以便将 ARXML 导出到模块化文件中。这样将生成 modelname_component.arxml、modelname_datatype.arxml 和 modelname_interface.arxml 等文件。
完成模型的配置后,生成符合经典平台规范的 AUTOSAR C 代码和 XML 组件说明。在模型窗口中按 Ctrl+B 生成模型。生成过程将 C 代码和 ARXML 说明生成到模型生成文件夹中。生成完成后,将打开代码生成报告。通过执行这些步骤,可以确保模型的正确配置和生成。
要从已配置为 AUTOSAR 经典平台的模型生成符合 AUTOSAR 标准的 C 代码和 ARXML 组件说明,需确保模型的架构版本与 AUTOSAR 标准相匹配。首次导入或为模型选择 AUTOSAR 系统目标文件会将架构版本参数设置为默认值 4.3。导入 ARXML 文件时,导入程序将检测模式版本并在模型中设置模式版本参数。例如,基于架构 4.3 修订版 4.3.0 或 4.3.1 的导入将设置架构版本参数为 4.3。
生成 AUTOSAR 模型时,代码生成器会导出 ARXML 说明并生成符合当前架构版本的 C 代码。例如,架构版本为 4.3 时,导出将使用架构 4.3(修订版 4.3.1)的工资核算系统源码导出架构修订版。在导出 AUTOSAR 软件组件前,检查所选架构版本。如有需要更改,可使用模型配置参数为架构版本生成 XML 文件。
最大短名称长度的指定范围为 到 个字符(包括 和 )。默认值为 个字符。使用模型配置参数“最大短名称长度”来设置此值。启用 AUTOSAR 编译器抽象宏可以独立于平台生成编译器指令,这有助于在 位平台上优化代码效率,而无需为每个编译器单独移植源代码。
根级矩阵 I/O 配置允许在生成的 C 代码中保留多维数组的维度,增强代码集成。如果应用设计需要列主数组布局,则可以配置 ARXML 导出以支持根级矩阵 I/O。默认情况下,对于列主阵列布局,软件不允许根级矩阵 I/O。启用此功能,可以指定支持使用一维数组的根级矩阵 I/O。
配置完成 AUTOSAR 代码生成和 XML 选项后,生成代码。通过生成组件模型,将生成符合 AUTOSAR 的 C 代码和 AUTOSAR XML 描述到模型生成文件夹中。生成过程会生成一个或多个型号名称 *.arxml 文件,具体取决于“导出的 XML 文件打包”设置为“单个文件”还是“模块化”。这些文件将包含模型名称、组件描述和其他相关组件信息。
将 AUTOSAR XML 组件描述合并回 AUTOSAR 创作工具中,以便利用已分区的文件结构进行合并。在 AUTOSAR 创作工具和基于 Simulink 模型的设计环境中,代码生成器保留 AUTOSAR 元素及其通用唯一标识符(UUID),以支持模型的往返传输。
使用 AUTOSAR 4.0 代码替换库,可以生成与 AUTOSAR 标准紧密一致的函数。此代码替换库允许自定义代码生成器以生成兼容 AUTOSAR 标准的 C 代码。在 MATLAB 和 Simulink 查找表索引与 AUTOSAR MAP 索引之间存在差异时,代码替换软件会转置 AUTOSAR MAP 例程的输入参数。浏览支持的 AUTOSAR 库例程并配置代码生成器使用 AUTOSAR 4.0 代码替换库。
为了支持 AUTOSAR 模型的 MATLAB 主机代码验证,AUTOSAR Blockset 提供了 IFX、IFL、MFX 和 MFL 例程的主机实现。使用这些实现作为模型启用软件在环(SIL)验证,而处理器在环(PIL)验证则适用于在生产目标硬件上验证目标代码。
配置并运行模型的 SIL 仿真,以验证生成的 AUTOSAR C 代码。使用测试工具执行相关操作以检查组件模型与生成代码之间的等效性。对于多实例软件组件,可构建配置为多个实例化的 AUTOSAR 软件组件模型,并导入先前版本中的 AUTOSAR 代码进行观察。
在进行 AUTOSAR 代码生成时,股票市盈源码需注意以下限制:未选中“仅生成代码”复选框时,生成模型时会提示只有在使用 AUTOSAR 系统目标文件构建可执行文件的情况下才能使用 AUTOSAR 系统目标文件。此外,总线元素尺寸保留在导出的 ARXML 中,并在模型配置为“以行为主”时生成代码。C++ 为 AUTOSAR 自适应应用生成的样式范围枚举类在头文件中生成,以方便集成。
了解这些关键步骤和注意事项后,即可高效地利用 Embedded Coder 和 Simulink 进行基于 AUTOSAR 的代码生成、验证和部署过程。
详解MiL、SiL、HiL测试环境
在软件开发过程中,软件测试是不可或缺的环节。本文将详细介绍模型在环(MiL)、软件在环(SiL)和硬件在环(HiL)三种测试环境在汽车行业中的应用。
模型在环(MiL)测试环境中,模型作为测试对象,具有良好的可读性,未针对特定硬件编译。测试人员通过特殊软件工具对波形进行应用,运行和测试模型。测试环境允许测试人员在开发环境内对测试对象进行刺激和观察,接入点位置灵活。MiL测试环境适用于功能系统设计测试,从组件到整个控制单元的测试。然而,随着测试项目功能范围的增加,环境模型变得复杂,计算时间增加。因此,MiL测试环境在某些开发阶段后不再适用。
在软件在环(SiL)测试环境中,测试对象经过编译,源代码通过软件工具编译为特定计算机体系结构的机器代码。测试人员使用包装器创建特殊访问接口,对信号进行刺激和观察。SiL测试环境适用于测试数据类型检查、内存溢出和组件、集成测试。测试在计算机上进行,不需额外硬件。常见测试方法包括极限值分析和等效类形成。仿真时间可能与实际时间相似或不同,测试人员能暂停仿真以进行详细分析。
硬件在环(HiL)测试环境中,测试对象作为样品或已完成产品,使用多种访问接口进行测试。HiL测试环境复杂,适用于组件、集成和系统测试,守望曙光源码发现软件和硬件中的功能性和非功能性错误。在HiL环境中,测试对象的仿真时间永远实时运行,暂定或停止操作不适用。实时计算机用于记录和操作所有相关信号。
在通用V模型中,MiL、SiL和HiL测试环境分类,分别对应技术系统设计、组件和集成测试以及系统测试。正确分类测试级别有助于优化整个测试过程,实现质量最大化、成本最小化和符合ISO 标准。
"MIL"代表什么,它在软件开发中具体是什么意思?
MIL,即Microsoft Intermediate Language的缩写,中文直译为“中间代码”,它是一种在计算机编程中常见的概念。这种代码形式是程序在编译过程中生成的,作为源代码与机器语言之间的桥梁,便于进一步处理和优化。
在技术领域中,MIL的流行度相当高,达到了,表明它在软件开发和计算机科学中被广泛应用。它被归类于Computing领域,特别在.NET Framework的构造中起着关键作用,比如Common Language Runtime (CLR) 和Microsoft Intermediate Language (MSIL)。这些技术基础使得开发者能够更好地进行跨平台编程,提高程序的执行效率。
简而言之,当你看到MIL时,你就可以理解它代表的是代码在编译过程中的中间状态,是软件开发中不可或缺的一部分。通过学习和理解MIL,开发者能够更好地掌握代码的转换过程,优化程序性能。
Firmament(FMT)——下一代开源自驾仪
Firmament (FMT) 是一款基于模型设计 (Model Based Design, MBD) 的开源自驾仪,专为无人机,车,船,机器人等无人控制系统设计。结合当前最先进的基于模型设计和3D仿真技术,FMT旨在打造下一代开源自驾仪系统。
FMT的主要优势在于它构建了一个从嵌入式软件,建模与仿真于一体的软件开发平台。区别于其他开源飞控,FMT-Firmware采用分层设计和高度模块化的设计模式,算法和底层深度解耦,便于算法二次开发和替换。
FMT-Firmware中的Models包含四类算法模块,适用于各种被控对象平台。通过标准的模型接口,可以像乐高积木那样,实现算法的替换以及对不同对象的控制。FMT-Firmware嵌入式软件框架专为MBD设计,提供了许多功能强大的中间件模块组件,支持Simulink代码自动生成和传统的C/C++编码方式。
FMT区别于其他传统开源自驾仪的地方在于支持MBD全流程设计,提供算法设计阶段的系统定义,需求定义,接口设计,算法建模和仿真等功能支持。FMT-Model包含了多旋翼和固定器的全套算法模型,使用Simulink图形化的建模方式,算法框架清晰,便于理解和二次开发,也可直接生成代码合入嵌入式软件中进行实飞测试。此外,FMT-Model还提供了一套FMT Toolbox,包含大量基础数学模块,帮助快速搭建算法模型。
FMT支持多种仿真模式,如模型在环仿真(MIL)和开环仿真(Openloop Simulation)。项目源码已开源,欢迎访问项目地址:Firmament-Autopilot (github.com)获取更多信息。
什么是配置标识
配置标识是定义各类配置项、建立各种基线、描述相关软件配置及其文档的过程。
配置标识的原则
配置标识是指为了方便对软件配置的各个片段进行管理,必须对每一个配置项进行标识。其原则为:
(1)用易于理解和推测的方式定义文件的标识;
(2)当需要修改时,提供进行修改和跟踪它们的方法;
(3)为了便于控制与管理,要隐含如下内容:配置项内容、版本、完成时间等。
配置标识的内容
配置标识是配置管理的基础性工作,是配置管理的前提。配置标识是确定哪些内容应该进入配置管理形成配置项,并确定配置项如何命名,用哪些信息来描述该配置项。
1.确定配置项
信息系统项目中形成的技术性文档和管理性文档,除一些临时性的文档外一般都应该进行配置管理。一般来讲,判定一个文档是否进行配置管理的标准应该是此文档是否有多个人需要使用,这些文档往往在项目的进程中不断地修正和扩展,要保证每个使用者都使用同一版本的文档,就必须将这些文档纳入配置管理,成为受控的配置项。
(1)识别配置项。可能成为配置项组成部分的主要工作产品有过程描述、需求、设计、测试计划和规程、测试结果、代码/模块、工具(如编辑器)、接口描述等。在软件工程方面,Roger S.Pressman认为至少以下所列的文档应该成为配置项:系统规格说明书、项目计划、需求规格说明书、用户手册、设计规格说明、源代码、测试规格说明、操作和安装手册、可执行程序、数据库描述、联机用户手册、维护文档、软件工程标准和规程。
(2)配置项命名。确定了配置项后,还需要对配置项进行合理、科学的命名。配置项的命名绝不能随意为之,必须满足唯一性和可追溯性。一个典型的实例是采用层次式的命名规则来反映树型结构,树型结构上节点之问存在着层次的继承关系。
(3)配置项的描述。由于配置项除了名称外还有一些其他属性和与其他配置项的关系,因此它可以采用描述对象的方式来进行描述。每个配置项用一组特征信息(名字、描述、一组资源、实现)唯一地标识。配置项间的关系有整体和部分的关系及层次关系,也有关联关系。配置项问的关系可以用MIL(Module Interconnection Language)表示。MIL描述的是配置项问的相互依赖关系,可自动构造系统的任何版本。
(4)识别配置项的步骤。识别配置项的主要步骤如下。
①识别配置项。
②为每个配置项指定唯一性的标识代号。
③确定每个配置项的重要特征。配置项的特征主要包括作者、文档类型、代码文档的程序设计语言。
④确定配置项进入配置管理的时间。
⑤确定每个配置项的拥有者及责任。
⑥填写配置管理表。
⑦审批配置管理表。CCB审查配置管理表是否符合配置管理计划和项目计划文档的规定,审批配置管理表。
2.基线
基线(baseline)是项目生存期各开发阶段末尾的特定点,也称为里程碑(milestone),在这些特定点上,阶段工作已结束,并且已经形成了正式的阶段产品。
建立基线的概念是为了把各开发阶段的工作划分得更加明确,使得本来连续开展的开发工作在这些点上被分割开,从而更加有利于检验和肯定阶段工作的成果,同时有利于进行变更控制。有了基线的规定就可以禁止跨越里程碑去修改另一开发阶段的工作成果,并且认为建立了里程碑,有些完成的阶段成果已被冻结。
作为阶段工作的正式产品,基线应该是稳定的,如作为设计基线的设计规格说明应该是通过评审的。如果还只是设计草稿,就不能作为基线,不能被冻结。
如果把软件看做是系统的一个组成部分,以下三种基线最受人们关注:功能基线、分配基线和产品基线。
(1)功能基线。功能基线是指在系统分析与软件定义阶段结束时,经过正式评审和批准的系统设计规格说明书中对待开发系统的规格说明;或是指经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对待开发软件系统的规格说明;或是由下级申请经上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规格说明。功能基线是最初批准的功能配置标志。
(2)分配基线(指派基线)。分配基线是指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明。指派基线是最初批准的指派配置标志。
(3)产品基线。产品基线是指在软件组装与系统测试阶段结束时,经过正式评审批准的有关所开发软件产品的全部配置项的规格说明。产品基线是最初批准的产品配置标志。
另外,交付给外部顾客的基线一般称为发行基线,内部使用的基线称为构造基线。释放是指在软件生存周期的各个阶段结束时,由该阶段向下一阶段提交该阶段产品的过程。它也指将系统集成与系统测试阶段结束时所获得的最终产品向用户提交的过程。后面这个过程也称为交付。
3.建立配置管理系统
在配置管理中,要建立并维护配置管理系统和变更管理系统。建立配置管理系统的主要步骤如下。
(1)建立适用于多控制等级配置管理的管理机制。在生存周期中不同时间所需的控制等级不同,不同的系统类型所需的控制等级不同,以满足专属性和安全性。
(2)存储和检索配置项。
(3)共享和转换配置项。
(4)存储和复原配置项的归档版本。
(5)存储、更新和检索配置管理记录。
(6)创建配置管理报告。
(7)保护配置管理系统的内容。配置管理系统的主要功能有文档的备份与恢复、文档的建档、从配置管理的差错状态下复原。
(8)权限分配。CMO的权限最高,一般项目成员可拥有添加、检入/检出、下载的权限,但是不能有删除的权限。
4.创建基线或发行基线
创建基线或发行基线的步骤如下。
(1)获得CCB的授权。CMO根据项目进展情况或项目组的要求和基线计划规定,提出创建基线的书面请求,提请CCB授权。
(2)创建构造基线或发行基线。
(3)形成文件。
(4)使基线可用。
配置标识的活动
配置标识的活动包括:
(1)选择配置项。配置项是配置管理的最小单元,一般由一个或多个文件组成。组织可以根据不同的原则选择配置项。
(2)制定配置项标识方案。选择好配置项后就要为其选择适当的标识方案。配置项的标识使配置项被唯一识别,并且标识方案可以显示软件演进的层次结构和可追溯性。
(3)制定存取方案。组织需要建立软件配置库,存放软件配置。这个配置库应使软件项目组的所有成员都可根据权限存取其中的配置项,同时必须协调各成员之间的关系,使每个成员所能执行的权限不超过其应有的范围。
配置标识的对象
配置标识的对象包括:
(1)各种功能规格说明和技术规格说明,以及软件项目的特殊功能和开发过程中使用的方法。
(2)所有受到功能和技术规格影响的开发工具。这些工具不仅包括用于创建应用程序的开发工具,而且还包括对比、调试和图形化工具。
(3)所有与其他软件项目和硬件的接口。
(4)所有与软件项目相关的文档和计算机文件,如文本文件、源程序、文档和图形,以及任意的二进制文件。
标识软件项不仅需要处理程序项和需求之间的联系,一般来讲,还需使用多种方式标识软件项,以及软件项同软件产品之间的关联。
配置标识的形式
配置标识的任务是为项目要控制的众多配置项和它们的版本(基线)确定惟一的标识(一组字符串)。为此,应制定一个标识的表达方案。
软件配置标识的一般形式是:XXX—YYY—Z—RL—NNN。其中:XXX:指明了某软件课题的组成标识;YYY:指明了某课题的课题标识;Z:是配置分类标识,例如Z可以是P(计划)、R(需求说明)、D(设计资料)、S(源程序清单)、T(测试资料)、U(用户手册)、I(安装指南)、M(维护手册);RL:表示修改更改的次数;NNN:是属性码,用以表达配置的属性,如日期等。
配置标识实例
实例1:
表示方法为“项目名称—所属阶段产品名称—版本号”。
其中版本号的约定如下:以V开头,版本号可分3个小节,主版本号、次版本号和内部版本号,每小节以“.”间隔。
例如,“教务管理系统—软件设计—详细设计说明书—V2.2.1”。
如果项目名称或所属阶段用汉字表示,会使配置标识过长,可采用简写的数字或拼音代码。如教务管理系统用EMS表示。
实例2:
表示方法如图1所示。公司名称可用简称;项目名称可用简称,也可用编号代替;标识编号一般用定长数字表示,如6位;版本号以V开头,可分为主版本号、次版本号和内部版本号3节。
配置标识是配置管理的基础,唯一地标识软件配置项和各种文档,使它们可用某种方式访问。配置标的目标是在整个系统生命周期中标识系统的组件,提供软件和软件相关产品之间的追踪能力。