使用序列图进行编码

时间:2008-11-09 21:04:42

标签: java uml sequence-diagram

当我在大学时,一位讲师说一些人如何设法使用序列图进行编码,这对我来说似乎是一种很好的编程方式,但当然魔鬼在细节中。我有几个问题。

  • 这实际发生了还是我 误解了他说的话?
  • 有 这里有人真的做过吗?
  • 提高效率吗?
  • 有什么缺点?
  • 使用Java时需要哪些工具?

6 个答案:

答案 0 :(得分:9)

我发现“正常”序列图几乎总是比它们更值得痛苦(尽管我发现它们对于在LINQ中显示数据流非常有用)。做一个“粗略和准备好”的图表并解释它(最好是亲自,但无论用哪种方式)都可以更好地体验。

我认为让一个图表(或几个)显示您的应用程序的某种“垂直切片”是一个好主意 - 每个层如何与另一个层对话,并且可能在适当的情况下显示请求/响应的过程。但是,这并不需要处于“单个方法调用并始终100%准确”的水平 - 确保您传达正确的总体印象更为重要,假设读者可以深入了解真实代码。

说完所有这些之后,我对UML的看法大致相同,所以如果你是精确图表的忠实粉丝总是与现实同步保持一致,那就用一点点盐吧: )

答案 1 :(得分:4)

我认为序列图是可视化复杂的多线程程序的最佳方法之一,在线程之间传递大量消息。我不会在设计中使用它们,但有时它们是调试的最佳方式。

答案 2 :(得分:1)

我发现序列图对于实际应用来说不合适,因为:

  1. 当有一个控制线程时,我可以使用英文大纲来解释层与层之间的调用层次结构。 MS Word中的大纲样式就可以了。

  2. 我的英文解释比UML图片更详细,占用的空间更少。

  3. 使用英语,我可以比序列图更好地解释其他细节,例如保护条件和循环。

  4. 我可以比编制UML更快地编写大纲。

  5. 如果你真的需要一张有这么多细节的“图片”,也许活动图就可以了。

    另一方面,序列图非常适合高级概述。

    就Java而言,我的项目团队非常喜欢Jude,因为它可以对Java 5代码库的类层次结构进行逆向工程。

答案 3 :(得分:0)

序列图将显示交互,通常是代码中的单个路径。另一方面,你的代码必须定义每个路径,每个if-then-else和edge条件等。你可以在序列图上显示所有内容,但它们往往也会得到很多复杂而笨重。我建议您使用序列图来帮助在设计阶段可视化您的代码,如果这对您有用,但这应该是您应该去的。

答案 4 :(得分:0)

序列图有它们的位置。我从来不担心让UML图与代码更改保持同步。话虽这么说,我是使用序列图作为头脑风暴工具的忠实粉丝。您希望您的团队理解并同意基础流程和呼叫结构。当您还跟踪参数和实例创建时,它可以突出您理解中的漏洞。如果您需要数据'x'作为参数,它或者已经是本地的或需要传入,“我们正在从数据库请求报告数据,它需要我们发送报告类型,我们记得将其包含为传入参数,对吧?

这适用于设计的高级传递。之后,它可以作为后来者的一般文件。他们会明白你的目标,当他们看到代码时,他们不会对变化感到困惑。

答案 5 :(得分:-4)

序列图适用于过程语言。它们对OO语言没那么有用。