如何在UML中记录简单方法?

如何在UML中记录简单方法?,uml,Uml,作为将旧Java应用程序重写为C#的一部分,我正在编写一个软件设计规范。我遇到的一个问题是,当一个方法太简单而无法处理序列图时(它不与其他对象交互) 例如,我有一个名为Item的简单POJO,包含以下方法: public String getCategoryKey() { StringBuffer value = new StringBuffer("s-"); value.append(this.getModelID()); value.append("-c");

作为将旧Java应用程序重写为C#的一部分,我正在编写一个软件设计规范。我遇到的一个问题是,当一个方法太简单而无法处理序列图时(它不与其他对象交互)

例如,我有一个名为Item的简单POJO,包含以下方法:

public String getCategoryKey() {
    StringBuffer value = new StringBuffer("s-");
    value.append(this.getModelID());
    value.append("-c");
    return value;
}
需要记录该方法的目的和算法。然而,序列图是过分的。其他人将如何记录它


(对于给定的方法,我不承担任何责任,它是非常旧的代码,作者“忘记”在Javadoc中输入他们的名字)。

您遇到的问题是序列图用于描述消息序列,但是正如您所指出的,序列不够有趣,无法使用序列图来描述

另一个选项是交互图,它不描述序列,但描述交互对象,然而,这可能对您来说并不重要-您在交互中没有太多参与者,我想StringBuilder在您的系统中并不重要

您还可以使用状态图,这对于描述状态机很有用,但是您的对象不会通过您的方法更改其状态

在我看来,你所拥有的是一种获取类别的活动。首先创建一个前缀,然后添加方法名和后缀。所以我认为在你们的例子中,活动图可能比序列图更有用


然而,您的方法非常简单,可能不需要任何图形化的UML文档。您的方法的重要之处似乎在于它是一个查询——状态没有改变,它返回一个带有前缀、主要部分和后缀的字符串。这可以很容易地用后置条件来描述。为此,您可以轻松地使用Javadoc描述作为返回值,或者如果您希望更精确,您可以使用OCL语言(UML堆栈的一部分)来描述后置条件。

您是否计划发布API文档以及UML文档?我发现UML图很适合描述系统的几个部分之间的高级设计和交互。像您描述的方法这样的小细节似乎更适合API文档甚至在线注释

既然您正在移植到.NET,那么您是否已签出从代码中的XML注释生成帮助文件


如果您确实想在UML图中添加这样的小细节,我想我应该在类图中的类中添加一个注释,以简要描述此方法的工作原理。

您可以绘制所需的图。你真的认为这个方法需要一个图表吗?你真正的问题似乎是你被迫记录一些琐碎的事情。。。