7.4.4 表示法

Namespaces

对于命名空间没有一般性的表示。特定类型的命名空间有自己特定的表示。

遵循规范的的工具可以用[12.2.4]定义的“circle-plus”符号来表示命名空间的成员关系(例如,展示Classes的nestedClassifiersownedBehaviors)。

Name Expressions

根据是否需要别名,NamedElement的nameExpression可以有两种方式表示。它们展示在图7.6中。

  • 没有别名:该字符串表达式体现为模型元素的名字。
  • 有别名:该字符串表达式和别名都出现在名字部分。别名先出现,字符串表达式在字符串表达式下面。

两种情况下字符串表达式在“$”符号之间。UML中的表达式规范支持在抽象语法中使用其它的字符串表达式语言—它们必须以String为类型并且可能具有操作数和操作符结构。表达式的概念在[8.3]讨论。在模板上下文中,参数化的字符串表达式(通常是LiteralStrings)的子表达式显式在尖括号中。

Imports

PackageImport或ElementImport使用一个从引入命名空间指向被引入的包或元素的开放的虚线箭头来表示。如果可见性是公开的,那么靠近虚线箭头标识«import»关键字;否则使用«access»关键字来指示私有可见性。别名可以显式在«import»关键字的后面或下面。如果ElementImport引入的是一个包,可以在关键字前加“element”,即«element import»。

作为虚线箭头的替代,可以用文本来表示一个PackageImport或ElementImport。PackageImport的文本式语法是:

‘{import’ ‘}’ | ‘{access’ ‘}’

ElementImport的文本式语法是:

‘{element import’ ‘}’ | ‘{element access ’ ‘}’

如果有别名,可以表示为:

‘{element import ’ ‘ as ’ ‘}’ | ‘{element access ’ ‘as’ ‘}’

7.4.5 示例

Name Expressions

图7.6展示了一个ResourceAllocation包模板,其中前两个形式模板参数是字符串表达式参数。这些形式模板参数在包模板中命名一些Classes和Association端。该图还展示了一个绑定的包(称为TrainingAdmin),它有两个ResourceAllocation模板的绑定。第一个绑定用“Instructor”替换Resource,“Qualification”替换ResourceKind,以及TrainingAdminSystem类替换System。第二个绑定用“Facility”替换Resource,“FacilitySpecification”替换ResourceKind,以及TraniningAdminSystem类替换System。

绑定的结果包括类Instructor、Qualification、InstructorAllocation,以及类Facility、FacilitySpecification,和FacilityAllocation。

图7.6 Template package with string parameters

Imports

图7.7展示的ElmentImport允许在包Program中使用Time的非限定名来访问它。然而,由于没有引入Interger,对它的访问仍然需要显式的Types::Integer。String以私有的方式引入到Program包,它不能在包外被访问,也不能被其它命名空间进一步从Program所引入。

图7.7 Example of element import

在图7.8中,ElementImport与别名一块儿使用,意味着在包Shapes使用名称Double来指示Types::Real。

图7.8 Example of element import with aliasing

图7.9展示了一些PackageImports。Types的公共成员被引入到ShoppingCart,并被进一步引入到WebShop。然而,Auxiliary的成员只是被私有的引入到ShoppingCart中,不能在WebShop中使用非限定名来访问它们。

图7.9 Examples of public and private package imports

results matching ""

    No results matching ""