gpt4 book ai didi

architecture - 将 UML 转换为代码

转载 作者:行者123 更新时间:2023-12-04 04:01:32 29 4
gpt4 key购买 nike

简短的问题。您如何将 UML 图转换为代码?类图是显而易见的,但其他如 Activity、Use Case、Sequence、State、Package 等呢?

最佳答案

哇,如果您在开始编码之前拥有所有这些,那真的很棒 ;) 这意味着有人在为预期的软件建模方面做得不错!

也就是说,UML 的各种图可以或多或少地映射到代码。总的来说,这是我的感受:

  • 类图。大多数情况下与代码一对一映射。仍然可以在分析过程中用于显示不会一对一映射的概念,但这种情况很少见。
  • 包图。在大多数情况下,也与代码一对一映射。除了展示实际来源的包装外,我从未见过它有任何用途。
  • 序列图。在大多数情况下, map 也相当接近代码。除了在顺序图中经常避免一些步骤,否则会变得很大。它仍然显示谁直接或间接地给谁打电话。
  • 状态图。这个比较抽象。它显示了程序(或程序本身)中某个元素的各种状态,不能按原样转置;您首先需要确定状态的存储/建模方式。例如。显示可能的状态图 thread state在 Java 中并没有映射到代码中真正直接可见的东西,但是线程有一个状态,如 corresponding enum 所示。 .
  • 事件图。显示算法/程序的各个步骤。虽然有些东西可以很容易地转换,例如循环,但其他一些东西(例如并行事件)的实现可能在代码中有所不同。并行事件最明显的实现是使用线程,但也可能是 JMS,具体取决于图表的粒度。它仍然不会告诉您每个步骤的逻辑是什么,因此肯定需要一些工作来解释图表并实现它。
  • 用例。这是最重要的之一。它不能按原样转换,您将需要考虑如何实现用例,它可以从非常高的级别跨越到低级别。没有它的公式。

结论:UML是一种从多角度描述软件的工具。有些方面可以很容易地在代码中转换,有些方面更抽象,可以以各种方式实现,具体取决于图表的粒度。

这是设计开发的区别:实现是将设计细化为真正可执行的东西(代码),这可能需要或多或少的工作取决于现有设计的粒度。

梦想当然是能够用代码生成 UML,反之亦然,但我们还没有做到!虽然它几乎适用于类图:)

关于architecture - 将 UML 转换为代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2685448/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com