首先說一點,因爲個人書是不知道從哪裏搞來的,因此本來在書本最後的「給任課老師和助教的建議」被提早到了書本的前面幾頁
頗有多是盜版書。。。因此在本篇做業當中,頁碼會有誤差,一切以標題爲準。前端
軟件工程是把系統的、有序的、可量化的方法應用到軟件的開發、運營和維護的上的過程。軟件工程包括下列領域:軟件需求分析、軟件設計、軟件構建、軟件測試和軟件維護。軟件工程和下列的學科相關:計算機科學、計算機工程、管理學、數學、項目管理學、質量管理、軟件人體工學、系統工程、工程設計和用戶界面設計。程序員
以上是書中原文對軟件工程的解釋。
講實話,若是沒學這本書,我不會想到軟件工程有包含這麼多知識點。我最早開始,認爲這門課可能就是教一教咱們如何去開發一個軟件,而後就是無窮無盡的打代碼。但上完兩堂課後,我發現我錯了,這門課並非要讓你真正的去無盡的編程,而是想讓看這本書的人去學會軟件開發流程的思想。"軟件 = 程序 + 軟件工程",這本書,從基本概念到職業規劃,從瀑布模型到敏捷開發,從軟件測試到質量保證,從代碼規範到用戶體驗,只要是軟件開發會涉及的方面,這本書都涉及到了。可是我一直都有一個疑問,那就是軟件工程爲何須要掌握這麼多思想?這對之後的實際軟件開發會帶來多少的好處?編程
單元測試應該覆蓋全部代碼路徑
單元測試應覆蓋所測單元的全部代碼路徑,包括錯誤處理路徑。爲了保證代碼覆蓋率,單元測試必須測試公開的和私有的函數和方法。…………100%的代碼覆蓋率並不等同於100%的正確性!設計模式
對於我這種代碼白癡,我想提的第一個問題:什麼是代碼覆蓋率?(。。。)
第二個問題:100%的代碼覆蓋率並不等同100%的正確性,那麼要怎麼樣才能保證100%的正確性?函數
「代碼規範」能夠分爲兩個部分:
1.代碼風格規範,主要是文字上的規定,看似表面文章,實際上很是重要。
2.代碼設計規範,牽涉到程序設計、模塊之間的關係、設計模式等方方面面的通用原則。單元測試
我能夠明白代碼規範在軟件開發當中是十分重要的,但我想問:學習
每人在各自獨立設計、實現軟件的過程當中難免要犯這樣那樣的錯誤。在結對編程中,由於有隨時的複審和交流,程序各方面的質量取決於一對程序員中各方面水平較高的那一位。這樣,程序中的錯誤就會少不少,程序的廚師質量就會高不少,這樣會省下不少之後修改、測試的時間。具體地說,結對編程有以下的好處:
1.在開發層次,結對編程能提供更好的設計質量和代碼質量,兩人合做解決問題的能力更強。
2.對開發人員自身來講,結對工程能帶來更多的信心,高質量的產出能帶來更高的知足感。
3.在企業管理層次上,結對編程能更有效地交流,相互學習和傳遞經驗,分享知識,能更好的應對人員流動。總之,若是運用得當,結對編程能夠取得更高的投入產出比(Return of Investment)測試
其實,書中的原文已經將結對編程的好處說得十分清楚了,我也明白做者的意思。但我以爲,做者的想法一切都是理想化的。若是將結對編程放在咱們現實的學習中,結對編程真的會對咱們形成很大的益處嗎?職業規劃
軟件開發不可能一次性知足全部利益相關者的要求,可是咱們必定要讓相關角色在這個階段有機會提出他們的需求和意見。同時,要弄清楚「他們想要從軟件中獲得什麼」。設計
咱們作軟件開發,最終的目的,就是將軟件交付給用戶。而用戶的體驗好壞,直接決定了咱們軟件的成功或者失敗。所以,用戶需求確實是咱們須要瞭解的大頭。