規模控制
空間技能
資料的表現形式是程式設計的根本
計算機產品的文件
**、**、**:這三個因素互相牽制,決定了專案的成敗
軟體專案的文件
為什麼要有正式的文件
不變只是願望,變化才是永恆——斯威夫特
普遍的做法是,選擇一種方法,試試看;如果失敗了,沒關係,再試試別的方法。不管怎麼樣,重要的是先去嘗試——富蘭克林·羅斯福
程式維護中的乙個基本問題是——缺陷修復總會以固定(20%~50%)的機率引入新的bug。所以,整個過程是前進兩步,後退一步
前進一步,後退一步
lehman和blay研究了大型作業系統的一系列發布版本的歷史。他們發現模組總數量隨版本號的增加呈線性增長,但是受到影響的模組數量隨版本號的增加呈指數增長。所有修改都傾向於破壞系統的架構,增加了系統的混亂程度(熵)。用在修復原有設計上瑕疵的工作量越來越少,而早期維護活動本身所引起的漏洞的修復工作越來越多。隨著時間的推移,系統變得越來越無序,修復工作遲早會失去根基。每一步前進都伴隨著一步後退。儘管系統在理論上一直可用,但實際上,整個系統已經面目全非,無法再成為下一步進展的基礎。而且,機器在變化,配置在變化,使用者的需求在變化,現實系統不可能永遠可用。嶄新的、基於原有系統的重新設計是完全必要的。
系統軟體開發是減少混亂度(減少熵)的過程,所以它本身是處於亞穩態的。軟體維護是提高混亂度(增加熵)的過程,即使是最熟練的軟體維護工作,也只是放緩了系統退化到非穩態的程序。
人月神話 人月
缺乏合理的進度安排是造成專案滯後的最主要的原因,它比其他所有因素加起來的影響還大 引起的原因 a.估算技術不嚴謹科學,缺乏有效研究,建立在不真實的假設 一切會執行良好 b.對進度缺少跟蹤和監督 c.認為人月可以互換,進度與工作量不等同 程式設計人員的樂觀主義 人月關係 a.人員和時間的關係 完全可以...
《人月神話》 第16章 沒有銀彈
摘要 關注軟體任務中的必要任務 介紹 沒有銀彈 根本困難 軟體開發中困難的部分是規格說明 設計和測試這些概念上的結構,而不是對概念進行表達和對實現逼真程度進行驗證。軟體系統中無法規避的特性 以往解決次要困難的一些突破銀彈的希望 針對概念上根本問題的頗具前途的方法 生產率公式 購買和自行開發。構建軟體...
人月神話筆記 焦油坑 人月神話
程式 程式設計系統 程式設計產品 程式設計系統產品 程式設計產品 程式設計系統 程式設計系統產品 美食的烹調需要時間 片刻等待,更多美味,更多享受。good cooking takes time.if you are made to wait,it is to serve you better,an...