
|
UML模型和Java映射参考 |
 |
|
Kant 2008的UML版本是V2.1,而Java同步支持的Java版本是5.0。
由于UML作为通用建模语言,本身和Java并不完全对应,因此需要对UML进行扩展。下面按照类型来说明二者的映射:
支持的Java 5.0特征包括:
- 枚举
- Annotation:仅支持Annotation定义。
- 模板参数
Java命名空间
Java命名空间对应UML模型中的Package(
包)。
Java类
Java类对应UML模型中的Class(
类)。
Java类的修饰符:
- final:表示此Java类不可被继承。对应的UML属性是"leaf"。
- abstract:表示此Java类为抽象类,不可被实例化。对应的UML属性是"abstract"。
- static:仅适用于内部类。没有对应的UML属性,使用扩展标签"IsStatic.B"表示。
- strictfp:没有对应的UML属性,使用扩展标签"IsStrictfp.B"表示。
- 可见性:private/protected/public。分别对应UML
Visibility的private/protected/public。
模板参数:对应的UML属性是"TemplateParameter",如下图:

Java类的关系:
- extends:继承。对应的UML Generalization(泛化),由于Java仅允许单继承,所以只取所有泛化一般类集合的第一个。
- implements:实现。对应的UML Implementation(实现)。
Java类的成员:
- 字段:对应UML Property。同时Trufun Kant还支持JavaBean的属性,即如果UML
Property有构造型"Property",则其标签值"IsGet.B"和"IsSet.B"决定是否生成get/set方法。
- 字段修饰符:
- private/protected/public。分别对应UML
Visibility的private/protected/public。
- final:对应的UML属性是"leaf"。
- static:对应的UML属性是"static"。
- transient:没有对应的UML属性,使用扩展标签"IsTransient.B"表示。
- volatile:没有对应的UML属性,使用扩展标签"IsVolatile.B"表示。
- 数据类型:对应的UML属性是"Type"。
- 初始值:对应的UML属性是"DefaultValue"。同步时忽略。
- 方法:对应UML Operation。
- 方法修饰符:
- private/protected/public。分别对应UML
Visibility的private/protected/public。
- final:对应的UML属性是"leaf"。
- static:对应的UML属性是"static"。
- abstract:对应的UML属性是"abstract"。
- native:没有对应的UML属性,使用扩展标签"IsExtern.B"表示。
- strictfp:没有对应的UML属性,使用扩展标签"IsStrictfp.B"表示。
- synchronized:没有对应的UML属性,使用扩展标签"IsSynchronized.B"表示。
- Throws异常:对应的UML属性是"Exceptions"。
- 返回类型:对应的UML属性是"ReturnType"。
- 模板参数:对应的UML属性是"TemplateParameter"。
- 参数:对应的UML属性是"Parameters"。
- Java内部类:对应UML模型中的嵌套类。
Java接口
Java接口对应UML模型中的Interface(
接口)。
Java接口的修饰符:无
Java接口的关系:
- extends:继承。对应的UML Generalization(泛化)。
Java接口的成员:
- 字段:必须是静态且final。对应UML Property。
- 数据类型:对应的UML属性是"Type"。
- 初始值:对应的UML属性是"DefaultValue"。反向工程时初始值无法从Java字段读入。
- 方法:对应UML Operation。
- Throws异常:对应的UML属性是"Exceptions"。
- 返回类型:对应的UML属性是"ReturnType"。
- 模板参数:对应的UML属性是"TemplateParameter"。
- 参数:对应的UML属性是"Parameters"。
Java枚举
Java枚举对应UML模型中的Enumeration(
枚举)。
Java枚举常量对应UML模型中的EnumerationLiteral(
)
Java Annotation
Java Annotation对应UML模型中的Interface,且构造型为"JavaAnnotation"。