# 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自己可能會犯的錯誤。&#x20;

  接著，去看另外兩位組員的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](https://github.com/lucky071118/2017-Final_Project/tree/master/src)，以怪獸、火藥台、子彈為三個class的主體，遊戲能夠調整子彈威力跟怪獸的血量，主要我以五種分類**Data**, **Control**, **Input/Output**, **Interface**, **Storage managements**，去列出擴增的[checklist](https://github.com/lucky071118/2017-Final_Project/blob/master/checklist.txt).

### 【佑昇部分】

* 起初git clone佑昇的code到我的mac時，是無法執行的，原因在於**無法打开源文件: “SDKDDKVer.h”**，後來的解法是去包含需要文件的目錄中，兒這個解法也是需要在window系統執行才能成功。
* 主要佑昇的[checklist](https://github.com/Linsan515/program/blob/master/checklist.txt)偏向變數與宣告與記憶體配置的錯誤提醒，而我補充的一點是**the corruption of input variable**的可能性。

### 【結論】

* 我覺得本次作業最大的體悟是，看其他人code並且補充checklist時，是很難馬上找到方向跟提供擴充的建議，原因在於你根本不了解他的code如何運作，而且得先用overview的視角來觀察，並且要執行過一遍code才能理解更加深刻，
* 但是，這次的經驗是，在把code push到github後，都沒有考慮到在run program的enviroment問題，所以在git clone其他人code時，都遇到無法成功執行的錯誤，因此，delay更多看code的時間，這一點是未來寫code要注意的。

### 【參考網址】

* Bryan的Github: [https://github.com/YenKang/Video-Capture-Server/blob/master/Check List .md](https://github.com/YenKang/Video-Capture-Server/blob/master/Check%20List%20.md)
* 宇淇的Github: <https://github.com/Linsan515/2017-Final_Project/blob/master/checklist.txt>
* 佑昇的Github: <https://github.com/Linsan515/program/blob/master/checklist.txt>
