UML 模型

可以将 cpp_namespace 构造型应用于模型。可以使用构造型的 NamespaceName 属性来指定模型中所有元素的名称空间。

UML 包

UML 包变成目标项目(以及文件系统上相应的文件夹)中的文件夹。 转换将包的元素放入包文件夹。

转换忽略标记为分析包的包。用户通过将 <<perspective>> 构造型应用于包或通过应用关键字“analysis”或“Analysis”,来将包标记为分析包。

类似于模型,可以将 cpp_namespace 构造型应用于包来指定包中所有元素的名称空间。转换目前不支持嵌套名称空间。在内部包中指定的名称空间取代在外部包中指定的名称空间。

如果在相同模型级别上,两个 UML 包具有相同名称,则转换只在文件系统上创建一个文件夹,并将两个 UML 包的内容放入该文件夹。

UML 类

对于 UML 类,转换生成一对文件:头文件和主体文件。如果必要,转换将类名转换为符合 C++ 规则的名称并确保它是唯一的。主体文件始终包含相应头文件的 include 伪指令。缺省情况下,生成的头文件具有文件名 <ClassName>.h,而生成的主体文件具有文件名 <ClassName>.cpp。 

泛化关系和关联关系影响代码生成。有关更多信息,请参阅“UML 关联关系”“UML 泛化关系。”

可以将以下构造型应用于 UML 类:

·         cpp_struct:此构造型生成 C++ struct 而不是类。

·        cpp_union:此构造型生成 C++ union 而不是 C++ 类。C++ 概要文件允许嵌套联合是匿名的。缺省情况下,不对联合生成标准操作。

·        cpp_typedef:此构造型生成 C++ typedef 而不是 C++ 类。应该使用构造型的“ImplementationType”属性来指定定义的类型的签名。

UML 枚举

转换将 UML 枚举转换成 C++“enum”。 C++ 枚举的名称取自 UML 枚举。如果必要,转换将枚举名转换为符合 C++ 规则的名称并确保它是唯一的。转换生成 UML 属性作为 C++ 属性,并应用来自模型的缺省值。

不同于 UML 类,转换只生成枚举的头文件。

UML 接口

C++ 转换将 UML 接口转换为 C++ 类。 对接口的处理与对 UML 类的处理相似(除了作为纯虚拟 C++ 方法生成的 UML 操作外)。 对接口的标准操作处理(缺省构造函数、副本构造函数、析构函数和赋值运算符)与类是相同的。

嵌套的 UML 类、枚举和接口

类可以包含嵌套类、枚举和接口。转换生成类嵌套对象(类似于它们的非嵌套副本)。但是,转换不为嵌套对象创建单独的头文件和主体文件;它添加到包含对象的类的头文件和主体文件。

嵌套对象还有以下不同之处:

·         父元素跟踪其嵌套元素的可视性

·         将嵌套元素的 include 伪指令添加到包含元素的类的 include 伪指令

·         嵌套元素的操作主体以包含元素的类的名称为前缀。

·         嵌套元素的静态属性定义也包括包含元素的类的名称

置顶

使用条款 | 反馈
(C) Copyright IBM Corporation 2005. All Rights Reserved.