OO第三次部落格

2022-08-15 11:54:06 字數 1345 閱讀 7604

隨著社會上各公司業務的發展,專案越來越多,越來越大,複雜性也越來越高。查詢乙個bug變得越發抓狂;新人熟悉一塊**也變得越發困難。有的時候順手寫下的一行充滿壞味道的**,可能當時不會出現什麼影響,而且當事人也十分清楚自己寫的東西。但是,當日積月累之後,這種壞**越來越多,整個專案就變得混亂不堪,牽一髮而動全身,各種錯誤,修復了這影響了那。久而久之,規格化**就成了不可或缺的一部分,其重要性不亞於**本身。

而要解決前面說的這些情況,必須要有乙個規範來進行約束。不以規矩不成方圓,而且,這些規範必須也要有比較持續穩定的**審核機制來支援。所以,當下規格化設計越來越受到人們的重視。

\*

*@overview:

*\

幫我測試的同學認為這裡要寫在同一行,而不是三行,理由是課件上是寫在同一行的。其實當時的初衷是這樣寫能夠讓對面看的時候輕鬆一些,豈料想被報了乙個bug……言歸正傳,雖然jsf規格方面沒有被挑出過多bug,但這並不意味著自己的jsf足夠規範

名稱before

after

盡量使用布林表示式

@requires:long型別的wait_time

@requires:wait_time== long type

過多使用自然語言

@requires:int型別的pos_x

pos_x == int type

缺失@requires:none

@requires:sc!=null

考慮當前方法所使用的某個屬性的範圍

@requires:this.state == int type,this.id==int type

@requires:0<=id<=99,0<=this.state<=3

構造方法中傳入的某些物件型引數應有效

略@requires:taxi_gui has been initalized

名稱before

after

布林表示式

@effects:\result為long型別

@effects:\result == long type

從未使用謂詞邏輯

以計程車陣列的初始化為例

@effects:\all car[i].stats;0<=car[i].state<=3

這幾次作業功能性方面一共被挑了三個bug。

在寫每個方法前,都會先確定該方法需要的引數,由此便確定了前置條件;接著,思考該方法的目的,進而確定modifies;最後思考該方法執行後的效果來確定effects。三次作業寫下來,不再有前兩個月的寫**時那種山一般的感覺;反之,這三次的**更注重培養對於細節把控的能力,以及對規範化設計思想的理解。

第三次部落格作業(OO)

一 規格化設計的大致發展歷史 軟體形式化方法最早可追溯到20世紀50年代後期對於程式語言編譯技術的研究,即j.backus提出bnf描述algol60語言的語法,出現了各 種語法分析程式自動生成器以及語法制導的編譯方法,使得編譯系統的開發從 手工藝製作方式 發展成具有牢固理論基礎的系統方法。形式化方...

OO第三次總結部落格

因為很難尋找,所以參考了下別的同學的調研結果 規格化設計與結構化 模組化設計密不可分,伴隨著oop語言的發展,規格化設計思想逐漸形成體系,慢慢完善。20世紀60年代,程式的模組化設計思想被提出。伴隨著計算機行業的迅速發展,為了解決程式可靠性等問題,結構化 模組化的設計為程式設計師提供了使用介面。每個...

OO第三次部落格作業

程式中的規格化設計的發展歷史,與計算機的發展歷史 程式設計設計的發展歷史是緊密相連,密不可分的。從1940年的面向機器程式設計,到之後的面向過程程式設計,逐漸出現了我們現在使用的各個語言的原始版本。而隨著 量的不斷增加,程式功能的不斷複雜化,簡單的面向過程程式設計不再能夠滿足人們的需要,因此,出現了...