AsmL的知识内容介绍

AsmL的知识内容介绍

AsmL听起来相当的神奇,尤其是它所建立的模型可以作为这些模型所描述的系统的模拟程序来运行这一特性,不但能够帮助我们在着手实现之前检查我们的设计的完备性,而且还能够帮助我们在实现过程中检查设计的合理性以及实现的正确性。这不正是我们想要得吗?还等什么?立即down一份来试试吧!(注:如果您还不知道什么是AsmL,没关系,您可以参考我的另一篇文章《AsmL: 可执行的软件规格》)

http://research.microsoft.com/foundations/asml/ 可以得到AsmL的安装程序和一些相关的文档。AsmL目前的版本是2.5.1.8,是一个for .NET的版本,能够与Visual Studio.NET以及Word集成。下载安装相当简便,不必多说。安装完毕之后,运行Visual Studio.NET会发现,IDE中多了一个插件,如下图:

AsmL的知识内容介绍

此时插件上的按钮是无效的,只有打开AsmL模型文件时才会变得有效。AsmL的模型文件的文件名后缀是.asml,模型文件内部以Xml格式组织。插件上三个按钮的作用从左到右依次是:与Word文档同步,以HTML格式显示规格,重新组织Xml格式。

现在我们是这用AsmL来建立一模型。

首先,新建一个空的C#工程,不妨取名为AsmLTest。在Solution Explorer中右击项目,用“Add->Add New Item”添加一个新Item,此时会在Add New Item对话框中找到AsmL Document,添加之。这样我们的工程中就多了一个名为Modal1.asmlItem,如下图:

AsmL的知识内容介绍

此时插件上的按钮已经有效,点击“与Word同步”按钮可以得到同步的Word文档,如下图:

AsmL的知识内容介绍

点击“以Html显示”按钮,可以得到规格的html格式,如下图:

AsmL的知识内容介绍

点击“重新格式Xml”,asml文件会被重新格式,如下图:

AsmL的知识内容介绍

现在来试一下可执行规格的最重要的特性——可执行。AsmL的编译运行方法与其他的.NET程序别无二致,直接F5就可以。运行结果如下:

AsmL的知识内容介绍

经过上面这个小例子,你心动了吗?想想吧,在你设计建模的时候,你只需将你的模型用AsmL描述出来,你就立即得到了三个版本的设计规格:XmlWordHtml。而且这三个版本是可以同步更新的,在不必担心规格与设计同步的问题了。更神奇的是,你的设计模型是可以执行的,你可以随时知道自己的设计是否合理,实现是否正确,而不必等到写了大量的代码之后又将设计推倒重来。

需要说明的是,目前的AsmL是一个仍处于研究中的项目,目前的版本也存在一些问题。比如,你有可能在安装完首次编译AsmL模型时遇到“找不到入口点”的错误,此时你只要将VS.NET关闭重来一次就行了,此问题只会在首次编译AsmL时出现。同时,AsmL也还无法与其他的.NET语言如VC等很好的交互。理论上来说,AsmL应该能够与任何语言交互,只是目前版本的AsmL插件的Wizard无法识别除C# project以外的project,也许下一版本会有所改善J

本文旨在引介AsmL。由于作者也刚刚接触AsmL不久,文中的错误与疏漏之处在所难免。如遇不明之处,相信能够从微软研究院的相关网站上招到答案。欲对AsmL有更深入地了解,可以参考《AsmL: The Abstract State Machine Language》,这篇文章同样可以在微软研究院的网站上找到。