OO課程第四次總結

終於來到了最後一次的OO做業,以博客做業的形式來終結也是極好的,回顧一下過去十六週本身的經歷,感慨頗深。編程

測試和正確性論證安全

簡單來講,測試的目的是將程序的代碼作到全覆蓋,從而確保每一個分支都運行一遍,進而分析代碼中是否有錯誤,錯誤出在哪裏。這個方法是十分實用的,能夠有效的找出本身代碼中的錯誤,即很容易發現淺顯的錯誤,但不容易發現隱晦的錯誤。編程的經驗告訴我,確實存在那種執行了多條代碼以後有了不同的結果,一環套一環,這種狀況雖然很難發現,但確實存在。而正確性論證則不一樣,它經過大量的窮舉,基於repOK和jsf來論證正確性,能夠說絕對正確,但時間複雜度實在過高了,遠高於寫這份代碼的複雜度。多線程

 

OCL和JSF測試

OCL的基礎是數學中的集合論和謂詞邏輯,而且它有一個形式化的數學語義,可是它並無使用某種數學符號。由於雖然數學符號可以清晰的、無歧義的表達事物,可是隻有極少的專家能夠看懂。因此數學符號並不適合用於一個普遍應用的標準語言。天然語言是最易懂的,可是它是含混不清晰的。OCL取了天然語言和數學符號的折中方案,使用普通的ASCII字符來表達數學中一樣的概念。若是你不喜歡當前的OCL表達方法,OCL規範還容許你定義本身的OCL符號集,這點是能夠理解的,由於OCL有一個清晰的數學語義。spa

相同點在於它們都採起了天然語言和數學語言的折衷,採用了前置條件,後置條件和監護規則的模式,不一樣點在於OCL有着豐富性和完備的可計算性,更重量化。
線程

 

 

UML圖對象

 

 

 

總結blog

 

這一學期下來,我從最開始連Java都不怎麼會編的菜鳥變成了如今能順利經過OO的人,期間可謂受益不淺。要談到本身的進步的話,從第十四次做業能夠看出來,以往的做業真的就是一個超級面向過程的做業,後來才真正的理解了面向對象。接口

四個章節從最開始的初次提到面向對象再到後面的多線程及線程安全,是編程能力的提高。抽象與規格則要求了規格化的編程,最後強調了工程化的質量。開發

 

有一個很簡單的評測標準,那就是方法的行數,實不相瞞,最開始個人Java代碼有過一百多行的方法,寫它的jsf簡直要把我寫死了!後來到了出租車,基本上就沒有了這種問題,但面對以前本身的做業,只能狠下心來重構了。也真真切切的瞭解到了面向過程和麪向對象之間的差距,代碼能力也會有顯著提升。

 

我認爲工程化開發最重要的是可移植性和便捷程度。由於一個工程須要一個團隊合做完成,所以各自負責的部分必需要把接口寫好,方便別人使用;同時程序內部雖然是一個黑箱,可這個程序後期是可能進行加工的,而且有可能不是原開發者加工維護,因此代碼必定要簡潔明瞭,符合規範。

 

我對課程的最大指望是,在文件系統的那一章做業,要麼下降難度要麼增長時間。個人能力有限,時間也沒法所有放在OO一門課上,因此有限的時間內我沒法保證做業的質量,分到一個心狠手辣的人我就被扣的不成樣子,一樣寫的很差的同窗卻不會這樣,這中間的落差很容易讓人走向黑化的道路,進而病毒式的擴散到全系。老師或許會說,保證做業質量就不會有這樣的狀況了,說的太對了,可這個課的難度自己就應該讓全部人努力一下就不會太慘纔對,不該該有這一章做業存在,請老師好好考慮,否則像我這樣運氣很差的菜鳥只能在申訴以後面對助教一句「所有視爲錯誤」以後想罵人了。關於這門課我真的沒什麼好讚美的,它讓我學到了不少東西,面向對象的編程思想,節約時間的必要性等等,卻也讓我明白了黑暗森林體系中每一個人能有多瘋狂,吳際老師說未來每一個人都會感謝這門課教會本身的東西,可我更喜歡另外一個老師的這句話:「社會是複雜的,但但願咱們儘可能保持一顆純潔的心」。與君共勉,繼續努力

相關文章
相關標籤/搜索