我对使用 UML 的模型的结构和行为以及两者之间的关系有一些疑问:

  1. 您是否发现 UML 在结构和行为之间的关系的规范或理解方面存在任何限制?
  2. 我想知道您对于如何使用 UML 优化结构和行为之间的关系是否有任何实用的想法。
  3. 您是否知道任何 UML 工具可以帮助更好地理解这种关系或更容易地表示它?

谢谢

有帮助吗?

解决方案

  1. 是的:

    • 序列图在较高层次上是可读的,显示了事务如何涉及几个组件;但在详细层面上它并不好(不可读),它显示了一个事务如何涉及数十个方法(方法 A 调用方法 B,方法 B 从方法 D 和 E 获取数据,然后调用方法 F 等)。

    • 查看类图,您可能会看到一个具有多个子类的基类;这几乎没有告诉您有关类的行为的任何信息(它只告诉您它们可能有一些共同的行为,或者至少有一个共同的 API,加上每个子类独有的一些单独的行为)。

  2. 这是一个大问题。一个简单的答案是,“将文本注释附加到对象上:如果没有描述性文字,图表是不够的。”

  3. 不,我真的不知道;UML 工具可帮助您创建 UML 图(并从图中生成代码),但这取决于您如何使用它。书中描述了一个简洁的产品,名为 实时面向对象建模 (1994)这是一个可执行模型,即模型本身有行为,但据我所知,还没有 UML 工具与此类似。我所知道的最接近的是能够在模型和代码之间“往返”(即从模型生成代码,并从代码生成模型)。

其他提示

听起来像是一个家庭作业问题。 维基百科 可以告诉你关于UML的一切。

UML 的局限性与任何形式的通信相同。你的语言越简单,你能传达的东西就越少,你的沟通就会变得越清晰。正方形或圆形等形状表示结构,线条表示关系,箭头表示运动或流动。您可以通过定义其他属性的含义来增强这一点,例如方向、粗体、颜色、数量、不同形状。您可以合并多媒体层,如音频或视频、动作、工具提示 - 但现在我们不再讨论 UML。

我最喜欢的 UML 工具是白板和一些干擦记号笔。

我认为,关于 UML 对 melculetz 的有用性,情况已经发生了变化。

  1. 在 Visual Studio 2010 中,我可以定义关联关系,它将生成复合类。我可以指定多重性和类限定符。我还可以从模型生成类。
    目前,我正在尝试对系统的各个阶段进行可视化建模,以便直观地定义状态机对象的方法。这是我整合结构和行为的尝试。检查我的博客,看看我进展如何。类分析器直观地表达类对象的行为。限制已取消。

  2. 我认为答案是将你的开发方法转向MDA。您将生成更多的类,但回报在于可管理性和重用性(您可以在其中模板化您的工作)。

  3. 我仍在研究我的模型,但是我发现 VS2010 有望成为管理开发过程的好工具。我还没有研究过 UI 建模,但听说过一些谣言。我可能全错了,但我认为,通过使用 Lightswitch,我也可以对 UI 进行建模。

UML 允许您指定方法的签名,并将方法分组到类中,但它根本没有说明您使用什么代码作为实现。如果这就是您所说的“行为”的意思,我认为 UML 根本没有在类级别上解决它。

在 UI 层面上情况更糟。我对 UML 的印象是,它对于指定 UI 来说严重不足。

我认为将所有内容嵌入 UML 所需的工作量大于或等于编写应用程序所需的工作量,而 UML 工具的额外负担是较差的 IDE,并且无法像单元测试那样证明 UML 的正确性。

在我看来,UML 已经超卖了。我认为这是开发人员之间非正式沟通的一种方便的表示法,仅此而已。它从来都不是、也永远不会是工程制图的面向对象等价物。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top