全部学习汇总: https:///GreyZhang/hack_autosar
继续学习AUTOSAR,看一下官方的文档。


5.1.3 实例引用
实例引用
实例引用是 M1 元素,它定义了 M1 分类器的未来 M0 实例树中的特定导航。
图 5.7 显示了一个名为“ctrlInRightControllerInPowerWindowType”的 M1 实例引用。在“PowerWindowType”的每个 M0 实例中,其结构如图5.3所示。此实例引用标识该图右侧最底部的实例。它以组合类型“PowerWindowType”为基础,组件原型“rightController”为上下文,端口“ctrl”为目标。 上下文服务器在特定路径中导航实例树,在此示例中为正确路径。
M1 实例引用是元类 AtpInstanceRef 的具体子类的实例。 图 5.8 显示了实例引用的抽象层。

实例引用的定义
每个实例 ref 都是相对于作为分类器的基定义的。 实例 ref 所做的是指定从基的任何 M0 实例的根到树中的内部实例的特定导航。 一个实例引用,即一个导航,适用于基地的任何 M0 实例。导航是通过一系列上下文元素(即特征)和目标(也是特征)指定的。

实例引用中的上下文路径
上下文特征的有序集合加上目标构成了从根到指定内部实例的路径。换句话说,上下文从 InstanceRef 的第一个元素开始。 目标始终是 InstanceRef 类中的最后一个元素。

InstanceRefs 必须一致
路径中的第一个 atpContextElement 必须是 atpBase 的 atpFeature。 对于所有后续的 atpContextElements,它们必须是前一个元素(它是 AtpPrototype)的 atpType 的 atpFeature。

AtpInstanceRef 应靠近base
AtpInstanceRef 应被聚合,以便它与角色 atpBase 中引用的 AtpClassifier 的关系是明确的。 这是以下情况之一的情况:
• AtpInstanceRef 在角色 atpBase 中引用的 AtpFeature 内聚合。
• atpBase 是实例树的根。
AtpClassifier 聚合了代表第一个(最外层)atpContextElement 的第一个 AtpFeature。

AnyInstanceRef 中没有系统
由于 [constr_2531] 系统不应是 AnyInstanceRef 的 contextElement 或目标。 否则 atpBase 将无法确定。

图 5.9 显示了 AtpInstanceRef 的具体子类,名为 RPortInCompositionInstanceRef,用于定义实例引用,这些引用通过内部组件原型导航到组合类型中的端口。 这个具体的元类指定基类必须是组合类型,必须有一个上下文元素作为组件原型,并且目标是端口。 实例引用“ctrlInRightControllerInPowerWindowType”是 RPortInCompositionInstanceRef 的实例。
图 5.9 还说明了如何在元模型中应用这样的实例引用:
实例引用的应用
实例引用通过两个应该一起存在的表示应用在元模型中:
• 具有构造型 instanceRef 的依赖,它表示意图并有助于文档和类表。
• 引用源中 AtpInstanceRef 的具体子类的相应聚合,它表示实现并因此对 xml 模式有所贡献。
请注意,这两种表示都是相关的,并且应该存在于元模型中。


识别相应的实例参考表示
依赖的目标角色名称和用于对实例引用建模的相应聚合的目标角色名称(如 [TPS_GST_00043] 中所述)应相同。
请在图 5.9 中找到 [TPS_GST_00044] 的应用示例。 从 AssemblySwConnector 到 AbstractRequiredPortPrototype(即请求者)的依赖关系的目标角色名称与 AssemblySwConnector 处的 RPortInCompositionInstanceRef 聚合的目标角色名称相同。
清单 5.1 说明了根据图 5.9 的场景的 ARXML 表示,特别是示例末尾的 AssemblySwConnector 中的实例引用。



这一部分主要是讲的实例引用,算是抽象结构这个大块的最后一部分。原本看到这个标题的时候觉得这个章节或许是最简单的,大概翻译一下看完发现各种“应当(shall)”讲解的略有抽象,理解透的信息不是很多。
















