所有軟體活動包括根本任務——打造由抽象軟體實體構成的複雜概念結構,次要任務——使用程式語言表達這些抽象實體, 在空間和時間限制內將它們對映成機器語言。其中次要問題相對來說是比較容易解決的問題,但是在總問題中,次要問題隨著不斷被優化解決,它所佔的比例會越來越小,而根本問題所佔的比重會越來越大,所以根本問題的矛盾越來越突出,越來越迫切的需要被解決,人們也提出了很多解決根本問題的方法,但是至今為止,仍沒有很好的方法能夠解決這些問題。但是相信隨著技術的不斷進步,知識的不斷積累,根本問題終將被解決。
我們相信,無論是多麼複雜和巨大的問題,我們都能夠將其分解成為比較小的和簡單的問題,通過我們對這些小問題的研究解決,大問題終將被我們所克服。
我們首先回憶一下以往解決次要問題的一些突破。軟體領域中取得的最富有成效的三次進步,每一次都是解決了軟體構建上的巨大困難。這三次進步分別是:高階語言、分時、統一程式設計環境。高階語言解決了一些次要的軟體複雜度,是程式開發方法越來越接近使用者的複雜度。分時保證了及時性,縮短了系統的響應時間,從而使我們能維持對複雜度的乙個總體的把握。統一程式設計環境,它們主要通過提供整合庫、統一檔案格式、管道和過濾器,解決了共同使用程式的次要困難。通過次要問題的解決,我們對解決根本問題的信心大大增強,同時,我們已能夠看到銀彈出現的希望。
個人感受:對於乙個軟體來說,根本任務是對於整個專案的架構以及整體邏輯,次要任務才是使用程式語言來實現這個架構邏輯。而要想設計出完美的邏輯架構則需要對大量的程式語言有著深入的了解,現階段所學的各種語言的真實目的不只是學會並使用它,更重要的是掌握它的精髓,藉此去了解軟體世界的真面目。在未來兩年內,所學到的所有學科都只是軟體世界的敲門磚,如果把這一切聯絡起來,則會發現一片新的世界。
人月神話閱讀筆記03
人月神話拜讀完了,真的感覺學到了很多,受益匪淺,書開始就形象有有趣的把軟體危機比作 焦油坑,交流至關重要,實踐是最好的老師,文件撰寫是軟體人的必修課,這本書讓我們對軟體工程有了更深一步的理解,有了全新的認識,軟體工程焦油坑在相當長時間內仍會存在,我們必須努力學習,不斷創新,獲得更大的進步。一 我過去...
人月神話閱讀筆記03
今天我閱讀的是貫徹執行一節。假設乙個專案經理已經擁有行事規範的結構師和許多程式設計實現人員,那麼他如何確保每個人聽從 理解並實現結構師的決策?對於乙個由 1000 人開發的系統,乙個 10 個結構師 的小組如何保持系統概念上的完整性?首先要有文件化的規格說明,即手冊。手冊或者書面規格說明,是乙個非常...
人月神話閱讀筆記03
人狼這種民間傳說中存在的怪物,會在月圓之夜由我們熟悉的人類面孔變成可怕的狼臉。我們熟悉的軟體專案也有著人狼的特性,看似簡單明瞭的外表,但是卻可能隨時變成乙個進度落後 超出預算 存在大量缺陷的怪物。在民間傳說中對付人狼唯一可靠的 就是銀彈。所以銀彈在軟體專案中就是比喻這種使得軟體成本像計算機硬體成本一...