【问题标题】:UML: Are activity diagrams considered algorithmic?UML:活动图是否被视为算法?
【发布时间】:2010-12-15 20:35:20
【问题描述】:

活动图是否被视为算法?

【问题讨论】:

  • 算法是什么意思
  • 老实说,我也是这么想的。那是一道考试题,无论我多么努力地搜索,我都找不到答案。似乎是一个措辞奇怪的问题。

标签: uml


【解决方案1】:

确实很奇怪的问题。看看字典定义:

  • Algorithmic: 属于或涉及或具有算法的特征
  • Algorithm(1):一个精确的规则(或一组规则)指定如何解决某些问题
  • Algorithm(2):一种解决问题的有效方法,表示为有限的步骤序列。

那么:活动图可以用来描述“一种解决问题的方法,表示为有限的步骤序列”?是的——这就是他们的目的。它们支持描述算法所需的所有常用控制结构:序列(A 后跟 B)、交替(A 或 B)、迭代。它们还为并行活动提供明确的支持。

可能被视为弱点的领域:

  1. 执行语义没有精确和明确地定义。虽然 UML 规范确实提供了一些语义,但它留下了一些问题。
  2. 没有为活动图定义的预定义基本类型集。因此,最低级别的原始活动(添加整数、连接字符串等)不是预定义的。从这个意义上说,活动图本身在计算上并不完整。

但是:这些都是吹毛求疵的理论。在实践中,活动图是表示算法的一种流行方式:从软件过程的设计到指定业务流程。

当然,这一切都取决于您对算法的定义。如果您使用上面的一般定义,那么 AD 就是算法。如果您选择更具体的内容,它们可能不会。

hth.

【讨论】:

  • 感谢您对此的反馈和观点。与我交谈的大多数人都觉得他们不是算法,但我觉得他们是。
  • 有趣。如果你能回复“答案”(即考官的想法)会很好。
【解决方案2】:

OMG 元模型(即 UML、SysML 等)从描述它们的元元建模语言 (MOF) 开始,由两个不同类别的模型组成,分别旨在定义:

  • 系统或架构的静态结构(即类图、组件图、框图等);

  • 系统的动态,或行为(即序列图、活动图、状态机图、对象交互图等)

活动图属于第二类,因此它们旨在描述行为。 算法只是可以通过活动图描述的行为类型

【讨论】:

    【解决方案3】:

    用新的UML executable standards 补充的活动图可用于表示任何算法。单独的活动图可以用来表示整个控制流,但不能真正表示数据管理的细节

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      相关资源
      最近更新 更多