代码之家  ›  专栏  ›  技术社区  ›  WeNeedAnswers

UML可以用来建模一个功能程序吗[[关闭]

  •  46
  • WeNeedAnswers  · 技术社区  · 15 年前

    更具体地说,你是如何建模一个函数式程序,还是一个使用图表而不是文本表示的函数式风格(没有类)开发的程序,这是完全可能的,有人能告诉我最近的应用程序会这样做(开源,免费的啤酒,如果你愿意的话)

    9 回复  |  直到 15 年前
        1
  •  43
  •   Norman Ramsey    15 年前

    函数式程序员通常不太会使用图。许多函数式程序员(但不是全部)发现 类型 是一种很好的方法来封装OO程序员放入UML图中的设计关系。

    由于可变状态在函数式程序中很少见,因此没有可变的“对象”,因此通常不需要或不需要绘制它们之间的关系图。虽然一个函数可能调用另一个函数,但这个属性通常对系统的总体设计并不重要,而只对执行调用的函数的实现重要。

    如果我觉得有强烈的需求来设计一个功能性的程序,我可能会使用 concept map

        2
  •  21
  •   Michael Borgwardt    4 年前

    UML不仅仅是类图。

        3
  •  17
  •   dtw    15 年前

    函数式程序员有自己的UML版本,称为 Category Theory .

    幽默

        4
  •  12
  •   jpabluz    15 年前

        5
  •  9
  •   Luxspes    8 年前

    要使用图表而不是文本表示对功能程序进行建模,可以使用类似于中用于编程的符号 Viskell Luna

    enter image description here

        6
  •  2
  •   UML GURU    15 年前

    UML是一种对象方法,因为在图形级别您不能定义功能建模。一个技巧是直接在模型而不是在图级别添加约束和注释。我的意思是,您可以直接在元模型中为每个模型元素编写完整的功能文档,并且只使用UML编辑器显示一个对象视图。 这可能是愚蠢的,但我发现这个演示在法语完全相同的主题,并使用EclipseUML Omondo: OCL和UML2.2(法语3mn演示): http://www.download-omondo.com/regle_ocl.swf

    这个演示说明了如何在元模型级别直接在方法上添加约束。这个演示的有趣之处在于,对整个项目使用一个模型允许足够灵活地扩展传统的UML,避免SysML、BPMN、DSL额外的模型,因为所有信息都构建在UML2.2元模型之上。我不知道它是否会成功,但这项计划非常有趣,因为它降低了建模的复杂性,开辟了新的领域!!

        7
  •  2
  •   Charley Savage    14 年前

    我知道这是一个古老的线程,但我不明白这里的问题。

    类仅仅是一个概念的抽象,它以一种更人性化的方式将其方法的功能联系在一起。例如,WaveGenerator类可能包括Sine、Sawtooth和SquareWave方法。这三种方法显然都与类生成器相关。然而,这三个国家也是无国籍的。如果设计正确,它们不需要在方法之外存储状态信息。这使它们成为无状态的对象,如果我理解正确的话,这使它们成为不可变的函数,这是函数范式中的核心概念。

    从概念的角度看,我看不出两者之间有什么区别

    让信封正弦=。。。

    让信封生成器.Sine=。。。

    除了后者可能提供对函数目的的更深入了解之外。

        8
  •  1
  •   Paul Johnson    15 年前

    实际上,我还没有尝试过用UML建模一个大型系统,然后进行功能实现,但我不明白为什么它不起作用。

    主要的一点是UML

        9
  •  1
  •   Anonymous    13 年前

    我想你可以创建一个叫做 noclass 把函数作为方法。另外,你可能想分开 分为多个功能类别。