另外一种DSL尝试:UML脚本

09-09-22 banq

yUML提供了一种脚本工具,类似英语的表达方式,可以让不懂计算机和UML的业务专家使用普通英语来表达他们的专家知识。

这也是DSL的一种尝试,目前,DSL尝试有三种主要趋势:

1.使用新的Scala之类语言

2.基于Java的框架如Qi4j

3.基于UML的脚本。

比如英语:A Customer is a User

通过rebol工具可以转换为如下yUML.me脚本

yUML.me:[User]^[Customer]

这样,就输出UML图:

你可以在他们提供的在线绘制UML 输入yUML.me

脚本试验一下。

同样:一个客户有两个地址聚合关系如下表达:

[note: A Customer has 1-2 Address]

[Customer]++1-2[Address]

表达依赖关系,如下:

[note: An Order uses 1 PaymentMethod]

[Order]0..*->1[PaymentMethod]

表达继承关系,如下:

[note: PaymentMethod can be]

[PaymentMethod]^[Credit]

[PaymentMethod]^[Cash]

[PaymentMethod]^[Check]

rebol工具是一个强大的DSL生成工具,可以产生Java C#或PHP代码,目前免费下载,我用它按照http://reboltutorial.com/blog/create-rebol-gui/说明输入脚本后,是确实产生一个窗口,感觉它的脚本很类似JavaFX,但是没有JVM那么臃肿支撑,整个大小只有634K。

这些都是成熟的理念和工具了,据说微软和Javafx的都是向rebol学的。

         

saharabear
2009-09-22 10:43
我想知道上面的图是什么工具画的。

banq
2009-09-22 11:06
用什么工具画不重要,这只是一种类似界面的图形输出。

你可以在下面这个网址自己输入脚本,测试输出UML图形。

http://yuml.me/diagram/scruffy/usecase/draw

也许过去常用的UML工具已经变成网上的云服务了,这就类似微软的桌面Office正在被google等的网上office蚕食一样。

saharabear
2009-09-22 18:57
唉,云计算来得太快,我基本上落伍了,天天还抱着dia活着。

saharabear
2009-09-22 18:59
这个帖子真的让我感受到了一些新东西。

简单的语法描述描述一些基础的东西,然后就拥有其他的一切。

猜你喜欢