真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

OO第四單元總結(jié)

OO第四單元總結(jié)

一、本單元架構(gòu)設(shè)計

成都創(chuàng)新互聯(lián)是專業(yè)的云霄網(wǎng)站建設(shè)公司,云霄接單;提供做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行云霄網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

1.數(shù)據(jù)結(jié)構(gòu)

本單元對UML元素采用HashMap的存儲形式,鍵值為元素的ID。由于元素ID唯一,因此采用此種存儲方式十分便于寫入和查詢。

由于本單元查詢指令和有效性檢查對于三個圖是獨立的,因此為了降低耦合度,對類圖、順序圖、狀態(tài)圖中元素進(jìn)行分開管理。MyImplement類儲存類圖元素,MyCollaboration類儲存順序圖元素,MyStateMachine類存儲狀態(tài)圖元素。其中,MyStateMachine會根據(jù)數(shù)據(jù)所在狀態(tài)機(jī)的不同將其分派到對應(yīng)的MyRegion類進(jìn)行管理。

對于需要利用圖論算法進(jìn)行查詢的元素(類、接口、狀態(tài))分別建立擁有更多信息的類(MyClass、MyInterface、MyState),最重要的作用是存儲其在有向圖中可到達(dá)的節(jié)點集合,以便進(jìn)行相關(guān)查詢。類和接口的有向圖存儲于MyImplement中,狀態(tài)的有向圖存儲于MyRegion中,對圖的查詢直接由上級委派到此級進(jìn)行,以實現(xiàn)對數(shù)據(jù)的層次化管理。

2.層次化設(shè)計

1)查詢指令

關(guān)于類圖的查詢指令直接在MyImplement類中進(jìn)行。

關(guān)于順序圖的查詢指令由MyImplement類下達(dá)到MyCollaboration類中進(jìn)行。

關(guān)于狀態(tài)圖的查詢指令由MyImplement類下達(dá)到MyStateMachine類中,再由MyStateMachine類根據(jù)查詢指令的具體類型決定在本層次進(jìn)行還是分配到某一個或所有MyRegion類中進(jìn)行。

2)有效性檢查

所有檢查指令都會先由MyImplement類下達(dá)到MyCheckClass類中。

關(guān)于類圖的檢查會由MyImplement類向MyCheckClass類傳入必要的容器對象,MyCheckClass類利用傳入?yún)?shù)在本層次內(nèi)完成檢查。

關(guān)于順序圖的檢查會由MyCheckClass類交由MyCollaboration類進(jìn)行。

關(guān)于狀態(tài)圖的檢查會由MyCheckClass類分配給MyStateMachine類,再由MyStateMachine類根據(jù)檢查指令的具體類型決定在本層次進(jìn)行還是分配到所有MyRegion類中分別進(jìn)行。

二、架構(gòu)設(shè)計思維及OO方法理解的演進(jìn)

1.第一單元

① 在一單元中初步建立了對面向?qū)ο蟪绦虻恼J(rèn)識,包括面向?qū)ο蟪绦虻目蚣?、三個關(guān)鍵類(輸入處理、主控、核心數(shù)據(jù)管理),了解其與面向過程程序的區(qū)別。但由于是初學(xué)者,第一單元作業(yè)仍有較大比重的面向過程代碼,圈復(fù)雜度較高。

② 本單元對迭代和重構(gòu)有了初步的認(rèn)識,認(rèn)識到了代碼可擴(kuò)展性在工程開發(fā)中的重要性。若可擴(kuò)展性較低,則需要進(jìn)行增量開發(fā)時勢必會引起重構(gòu),實際上是降低了開發(fā)效率。

③ 對層次化設(shè)計有了初步理解和掌握,我們應(yīng)按照數(shù)據(jù)或行為建立抽象層次,并對多層次對象進(jìn)行歸一化管理。然而遺憾的是,受到以往以解決問題為主要目標(biāo)的面向過程編程思維的束縛,第一單元作業(yè)的層次比較模糊,并沒有很好地抽象出合適的層次。

