規格化的曆史
規格化曆史的發展主要如下:
1975年,Liskov等人發表了論文Specification Techniques for Data Abstractions,從資料抽象的角度論述了規格的優點、特性及重要性。
1976年,在第二屆國際軟體工程會議上,Belford等人在Specifications a key to effective software development一文中從開發複雜系統的角度論證了完整的、一緻的規格的重要性。在系統研發周期中,規格提供了在概念和定義階段的過渡。一個清楚、無歧義的規格是取得成功的關鍵,同時能減少開發過程中的開銷。軟體需求本身具有模糊的特點,是以需要一個定義明确的規格來開發出可靠的軟體。
1993年,Liskov等人發表了Specifications and their use in defining subtypes,從類型層次的角度進一步論證了規格的重要性。
自此,規格開始成為程式必不可少的一部分。
BUG分析
Bug記錄表:
類型 | 方法行數 | 産生原因 |
紅綠燈合法 | 48 | 沒有忽略在非法路口進行紅綠燈放置 |
車輛遇紅綠燈轉彎 | 37 | 沒有存車頭方向 |
道路開關 | 56 | 因為實作問題,有個地方數組開小了,導緻最右下角的邊不能盡心操作。 |
Jsf | 3 | 用了一些自然語言,邏輯不清晰 |
repok | 20 | 沒有寫清楚,有的是直接return true |
JSF類型
缺少前置條件

改進後:
缺少後置條件:
後置條件格式不對:
Modifies缺失:
總結體會
這次作業的結束也标志着OO代碼作業完美落下了帷幕。首先這幾次作業讓我們學會了撰寫規格,其次還要求我們根據規格補全代碼,這是非常有用的。在測試别人程式時,有一個好的規格能讓我們快速了解他的想法,友善測試,更是友善他人檢視了解。是以說,規格是非常必要的。感慨自己一路跌跌撞撞的走來,自己從java白癡到堪堪入門,也是有了不小的進步了,有過bug少的開心,有過bug多的苦惱,但這都是一種成長吧。OO尚未結束,吾輩仍需努力。