UML可用于建模功能程序吗?

WeN*_*ers 50 uml functional-programming

更具体地说,你如何建模功能程序,或者使用功能样式(没有类)使用图表而不是文本表示开发的功能程序,它是否可能,并且有人可以请我指向最近的应用程序(开源,啤酒中的免费,如果你愿意的话)

Nor*_*sey 35

功能程序员通常对图表没有太多用处.许多函数式程序员(但不是全部)发现写下类型是封装OO程序员在UML图中放置的设计关系的好方法.

因为可变状态在功能程序中很少见,所以没有可变的"对象",因此绘制它们之间的关系通常不是有用的或必需的.虽然一个函数可能会调用另一个函数,但这个属性通常对系统的整体设计并不重要,而只对执行调用的函数的实现起重要作用.

如果我非常需要绘制功能程序图,我可能会使用概念图,其中类型或函数扮演概念的角色.

  • 我很好奇今天这个答案是否真的如此.如何管理复杂性?例如,UML具有包/类/方法级别的抽象,允许管理复杂性(隐藏不同抽象级别的细节).图表允许可视化这些级别.到目前为止,我对FP的经验太过微不足道,看不出这是必要的,但是如果没有某种图表,任何复杂的系统都很难理解. (4认同)

Mic*_*rdt 14

UML不仅是类图,你知道吗?

大多数其他图表类型(用例图,活动图,序列图......)完全适用于纯函数式编程风格.如果您只是不使用属性和关联并将"class"解释为"相关函数的集合",那么即使类图仍然有用.

  • @WeNeedAnsers:UML不是"基于纸张的",也不是"所有关于类"的.UML的许多概念与类无关.对没有状态的东西进行建模就像避免使用构成状态的模型元素一样简单.在我看来,你在这个问题上看起来主要是为了验证你误导的偏见. (2认同)

jpa*_*luz 11

UML是不同类型建模的概要.如果您正在谈论对象图(类图),那么您将找不到适合您所需用途的任何东西.但是,如果您正在谈论交互图(活动图)或需求图(用例图),他们当然会帮助您并成为UML基础的一部分.

  • UML中不存在"需求图"(来自SysML) (3认同)

dtw*_*dtw 11

函数式程序员有自己的UML版本,它被称为类别理论.

(这有一定的道理,但它应该以幽默的方式阅读).

  • 我知道你是用一点幽默来做的,但对于不熟悉的人来说,建模并不仅仅是建模.它是关于管理复杂性(特别是大量的)以及管理潜在的大型代码库以达到可理解的级别.我确信FP'程序员可以通过各种方式进行自己的大规模建模; 它只需要几年时间才能变得正规化和标准化(出于复杂性管理的目的,而不是正式的正确性.) (3认同)

Lux*_*pes 7

要使用图表而非文本表示来对功能程序进行建模,可以使用类似于在ViskellLuna中进行编程的表示法

在此处输入图片说明