二看《人月神話》,摘錄一些理解的句子,算是閱讀的總結吧。
1)要成爲系統構建,程序必須按照一定要求來來編制。輸入輸出在語法和語義上與精確定義的接口一致。
精確定義的接口:符合支持實際的 應用情景。
輸入輸出:很明確,簡單的輸出。與 函數功能單一性統一。
2)功能模塊的相互交互產生 bug。交互包含錯誤,邊界極值的情況,引起bug。
功能模塊 不應該依賴模塊以外的邏輯,依賴接口(抽象的使用)。
3)當意識到項目進度偏移時,增加人手猶如汽油滅火。
4)無論多少個母親,孕育生命都需要十個月。次序上不能分解的軟件也具有這個特徵
5)可分解任務的軟件工程增加人手。帶來培訓成本,相互交流成本
培訓:項目目標,總體策略上培訓。無關編程經驗
交流成本:即溝通成本。每個部分與其他部分協作,即增加了溝通n*(n-1)。人越多需要的溝通成本越多。
6) 軟件經驗法則:1/3計劃時間,1/6編程時間,1/4構件測試,1/4系統測試。
系統測試非常重要。
7)向落後的項目中增加人手,只會增加項目的滯後。
人員數量取決於子任務數量。
8)外科手術隊伍。客觀上的概念統一性非常重要
大型工程觀點不一致由外科醫生統一決策。概念的統一
清晰的劃分 體系結構設計 和 實踐 的界線,使工作易於管理。
9)概念的統一性,反應了一系列的連貫的設計思路
概念的完成性決定了使用的容易程度