j**a建模語言(jml)是一種行為行為規範語言,可以使用給定j**a模組的行為。 為了支援jml語言的軸論,我們將eiffel的「合同設計(contract design)」方法與larch系列框架規範語言的基於模型的規範方法相結合。 主要文章為以下三篇文章。 一些要素。
jml是將j**a程式規格化的一種表示語言。jml主要用於(一)開展規格化設計;(二)應對現有的**使用規格,增強**的維護性,維修性。
需要注意的是:jml將顯示我們的流程在什麼情況下能夠正確執行,預期的****能夠滿足什麼條件,用一句話來說,
jml是流程可以以什麼原料執行的。不是告訴你烹飪方法,而是出什麼菜。這也是筆者所犯的典型錯誤。
接下來總結一下jml中常見的表現方式:
\result 表示乙個回程**不是void 方法實施後的回返值。
\old(expr)表現式expr在實施該方法之前會收取費用。
\not_assigned(x,y,...)表示括號內的變數在執行過程中是否附加,但在實際使用中,經常在後置條件下,對括號內的變數進行約束
\forall全稱量語,實際使用與for迴圈類似(\forall xx ; xx)
\exists存在量單詞,實際使用及\forall類似 回到給予的範圍內,表達方式的和。
\sum int i ; 0 <= i & i <= 5 ; i,結果 15 回到
\product週期範圍,表現式倫達魯克敵,使用類似於\sum。
\max & \min是回歸到訂購範圍表現式的最大(最小)值。
requiress方法的前提條件是,萬只有在腳前置條件的情況下,方法才能正確地執行,因此,要求採購人正確地履行前置條件。
ensures方法的後置條件,方法保證實施完成後的結果,滿足後置條件的約束。
assignable***,即在方法實施過程中允許或對某些變數進行修改。
signals投的球數超過了規定數。
由於我沒法完成這單元的作業,就整理了一下jml的內容和概要,
我覺得規格是oo的一種很好的體現,要熟悉寫規格的語法,準確的規格利於以後對程式的測試與維護。
對於規格的學習對未來的大專案開發,團隊程式設計會有很大的幫助,所以要繼續學習
物件導向程式設計與構造第三單元總結
本次作業是我第一次接觸jml規格,初次接觸規格帶給我的感受和第一次作業初次使用j a以及面對電梯第一次感受多執行緒好太多太多了。理解jml語言的過程並沒有帶給我什麼煩惱,不過接觸規格之後確實讓我對我的程式設計學習有了乙個新的認識。第一次看到規格之後我想的是,這個東西有什麼用嗎?我們明明可以用很簡潔的...
2021 物件導向設計與構造 第三單元總結
架構上,完全照搬給出的介面,對於每乙個介面 或異常抽象類 a建立了mya將其實現 或繼承 三次作業都是這麼做的,因此不在後兩次作業中進行贅述了。絕大部分方法只需複製規格,異常類的實現使用static成員變數記錄每個id的出現次數即可。三次作業異常類大致相同,因此不在後兩次作業中進行贅述了。無向圖中新...
BUAA OO 第三單元總結
一句話概括一下就是 先理解再動手,先實現再優化。首先肯定是要仔細閱讀所提供的jml規格,充分理解規格的作用和其需要完成的任務,在動手之前也先想好要用到什麼內容 選用什麼容器啦,要用什麼資料啦,需不需要修改原本的資料等等 這一點無可厚非。第二步就是先試著動動手,暫不考慮效能以及該規格與原有內容之間的內...