
|
UML模型和C++映射参考 |
 |
|
Kant 2008的UML版本是V2.1。
由于UML作为通用建模语言,本身和C++并不完全对应,因此需要对UML进行扩展。下面按照类型来说明二者的映射:
C++命名空间
C++命名空间对应UML模型中的Package(
包)。
C++类
C++类对应UML模型中的Class(
类)。
模板参数:对应的UML属性是"TemplateParameter",如下图:

C++类的关系:
- 继承。对应的UML Generalization(泛化)。
C++类的成员:
- 字段:对应UML Property。同时Trufun Kant还支持C++Bean的属性,即如果UML
Property有构造型"Property",则其标签值"IsGet.B"和"IsSet.B"决定是否生成get/set方法。
- 字段修饰符:
- private/protected/public。分别对应UML
Visibility的private/protected/public。
- const:没有对应的UML属性,使用扩展标签"IsConst.B"表示。
- static:对应的UML属性是"static"。
- mutable:没有对应的UML属性,使用扩展标签"IsMutable.B"表示。
- volatile:没有对应的UML属性,使用扩展标签"IsVolatile.B"表示。
- 指针:如 "int ** num"。没有对应的UML属性,使用扩展标签"Pointers.I"表示,表示指针符号"*"的个数。
- 引用:如"CObject & object"。没有对应的UML属性,使用扩展标签"Refs.I"表示,表示引用符号"*"的个数。
- 数据类型:对应的UML属性是"Type"。
- 初始值:对应的UML属性是"DefaultValue"。
- 方法:对应UML Operation。
- 方法修饰符:
- private/protected/public。分别对应UML
Visibility的private/protected/public。
- const:没有对应的UML属性,使用扩展标签"IsConst.B"表示。
- static:对应的UML属性是"static"。
- pure:对应的UML属性是"abstract"。
- virtual:没有对应的UML属性,使用扩展标签"IsVirtual.B"表示。
- friend:没有对应的UML属性,使用扩展标签"IsFriend.B"表示。
- inline:没有对应的UML属性,使用扩展标签"IsInline.B"表示。
- 返回类型:对应的UML属性是"ReturnType"。
- 模板参数:对应的UML属性是"TemplateParameter"。
- 参数:对应的UML属性是"Parameters"。