人月神話 軟體開發現狀

2021-08-08 22:20:37 字數 865 閱讀 8917

黃國強 2023年03月5日                                    

人月神話的作者frederick p. brooks jr這樣說到「所有軟體活動包括根本任務--打造構成抽象軟體實體的複雜概念結構,次要任務-使用程式語言表達這些抽象實體,在空間和時間限制內將他們對映成機器語言。」

這句話我的理解就是這樣,軟體開發是由分析建模(根本任務)和程式設計(次要任務)兩部分組成。

這本書已經出版了二十多年了,當年作者對軟體斷言沒有銀彈(即沒有好的開發方法)的結論目前看依然成立。因為目前軟體領域開發方法的創新依然集中在次要任務的解決。而對根本任務地解決依然缺乏有效的方法。為什麼這麼說了?根本任務中提到了「概念」這個詞。

那麼什麼是概念?比如桌子就是乙個概念。那麼能否給桌子乙個精確定義呢?我們這時就會發現這個非常困難。比如桌子有腿嗎?如果有腿,那麼幾條腿才叫桌子?

顯然,精確定義只存在數學中,數學概念基本上都是可以精確定義的,比如正方形。

我們生活中的概念一般稱為自然概念。描述概念有三個方法:經典方法、概率方法和標本方法。一般認為經典理論是由亞里斯多德提出,主要通過定義一系列充分必要的屬性來定義概念。經典理論對於數學概念描述非常擅長,但不適合解決自然概念,比如上面講的桌子。目前在軟體開發中概念的定義主要使用這個方法。儘管存在著剛才所說的侷限性。概率方法是通過乙個事物滿足一系列特徵的概率來區分概率。標本方法是通過指定多個標本來區分概念。比如描述鳥的概念,就做了很多鳥的標本。

顯然,概率方法和標本方法用計算機語言描述都異常困難,當然全世界做這方面研究的公司和個人都非常多。但進展很有限。因為我們知道,計算機歸根結底是乙個邏輯機器,對於模糊的事物處理非常困難。所以我覺得這個突破要依賴於人類對自己大腦的研究,即認知科學的發展。

可以想象,軟體開發人員的苦海依然沒有盡頭。

人月神話和敏捷開發的注釋

人月神話和敏捷開發,很衝突的兩本書,我個人理解在軟體工程中一種是瀑布開發,一種是迭代開發 人月神話 瀑布開發 1 1 3專案計畫 2 1 6編碼 3 1 4整合 初期測試 4 1 4測試 部署 敏捷開發 迭代開發 1 個體和互動 勝過 過程和工具 2 可以工作的軟體 勝過 面面俱到的文件 3 客戶合...

軟體開發人月成本估算方法

軟體專案管理 軟體開發階段 需求分析 系統設計 編碼 測試 專案管理 文案 軟體開發人月成本估算方法 1 開發人員工資 b 2 國家規定的福利 五險一金 0.476b 3 獎金以及物資獎勵 過節費等 0.2b 4 辦公成本 辦公場地,水電費,差旅費,其他費用 b 3 5 人力資源儲備費 企業人員流動...

人月神話 軟體介面互動和易用性改進總結

軟體的智慧型和記憶功能 1.使用者登入介面最好有使用者名稱和id的記憶,焦點直接定位到密碼輸入框 2.單據錄入介面最好有儲存和載入預設值的功能 3.單據搜尋介面可以儲存使用者自定義的各種搜尋條件組合 4.使用者調整過的grid的列寬,視窗的位置可以自動記憶 5.系統可以根據使用者的使用頻度對相關功能...