hw7-Inspection Checklist

2018-01-22

Advanced Software Engineering Hw7

List the Inspection Checklist and add more checklists to other's classmates

  • 我與課堂的同學宇淇佑昇共同開Github的帳戶,把三人各自的code上傳到Github並且加上自己的Checklist,依此為base,其他兩人再去原作者的checklist中擴增。

【我的部分】

  • 首先,我用Python寫了一個Video capture server simulation analysis的程式,以不同類型的分類去mapping自己可能會犯的錯誤。

    接著,去看另外兩位組員的code

Bryan 的Check List

Data Faults

  • 是否所有variables在使用之前,都被初始化過了?

  • 所有的常數constants有被命名嗎?

  • 有任何的機率發生 buffer overflow嗎?

Control faults

  • 每一個loop的確定會結束嗎?

Input/out faults

  • 所有input variables 都被使用了嗎?

  • 非預期的input variables 會導致 corruption嗎?

  • 所有的output變數都有被assign value後,才output出來嗎?

Interface faults

  • 假如components access 分享memory,那這些components 有分享相同的 model of the shared memory structure

Storage managements

  • 假使存取空間不在被使用,那這些空間會被動態調整嗎?

  • 假使動態記憶體被使用,存取空間會有動態調整嗎?

宇淇在Bryan擴增checklist

1.在function的parameter中,預設值如果是mutable物件,則是否有被更改

2.所有的immutable物件在被更改後,則是否將所有的連結是否有重新assign

3.是否所有read/write file都有exception

4.在進行物件的Copy時,是否有注意淺層複製所帶來的影響

5.在進行浮點數的比較和計算時,是否有精準度誤差

佑昇在Bryan擴增checklist

1.是否有non-local資料可以被放進local

2.程式縮排是否正確

3.是否有不同形態的資料一起做運算

【宇淇部分】

  • 從宇淇來說,用Java寫一個戰車打異型怪獸的GUI遊戲,起初在clone 他的code到我的本地端時,不能馬上編譯執行,需要再另外調整path,這樣image才能被讀到。

  • 宇淇的code,以怪獸、火藥台、子彈為三個class的主體,遊戲能夠調整子彈威力跟怪獸的血量,主要我以五種分類Data, Control, Input/Output, Interface, Storage managements,去列出擴增的checklist.

【佑昇部分】

  • 起初git clone佑昇的code到我的mac時,是無法執行的,原因在於無法打开源文件: “SDKDDKVer.h”,後來的解法是去包含需要文件的目錄中,兒這個解法也是需要在window系統執行才能成功。

  • 主要佑昇的checklist偏向變數與宣告與記憶體配置的錯誤提醒,而我補充的一點是the corruption of input variable的可能性。

【結論】

  • 我覺得本次作業最大的體悟是,看其他人code並且補充checklist時,是很難馬上找到方向跟提供擴充的建議,原因在於你根本不了解他的code如何運作,而且得先用overview的視角來觀察,並且要執行過一遍code才能理解更加深刻,

  • 但是,這次的經驗是,在把code push到github後,都沒有考慮到在run program的enviroment問題,所以在git clone其他人code時,都遇到無法成功執行的錯誤,因此,delay更多看code的時間,這一點是未來寫code要注意的。

【參考網址】

Last updated