測試就是經過大量的數據對程序進行檢測,論證主要是理論上的東西,就是說給別人爲何個人程序是對的。測試可以保證在你的測試集下你的程序是沒問題的,而論證能作到對可能出錯狀況的總結和歸納。因此二者搭配使用效果最好,這樣能夠在兩個方向上保證程序的正確。多線程
OCL語言是約束(Constraint)語言和查詢(Query)語言。一個約束就是對一個(或部分)面向對象模型或者系統的一個或者一些值的限制。這一點與JSF相似,JSF中requires必需要有必定的限制才行。UML類圖中的全部值均可以被約束,而表達這些約束的方法就是 OCL。在UML2標準中,OCL不只用來寫約束,還可以用來對UML圖中的任何元素寫表達式。在JSF中就是對每一個方法中的過程寫表達式,而後每一個OCL表達式都能指出系統中的一個值或者對象。由於 OCL表達式可以求出一個系統中的任何值或者值的集合,所以它具備了和SQL一樣的能力,也就是說OCL也是一種查詢語言。這一點是JSF所不具備的。學習
OCL的基礎是數學中的集合論和謂詞邏輯,而且它有一個形式化的數學語義,可是它並無使用某種數學符號。由於雖然數學符號可以清晰的、無歧義的表達事物,可是隻有極少的專家能夠看懂。因此數學符號並不適合用於一個普遍應用的標準語言。天然語言是最易懂的,可是它是含混不清晰的。OCL取了天然語言和數學符號的折中方案,使用普通的ASCII字符來表達數學中一樣的概念。若是你不喜歡當前的OCL表達方法,OCL規範還容許你定義本身的OCL符號集,這點是能夠理解的,由於OCL有一個清晰的數學語義。這與JSF中的表述方法一致。測試
這個學期只要學習了面向對象的語言,重中之重是多線程方面的內容,一開始是學習簡單的面向對象的思想,以後是多線程的內容,再日後是工程化的處理問題,學會JSF,學會測試本身的程序。ui
我在設計上的進步應該就是類的劃分愈來愈精細,寫多一些類,每一個類有一些方法。而且在測試本身程序這個問題上,學會了本身構造測試數據,知道了哪些地方容易出錯,知道了該用什麼樣的辦法去避免他們。spa
我以爲OO這門課還不錯,沒什麼建設性的意見,繼續保持吧。線程