一段话总结
1. 一段话总结
《AUTOSAR_FO_TPS_GenericStructureTemplate》(文档ID:202,版本R23-11)是AUTOSAR标准基础层核心文档,定义了AUTOSAR模板的通用结构、元模型组织、核心机制及扩展规则,涵盖UML使用规范、顶层结构、通用模板类、变体处理、可拆分元素等关键内容,支持模板的模块化、灵活性与可扩展性,通过公式语言、ARMQL等工具实现模型查询与变体配置,其更新历史显示多次优化可拆分性、生命周期状态等核心功能,仅适用于汽车应用场景。
2. 思维导图
## 文档基础信息
- 文档标识:ID 202,版本R23-11
- 状态:已发布,属于AUTOSAR标准基础层
- 适用范围:仅汽车应用
- 更新历史:2006-2023年多次迭代,优化核心功能
## 核心基础机制
- UML使用
- diagrams:遵循UML 2.0
- 元模型层级:M0(对象)-M1(模型)-M2(元模型)-M3(UMLProfile)
- 构造型:如≪atpMixed≫、≪atpVariation≫等
- UML标签:生命周期标签、变体处理标签等6类
- 顶层结构
- 根类:AUTOSAR,包含ARPackage
- 核心组件:AdminData、DocumentationBlock等
- 包结构规则:标准化包命名与分类(STANDARD/BLUEPRINT等)
## 通用模板类
- 基础类:ARObject(所有类的父类)、ARPackage(包管理)
- 关键类:Identifiable(可识别元素)、Referrable(可引用元素)
- 扩展机制:Special Data(Sdg)支持自定义数据
- 约束类型:值约束、多重性约束、变体使用约束
## 核心功能模块
- 变体处理
- 模式:聚合/关联/属性值/属性集4类模式
- 绑定时间:支持blueprintDerivationTime等6种
- 核心类:VariationPoint(变体点)、AttributeValueVariationPoint
- 可拆分元素:支持多物理文件分布与合并
- 文档支持:多语言处理、文档块、列表/公式/图表嵌入
- 查询与公式
- 公式语言:支持数值/字符串运算、数学函数
- ARMQL:用于蓝图推导的模型查询语言
## 抽象结构与元模型
- 抽象结构:AtpClassifier(分类器)、AtpFeature(特征)等
- 实例引用:AtpInstanceRef(实例导航)
- 元建模模式:参数化结构,支持模型转换
3. 详细总结
一、文档基础信息
| 项目 | 详情 | | — | — | | 文档标题 | Generic Structure Template | | 文档ID | 202 | | 版本 | R23-11(最新更新2023-11-23) | | 状态 | published(已发布) | | 所属标准 | AUTOSAR Standard - Foundation(基础层) | | 适用场景 | 仅汽车应用,非汽车应用未测试 | | 核心目的 | 定义AUTOSAR模板通用结构,补充元模型形式化定义,支持模板模块化与扩展性 |
二、核心基础机制
1. UML在AUTOSAR模板中的应用
- 元模型层级:5层架构,从具体到抽象依次为M0(AUTOSAR对象,如实际ECU)→M1(开发构建的模型,如软件组件)→M2(元模型,定义模板词汇)→M3(UMLProfile,模板构建规则)→MOF 2.0(OMG元对象设施)
- 构造型(Stereotypes):核心包括≪atpMixed≫(混合内容模型)、≪atpVariation≫(变体处理)、≪atpSplitable≫(可拆分关系)等,共10余种
- UML标签:分6类,包括生命周期标签(如atp.Status,支持VALID/DRAFT等5种状态)、变体处理标签(如vh.latestBindingTime)、XML schema配置标签(如xml.attribute)等
2. AUTOSAR顶层结构
- 根元素:AUTOSAR类,为所有模板的根,包含多个ARPackage(包)
- 核心组件:
- AdminData:管理文档语言、版本历史、自定义数据(Sdg)
- ARPackage:支持嵌套,包含PackageableElement(可打包元素),建立命名空间
- DocumentationBlock:支持多语言、列表、公式等文档内容
- 包分类:标准化类别包括STANDARD(标准元素)、BLUEPRINT(蓝图元素)、EXAMPLE(示例元素)、ICS(实现一致性声明),类别间存在引用约束
三、通用模板类与扩展机制
1. 核心通用类
- ARObject:所有元类的隐式基类,包含checksum(校验和)、timestamp(时间戳)属性
- Identifiable:抽象类,继承自MultilanguageReferrable,用于标识模型核心对象,包含shortName(短名称,命名空间内唯一)、longName(长名称,支持多语言)等属性
- Referrable:抽象类,提供shortName作为引用目标,支持短名称片段组合(ShortNameFragment)
- Special Data(Sdg):通用扩展机制,支持存储元模型未定义的自定义数据,包括SdgClass(结构定义)、SdgAttribute(属性定义)等
2. 模型约束类型
- 值约束(AbstractValueRestriction):限制primitive类型的取值范围、长度、正则匹配等
- 多重性约束(AbstractMultiplicityRestriction):定义元素出现次数(最小/最大多重性),支持无限多重性(upperMultiplicityInfinite=true)
- 变体使用约束(AbstractVariationRestriction):限制变体绑定时间(validBindingTime)、是否允许变体(variation)
四、核心功能模块
1. 变体处理(Variant Handling)
- 核心概念:通过VariationPoint(变体点)定义模型中的可变位置,支持绑定时间控制与条件判断
- 4种变体模式:
- 聚合模式:控制聚合关系的存在性,如{WholeClass}聚合{PartClass}的变体
- 关联模式:通过{ReferencedClass}RefConditional实现关联关系变体
- 属性值模式:通过{Type}ValueVariationPoint(如IntegerValueVariationPoint)实现属性值变体
- 属性集模式:将多个属性分组为变体集,支持批量属性变体
- 绑定时间:支持6种,包括blueprintDerivationTime(蓝图推导时)、preCompileTime(编译前)、postBuild(构建后,ECU启动前)等
- 关键约束:变体点绑定后需满足原元模型多重性,属性值变体不支持postBuild绑定
2. 可拆分元素(Splitable Elements)
- 支持M2层元模型元素分布在多个物理文件,M1层模型可合并部分模型的可拆分元素
- 拆分键(Splitkey):由≪atpIdentityContributor≫标注的属性构成,控制合并逻辑
3. 文档支持(Documentation Support)
- 支持多语言:通过usedLanguages指定文档包含的语言,master语言优先级最高
- 文档内容类型:包括段落(Paragraph)、列表(LabeledList/DefList等)、公式(Formula)、图表(Figures)、注释(Notes)
- 文档视图:支持自定义文档视图,控制内容展示
4. 公式语言与ARMQL
- 公式语言:仅返回数值,支持算术运算(+、-、*等)、数学函数(sin、log等)、系统常量引用,用于属性值计算与条件判断
- ARMQL(AUTOSAR Model Query Language):用于蓝图推导,支持LET(变量定义)、FOR(迭代)、WHERE(过滤)块,支持函数定义与模型值访问
五、抽象结构与元建模
1. 抽象结构
- 核心抽象类:AtpClassifier(分类器,含AtpFeature特征)、AtpPrototype(原型,由AtpType类型化)、AtpStructureElement(结构元素,既是分类器也是特征)
- 实例引用(InstanceRef):AtpInstanceRef抽象类,定义M0实例树的导航路径,支持上下文元素(atpContextElement)与目标(atpTarget)指定
2. 元建模模式与转换
- 模式:参数化结构(如VHUnboundedAggregationPattern),通过应用参数生成非参数化结构
- 转换:将带构造型(如≪atpVariation≫)的标注元模型转换为扩展元模型,用于生成XML schema
六、文档更新历史(关键迭代)
| 版本/日期 | 核心更新内容 | | — | — | | R23-11(2023-11-23) | 优化可拆分性(Splitable)、允许的生命周期状态 | | R22-11(2022-11-24) | 重构ReferenceBase、优化上游映射标签、实例引用的变体依赖 | | R19-11(2019-11-28) | 优化可拆分性、扩展AttributeValueVariationPoint、引入TracableTable | | 4.0.3(2011-12-22) | 改进UML使用、优化变体处理与蓝图支持 | | 2.0(2006-05-16) | 第二次发布 |
4. 关键问题
问题1:AUTOSAR元模型的层级架构是什么?各层级的核心作用是什么?
答案:AUTOSAR元模型采用5层架构,从具体到抽象依次为:
- M0(AUTOSAR对象):实际运行的AUTOSAR系统实体,如执行雨刷控制软件的ECU;
- M1(AUTOSAR模型):开发人员构建的模型,包含软件组件、端口接口等所有描述AUTOSAR系统的工件,可通过XML、C、PDF等格式表示;
- M2(AUTOSAR元模型):定义AUTOSAR模板的词汇表,如“软件组件”“端口”等实体的定义,确保开发人员描述的一致性;
- M3(UML Profile for AUTOSAR Templates):构建M2元模型的规则集合,基于UML 2.0并扩展AUTOSAR专用构造型与标签;
- MOF 2.0(OMG Meta Object Facility):元元模型设施,为UML提供基础支持。
问题2:AUTOSAR支持的变体处理模式有哪些?核心应用场景分别是什么?
答案:AUTOSAR定义4种变体处理模式,核心场景如下:
- 聚合模式:控制聚合关系的存在性,适用于“某个组件是否包含特定子组件”的场景(如某车型是否包含高级驾驶辅助组件);
- 关联模式:控制关联关系的存在性,适用于“两个元素是否建立引用关联”的场景(如软件组件与特定端口接口的关联);
- 属性值模式:控制单个属性的值变体,适用于“同一属性在不同变体中取不同值”的场景(如不同配置下的传感器阈值);
- 属性集模式:将多个属性分组为变体集,适用于“多个属性需协同变化”的场景(如不同版本的硬件配置对应的一组参数)。
问题3:Special Data(Sdg)作为AUTOSAR的扩展机制,其核心作用与使用约束是什么?
答案:
- 核心作用:提供标准化的自定义数据存储机制,用于存储元模型未定义的信息,支持3类场景:①无需“副文件”即可在AUTOSAR模型中存储专有信息;②为元模型的缺陷或缺失功能提供临时解决方案;③在模型特定位置(如BuildActionIoElement)存储专用场景数据;
- 使用约束:①需相关方协商一致后使用;②GID(通用标识符)需具有唯一性,避免命名冲突;③容器布局需合理,既不单个数据一个容器,也不所有数据一个“超大容器”;④不得用于存储元模型已支持的信息;⑤sd元素会保留空白字符。