全部学习汇总: https://github.com/GreyZhang/hack_autosar

继续学习AUTOSAR,看一下官方文档。今天看通用模板部分的变体点。

7.6 VariationPoint

VariationPoint 的结构如图 7.8 所示。

这个元类代表了表达“结构变化点”的能力。 如果 swSyscond 评估为 true 并且每个 postBuildVariantCriterion 都得到满足,则变体点的容器是所选变体的一部分。

7.6.1 VariationPoint 类的结构

VariationPoint 类保存有关聚合模式(第 7.2 节)、关联模式(第 7.3 节)和属性集模式(第 7.5 节)9 中的变化点的信息。

VariationPoint 在角色 blueprintCondition 中聚合了 ConditionByFormula、PostBuildVariantCondition 和 DocumentationBlock。 这三个“分支”相互独立。 如图 7.8 中的多重性所示,它们也是可选的:

PreBuild变体点

一个变体点聚合了 ConditionByFormula,那么这个变体点就是一个 PreBuild 变体点。

有关详细信息,请参阅第 7.6.5 节。

上面是对PostBuild、蓝图阶段、组合方式的变体点介绍。最后一个比较特殊:无条件变体点。

这相当于仅 PreBuild 的变化点,其中 ConditionByFormula 具有绑定时间 systemDesignTime,并且 who's 公式的计算结果始终为 true。

变异点的多重性

在所有模式中,VariationPoint 元素的重数为 [0 : : : 1],即它是可选的。 如果省略变异点,则没有变异并且相应的元素始终存在。

在系统配置中没有 Vh.latestBindingTime 设置为 BlueprintDerivationTime 的 VariationPoints

蓝图不是系统配置的一部分。 因此,在系统配置中,元模型不应将 vh.latestBindingTime 限制为 BlueprintDerivationTime 的 VariationPoint。

如果 vh.latestBindingTime 是 BlueprintDerivationTime 那么应该只有 blueprintCondition/blueprintValue

将 vh.latestBindingTime 限制为 BlueprintDerivation 的 VariationPoints 不应具有 swSysCond 或 postbuildVariantCondition。

没有嵌套的 VariationPoint

由于 blueprintCondition 是一个 DocumentationBlock,它可以再次包含 VariationPoints,因此允许嵌套 VariationPoints。 这不是有意的,不应使用。

小结:其实蓝图部分的变体设计完全是没必要考虑的,从我接触的项目经验来看的话,基本上都是确认而非变体。

7.6.2 VariationPoint 中的 shortLabel

VariationPoint 有一个可选属性 shortLabel,它实现了变化点的名称。

VariationPoint 中的 shortLabel 必须是唯一的

shortName 和 shortLabel 的组合在下一个封闭的 Identifiable {WholeClass} 中应该是唯一的。 如果 {PartClass} 上不存在 shortName,则不需要 shortLabel。 如果 {PartClass} 的 shortName 在 {WholeClass} 的上下文中是唯一的,则 shortLabel 是不必要的。

例如,在聚合模式(第 7.2 节)中,这个封闭的 Identifiable 通常为 {WholeClass}。

变体富模型违反 [constr_2508]

根据 [TPS_GST_00097],AUTOSAR 将使用下一个封闭 Identifiable 的属性 shortName 作为唯一名称。 这不适用于变异点。究其原因,根源在于变体富 M1 模型和绑定的 M1 模型之间的差异。

变体富 M1 模型可以为一个聚合定义多个替代变体。正如术语“替代品”所暗示的那样,只有其中一个留在绑定的 M1 元模型中,但都具有相同的短名称。

因此,(尚未绑定的)变体富 M1 模型违反了 AUTOSAR 的一致性条件([constr_2508]),因为它具有多个具有相同 shortName 的元素。这是唯一可行的,因为我们要求绑定的 M1 模型(和相关代码)最终遵守这些一致性规则([constr_2503])。

[constr_2508] 被 [constr_2512] 替换为变体富模型。

有几种情况需要单独解决具有相同 shortName 的变体富 M1 模型中的变体:

变体富模型的拆分/合并

如果聚合具有构造型 atpSplitable 。 其用例是将特定变体保存在单独的工件中。 为了合并这些单独的工件,不仅需要考虑 shortName,还需要考虑 Identifiable ([constr_2512]) 的特定变体的 shortLabel。

区分 RTE 中的 codeGenerationTime Variation Points

如果绑定时间是 codeGenerationTime 或更晚,则 RTE 需要在实现 preCompileTime 可变性的情况下区分各个变体。

从外部参考变异点

通常需要从外部参考个体变异点。 例如,配置管理系统可能需要识别单个变化点以实现可追溯性。

此外,由于 shortLabel 是一个可选元素,如果它不存在,它对 XML 的大小或复杂性没有影响。

变体的短名称唯一性约束

变体元素的shortName + shortLabel 在周围Identifiable 建立的名称空间内必须是唯一的。

VariationPoint 中的 shortLabel 在技术上仅当 VariationPoints 用于在具有相同 shortName 的 Identifiable 之间切换时才需要,参见清单 F.1 和 F.3。 如果在部分模型中另外描述了那些 Identifiables,则部分模型中的 shortLabels 指示哪些元素属于一起,请参见清单 F.1 和 F.2。

如果 Identifiable 中的 shortLabel 用于改变 Identifiable 的存在而没有同等命名的替代方案,则 VariationPoint 中的 shortLabel 不是必需的,但可能存在。 如果定义了shortLabel 并且在部分模型中描述了Identifiable,则需要一致地重复shortLabel,参见清单F.2。 如果 shortLabel 未定义,则不应出现在任何部分模型中。

