1. 程式人生 > >人月神話3

人月神話3

容易 一次 實體 它的 智能 現在 mil 進行 可靠

今天這篇閱讀筆記主要記錄一下《人月神話》中關於銀彈問題的討論。

首先讓我們來明確一下什麽是銀彈?銀彈在西方是用來獵殺人狼的最有效的工具,那麽將銀彈引申一下,將軟件開發過程中遇到的最困難的問題,最難以解決的根本問題比作人狼,那麽銀彈就是解決這些問題的最有效的方法。

所有軟件活動包括根本任務——打造由抽象軟件實體構成的復雜概念結構,次要任務——使用編程語言表達這些抽象實體, 在空間和時間限制內將它們映射成機器語言。其中次要問題相對來說是比較容易解決的問題,但是在總問題中,次要問題隨著不斷被優化解決,它所占的比例會越來越小,而根本問題所占的比重會越來越大,所以根本問題的矛盾越來越突出,越來越迫切的需要被解決,人們也提出了很多解決根本問題的方法,但是至今為止,仍沒有很好的方法能夠解決這些問題。但是相信隨著技術的不斷進步,知識的不斷積累,根本問題終將被解決。

我們相信,無論是多麽復雜和巨大的問題,我們都能夠將其分解成為比較小的和簡單的問題,通過我們對這些小問題的研究解決,大問題終將被我們所克服。

我們首先回憶一下以往解決次要問題的一些突破。軟件領域中取得的最富有成效的三次進步,每一次都是解決了軟件構建上的巨大困難。這三次進步分別是:高級語言、分時、統一編程環境。高級語言解決了一些次要的軟件復雜度,是程序開發方法越來越接近用戶的復雜度。分時保證了及時性,縮短了系統的響應時間,從而使我們能維持對復雜度的一個總體的把握。統一編程環境,它們主要通過提供集成庫、統一文件格式、管道和過濾器,解決了共同使用程序的次要困難。

通過次要問題的解決,我們對解決根本問題的信心大大增強,同時,我們已能夠看到銀彈出現的希望。

1)高級語言的發展在語言概念上取得了突破性的進展。鼓勵現代設計和模塊化概念運用的重要特性

2)面向對象編程。向對象編程是當今若幹新潮技術中最富有希望的

3)專家系統。人工智能領域最先進的、 被最大範圍使用的部分, 是開發專家系統的技術。專家系統是包含歸納推論引擎和規則基礎的程序,對於解決相同的問題,這種系統明顯比傳統的程序算法要先進很多。

4)環境和工具。開發環境上,現在已經實現的最大成果可能是集成數據庫的使用,用來跟蹤大量的開發細節,供每個程序員精確地查閱信息,以及在整個團隊協作開發中保持最新的狀態。顯然,這樣的工作是非常有價值的,它能帶來軟件生產率和可靠性上的一些提高。 但是,由於它自身的特性,目前它的回報很有限。

其實還有一些針對概念上根本問題的頗具前途的方法。我們必須考慮那些解決軟件上必要困難的活動——即,準確地表達復雜概念結構。我們可以通過以下方式來進行進一步的研究:購買和自行開發、需求精煉和快速原型、增量開發-增長,而非搭建系統、卓越的設計人員。

人月神話3