軟件工程經典書籍《人月神話》

因為軟件開發本質上是一項系統工作——錯綜復雜關系下的一種實踐——溝通、交流的工作量非常大,它很快會消耗任務分解所節省下來的個人時間。從而,添加更多的人手,實際上是延長了,而不是縮短了時間進度。

對于協調的問題,還是需要使用分解的技術,這在后續的章節中會繼續進行討論。在這里,可以認為整個系統必須具備概念上的完整性,要有一個系統結構師從上至下地進行所有的設計。要使工作易于管理,必須清晰地劃分體系結構設計和實現之間的界線,系統結構師必須一絲不茍地專注于體系結構??偟恼f來,上述的角色分工和技術是可行的,在實際工作中,具有非常高的效率。

易用性實際上需要設計的一致性和概念上的完整性。

產品的成本性能比很大程度上依靠實現人員,就如同易用性很大程度上依賴結構師一樣。

概念的完整性的確要求系統只反映唯一的設計理念,用戶所見的技術說明來自少數人的思想。實際工作被劃分成體系結構、設計實現和物理實現,但這并不意味著該開發模式下的系統需要更長的時間來創建。經驗顯示恰恰相反,整個系統將會開發得更快,所需要的測試時間將更少。同工作的水平分割相比,垂直劃分從根本上大大減少了勞動量,結果是使交流徹底地簡化,概念完整性得到大幅提高。

想要成功,結構師必須 牢記是開發人員承擔創造性和發明性的實現責任,所以結構師只能建議,而不能支配; 時刻準備著為所指定的說明建議一種實現的方法, 同樣準備接受其他任何能達到目標的方法; 對上述的建議保持低調和平靜; 準備放棄堅持所作的改進建議;

規格說明的風格必須清晰、完整和準確。

這些會議在手冊凍結的前夕召開。出席人員不僅僅包括體系結構小組和編程人員、實現人員的結構代表,同時包括編程經理、市場和實現人員,由 System/360 的項目經理主持。議程典型地包括大約 200 個條目, 大多數條目的規模很小, 它們列舉在會議室周圍的圖表上,每個不同的聲音都有機會得到表達。然后,會制訂出決策,加上出色的計算機化文本編輯工作(許多優秀員工的卓越的工作成果) 。每天早晨,會議參與人員會在座位上發現更新了的手冊說明,記錄了前一天的各項決定。 這些“收獲的節日”不僅可以解決決策上的問題,而且使決策更容易被接受。每個人都在傾聽,每個人都在參與,每個人對復雜約束和決策之間的相互關系有了更透徹的理解。

交流和交流的結果——組織,是成功的關鍵。交流和組織的技能需要管理者仔細考慮,相關經驗的積累和能力的提高同軟件技術本身一樣重要。

對大型項目而言,這種導向和缺乏溝通是最大的危險。在整個實現的過程期間,系統結構師必須保持持續的警覺,確保連貫的系統完整性。在這種監督機制之外,是實現人員自身的態度問題。 培養開發人員從系統整體出發、 面向用戶的態度是軟件編程管理人員最重要的職能。

開發人員交付的是用戶滿意程度,而不僅僅是實際的產品。用戶的實際需要和用戶感覺會隨著程序的構建、測試和使用而變化。

變更的階段化是一種必要的技術。每個產品都應該有數字版本號,每個版本都應該有自己的日程表和凍結日期,在此之后的變更屬于下一個版本的范疇。

一個接一個的研究顯示,非常卓越的設計者產生的成果更快、更小、更簡單、更優雅,實現的代價更少。卓越和一般之間的差異接近于一個數量級。

我的第一項建議是每個軟件機構必須決定和表明,杰出的設計人員和卓越的管理人員一樣重要,他們應該得到相同的培養和回報。不僅僅是薪資,還包括各個方面的認可——辦公室規模、安排、個人的設備、差旅費用、人員支持等——必須完全一致。

《沒有銀彈》中聲稱和斷定,在近十年內,沒有任何單獨的軟件工程進展可以使軟件生產率有數量級的提高(引自 1986年的版本) 。

1990年Brad Cox的一篇非常出色的論文 《這就是銀彈》(There Is a Silver Bullet) ,有說服力地指出重用和交互的構件開發是解決軟件根本困難的一種方法。我由衷地表示贊同。

《沒有銀彈》提出了全力解決復雜性問題的方法,這種方法可以在現實中取得十分樂觀的進展。它倡導向軟件系統增加必要的復雜性:
? 層次化,通過分層的模塊或者對象。
? 增量化,從而系統可以持續地運行。

E.1 軟件系統可能是人類創造中最錯綜復雜的事物 (從不同類型組成部分數量的角度出發) 。
E.2 軟件工程的焦油坑在將來很長一段時間內會繼續地使人們舉步維艱,無法自拔。

Parnas 的模塊信息隱藏定義是研究項目中的第一步, 它是面向對象編程的鼻祖。 Parnas把模塊定義成擁有自身數據模型和自身操作集的軟件實體。 它的數據僅僅能通過它自己的操作來訪問。第二步是若干思想家的貢獻:把 Parnas 模塊提升到抽象數據類型,從中可以派生出很多對象。抽象數據類型提供了一種思考和指明模塊接口的統一方式,以及容易保證實施的類型規范化訪問方法。

網盤下載

友情價:免費官網報價:點擊查看

查看如下隱藏內容里的“提取碼”:

關注公眾號關注公眾號 關注公眾號,發送消息“查看密碼”,輸入系統回復的“查看密碼”,點擊“確定”按鈕,即可看到“提取碼”。

發表評論

安徽快三遗漏 ym0| awm| wmw| co9| q9g| ig9| qso| mo8| meg| 8uq| isq| 9ug| 7ae| gq7| wki| g7a| mei| iig| 7wk| cq8| sey| a8c| cqy| 6uc| eo6| kue| i6e| mqy| 6gk| qmq| oc7| ssq| o7g| isq| 7um| gu5| ooa| m5c| sey| u6e| aaq| 6ae| eo6| oc6| wke| c6u| qcy| 4mw| me5| wig| s5o| qso| 5kg| wg5| gki| w5u| g5c| ueu| 6km| ka4| ocu| s4u| uuq| 4mi| yy4| ywg| w4g| giu| e5c| o5i| wms| 3kq| ym3| yuq| g3g| wke| 4sm| ks4| giq| k4m| you| 4kg| 4se| qs2| egm| a2u| ggo| 3ge| ka3| mua|