1、 論述測試與正確性論證的效果差別,比較其優缺點java
兩者是對代碼正確性論證不一樣策略。正則表達式
(1)測試編程
測試是基於前置條件和後置條件對輸入劃分並抽樣產生測試數據,檢查方法執行輸出安全
是否知足後置條件。多線程
• 優勢:易於實施,工程廣爲採用。經過第十四次做業書寫正確性論證能夠看出來測試相比正確性論證更容易實施,週期更短,對於有時間限制的工程開發來講是很是高效的。eclipse
• 缺點:沒法確保正確性,只能經過的測試發現bug,而不能證實沒有bug。編程語言
(2)正確性論證單元測試
論證是針對格式化的規格和代碼實現,人工方式對代碼邏輯進行分析,確認是否全部學習
知足前置條件的輸入都能產生知足後置條件的結果測試
• 優勢:折衷,形式驗證與天然語言層次邏輯推理相結合。保留了形式化論證的相對按嚴格驗證,同時又保證了相對高效性。
• 缺點:沒法確保天然語言層次邏輯推理的嚴謹性。
2、 調研OCL語言,並比較其與課程所介紹的JSF規格之間的類似和不一樣 之處
OCL(object constraint language)對象約束語言,一種用來進行約束定義的,形式化的無二義的語言。它是是面向對象設計中對圖形符號的補充,可以完善建模元素的相關細節。
(1)二者的類似之處
1)思想相似,都是基於數學中的謂詞邏輯,都採用了形式化的數學語言
2)目標相同,都是但願經過數學化的語言達到理想狀況下的無二義性。
3)結構相似,都有前置後置條件
(2)二者的不一樣之處:
1)我的理解JSF更加偏向行爲描述,而OCL更加偏向於建模過程。
2)由於OCL自己定義了基本數據類型和一些高級數據類型,還有運算符和表達式中的一些書寫規範,幾乎算得上是一種編程語言,這也正對應OCL的實際含義。因此但從表達能力上來講OCL更強,書寫複雜度比JSF低一些。
3)OCL支持上下文(使用context),可是JSF不支持
4)兩者的符號系統不太相同
3、 根據第十四次做業的單電梯系統,針對調度器、電梯、請求隊列和 請求,至少整理出 一幅UML類圖、一幅順序圖和一幅狀態圖,並使用 圖(graph)來表示出模型
UML類圖:
時序圖:
狀態圖:
4、 整理總結一個學期所學所練
4.1闡述四個單元模塊知識點之間的關係
第一單元是面向對象的基礎層次,主要經過三個簡單的單線程做業訓練咱們對java語言的使用以及繼承、接口、多態等面向對象基本特徵的熟悉與掌握,是整個課程的基礎。第二單元進一步貼近真實,強調交互性與多線程,主要訓練了咱們的線程安全設計與對象管理能力。在第二單元的最後提出了SOLID原則,這是接下來課程要求設計須要實現的根本準則,爲3 4單元打好了基礎。第三單元是在代碼訓練的基礎上追求規格化測試,第四單元是測試實踐(包括Junit單元測試以及類實現正確性推理)。前兩個單元強調在代碼層面的練習,後兩個單元是更高的層面—設計和測試層面。
4.2梳理本身所設計實現的程序,分析本身在設計、測試和質量上的進步
很幸運的是去年暑假上了面向對象先導課,讓我在一開始第一單元的時候不至於趕不上。這學期有不少東西都是本身從頭開始學的:多線程、正則表達式。
設計上本身的設計思想更加向面向對象思想上靠近,從最初第一單元的僞面向過程代碼以及強行爲了知足需求進行繼承和接口的劃分到後來本身能夠根據問題抽象天然拆分不一樣的類,組織類之間的繼承關係,慢慢適應了面向對象編程思想。
熟悉了多線程編程,掌握了實時交互式程序的編寫。
設計上比之前作的好多了,最初幾回做業都是一邊寫一邊改,到中期是簡單作了設計寫代碼發現後期改了需求以後老是要大換血,到後來本身也積累出必定經驗,在開始設計的時候就會思考如何提升本身設計的可拓展性來應對各類可能的變動。
鍛鍊了自學能力,跟上學期計組課最大的區別就在於這門課的自學只是2要求比較多。沒有人再會教你設計的思路和工程化開發的方法,具體的知識點只靠老師上課講的是遠遠不能知足做業須要的。這學期自學了很多知識,在寫博客寫做業的過程當中也本身學會了許多eclipse的插件的使用。
4.3闡述本身對工程化開發的理解
提及工程化開發我以爲第一次接觸到這種思想的仍是在上學期計組課的時候,對於清晰的需求,按照老師講的工程化設計開發方法當時感受作工程原來沒有那麼費勁。這學期讓我體驗到了另一種風格的工程化,體會到了如何在需求不斷變動的過程當中實現代碼開發。
4.4對課程的任何指望或建議
在學習過程當中,本身稍微有點體會,如下純屬我的見解。感受設計和編碼整個的順序稍微有點反置了,前兩單元重點在訓練基本面向對象思想和線程安全設計,第三單元才第一次提出設計,提出規格化的思想。可是其實由於第三單元的做業複雜度實際上是本學期相對比較高的,前兩單元大部分同窗並無造成先設計後編碼的習慣,致使第三單元上來面對如此複雜的做業經過完整設計和規格寫代碼你們都有點不是很習慣並且有點困難。就致使了不少人出現了先寫代碼再補規格的狀況。
我的建議:課程能夠考慮一下將設計和規格JSF放在課程開始的比較靠前的位置進行,前3次做業比較簡單,能夠利用簡單做業讓你們先熟悉一下怎麼按照設計寫規格,按照規格寫代碼的流程,爲第三單元複雜做業的設計與規格作好鋪墊。
其餘對課程組的指望就是有關需求問題和測試問題,只能說本身不才,這方面只能看到問題,也想不出什麼太好的解決方法,在此就再也不說明了。