7.6.3 VariationPoint 中的 sdg

VariationPoint 类聚合了一个可选的 sdg 对象(参见第 4.5 节),外部软件系统可以使用该对象将特定于应用程序的数据附加到一个变化点。 例如,变体管理系统可能会向变体点添加标识符、URL 或特定分类器。

由于此类数据具有高度应用性和特定于供应商的特性,因此无法标准化,而是需要一个特殊的数据组。

此外,由于 sdg 是一个可选元素,如果它不存在,它不会影响 XML 表示的大小或复杂性。

这部分主要看了模板中的变体点,看了相关部分的类的结构以及几个其他的属性说明。关于变体点,其种类以及实现方式都是很多的,这次先看这一部分,后面针对这部分继续做相关的梳理分析。

880_AUTOSAR_TPS_GenericStructureTemplate27_变体点1相关推荐

  1. 变体类的使用 package record case【转载】

    **************理论区 start********************* DELPHI中记录的存储方式       在DELPHI中,我们用record关键字来表明一个记录,有时候,我 ...

  2. react 组件样式_如何使用样式化组件为React组件创建视觉变体

    react 组件样式 by Gilad Dayagi 通过吉拉德·达亚吉 如何使用样式化组件为React组件创建视觉变体 (How to create visual variants for Reac ...

  3. 从起源、变体到评价指标,一文解读NLP的注意力机制

    作者 | yuquanle 转载自AI小白入门(ID:StudyForAI) 目录 1.写在前面 2.Seq2Seq 模型 3.NLP中注意力机制起源 4.NLP中的注意力机制 5.Hierarchi ...

  4. 在注意力中重新思考Softmax:分解非线性,这个线性transformer变体实现多项SOTA

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器之心 编辑丨极市平台 导读 来自商汤.上海人工智能实验室等 ...

  5. 加性注意力机制、训练推理效率优于其他Transformer变体,这个Fastformer的确够快...

    视学算法报道 机器之心编辑部 从训练与推理效率来看,清华和微软亚研提出的 Fastformer 无愧于「fast」. 在过去的几年里,Transformer 及其变体在很多领域取得了巨大成功,但由于其 ...

  6. 谷歌提出「卷积+注意力」新模型,超越ResNet最强变体!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 丰色 发自 凹非寺 量子位 报道 | 公众号 QbitAI Tran ...

  7. Transformer模型有多少种变体?复旦邱锡鹏教授团队做了全面综述

    视学算法报道 转载自:机器之心 编辑:Liyuan.杜伟 自提出至今,Transformer 模型已经在自然语言处理.计算机视觉以及其他更多领域「大展拳脚」,学界也提出了各种各样基于原始模型的变体.但 ...

  8. electron 改变窗体 大小_8个瑜伽常见体式变体,小改变,大不同!

    原标题:8个瑜伽常见体式变体,小改变,大不同! . 每天重复练习同样的体式,不免感到乏味.今天给大家分享8个超级好用的变体,你会发现,一点小小的改变,不仅能让练习更多样化,练习的感受和功效也会大不同. ...

  9. R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤、条件推理决策树是传统决策树的一个重要变体、条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂

    R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤(Conditional inference trees).条件推理决策树是传统决策树的一个重要变体.条件推理树的分裂是基于显著性 ...

最新文章

  1. 成为人工智能视觉应用工程师需要多久?我用了45天!
  2. 固态硬盘是什么接口_SATA接口和M.2接口的固态硬盘哪个好?SATA接口和M.2接口的区别...
  3. 皮一皮:这才是持之以恒的专一...
  4. php laravel框架项目实例
  5. 【PAT乙级】1003 我要通过! (20 分)详解
  6. Discuz常见小问题-_如何修改网站LOGO
  7. s28 LNMP架构服务搭建
  8. 你真的了解java class name吗?
  9. 如何把APP加到HTML,如何将 Microsoft 服务添加到你的应用 (HTML)
  10. JS 使用正则表达式参考,分组捕获,遍历输出所有匹配结果
  11. 常用传感器讲解四--水位传感器(water sensor)
  12. cofax(网络传真机) v3.1.0.0
  13. 高等数学张宇18讲 第一讲 高等数学常用基础知识
  14. 熊克斐:技术夜未眠 从码畜到CTO
  15. 乌尔都语简介和Unicode由来
  16. (附源码)计算机毕业设计SSM家具商城系统
  17. 知领·报告 | 车路协同技术发展态势分析报告.md
  18. 干货 | Elasticsearch 可搜索快照深入详解
  19. 机器人测钢卷直径_激光传感器的使用方法汇总
  20. 声网首发RTE行业专著《实时万象》,拉开RTE2022序幕

热门文章

  1. 春晚过去 4 天了,你卸载百度 APP 了吗?
  2. 小程序毕业设计 基于微信医院预约挂号小程序毕业设计开题报告功能参考
  3. 大一计算机专业学业规划书,大一学业规划书
  4. cytoscape.js基础篇
  5. APP乱象丛生致手机危机四伏
  6. 如何选择阿里云ECS服务器?
  7. 使用开源项目【Banner】实现轮播图效果(带小圆点)
  8. 阿里无线技术架构演进
  9. DIY智能插座(三) -- 蓝牙POS机改造
  10. TCP / IP学习笔记(9)-dns域名系统