第五次做業:數組
度量圖:安全
類圖:多線程
分析:此次做業的主要問題是對電梯請求如何分配給三部電梯,讓他們可以同時工做且不出現問題。這其中涉及到了關於線程安全,數據同步的問題。學習
但因爲這是多線程的第一次做業,本身之前對多線程沒有一點概念,作這次做業以前查閱了不少資料,但仍是有不少地方並無真正弄明白。這在這次做業中體現的很明顯。從度量圖看,個人程序圈複雜度太大,說明程序代碼質量低且不易維護,其次塊嵌套深度太高,以及參數過多,這都是直接能夠看出來的問題,而後個人類圖也很雜亂無章,沒有設計好。整體來講,本身沒有把握好時間,搞清楚多線程花了好久,設計程序時間不足,致使這徹底就是一個趕時間的程序。測試
本身的bug:此次因爲沒設計好,功能性測試幾乎都錯了,只過了幾個簡單的例子。線程
測試任務:可能他也沒有好好設計吧,只要輸入回車,程序就crash,他是由於輸出時用了很奇怪的方式,我幫他改了下,結果和我差很少,功能性測試幾乎不對。設計
第六次做業:對象
度量圖:blog
類圖:同步
分析:
此次做業是設計一個文件監控系統,首先對監控做業進行處理,忽略掉非法監控,將合法監控提取出來。至於對文件如何監控,個人辦法是爲所監控的對象創建快照,將其屬性保存下來,而後再等一個掃描週期(個人是50ms)將新的快照與舊的進行對比,發現其改變的屬性,就能夠看是否相應的觸發器,執行相應的任務。
但我這樣作好像有問題,就是在path-changed的時候,它不響應,我單步運行發現其新的快照集和舊的變得同樣了,也就是50ms這個週期沒有捕捉到這個變化,因此我把時間改成60ms就能夠了。總的來講,此次比上次好,至少弄清楚了多線程的基本思想,也學會了正確進行加鎖同步。
本身的bug:path-changed監控出錯,應該是週期的問題。
測試任務的bug:他的程序不能實現文件安全類功能不完整,不少功能沒有實現,測試起來較爲困難,他在多線程安全處理也不行,有的變化不予響應,且summary與detail會重複記錄。
第七次做業:
度量圖:
類圖:
分析:此次是設計一個出租車調度系統,個人實現思想是,先完成地圖導入及出租車初始化的工做。出租車初始化主要就是開一百個線程,讓出租車隨機運行。而後獲取乘客請求進行處理,這部分就按照指導書的要求,挑選符合要求的出租車,進行派單,記錄其運行信息。
此次做業相比前兩次完成的要好,多是本身對多線程有了更進一步的理解,也是一點點在進步吧。
本身的bug:因爲粗心,沒有仔細檢查,有個地方數組越界,crash了。
測試任務的bug:他的程序沒有把路徑記錄完,只記錄了一部分請求記錄,並且對同質請求處理不當。
總結:總的來講,本身從不會多線程到慢慢入門,一點點在進步,仍是蠻開心的,不只是做業,週五的OO上機我也學到了不少。反正對待一個學習任務,慢慢去學,不放棄,總會弄清楚的。