oo第四單元總結及總課程回顧

2022-06-25 20:36:14 字數 1373 閱讀 6465

第一次作業要求實現的只有對類圖的分析。為了直觀地搭建出乙個類圖,我新建了manager類來處理umlelement以及搭建樹。但由於未能做好時間管理,因此第一次作業未能通過中測。

在聽過一些同學分享的第一次作業的思路與架構的討論課後,我直接進行了重構,全部採用hashmap以及hashset的方式儲存資料。設計架構為每乙個類單獨實現乙個作業要求需要實現的介面,各自完成自己所需要的資料處理以及方法實現,最後再由myumlgeneralinteraction類對前幾個類進行組合

第三次作業與第二次作業的架構一致,僅按照要求擴充了新的類myumlstandardprecheck

第一單元由於剛剛接觸oo的思想,前兩次作業都是按照面向過程的方式去寫的。直到第三次作業出現了求導的迭代,才被迫使用物件導向的方法,對表示式因子、項等分別構造類。求導方法如果用介面來進行管理會更好,但是當時對於介面的理解不夠深,最後也沒感使用。

第二單元總體來說做的不錯。主題思路是採取有限狀態機的模型,對電梯進行模擬。缺陷有兩點,一是未能細分電梯的功能導致電梯類十分繁雜,尤其是在後兩次作業的擴充套件中越來越困難;二是沒有優化排程演算法

第三單元做的比較無腦,就只是按照指導書上的以及介面的jml描述進行的程式設計,沒有考慮架構的設計。

在本學期的學習中,在測試這一方面我始終做的不好。第一單元的測試僅僅停留在手測,自己構造資料,人腦直接檢驗。有很多同學都自己搭建了評測機,但由於種種因素我最後還是沒能搭建出來。第二單元是多執行緒,多執行緒的測試變得更加困難,我最終也只是停留在了自己構造資料。第三單元我嘗試進行了單元測試的方法,但是單元測試實際上還是需要自己構造一些足夠具有代表性的邊界資料出來。第四單元提供了構造資料的介面,因此也沒有在測試上畫大功夫。

最大的課程收穫還是對於物件導向的理解。如何採用物件導向的思維,如何構造合理的架構。第一單元在實驗中學習了工廠模式,第一次了解到了介面的一種用法。第二單元主題是多執行緒,如何利用鎖來保證執行緒安全不發生死鎖,以及生產者消費者模式,結合os課程的講解,給了我很大的啟發。第三單元重點理解jml語言,我了解了如何用規範化的語言來描述乙個架構。第四單元是對uml類圖、狀態圖和流程圖的學習,用圖的方式來描述和理解乙個物件導向程式。

其次就是完成作業以及實驗過程中的收穫了。第一是測試是十分重要的,在第三單元中如果我能進行更加全面有效的測試,就不會導致乙個小錯誤強測掛掉的悲慘經歷;第二是與同學之間的交流是十分重要的,在本學期的學習過程中,許多同學的見解都對我有很大啟發。

1.希望理論課能更加循序漸進,在最開始上課的時候總有不知所云的感覺,許多概念性的東西一概而過,對我課程的學習有一定的影響

2.每一單元之間的聯絡不是十分明顯,學著這一單元的忘著上一單元的(感覺這也是所有課的通病)

3.希望能提供更加簡單易學的測試教學

OO第四單元與全課程總結

具體架構設計 作業bug分析 由於上面這個類圖實在過於複雜,所以提供了以下簡化類圖 具體架構設計 在具體方法的架構設計方面 本次作業依然通過構造方法中的迴圈遍歷獲取uml圖中已經給出的資訊,並在重新整合後,形成便於查詢的資訊結構 最終儲存到相應的新定義的類中 在查詢方法中,通過呼叫儲存所需資訊的新定...

OO第四單元總結

第一次作業我將umlelement進行分類,新建乙個封裝類uml,用介面和類進行例項化 新建乙個operation類例項化operation元素。在myumlinteraction的初始化,先找到所有的類和介面例項化uml。然後找到所有的方法,例項化operation類,並且將類根據parentid...

OO第四單元總結

從這四個單元來看,除了第三單元對於架構的感受不深,兩外三個單元對架構的要求是比較高的。雖然這三個單元內容主題完全不同,但設計架構的目標是一樣的,就是盡可能地把現實中的邏輯細緻地還原表達出來。所以oo是什麼?j同學在一次研討課上表示oo在他看來就是將資料和方法集中起來封裝,我認為這個表述沒有觸及到oo...