AsmL例項研究(二) (轉)
透過上面這個例子,我們可以瞭解到一些用AsmL描述的可規格的基本資訊。整體結構上,可執行規格與傳統的規格並沒有太大不同。它將對軟體邏輯的描述,用AsmL程式碼的形式,以特殊的符號(這裡是AsmL)標記之後,夾雜在文字說明之間,以便使閱讀它的人能夠輕易對模型及其實現產生一定的認識。可執行規格的優勢正在於對軟體邏輯的描述上,別忘了AsmL的目標是產生“人類可讀(Human-readable),機器可執行(Machine-executable)”的模型。
:namespace prefix = o ns = "urn:schemas--com::office" />
傳統的設計規格一般是在文字描述的過程中,輔以虛擬碼來描述某段的邏輯。因此Team中需要有個約定,在設計規格中採用何種格式的偽碼,以便大家都能夠看得懂。但是這樣的約定將難於使Team之外的人能夠輕易理解。在可執行規格中,AsmL充當了這種偽碼的角色,甚至比偽碼的效果更好。由於AsmL有一套類似語言的定義良好的規範,因此它很容易成為對模型的理解的基礎。而且由於AsmL並非Team的專屬物,因此以它來描述的規格很容易被Team之外的人所理解,只要他掌握了AsmL。
AsmL相比於虛擬碼真正的強悍之處在於,經過AsmL建模所得到的規格,比如前面這個DiningPhilosophers例子,已經是一個可以執行的模擬程式了。你完全可以執行它,來檢查設計是否完備,是否與預期的相符。在AsmL2.1.5.8中,即使是文件,也是可以透過AsmL的Word編譯執行的。當你編譯它時,以“AsmL”標記起來的文字被認為是AsmL程式碼,它們被從文件中剝離,然後經編譯成可執行的程式。同樣的,AsmL的Word外掛可以將Word版本的規格格式化成Xml格式,這樣你就可以將它新增到Visual Stadio的工程中。
AsmL2.1.5.8與其它的.NET語言之間也具有很好的互動性。看看前面的例子,你會注意到,前面的規格中缺少程式入口Main。正如你想象的,前面的規格是不能執行的。它可以被編譯成dll,從而被其他的專案引用。事實上,例子DiningPhilosophers是個程式,在這個例子的Main Form中引用了前面定義的Table類。還記得[EntryPoint] 這個attribute嗎?是的,用它標記過的方法是能夠在中的。在Main Form中,Table的這些方法被呼叫,來反映程式的執行情況。不妨試試這個例子程式,它可是個挺有意思的小程式呢!
本文旨在引介AsmL。由於作者也剛剛接觸AsmL不久,文中的錯誤與疏漏之處在所難免。如遇不明之處,相信能夠從研究院的相關網站上找到答案。如果您還不清楚AsmL是什麼,您可以參考作者之前的一篇文章《AsmL:可執行的軟體規格》
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-956489/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Delphi Open Tools Api例項研究(一) (轉)API
- XML程式設計例項(二) (轉)XML程式設計
- keras轉tensorflow lite【方法二】直接轉:簡單模型例項Keras模型
- DHTML Tree 使用例項 (二)HTML
- APIHOOK例項剖析 (轉)APIHook
- JavaScript String 物件例項深入研究JavaScript物件
- 演示中斷處理的例項(例項六)(轉)
- 透過例項看VCL元件開發全過程(二) (轉)元件
- oracle單例項轉RACOracle單例
- (轉)MySQL優化例項MySql優化
- 網站綜合例項(轉)網站
- [轉]BDB例項程式碼
- 網站綜合例項 (轉)網站
- Winsock程式設計初步之<二> 源程式例項(一) (轉)程式設計
- 如何將獨立例項轉換成叢集例項EU
- AsmL: 可執行的軟體規格 (轉)ASM
- (轉)Python例項手冊Python
- Python——astroplan庫入門例項(二)PythonAST
- 線上生成二維碼程式碼例項
- javascript將數字轉換為二進位制形式程式碼例項JavaScript
- CSS 例項之翻轉圖片CSS
- BIND 9快速安裝例項(轉)
- 基本複製應用例項(轉)
- 研發專案流程例項(轉)
- PAM認證模組使用例項(轉)
- ssh埠轉發的深入例項
- Halcon缺陷檢測例項轉OpenCV實現(二) PCB印刷缺陷檢測OpenCV
- vsftpd-1.1.3配製例項之二:INTERNET_SITE_NOINETD(轉)FTP
- PHP漏洞挖掘思路+例項 第二章PHP
- css二級下拉選單程式碼例項CSS
- 二叉搜尋樹程式碼例項
- ORACLE 觸發器語法及例項 二Oracle觸發器
- ASM單例項(Oracle 11.2.0.4)環境(二)ASM單例Oracle
- 【原創】Oracle 事務探索與例項(二)Oracle
- 程式集載入與反射(二):例項篇反射
- 第二個MFC例項:GPA計算器
- oracle的單例項併發控制:Latch(二)Oracle單例
- 單例項和RAC打造的ORACLE STREAM(二)單例Oracle