在這一章中,作者為我們介紹了一些關於軟體工程的基本知識。
擴充套件的推論:軟體企業=軟體+商業模式
②軟體開發的不同階段:玩具階段→業餘愛好階段→探索階段→成熟的產業階段
③軟體所具有的特殊性:複雜性、不可見性、易變性、服從性、非連續性(由軟體的本質所決定的)
軟體還有其他特性:
·有許多不同的程式語言、軟體工具和軟體開發平台
·存在許多不同的軟體開發流程
·軟體團隊中存在許多不同的角色
·軟體通常既可以儲存在磁帶上,也可以儲存在cd/***上
④作者鄒欣總結的自己做過的專案的各自特點:
• build to learn:開發軟體,構建系統的目的是做進一步的試驗,試圖發現客觀規律或某個試驗方法的優點與缺點。這些專案經常是科研**的基礎工作。
• build to show:為了突出地展現某個技術的作用,開發一些演示為目的的軟體,這些專案很吸引眼球,經常獲得新聞報道,但是功能未必全面。
• build to serve:為了服務一定範圍的目標使用者而構建的工具等,有時以公開的sdk形式發布。
• build to win:以在市場上贏得使用者為目標而構建的軟體。這也是種種科學發現,技術突破最好的試金石。這是我在研究院之外的十餘年中做的最多的專案型別,也是這本書的英文名字。
2.1 單元測試
①重要的單元測試:有效解決程式設計師對模組功能的誤解、疏忽或不了解模組的變化之類的問題,使自己負責的模組功能定義盡量明確,模組的質量得到穩定的、量化的保證。
②好的單元測試的標準:
在最基本的功能/引數上驗證程式的正確性
單元測試必須由最熟悉**的人(程式的作者來寫)
單元測試過後,機器的狀態保持不變
單元測試要快(乙個測試的執行時間是幾秒鐘,而不是幾分鐘)
單元測試應該產生可重複、一致的結果
獨立性——單元測試的執行/通過/失敗不依賴於別的測試,可以人為構造資料,以保持單元測試的獨立性
單元測試應該覆蓋所有**路徑
單元測試應該整合到自動測試的框架中
單元測試必須和產品**一起儲存和維護
③單元測試的基礎上能夠建立關於這一模組的回歸測試,目的是:
(1)驗證新的**的確改正了缺陷
(2)同時驗證新的**有沒有破壞模組的現有功能,有沒有regression
2.2 效能分析工具
效能分析方法:抽樣和**注入
2.3 個人開發流程
個人開發流程psp(personal software process)
特點:(1)不侷限於某一種軟體技術,而是著眼於軟體開發的流程,這樣,開發不同應用的軟體工程師可以互相比較。
(2)不依賴於考試,而主要靠工程師自己收集資料,然後分析、提高。
(3)在小型、初創的團隊中,很難找到高質量的專案需求,這意味著給程式設計師的輸入質量不高。在這種情況下,程式設計師的輸出(程式/軟體)往往質量也不高,然而這並不能全部由程式設計師負責。
(4)psp依賴於資料(工程師輸入資料的時間代價、資料可能遺失或者不準確的風險、可能會出現一些資料不利於工程師本人的情況)
(5)psp目的是記錄工程師如何實現需求的效率,而不是記錄顧客對產品的滿意度,工程師有可能很高效地開發出乙個顧客不喜歡的軟體。
構建之法 讀書筆記一
讀者反饋 驚豔!開啟 構建之法 現代軟體工程 就停不下來,作者把軟體開發講得清晰有趣實用,程式設計師應該人手一冊,通讀完畢,思維水平立馬從業餘公升級到專業!本人今年大三,軟體工程專業,學校是在大二下開始教授軟體工程這門課的。當時採用的教材是國外翻譯進來的,很厚,據說很經典。不過說實話,實在看不懂。老...
構建之法讀書筆記一
第一章 概論 在這一章中,作者為我們介紹了一些關於軟體工程的基本知識。擴充套件的推論 軟體企業 軟體 商業模式 軟體開發的不同階段 玩具階段 業餘愛好階段 探索階段 成熟的產業階段 軟體所具有的特殊性 複雜性 不可見性 易變性 服從性 非連續性 由軟體的本質所決定的 軟體還有其他特性 有許多不同的程...
構建之法讀書筆記
場景 故事 版權 版本 維護人 1.背景 a.典型使用者 姓名 性別 年齡 職業等 b.使用者需求 痛點 c.假設 2.場景 關於這個場景的文字描述角色 與軟體互動的角色,如使用者等其他實體,甚至時間 主要成功場景 一系列步驟 步驟 描述每一步的互動 擴充套件場景 描述一些意外情況 軟體功能說明書 ...