軟體構造實驗四總結

2021-10-23 09:01:57 字數 1317 閱讀 2848

軟體構造實驗四總結

p4主要是針對健壯性和正確性來程式設計

本次實驗重點訓練學生面向健壯性和正確性的程式設計技能,利用錯誤和異常處理、斷言與防禦式程式設計技術、日誌/斷點等除錯技術、黑盒測試程式設計技術,使程式可在不同的健壯性/正確性需求下能恰當的處理各種例外與錯誤情況,在出錯後可優雅的退出或繼續執行,發現錯誤之後可有效的定位錯誤並做出修改。

實驗針對 lab 3 中寫好的 adt **和基於該 adt 的三個應用的**,使用以下技術進行改造,提高其健壯性和正確性:

1.錯誤處理

2.異常處理

3.assertion 和防禦式程式設計

4.日誌

5.除錯技術

6.黑盒測試及**覆蓋度

對於程式來說,正確性肯定是首選的,需求是第一生產力嗎,需求都沒有達到,那這個程式肯定不是個好程式。而健壯性呢,就是這個程式處理問題的能力,健壯性越強,這個程式遇到錯誤,問題都能做出越好的回應。所以健壯性和正確性強弱也是衡量乙個程式好壞的重要因素。

本次實驗是基於lab3進行一系列的改進,從而提高lab3的健壯性和正確性。

這裡就運用到了異常處理,斷言技術,防禦性拷貝,日誌管理和最開始學習的程式測試。

之後又練習了我們debug的能力。

這裡我就說說那幾道debug的題吧

debug之前應該先根據spec和等價類來編寫測試程式,看程式都會在**出錯,然後根據錯誤位置進行針對性改進。

1.eventmanager

首先就是函式規約,沒有day引數宣告

然後還要新增個引數合法性的判斷,並對各種情況做出相應反應。

2.lowestprice

該程式運用的動態規劃思想。

於是就扔用動態規劃來改動**使其完整實現

//j遍歷需求陣列,等號要刪掉

//如果該策略讓某一種商品數量變為負值,則該策略不能用flag置為false

for (j = 0; j < needs.size(); j++)

clone.set(j, diff);

}

//若該策略不能用繼續遍歷下乙個策略

if(!flag) continue;

//判斷使用該策略便宜還是不使用該策略便宜,s價錢為s[j]

if (j == needs.size())

res = math.min(res, s.get(j) + shopping(price, special, clone));

3.flightclient

同第乙個一樣,要新增引數合法性判斷。

然後要新增比較器,按起飛的時間公升序排序。

之後不能隨機選擇飛機,要是沒有飛機可分配,程式會陷入死迴圈,所以要遍歷飛機。

軟體構造實驗三總結

軟體構造實驗三總結 這次就乙個目標實現乙個adt。本次實驗給定了五個具體應用 高鐵車次管理 航班管理 作業系統程序管 理 大學課表管理 學習活動日程管理 學生不是直接針對五個應用分別程式設計 實現,而是通過 adt 和泛型等抽象技術,開發一套可復用的 adt 及其實現,充 分考慮這些應用之間的相似性...

軟體構造Lab3實驗總結

本次實驗是軟體構造課程當中工作量最大,且最為複雜的乙個。主要工作是實現乙個多軌道系統,在這個系統的基礎上完成三個應用。track game atom structure social network circle 三種應用都具有一定的多軌道結構。track game 中的軌道是跑道,atom str...

軟體構造Lab4實驗總結

本實驗的主要工作是找到程式容易出錯的地方,並且盡力避免程式的崩潰。主要找到了以下幾種容易出錯的場合 1.trackgame的錯誤處理 1 如果game標籤沒有找到或者不合法,則丟擲異常game type error.2 如果num of track標籤沒有找到或者不合法,則丟擲異常num of tr...