第一章 概論
在這一章中,作者為我們介紹了一些關於軟體工程的基本知識。
擴充套件的推論:軟體企業=軟體+商業模式
②軟體開發的不同階段:玩具階段→業餘愛好階段→探索階段→成熟的產業階段
③軟體所具有的特殊性:複雜性、不可見性、易變性、服從性、非連續性(由軟體的本質所決定的)
軟體還有其他特性:
·有許多不同的程式語言、軟體工具和軟體開發平台
·存在許多不同的軟體開發流程
·軟體團隊中存在許多不同的角色
·軟體通常既可以儲存在磁帶上,也可以儲存在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目的是記錄工程師如何實現需求的效率,而不是記錄顧客對產品的滿意度,工程師有可能很高效地開發出乙個顧客不喜歡的軟體。
第三章 軟體工程師的成長
3.1 個人能力的衡量與發展
①軟體工程包括了開發、運用、維護軟體的過程中的很多技術、做法、習慣和思想。軟體工程把這些相關的技術和過程統一到乙個體系中,叫「軟體開發流程」,軟體開發流程的目的是為了提高軟體開發、運營和維護的效率,以及提公升使用者滿意度、軟體的可靠性和可維護性。
②初級軟體工程師的成長包括以下幾種:
(1)積累軟體開發相關的知識,提公升技術技能(如對具體技術的掌握,動手能力)。例如:對j**a、c/c++、c#的掌握,診斷/提高效能的技術,對裝置驅動程式、核心偵錯程式的掌握,對於某一開發平台的掌握
(2)積累問題領域的知識和經驗(例如對醫療或金融行業的了解)
(3)對通用的軟體設計思想和軟體工程思想的理解
(4)提公升職業技能(區別於技術技能),包括:自我管理的能力、表達交流的能力、與人合作的能力、按質按量完成任務的執行力
(5)實際成果——最重要的評價標準
3.2 軟體工程師的職業發展
自我評估,自我評價清單:
軟體工程師能力自我評價表
構建之法讀書筆記(一)
在這一章中,作者為我們介紹了一些關於軟體工程的基本知識。擴充套件的推論 軟體企業 軟體 商業模式 軟體開發的不同階段 玩具階段 業餘愛好階段 探索階段 成熟的產業階段 軟體所具有的特殊性 複雜性 不可見性 易變性 服從性 非連續性 由軟體的本質所決定的 軟體還有其他特性 有許多不同的程式語言 軟體工...
構建之法 讀書筆記一
讀者反饋 驚豔!開啟 構建之法 現代軟體工程 就停不下來,作者把軟體開發講得清晰有趣實用,程式設計師應該人手一冊,通讀完畢,思維水平立馬從業餘公升級到專業!本人今年大三,軟體工程專業,學校是在大二下開始教授軟體工程這門課的。當時採用的教材是國外翻譯進來的,很厚,據說很經典。不過說實話,實在看不懂。老...
構建之法讀書筆記
場景 故事 版權 版本 維護人 1.背景 a.典型使用者 姓名 性別 年齡 職業等 b.使用者需求 痛點 c.假設 2.場景 關於這個場景的文字描述角色 與軟體互動的角色,如使用者等其他實體,甚至時間 主要成功場景 一系列步驟 步驟 描述每一步的互動 擴充套件場景 描述一些意外情況 軟體功能說明書 ...