OO第四次博客總結java
1、測試與正確性論證編程
二者都旨在發現程序中的BUG,同時更深入的理解程序的執行過程;可是其效果對比各有優缺點。安全
測試:多線程
優勢:能夠更加具體的理解程序的執行過程,對於一些不易經過單純思考得出結論的狀況,測試能夠直觀的看出其存在的問題或者可能疏漏的狀況;學習
缺點:極可能沒法涵蓋所有的狀況,對於某部分代碼,可能因爲分支太多僅能經過大部分狀況而不是所有狀況來判斷其正確性。測試
正確性論證:spa
優勢:能夠比較全面的分析到全部的狀況;線程
缺點:過於理想化,從某種程度上來講,正確性論證就至關於經過看代碼的方式來debug,這種方式不少時候僅僅能發現比較明顯的錯誤,可是在實際狀況中可能大部分人的狀況是看似代碼已經沒有問題,可是進行測試時卻沒法出現預期的結果,只能經過調試的方法發現具體問題所在,因此正確性論證在某些時候可能沒法發揮其做用起到事倍功半的效果。debug
2、OCL語言調研設計
OCL(Object Constraint Language)語言,即對象約束語言,做爲圖形符號(UML)的補充,因爲UML圖通常缺少與規範相關的描述,致使使用天然語言產生歧義。由此發明OCL語言,對建模元素的有關細節進行說明,它是一種用於施加在指定的模型元素上約束的語言。
相同點:
(1)都有不變式,前置條件,後置條件;
(2)都只關心方法或對象在運行先後的屬性狀態,不關心具體的實現過程。
不一樣:
(1)OCL語言能夠對類,類的屬性和操做等等任意的進行約束,而JSF僅針對類和方法。
(2)JSF是一種輕量化的語言,可是描述能力尚顯不足;OCL結構較爲複雜,可是描述能力較強;
3、UML類圖
4、順序圖
5、狀態圖
6、學期總結
四個單元模塊:Java基礎、多線程和線程安全設計、抽象與規格、測試與論證。四個模塊相互關聯按部就班,最開始因爲不少同窗基礎較弱,因此先進行Java基礎模塊的學習;有了必定的基礎以後經過多線程的學習進一步熟悉java編程和多線程的概念;而後爲了讓你們理解和掌握工程化編程的方法引入規格;最後是測試測試和論證的系統學習。
一個學習的OO學習總算是結束,從一開始的java編程小白一步步走到如今,付出了不少,也收穫了不少,過程當中有驚喜有沮喪,固然也少不了一些埋怨,對於課程體系的見解,雖然說其中缺陷很多,效率不高,同窗花費了太多的精力和時間可是總感受事倍功半,可是實事求是的說,可能目前暫時沒法發現更加合適的方法來替代這樣的規則,互測的一些要求可能確實帶來一些負面的影響,可是咱們也仍是須要確定這其中咱們所收穫的技能。更加樂觀的來講,有時當你們由於互測憤怒或是埋怨的時候,是否是也可能換一個角度,這樣的事經歷一遍,之後在其餘狀況碰壁的時候,是否是也能夠慢慢學會淡然處之了。固然這是比較樂觀的說法,
仍是但願課程組能對互測作出一些實質的改進,我以爲最重要的一點是:一門課儘管辛苦,可是它應該讓人在付出以後感受到本身的付出是值得,在獲悉結果的時候,達到預期的同窗感到欣喜,能有成就感,沒有達到預期的同窗儘管沮喪卻會以爲本身仍然須要努力。然而很惋惜,OO課目前的現狀卻徹底不知足這一點,歸納一下就是負能量滿滿,我以爲對一門課程來講這一點是很可悲的,因此但願互測環節能夠有更高的信服力,更高的效率,不至於讓同窗感受收穫徹底沒法匹配付出,結果沒法給出一個讓人信服的標準。
仍然感謝老師和助教的付出,祝OO課愈來愈完善優秀。