天天看點

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       全部學習彙總: ​​https://github.com/GreyZhang/hack_autosar​​

       繼續學習AUTOSAR,看一下官方的文檔。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3
848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       2.3.2 分布在多個實體檔案上的可拆分元素 (atpSplitable)

       AUTOSAR 區分模型中可能拆分到多個實體檔案中的元素,以及需要一起定義的元素,是以應完全在一個實體裡檔案中完整描述。 預設情況下,一個元素的所有屬性都應該在同一個實體檔案中(參見 [constr_2524]。但是對于每個單獨的屬性(屬性、聚合和引用),元模型可以通過構造型 atpSplitable 指定它可以分布在單獨的這些檔案中合并為一個“合并模型”。

       合并模型應符合元模型

       從 atpSplable 元素合并的模型應遵守純元模型的一緻性規則。 請注意,所需的較低多重性取決于過程階段,是以 AUTOSAR 模式将它們主要設定為 0。這也适用于綁定模型。

       通過引入可拆分元素,AUTOSAR 支援:

       • 靈活的方法論(例如,通過将資訊特定分布到實體工件來優化流程)

       • 在不更改原始工件的情況下向元素添加更多方面

       atpSplitable 的語義是:

       • 如果元模型将聚合/屬性标記為 atpSplitable 那麼聚合的元素可以在不同的實體檔案中描述(代表部分模型)。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       一個檔案中的不可拆分元素

       如果聚合/屬性不是 atpSplitable ,則所有聚合元素都應在與聚合元素相同的實體檔案中進行描述。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       可拆分的集合

       如果 atpSplitable 聚合的上多重性 > 1,我們就有了一個元素集合。 然後可以将該集合拆分為不同的檔案。 由這些不同檔案表示的部分模型仍然提供有助于合并模型的集合。 是以,根據 [3],包裝器 xml 元素也應在每個單獨的檔案中給出。

       請注意,有序集合上的 atpSplitable(與上重數的關系 > 1)表示整個集合可能處于部分模型中。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       有序集合不能拆分為部分模型

       可拆分的有序集合應在一個部分模型中作為一個整體。換句話說:與無序集合相反——它可以分布在部分模型之間——有序集合隻能作為一個整體放置在一個部分模型中。 否則合并方法會影響集合的語義。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       不可分割的元素不得重複

       未标記為 atpSplitable 的屬性(即聚合和屬性)必須全部放在一個實體檔案中。 除非正确合并需要它們,否則它們不得在拆分檔案中重複。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3
848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       為了實作這一點,元模型中的以下内容是正确的:

       部分模型的識别

       atpSplitable 屬性可以通過以下屬性之一(優先級遞減)明确辨別。 這些屬性必須在拆分檔案中重複。

       – 聚合元素的shortName(如果聚合的上限多重性> 1)

       – 如果atpSplitable 屬性會發生變化(參見第7 章),還需要考慮VariationPoint 的shortLabel。

       – 聚合的作用(僅适用于上重數等于 1 的關系)

       – 關聯角色應始終評估為全限定路徑名(拆分鍵中的角色名是一個值,在引用的情況下産生全路徑名)。

       – 附加方法,例如在 EcucParameterValue 内或在 ECU 參數的 EcucContainerValue 内定義。

       特定屬性在 UML 标記 atp.Splitkey 中明确指定為逗号分隔清單。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       Splitkeys 中的關聯

       如果關聯是拆分鍵的一部分,則應使用參考值的絕對值表示。換句話說,如果一個 atp.splitkey 引用一個關聯,那麼即使是相對引用,也應該使用根據引用目标的 [TPS_GST_00169] 的絕對短名稱路徑。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       可拆分到根

       如果元素包含标記為 atpSplitable 的屬性,則直到根元素的所有聚合都标記為 atpSplitable 。 這允許明确辨別所有涉及的實體檔案中的拆分元素。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       以下頁面說明了如何将模型分布到多個檔案中。

       圖 2.3 顯示了示例 (M2) 的元模型。 合并後的模型如圖 2.4 所示。 此圖還通過顔色訓示元素如何分布在四個檔案中(由不同顔色表示)。 請注意,圖 2.4 中顯示了 atpSplitable 以便更好地了解,即使該圖顯示的是 M1 工件(而構造型應用于 M2)。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       • 圖2.5:缺少nonSplitDataSpec 中給出了兩個無效拆分的示例。

       • 圖2.6:屬性a 必須與屬性b 一起放在一個檔案中,因為這些屬性是不可拆分的。 屬性 a 也不是拆分鍵的一部分。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3
848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3
848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3
848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       這是前面提到的幾個圖。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       2.4 UML 标簽

       AUTOSAR 模闆配置檔案使用以下 UML 标簽。 請注意,這裡隻提到了那些直接影響元模型語義内容的标簽。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       如果合适,UML 标簽會附加到關系的目标端

       除非對特定的 UML 标簽進行了不同的指定,否則 UML 标簽将附加到關系(關聯、聚合)的目标端。 對于依賴和泛化,UML 标記與連接配接器本身相關聯(以克服 AUTOSAR 中使用的 UML 工具 (EA) 的限制)。

848_AUTOSAR_TPS_GenericStructureTemplate4_UML的使用3

       atp.recommendedPackage

       此标記為給定元類的對象提供推薦的包名稱。 是以它為第 3.1 章中的 {kind} 提供了一個值。 通常它是标記附加到的元類的名稱。 請注意 – 此标簽會傳播到子類 – 此标簽僅适用于 PackageableElement 的子類。

       atp.Splitkey

       這指定了 atpSplitable 關系的辨別鍵。 有關更多詳細資訊,請參閱 D。該标簽指定了一個逗号分隔的 OCL 表達式清單。

這些表達式可以是建構識别字元串的基礎。

繼續閱讀