2.第二單元

① 本單元重點在于對多線程編程的掌握,主要包括對幾種設(shè)計模式的理解、對線程安全的理解和保證。

② 在經(jīng)過第一單元的洗禮后,本單元代碼的可擴(kuò)展性很高,每次迭代都只需要進(jìn)行必要的增量開發(fā)而未進(jìn)行重構(gòu)。對層次化設(shè)計有了進(jìn)一步理解,本單元層次抽象效果較好。

3.第三單元

① 本單元重點在于對規(guī)格化設(shè)計的理解與掌握,集中體現(xiàn)在對JML規(guī)格和Java代碼間的相互轉(zhuǎn)化。

② 本單元的層次化設(shè)計主要在于抽象層次下的規(guī)格,其反映了設(shè)計者的架構(gòu)思考,但我們在實現(xiàn)代碼時要盡量實現(xiàn)這種層次化結(jié)構(gòu)。

4.第四單元

① 本單元以實現(xiàn)UML圖解析器為載體,重點在于理解和掌握UML語言。

② 本單元的指令數(shù)較多,因此對層次化設(shè)計有較高的要求。因此本單元采用了類似第二單元將請求逐級分派的架構(gòu)思維,將不同層次、不同類型的指令安排到合適的類中執(zhí)行。

③ 本單元作業(yè)對面向?qū)ο笏季S有了最后的理解與升華,對第一單元學(xué)到的數(shù)據(jù)和行為抽象層次有了較深的理解,即:上層數(shù)據(jù)或行為可以概括下層數(shù)據(jù),下層數(shù)據(jù)或行為可以擴(kuò)展上層數(shù)據(jù)。

三、測試?yán)斫馀c實踐演進(jìn)

1.第一單元

本單元手動構(gòu)造結(jié)構(gòu)復(fù)雜、自己在編程中容易疏忽的數(shù)據(jù)進(jìn)行測試。

2.第二單元

本單元手動構(gòu)造邏輯較為復(fù)雜、多線程同時進(jìn)行相同操作(易產(chǎn)生線程不安全)、容易超時的數(shù)據(jù)進(jìn)行測試。

3.第三單元

① 手動構(gòu)造覆蓋規(guī)格所有輸入情況的數(shù)據(jù)進(jìn)行功能正確性測試。

② 利用Python程序生成大量高時間復(fù)雜度的指令進(jìn)行性能測試。

4.第四單元

本單元手動構(gòu)造類圖、順序圖、狀態(tài)圖,通過官方包轉(zhuǎn)化為輸入數(shù)據(jù)后進(jìn)行測試。

四、課程收獲

① 提高了編寫面向?qū)ο蟪绦虻哪芰?,并對層次化設(shè)計有了由淺入深、由具體到抽象的認(rèn)識。

② 理解并掌握了多線程編程、JML與規(guī)格化設(shè)計、UML語言/圖等。

③ 提高了java程序設(shè)計能力與處理復(fù)雜工程問題的能力。

五、改進(jìn)建議

① 加強(qiáng)對理論課知識掌握程度的考察。一味追求代碼作業(yè)成績將可能導(dǎo)致理論與實踐相分離,具體可效仿CO和OS對理論與實踐并行考察的方式,以提高教學(xué)效果。

② 第三單元可適當(dāng)降低對相關(guān)算法的要求。有些數(shù)據(jù)點采取樸素算法無法達(dá)到性能要求,而追求性能更高的算法已不是本課程的學(xué)習(xí)目標(biāo),還會分散用于理解JML的精力,有舍本逐末之嫌。

③ 可以在單元總結(jié)課中給大家分享課程組認(rèn)為的層次、功能、性能最好的架構(gòu)思路,從而擴(kuò)展同學(xué)們的思路并加深對面向?qū)ο缶幊趟季S的理解。


分享標(biāo)題:OO第四單元總結(jié)
網(wǎng)站網(wǎng)址:http://weahome.cn/article/dscgidi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部