【问题标题】:UML replacement for context diagram上下文图的 UML 替换
【发布时间】:2014-05-20 13:42:43
【问题描述】:

根据UML context diagram 上下文图不存在。
所以我的问题是 UML 图表 中哪一个适合展示这样的内容以及如何绘制?

【问题讨论】:

    标签: uml diagram software-design


    【解决方案1】:

    我刚刚找到了以下定义:http://en.wikipedia.org/wiki/System_context_diagram 这可能就是你需要的。 :)

    上下文图定义了系统或系统的一部分与它的 环境,显示与之交互的实体。

    UML 中没有一个图表可以映射到这个定义,但我有一些好消息 - 有几个图表(总共 14 个)可以从不同的角度显示系统与其周围世界之间的边界.这比仅使用上下文图灵活得多。

    首先,我要提到一个特殊的UML 元素——一个边界。它可以用于任何图表类型以显示某种定界。您可能希望有选择地使用它在系统及其环境之间进行视觉分隔,尤其是在这不明确的情况下。

    下图可以显示系统与其环境之间的边界:

    • 用例图(您的示例)在功能级别上明确支持上下文。用例是正在开发的系统的元素,而参与者是外部实体(系统或人类用户)。前面提到的边界通常用于在视觉上划定系统与其环境之间的界限。
    • 组件图用于对某种软件模块(应用程序、数据库、外部系统、库等)进行建模。您可以使用它来显示内部和外部组件以及它们的交互方式。可以用分界线来清晰地画出分隔线。
    • 活动图可以显示您的系统/业务/使用流程。有些活动可以在内部进行,有些可以在外部进行。在这里你不需要边界,而是用所谓的泳道来描绘谁在做什么。
    • 顺序/协作图是另一种选择。它们显示了几个对象之间的通信序列。如果将这些对象分为内部对象和外部对象,并用边界将它们包裹起来,就会出现另一个上下文图。 :)

    UML 很灵活,可能还有更多选择,但我认为这足以理解这个想法。

    【讨论】:

      【解决方案2】:

      您的协会名称是服务。图表中心的用例是服务定义的上下文。见用例图:

      【讨论】:

        【解决方案3】:

        可以通过用例来完成

        http://en.wikipedia.org/wiki/Use_case

        编辑:

        重新考虑一下,一旦定义了操作,下一步应该是用例图,所以首先你应该制作一个系统序列图。

        http://en.wikipedia.org/wiki/System_sequence_diagram

        【讨论】:

        • 但是在用例图中,我需要将系统拆分为用例,对吗?我想显示演员和整个打包系统之间的上下文。
        • 我相信使用用例是做到这一点的正确方法,你在系统层给予它的深度取决于你。用例图应该提供将业务操作转换为工程操作的指导。也就是说,如果您想使用 UML,它实际上是一种用于软件工程目的的建模语言,也许您实际上并不是在寻找 UML,而是在寻找业务操作图
        • 好吧,也许你可以试着做一个系统序列图,可能是你要找的,不需要那样做用例:en.wikipedia.org/wiki/System_sequence_diagram
        【解决方案4】:

        如果您对进入不完整的 UML 超集 SysML 感到满意,那么您可以在那里获得适当的上下文图。

        然而,SysML 中的上下文图只是显示系统上下文的框图……而框图恰好与 UML2 类图相同,其中类的原型为 «SysML::Block»。

        因此,您可以根据 UML2 类图的相关构造型,将块聚合到您的系统中来定义您的上下文图。

        【讨论】:

          【解决方案5】:

          我倾向于为此使用协作图。因此,对于每个用例的每个主要场景,绘制一个显示参与者的协作图,将应用程序作为中间的单个实体,并在周围传播的消息显示应用程序如何与参与者交互以实现场景。

          (我不会在消息中放太多细节——我只是想表明有责任委托和某种交互,但我并不关心实际消息、视图、数据的细节等等)

          【讨论】:

            【解决方案6】:

            我发现上下文图确实具有特别的吸引力。它非常适合业务用户,以非常简单的方式向他们展示系统的范围和各方。所以,我倾向于创建一个上下文图,即使在 UML 流行的上下文中也是如此。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-07-17
              • 1970-01-01
              • 1970-01-01
              • 2017-02-26
              相关资源
              最近更新 更多