16061189 於金澤java
論述測試與正確性論證的效果差別,比較其優缺點算法
測試:編程
我的理解測試的做用是經過構造相應的測試用例。實現對代碼中的語句和分支的覆蓋,以此證實代碼的實現的正確性,測試代碼執行的結果與預期數據相匹配。重點在於測試樣例集的正確性以及構造樣例的複雜性和邊緣數據等,所以測試依賴於測試數據的覆蓋率以儘量實現更加充分的測試,若是測試不充分,則沒法發現隱藏的bug,同時即便測試經過也沒法證實沒有bug的存在。多線程
正確性論證:單元測試
正確性論證依賴於代碼邏輯和算法的正確性,經過論證,證實本身代碼的實現與所預期的正確的算法過程相匹配。所以,經過正確性論證理論上能夠保證代碼中沒有bug的存在。可是,正確性論證須要的時間成本和人力成本太高。學習
調研OCL語言,並比較其與課程所介紹的JSF規格之間的類似和不一樣之處測試
對象約束語言(Object Constraint Language),簡稱OCL,是一種指示用戶建模系統中的限制方式。 在對象約束語言中,對象表明了系統的組件,它定義了完善的項目,約束表明限制,而語言並不是是指一種正式的計算機語言。優化
OCL是一種形式語言,能夠應用於任何實現方式的非正規語言。對象約束語言對UML中圖形或其餘組件都沒有控制權,它只是在使用時返回值。OCL並不能修改對象的狀態,而是用來指示對狀態的修改什麼時候發生。線程
OCL表達式以附加在模型元素上的條件和限制來表現對該對象的約束,其中包括附加在模型元素上的不變量或約束的表達式、附加在操做和方法上的前置條件和後置條件等。debug
OCL語言雖然是一種形式化語言,可是它既具備形式化語言無二義性的特色,又消除了形式化語言的複雜性。
OCL與JSF相比,約束條件更加充分並且有更高的要求,可是與JSF相比,較爲臃腫,JSF更爲簡潔可是在各方面的要求不高並且不夠明確。
根據第十四次做業的單電梯系統,針對調度器、電梯、請求隊列和請求,至少整理出一幅UML類圖、一幅順序圖和一幅狀態圖,並使用圖(graph)來表示出模型
本課程的四個單元:
四個單元的知識點由淺入深,逐漸從入門向深,從簡單的程序逐漸向一個較爲完整充分的小型項目遞進
在本學期以前,由於已經選過面向對象的先導課而已經接觸了一些面向對象編程的思想,可是當時尚未接觸過項目開發等方面的內容,並且對於編程理解等內容也不夠深。
所以,在程序設計方面,經過一整個學期的折磨,在程序設計、代碼流程設計等方面有了一些進步,在第十四次做業重構本身第三次做業的代碼時,感受本身第三次的代碼不管是風格,單個方法代碼行數等方面都不如如今,每一個類的功能、屬性等不夠明確,對於java自帶的一些方法的使用也不夠靈活。
在測試和質量方面,穩定性和可讀性都有所提升,雖然我的以爲在算法等方面沒有什麼進步,依舊是靠本身幹想實現的,可是和之前相比,由於更爲了解一些可能出現的問題、可優化之處,因此從代碼來看應該是有所提升的,尤爲是多線程編程方面。
強烈建議助教維護一個在線文檔或者公開置頂的討論帖,實時更新新增和修改的內容,以供助教本身和學生查驗。