9.8.3 语义

实例规约(InstanceSpecifications)代表了所建模系统中可能或实际存在的实例,并对它们进行了部分或完整的描述。

Slot规定一个被InstanceSpecification所建模的实例应该是具有值的一个特定的结构化特征,它与拥有该Slot的InstanceSpecification的一个分类符相关。InstanceSpecification通过一个直接的属性、被继承的属性、私有属性、成员端(如果分类符是一个关联),但不包括被重定义的结构化属性,来拥有该Slot。Slot中的值应该遵循它的结构化特征(类型、multiplicity等)。Slot中的值使用ValueSpecifications(参见第8章)来指定。

实例规约可以表示:

  • 由一个或多个分类符指定的实例分类,任意一个都可能是抽象的。
  • 基于它的分类符的实例种类。举个例子,如果实例规约的分类符(calssifier)是一个类,那么它描述了该类的一个实例;如果实例规约的分类符是一个关联,那么它描述了该关联的一个链接。如果没有给定分类符,那么该实例规约不限制所代表实例的种类。如果给定了不同种类的分类符,语义是未定义的。
  • 实例的结构化特征的值规约,其中的值包含在Slots中。不是实例规约的所有分类符的所有结构化特征都需要用Slots来表示,这样该实例规约是一个部分描述。
  • 一个可选的ValueSpecification规约,通过它来计算、衍生,或者构建该实例。如果给定了这样一个值规约,那么所代表的实例要与计算该值规约得到的结果值相等。如果实例规约具有一个或多个分类符,那么值规约的类型必须遵循这些分类符中的至少一个。

实例规约可能规定所建模系统中一个实例的实际存在。或者,实例规约可能提供所建模系统中一个可能实例的说明或示例。实例规约的目的是展示实例中感兴趣的东西。实例遵循实例规约的每个分类符,并且具有带值的属性(由实例规约的每个slot指示)。对于某些属性如果在实例规约中没有相应的slot并不代表所代表的实例没有该属性,而是它们在模型中无足轻重(对它们不感兴趣)。类似的,实际的实例可能是实例规约的一个分类符的特化的实例,但在此模型中我们可能对此事实并不感兴趣。

实例规约可以代表在一个时间点上的实例(一个快照)。实例的变化可以使用多个实例规约来建模,每个是一个快照。

注意,实例规约是一个模型元素,不要把它与它所建模的实例相混淆。由于实例规约可能只是决定了一个实例的部分属性,因此在一个模型系统中可能有多个实例满足该实例规约的需求。另一方面,实例规约可以对所建模系统中不希望出现的的场景进行建模,此种情况下,系统中没有实例可以满足实例规约的需求。

InstanceValue(实例值)是一种值规约,它的值使用实例规约来指定。对实例值的每一次计算被认为是产生一个遵循该实例规约的新实例。如果实例规约有一个specificaiton,那么计算该值规约来给出实例值的值。否则,通过创建一个是该实例规约所有分类符的实例的值来给出。然后,该实例规约中的所有slots按照与它关联的值规约来计算相应的结构化特征的值。没有slot的结构化特征要么通过计算其缺省值来获得(如果它是一个带有缺省值的属性),要么没有值。

注意. 实例值并不拥有它所指向的实例规约;多个实例值可能指向相同的实例规约。

results matching ""

    No results matching ""