程序測試是指測試者特地挑出一批輸入數據,經過運行程序,檢查每一個輸入數據所對應的運行結果是否符合預期要求。編程
正確性證實是論證程序達到預期目的的通常性陳述,而該論證與程序輸入數據的特定值無關,可以表明窮舉性測試。網絡
(以上內容來自網絡)多線程
根據個人理解,測試與正確性比較的最大區別在於測試只能證實程序有錯誤而不能證實其是徹底正確的,而正確性測試能夠作到這一點。可是,對程序作正確性論證顯然要比作測試困可貴多,所以採用哪一種方式要根據實際狀況決定。測試
OCL(object constraint language)對象約束語言,是一種用於施加在指定的模型元素上約束的語言,是一種形式化的無二義的語言。OCL做爲圖形符號的補充,說明建模元素的有關細節。優化
相同點:沒有二義性,具備抽象性。線程
不一樣點:JSF規格能夠描述方法的具體功能,但OCL語言不能夠;OCL語言能夠圖形化表示,而JSF規格必須寫成文字;JSF規格支持更多的運算方式,寫起來比較自由,而OCL做爲一種語言寫起來須要更加嚴謹。設計
第一個單元主要是讓咱們熟悉Java語言和麪向對象編程的思想,這一單元的做業比較簡單。第二單元是對面向對象編程的更深刻的理解,同時在第五次做業引入了多線程,這是整個課程的第一個難點。第三單元主要是讓咱們更加熟悉多線程,學會線程間的同步控制,而且引入了規格化設計思想。第四單元主要是讓咱們學會測試代碼和論證代碼的正確性。這四個單元的知識點按部就班,每個單元的知識點都對上一個單元的知識點作了深化和補充,四個單元學下來可讓同窗們造成本身的知識體系。3d
還記得在第一次做業時,我用面向過程的方法很快就寫完了此次做業。可是,爲了訓練本身的面向對象編程的能力,我在提交當天又把做業按照面向對象的方法從新寫了一遍(當時我認爲是面向對象了,可是如今看來依然問題重重)。在以後的全部做業中,我一直這樣嚴格要求本身,幾乎每次做業都要用大量的測試數據來測試本身的代碼,並把結果與其餘同窗比較,所以這麼屢次做業下來我被報的功能bug比較少。對象
在課程前期,我寫的代碼裏一個方法可能有幾百行,而後從寫出租車的做業開始,我儘可能精簡本身寫的方法,儘管在不斷增長功能的過程當中有的方法仍然過了百行,可是我以爲比起以前的做業已是很大進步。在互評的過程當中,我不多被報功能bug,對被測試者報的規格bug,我都會認真分析,而後每次都在完善本身的JSF規格描述,在完善規格描述的過程當中我常常能看到本身的方法寫得很差的地方,而後我就順手改正。通過幾回優化,我以爲個人最後一次出租車做業的代碼已經能夠說比較優秀(相對本身)。一學期下來,我真切感覺到了本身的進步,掌握了新的編程思想擴充了個人思惟,提高了個人眼界,讓我對編程有了新的認識。blog
我認爲就是要先設計,再編程。先設計每一個類須要幹什麼,每一個方法須要幹什麼,這個類的數據的有效範圍,而後編寫規格,最後實現代碼。最後若是有時間,要對運行結果和方法正確性作充足測試。這樣作能夠把工程裏的bug數降到最低。
但願完善互測機制,而且在公佈指導書以前儘可能消除歧義(我的以爲可讓助教把做業提早實現一遍,而後給助教多發點工資(ง •_•)ง),而後就沒什麼建議了。
身邊好多人都在抱怨OO課可是我以爲還好,課程的設計我以爲沒啥問題,最後祝北航OO愈來愈好吧。