首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有用于函数编程的UML图?

是否有用于函数编程的UML图?
EN

Software Engineering用户
提问于 2020-01-07 13:29:21
回答 1查看 3.3K关注 0票数 7

对于用祈使程序性编程范例实现的软件建模,我们有流程图、流程图等。

对于面向对象,我们有UML图、对象图、状态图等。

是否有一个适合于用功能程序设计实现的设计软件?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2020-01-07 18:06:14

In

是的也不是!

是的,你可以给它建模!

UML活动图模型控制流和对象流。这两种方法在建模单个函数、功能组合和功能管道方面都非常实用:

  • 函数将由行为表示。
  • 如果需要的话,作文可以用活动边显示,如果需要的话,可以使用销钉来显示对象从一个流向另一个(如果您担心组合和排序之间的混淆)。
  • 函数定义中的模式匹配可以用决策节点表示,您可以在其中使用模式作为传出分支的保护。
  • 多个输入参数可以用连接节点表示,这样做的优点是不必对不同参数进行排序。

不,标准UML没有高阶函数

在标准的UML中,没有简单的方法来表示高阶函数

  • 高阶函数是函数式编程的核心特性.
  • 但是在UML中,一个动作不能产生一个由另一个流执行的动作。它既不能接受动作作为另一个动作的输入。
  • THis的内部限制来自于它的根,即petri网,其中控制流由在一个固定的节点网络中导航的令牌表示。

也许有一些UML专家可以使用调用动作找到解决办法,调用对应于类型函数的对象的函子。但即使这是可能的,我也不认为这是容易理解的。

注意:同样的限制发生在非UML模型上:数据流(DFD)和函数分解模型(SADT)总是认为活动是固定的。毕竟,如何区分连接两个函数的箭头和传递新功能的箭头?

结论

  • 为了让你自己相信这是可行的,我邀请你看看一些活动图的例子,尽管这些例子都是以程序的方式设计的--试着想象一下你将如何以功能的方式实现它们,你会感到惊讶的。
  • 对于缺少的高阶活动,我不知道该给什么建议。也许可以定制一个UML配置文件,以便直观地表示作为操作结果而产生的操作?
票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/403455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档