我对模型的结构和行为、使用 UML 以及两者之间的关系有一些疑问:
- 您是否发现 UML 在规范或理解结构与行为之间的关系方面存在任何限制?
- 我想知道您是否对如何使用 UML 优化结构和行为之间的关系有任何实际的想法。
- 您是否知道任何 UML 工具可以帮助更好地理解这种关系或更容易地表示它?
谢谢
我对模型的结构和行为、使用 UML 以及两者之间的关系有一些疑问:
谢谢
是的:
序列图在高层次上是可读的,显示了事务如何涉及一些组件;但在细节层面不好(不可读),展示了一个事务如何涉及几十个方法(方法A调用方法B,从方法D和E中获取数据,然后调用方法F等)。
查看类图,您可能会看到一个带有多个子类的基础类;这几乎没有告诉你类的行为(它只告诉你它们可能有一些共同的行为,或者至少是一个公共的 API,加上每个子类独有的一些单独的行为)。
这是个大问题。一个快速的答案是,“将文本注释附加到对象:没有描述性文本的图表是不够的。”
不,我真的没有;UML 工具可帮助您创建 UML 图(并从图中生成代码),但如何使用它取决于您。在名为Real-Time Object-Oriented Modeling (1994) 的书中描述了一个简洁的产品,它是一个可执行模型,即模型本身具有行为,但我知道没有像这样的 UML 工具。我所知道的最接近的是能够在模型和代码之间“往返”(即从模型生成代码,从代码生成模型)。
听起来像一个家庭作业问题。Wiki可以告诉您有关 UML 的所有信息。
UML 的局限性与任何形式的通信相同。你的语言越简单,你可以交流的东西就越少,你的交流就会变得越清晰。像正方形或圆形这样的形状表示结构,线表示关系,箭头表示运动或流动。您可以通过定义其他属性的含义来增强这一点,例如方向、粗细、颜色、数量、不同的形状。您可以合并多媒体层,如音频或视频、动作、工具提示——但现在我们不再讨论 UML。
我最喜欢的 UML 工具是白板和一些干擦记号笔。
关于 UML 对 melculetz 的用处,我认为事情已经发生了变化。
在 Visual Studio 2010 中,我可以定义一个关联关系,它将生成复合类。我可以指定多重性和类限定符。我还可以从模型中生成类。
目前,我正在尝试对系统的各个阶段进行可视化建模,以便可视化地定义状态机对象的方法。那是我尝试整合结构和行为。查看我的博客,了解我的进展情况。类分析器直观地表达了类对象的行为。限制被移除。
我认为答案是将您的开发方法转向 MDA。您将生成更多类,但收益在于可管理性和重用(您可以在其中模板化您的工作)。
我仍在研究我的模型,但我发现 VS2010 承诺提供很好的工具来管理开发过程。我还没有研究 UI 建模,但听说过谣言。我可能完全错了,但我认为,通过使用 Lightswitch,我也可以对 UI 进行建模。
UML 允许您指定方法的签名,并将方法分组到类中,但它根本没有说明您使用什么代码作为实现。如果这就是您所说的“行为”,我认为 UML 根本不会在类级别解决它。
在 UI 级别甚至更糟。我对 UML 的印象是它严重不足以指定 UI。
我认为将所有内容嵌入 UML 所需的努力大于或等于编写应用程序,UML 工具的额外负担是糟糕的 IDE,并且无法像单元测试那样证明 UML 的正确性。
IMO,UML 已经超卖了。我认为它是开发人员之间非正式交流的方便表示法,仅此而已。它从来没有也永远不会是工程图纸的面向对象等价物。