我想知道 UML(统一建模语言)到代码映射(正向工程)是否有被广泛接受的标准?
问问题
273 次
2 回答
3
不,没有从 UML 到代码的标准映射。尽管 UML 可用于“绘制”代码,但它被设计为在“更高”级别(在业务级别)工作。因此,没有一种方法可以从 UML 模型生成代码,但几乎与系统(以及多种语言)一样多。
于 2013-07-29T15:33:05.160 回答
3
从 UML 到代码没有一种翻译。这是由于多种原因,包括:
您使用了哪些 UML 以及如何使用。UML 是一种大型语言。从历史上看,它在事物的静态方面(类、关联、包)比在动态方面强得多。直到最近,UML 才获得了可执行模型所需的动作语义。与更成熟的静态元素相比,这些较新的部分(尚未)得到很好的支持。这可以说是规范 MDA 转换没有变得更普遍的主要原因。
可以针对不同的编程语言。翻译成第三代 OO 语言可能是最流行的。但也可以翻译成其他语言:C 是一种流行的选择,尤其是在嵌入式世界中。
根据特定环境的需要,不同的翻译规则是可能的。
也就是说,有一些流行的成语。例如:
- UML 包、类和属性通常直接映射到它们的 OO 3GL 对应物。事实上,许多 UML 模型只是 3GL OO 代码的图形再现。
- UML 关系通常一分为二,每个关系端都存储有指针/引用。
- 有 3 种通用模型可用于转换 UML 状态模型(或更一般地说是任何状态模型):嵌套开关、状态表和状态模式。
动作语言太新/支持不够好,无法进行规范映射。也就是说,规范非常接近典型的 3GL 结构:if/then/else 控制语句、赋值等。因此模型和目标之间的语义差距非常小——因此翻译应该相当简单。
hth。
于 2013-07-29T22:18:12.210 回答