一、對前期提出的問題的回答
1、對知識不了解的情況下,将代碼寫的不是很規範,雖然程式的結果可以運作出來,但是對整個程式會不會有影響?
答:既然代碼要使用計算機去嚴格執行,同時也需要一些人來看,那我們要擔負的責任就相當大,因為代碼的任何一點差異,都有可能影響程式最終的運作結果,是以編寫代碼不可以出現錯誤。而且最好将代碼編寫規範,這樣可以使代碼達到更好的效果,友善複審,也提高了代碼的品質。在以後的編寫中最好做到簡明、無二義性等,做到代碼規範。
2、在上節課中,說到要實作團隊合作,如果人比較多的話,怎麼能建立一個規範階段?有哪些技巧?
答:規範階段是指跳舞逐漸和諧、合拍,團隊成員就很多事情取得了一緻。一些成文或不成文的規則逐漸建立起來了。是以要建立一個規範階段,就需要所有人的統一,互相學習,互相幫助等。技巧就在于在每個兩人合作的不同階段中都需要好好積累,統一目标。在最開始的萌芽階段,我們需要彬彬有禮,試圖避免沖突和容易引起挑戰的觀點,接納對方。在磨合階段,我們要互相尊重、學習,如果有沖突,也要及時的去處理。通過這些階段,就可以到達規範階段。
3、一個小團隊中,在以後的學習中會不會實作結對程式設計?
答:我們在學習的過程中,實作了結對程式設計。在結對程式設計模式下,一對程式員平等地、互補地進行開發工作。結對程式設計是一個互相學習、互相磨合的漸進過程。開發人員需要适應新的開發模式。一開始,可能效率不高,但通過學習階段後,結對程式設計的開發品質、開發時間通常比兩個人單獨開發有明顯的改善。
4、對一些函數還不是很了解,不知如何去運用,例如:構造函數和析構函數等。
答:構造函數:1、不要在構造函數中做複雜的操作,簡單初始化所有資料成員即可。2構造函數不應該傳回錯誤(事實上也無法傳回)。把可能出錯的操作放到HrInit()或FInit()中。
析構函數:1、把所有的清理工作都放在析構函數中。如果有些資源在析構函數之前就釋放了,記住要重置這些成員為0或NULL。2、析構函數也不應該出錯。
5、從書中的讀者回報中,看到了瀑布模型和軟體測試,還不是很了解。
答:瀑布模型是一個項目開發架構,開發過程是通過設計一系列階段順序展開的,從系統需求分析開始直到産品釋出和維護,每個階段都會産生循環回報,是以,如果有資訊未被覆寫或者發現了問題,那麼最好 “傳回”上一個階段并進行适當的修改,項目開發程序從一個階段“流動”到下一個階段,這也是瀑布模型名稱的由來。包括軟體工程開發、企業項目開發、産品生産以及市場銷售等構造瀑布模型。
軟體測試:描述一種用來促進鑒定軟體的正确性、完整性、安全性和品質的過程。換句話說,軟體測試是一種實際輸出與預期輸出間的稽核或者比較過程。軟體測試的經典定義是:在規定的條件下對程式進行操作,以發現程式錯誤,衡量軟體品質,并對其是否能滿足設計要求進行評估的過程。
二、總結本學期這門課程的體會
通過本學期的軟體工程的學習,我們可以了解到軟體工程牽涉的範圍很廣,而且内容也非常的重要。同時是需要理論和實踐相結合的。在這段期間,我們也進行了結對程式設計和團隊項目,這些都讓我印象深刻。
在上軟體工程課的這個學期,我積累了很多的東西,一開始每周也就寫800多行代碼,後來團隊項目開始後,每周至少要寫1800行左右的代碼,同時還要進行代碼複審,源代碼在團體的部落格中。在學習的過程中,一共寫了10篇部落格,7篇個人部落格和3篇團隊部落格,同時有幾篇團隊總結部落格是有我們團隊共同完成。大概每周都會花6,7個小時在這節課的學習中。
在結對程式設計和團隊項目中,我們每一個人都可以互相學習、磨合、幫助,都可以使我們達到最佳的效果。而且每一個人在程式設計的過程中,都會有自己的方法和技巧,這也讓我們學習到了更多的東西,受益匪淺。當我們其中一人遇到困難時,所有人都會幫助想解決的方法,這也使問題更快的解決。是以,不管是結對程式設計還是團隊項目,都會使我們每一個人變得更好,學的東西也更多。
在學習的過程中,我了解了每個部分的基礎知識,以及他們之間的聯系。前段時間在課本上學習到的理論知識,也可以運用在實際的編寫中。在操作的過程中,使我更好地掌握操作語句的使用方法,也讓我對基本的語句更加的清晰,可以熟練的使用。在程式檢查和調試的過程中,我也會發現問題,并且會仔細的分析,找出錯誤原因,這也培養了我獨立分析問題和解決問題的能力。是以在老師的幫助下,我不光光學到了很多知識,還鍛煉了自身的能力和意志力,使我得到了進一步的提高。同時在這短短的幾個月的時間裡,讓我學到了以前在書本上學不到的知識。讓我度過了生活最為充實的一段時期,而且得到了理論和實踐上的收獲。
這就是我對該課程的體會。在此,也感謝馮花平老師在這段期間對我的指導和幫助。最後,還要感謝所有幫助過我的人。雖然這節課馬上就要結束了,但是我還是會努力争取做到更好。
三、對課程的建議
在軟體工程課中,我覺得理論的講解比較多,是以我希望可以多一些實踐,而且多講一些程式設計的方法和技巧。