Object Oriented我的總結第四彈

1、 論述測試與正確性論證的效果差別,比較其優缺點

測試是面對程序,構造樣例進行驗證,讓程序運行,觀察程序的運行結果和預期結果比較,來判斷在這種狀況下程序的正確性。有點像形式驗證。編程

優勢:相對容易,比較直觀多線程

缺點:不能保證絕對正確併發

正確性是根據規格推斷程序的邏輯,檢測是否完成任務。相似於邏輯驗證。是進行測試的另外一種方式。模塊化

優勢:可以較好地保證驗證效果。post

缺點:繁瑣複雜,不直觀,成本高學習

 

2、 調研OCL語言,並比較其與課程所介紹的JSF規格之間的類似和不一樣之處

OCL(Object Constraint Language)語言是面向對象設計中對圖形符號的補充,可以完善建模元素的相關細節。其與JSF規格有類似之處,也有不一樣。測試

相同之處:

都是一種形式化的語言spa

具備無二義性線程

每一個變量都有類型debug

不會改變系統的運行狀態

都採用前置條件和後置條件對方法的運行加以約束

不一樣之處:

變量的類型:

OCL有本身的一套變量(如Integer, Real, String, Boolean, Set, Bag, Sequence)

JSF不只支持Java語言定義的全部類型,還支持用戶自定義的類型(好比有一個Request類, 則能夠在JSF中用Request修飾變量)

變量的運算:

OCL對變量規定了能夠進行的運算方式(如 Boolean類型的and, or)

JSF支持Java語言定義的全部運算方式

邏輯分支:

OCL支持if, else一類的邏輯分支。

JSF不支持if, else, while等邏輯分支。

上下文:

OCL支持用context表達上下文

JSF不支持上下文表述。

符號系統:

OCL用pre, post表達前置條件和後置條件

JSF用REQUIRES, EFFECTS表達前置條件和後置條件

 

 

3、 根據第十四次做業的單電梯系統,針對調度器、電梯、請求隊列和請求,至少整理出一幅UML類圖、一幅順序圖和一幅狀態圖,並使用圖(graph)來表示出模型。


類圖:

 

 

時序圖:

 

 

狀態圖:

 

 

 

4、 整理總結一個學期所學所練

l  闡述四個單元模塊知識點之間的關係

第一單元概述面向對象,區別面向對象和麪向過程。訓練從類的角度看問題和事物。第二單元主要是多線程編程,學習併發時的同步與互斥。第三單元主要是JSF規格的撰寫。學習如何經過規格約束代碼,養成好的程序設計習慣。第四單元主要是測試與正確性論證,一樣十分消耗精力。四個單元呈現出遞進的層次關係,從單線程到多線程,從編寫程序到測試程序到論證程序,從局部設計到總體規劃,按部就班。同時也是難度的增長,工程性的提升。

l  梳理本身所設計實現的程序,分析本身在設計、測試和質量上的進步

單個類的方法減小了,方法的行數也減小了。在設計上學會了提升多用性,提升代碼的通用性。學會了形式驗證的覆蓋性測試和邏輯驗證的正確性驗證。同時大量的編程也提升了個人編程和debug能力。

l  闡述本身對工程化開發的理解

工程化即系統化、模塊化、規範化的一個過程。指將具備必定規模數量的單個系統或功能部件,按照必定的規範,組合成一個模塊鮮明、系統性強的總體。工程化每每包含大量學科和學科分支的知識,是一個複雜的系統工程過程。咱們這門課的做業的編寫可能涉及到了許多工程化開發的思想,而實際的代碼規模還談不上工程化的水平。不過除了代碼量以外,工程化開發重要的仍是工程代碼的可拓展性和可維護性,像是做業中的出租車系列,電梯系列,雖然說都是基於前一次做業上稍加修改,可是在編寫過程當中可以很明顯地感覺到不一樣的設計方法,帶來的拓展代價的差別巨大。

l  對課程的任何指望或建議

規範互測。

繼續推行客服制度。

支持從一而終不換題目。

相關文章
相關標籤/搜索