继续学习AUTOSAR,看一下官方的文档。


5.1.2 类型、原型和结构元素
图 5.4 显示了具有内部结构的元素的抽象层。
分类器和特征的表示
分类器根据实例的特征对实例进行分类。 这里的“分类器”是指 M2 元模型类 AtpClassifier(的具体子类)的 M1 实例,而“特征”是 M2 元模型类 AtpFeature(的具体子类)的实例。

分类器的一个例子是一些给定的组件类型,一个特征的例子是一些给定的端口。 例如,图 5.2 中的组件类型“WindowControllerType”有一个特性“ctrl”,它是控制信号到达的端口。
这些元素是 M1 元素,它们的作用是表征“运行时”系统中的 M0 元素。 因此,运行时系统将有多个“WindowControllerType”实例(每个“PowerWindowType”实例中有两个),每个实例都有一个控制端口。
根据每个实例的特征,可以对给定系统的所有 M0 实例的集合进行划分或分类。 分类器表示将这些特征组合成一个有意义的整体。

AtpClassifier 的用途
M2 元类 AtpClassifier 是一个“垂直”概念,因为它的语义或含义贯穿了抽象层:这个 M2 类的含义是它的 M1 实例对 M0 实例空间进行分类。
分类器和特征的相互作用使得特征对其所属分类器的规范做出贡献的方式是通过另一个指定特征结构的分类器。

AtpPrototype 的作用
元类 AtpPrototype 代表其结构由另一个分类器给出的特征,分类器对它们进行分类。元类 AtpType 代表类型原型的分类器。
一些分类器不需要是可重用的。 这种情况由结构元素的概念捕获。

AtpStructureElement 的用途
结构元素是一个特征,它也是一个分类器,因此指定它自己的结构而不是引用一个类型。
这种元素的抽象类是 AtpStructureElement。 结构元素更容易定义,因为单个元素同时完成类型和原型的工作。


类型和结构元素都是分类器,即有 M0 实例。 不同之处在于类型在 M1 模型中是可重用的:给定的类型,例如 “WindowControllerType”,可用于在给定模型中键入许多原型。 这些原型代表了“WindowLifterType”的实例——窗口控制器组件——在包含的组合中扮演的不同角色。 例如,一个实例可能扮演“leftLifter”的角色,另一个扮演“rightLifter”的角色。
元类 AtpType、AtpPrototype 和 AtpStructureElement 是抽象的。 它们在元模型中用作具体元类的父类。图 5.5 显示了一个示例,其中组合类型被定义为组件原型的容器,而原型又由组件类型进行类型化。
如图所示的组件结构是图5.4所示通用结构的特化。


在抽象结构中导出特征
除了特殊化类之外,角色为“atpType”和“atpFeature”的关联也是特殊化的。 “atpType”被重新定义,而“atpFeature”被子集化,这是因为前者是抽象的,后者是派生的联合。
具体的“类型”关联重新定义了抽象的“atpType”。
具体特征关联的并集(注意复数)产生派生的 atpFeature。
例如,给定组件类型的特性包括其所有组件原型和端口。 由于技术原因,元模型图中未指明特征的子集。
图 5.6 显示了一个具体结构元素的示例。

分类器根据它们的特征对 M0 实例进行分类。 或者:分类器是具有实例的东西 - M1 分类器具有 M0 实例。

特征是分类器用来对实例进行分类的属性。 或者:分类器具有特征,并且它的每个 M0 实例都具有这些特征。

分类器的 M0 实例可以表示为以该实例为根的树,其中每个节点下方是表示在该节点下充当特征的实例的子树。
实例引用指定了从基(它是一个分类器)的任何 M0 树实例到一个叶(它是目标的一个实例)的导航路径。

原型是一种类型化的特征。 分类器中的原型表示该分类器的实例将具有一个特征,该特征的结构由其类型给出。 该类型的实例将扮演所属分类器中特征所指示的角色。
一个特征不是一个实例,而是一个未来实例的指示。

结构元素既是分类器又是特征。 作为一个特征,它的结构是由它作为分类器拥有的特征给出的。

类型是可以用于类型原型的分类器。 它是一个可重用的分类器。
这部分主要看了可重用架构的类型、原型以及架构元素。看多了其实感觉软件架构以及元素的设计好多似乎也是有一些雷同的。
















