人月神话阅读笔记三
“沒有銀彈”
這一章是作者后來加上的
銀彈即銀色子彈,在歐洲民間小說中往往被描繪成具有驅魔功效的武器,后來也被比喻為極端有效的解決辦法。
沒有銀彈”沒有任何技術或管理上的進展,能夠獨立的許諾十年內使軟件系統生產率、可靠性或簡潔性獲得數量級上的進步。
軟件工程的焦油坑在將來很長一段時間內會繼續地使人們舉步維艱,無法自拔。只能期待人們在力所能及的或者剛剛超越力所能及的范圍內進行探索和嘗試。這個復雜的行業需要進行持續的發展;學習使用更大的要素來開發;?新工具的最佳使用;?經論證的管理方法的最佳應用;?良好判斷的自由發揮;?以及能夠使我們認識到自己不足和容易犯錯的——上帝所賜予的謙卑。”
軟件工程的任務分為兩類:根本任務——打造構成抽象軟件實體的復雜概念結構。
次要任務——使用編程語言表達這些抽象實體,在空間和時間限制內將他們映射成機器語言。由于根本任務在任務占比中比重大,想要生產率有數量級式的提高,就觸及了軟件性質的固有困難,就類似于妄談“永動機”。
布魯克斯認為,軟件開發的困難主要分為兩類:
本質性困難:軟件本身在概念建構上存先天的困難;亦即如何從抽抽象性問題,發展出具體概念上的解決方案。
附屬性困難 :將概念上的構思施行于電腦上,所遭遇到的困難。
附屬性困難解決:開發工具的完善,如高級語言的出現,分時技術以及統一的開發環境等;?
本質性困難解決:原因:復雜性、隱匿性、配合性、易變性目前解決方法的探索:高級語言、面向對象編程、人工智能……
總之我現在還在學習,沒有接觸過真正的軟件開發項目,有很多內容我不能完全理解。不過慶幸的是即便如此這本書中的觀點依然給予我軟件工程更宏觀的認識,在以后的學習中必然會對我有很大的幫助,我認為這本書以后依然值得我再讀幾遍。
?
轉載于:https://www.cnblogs.com/wxy2000/p/10397567.html
總結