【问题标题】:UML - How to show a class instantiated by its static main methodUML - 如何显示由其静态主方法实例化的类
【发布时间】:2015-09-25 02:50:45
【问题描述】:

这是一个序列图 HowTo 问题,而不是 HowTo 代码。

我正在使用 Visio 2010 并从 Microsoft Dynamics AX 2012 / X++ 开发 >> 逆向工程。是的,人们都是关于如何在 UML 上映射静态的。

我的类是从 FORM 中使用 void static main() 实例化的。这会调用另一个静态方法,比如construct(),它返回同一个类的一个实例。

我想分别显示类(在静态方法中)和生成的对象,比如元类运行(self msgs)并最终生成最终接管的类对象。但是 self msg 调用将如何返回值?如何将它与类的结果对象连接起来?我希望我的意思足够让你们理解。

注意,该类不是静态类,但它有一个静态构造函数。

【问题讨论】:

  • 我不知道 X++ 但是从 self 调用返回对象值有什么问题? (我猜你说的是创建序列图)
  • 显然亲爱的,我是Xpp的冠军,哈哈,代码没有问题,我问的是UML和设计和序列图的问题。如何设计上述描述的
  • 但是,如前所述,我无法深入了解您的问题,无法提供帮助。也许你应该把你创建的 SD 发布到现在,我们可以开始争论。

标签: uml modeling visio sequence-diagram


【解决方案1】:

如果您想描述对构造函数的调用(即负责创建对象并(通常)将其作为回复返回的静态操作),那么您必须使用 createMessage 构造,即带有开放箭头的虚线和create这个词就可以了。虽然规范中没有直接说明这一点,但通常在这种情况下,箭头指向生命线框(矩形)而不是线本身(但是我已经看到两种符号都是正确的信息)。

请注意,在这种情况下,构造函数的逻辑是隐藏的(封装),这通常是一个好主意。 您可以在第 17.4 节的 UML 规范中找到更多详细信息,尤其是第 17.4.4.1 节和图 17.14 的第 17.6.5 节中的示例。

如果您想使用构造函数以外的静态操作并在不使用类实例的情况下调用它,您必须将类建模为对象(毕竟类 is 至少在分析级别上是一个对象本身)。请注意,消息的类型可以是同步的,也可以是异步的,具体取决于您的需要。

通过这种方法,您可以提供有关该类如何处理此函数的详细信息(即它还进行了哪些其他调用)。 有关详细信息,请参阅 Craig Larman 的“应用 UML 和模式”,第 15.4 节,图 15.20。但是请注意,Larman 建议使用<<metaclass>> 原型。然而,被调用的对象是一个类(元类是一个类,其实例是类,所以这不是我们的例子)所以构造型应该是<<class>>

【讨论】:

    猜你喜欢
    • 2013-11-16
    • 1970-01-01
    • 2012-09-23
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    相关资源
    最近更新 更多