1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 雙十讀書活動總結

        時間:2022-07-07 13:00:46 活動總結 我要投稿
        • 相關推薦

        雙十讀書活動總結范文

          沒有銀彈何以制服“不死人狼”

        雙十讀書活動總結范文

          ——讀《人月神話》第十九章(沒有銀彈)有感

          《人月神話》(英語:The Mythical Man-Month)是由IBM System/360系統之父佛瑞德布魯克斯(英文名:FrederickP.Brooks.Jr.)所著經典文集,全書講解軟件工程、項目管理相關課題,被譽為軟件領域的圣經,內容源于作者布魯克斯在IBM公司System/360家族和OS/360中的項目管理經驗。該書于1975年首次發行(ISBN 0-201-00650-2),并于1995年重新發行紀念版(ISBN 0-201-83595-9)。

          《人月神話》全書共十九章,可以說每一章都是軟件工程的精華,是軟件開發人員的精神食糧,沒有任何一本書敢與之媲美,即使是39年后的今天,當我再次讀到這本書的時候依然有醍醐灌頂之感。

          《沒有銀彈》這一章節,可以說是本書最重要的章節,也是大家最為在意和討論的章節。本章以巧奪天工的比喻開題,講述了在所有恐怖民間傳說的妖怪中,最可怕的是人狼,因為它們可以完全出乎意料地從熟悉的面孔變成可怕的怪物。為了對付人狼,我們在尋找可以消滅它們的銀彈。

          大家熟悉的軟件項目具有一些人狼的特性,常常看似簡單明了的東西,卻有可能變成一個落后進度、超出預算、存在大量缺陷的怪物。因此,我們聽到了近乎絕望的尋求銀彈的呼喚,尋求一種可以使軟件成本像計算機硬件成本一樣降低的尚方寶劍。但是,我們看看近二十年來的情況,沒有銀彈的蹤跡。沒有任何技術或管理上的進展,能夠獨立地許諾在生產率、可靠性或簡潔性上取得數量級的提高。

          所謂的人狼,也就是“軟件活動的根本任務”。首先,Brooks認為我們并沒有足夠的精力來放到“軟件活動的根本任務”這一目標之上。根本任務的目標是抽象軟件構成的復雜概念結構;次要任務的目標是表達抽象實體,在一定范圍內映射成計算機的執行邏輯;我們大多時候在關注次要目標,例如寫程序和開發“寫程序用的”程序;我們寫再多的程序與再強的“寫程序用的”程序都不會觸及到根本任務。

          進一步的分析來說,是我們探索目標的方法,分散了達到目標的力量。軟件實體是一個許多概念交織的建筑:數據集、數據項的關系、算法以及引用函數。其本質是抽象的,概念架構在許多不同的表示方式下是一樣的。編寫軟件最困難的部分是規范、設計和測試這種概念架構,而不是表式他的勞動和測試這一表示的可靠性,F代軟件系統存在的內在的不可減少的特性有:復雜性(Complexity)、遵守隨機的復雜的規范(Conformity)、易變性(Changeability)和不可見性(Invisibility)。高級語言、分時系統、統一編程環境、面向對象編程、人工智能、專家系統、自動化編程、圖形化編程都只是解決了編程偶然的困難,而不能解決

          編程的內在困難。

          1. 復雜性:極端的復雜性不可避免

          軟件系統與計算機、建筑或者汽車大不相同,后者往往存在著大量重復的部分。由于軟件產品特有的復雜度導致了成員之間的溝通非常困難,帶來了軟件產品的進度,質量和成本多方面的問題。特別是在軟件規模增加的時候復雜度往往成倍上升。同時復雜度不僅僅導致技術上的困難,還引發了很多管理上的問題。它使全面理解問題變得困難,從而妨礙了概念上的完整性。所以在復雜性方面,人狼是自療系的:越做越復雜,不可能變簡單。

          2. 一致性:要背上不可丟棄的歷史包袱

          由于Brooks強調新的軟件需要保證跟舊的軟件兼容,你創生了一個軟件也就創生了下一個軟件的需求,所有的創生活動產生了需求的自增集合,盡管這種“變體不是必需的”,但它一個不可丟棄的歷史包袱。某些情況下,因為是開發最新的軟件,所以它必須遵循各種接口。另一些情況下,軟件的開發目標就是兼容性。在上述的所有情況中,很多復雜性來自保持與其他接口的一致,對軟件的任何再設計,都無法簡化這些復雜特性。所以在保證一致性這一方面,人狼是自增長的。

          3. 可變性:要接受持續的變更

          軟件系統包含了很多功能,而功能是最容易感受變更壓力的部分。所有成功的軟件都會發生變更,F實工作中,經常發生兩種情況。當人們發現軟件很有用時,會在原有應用范圍的邊界,或者在超越邊界的情況下使用軟件。功能擴展的壓力主要來自那些喜歡基本功能,又對軟件提出了很多新用法的用戶們。簡言之,軟件產品扎根于文化的母體中,如各種應用、用戶、自然及社會規律、計算機硬件等等。后者持續不斷地變化著,這些變化無情地強迫著軟件隨之變化。需求是無度和不可控的,所以人狼本身又是變形系的。

          4. 不可見性:任務無法全面抽象描述

          除去軟件結構上的限制和簡化方面的進展,軟件仍然保持著無法可視化的固有特性,從而剝奪了一些具有強大功能的概念工具的構造思路。這種缺憾不僅限制了個人的設計過程,也嚴重地阻礙了相互之間的交流。你找不到足夠的抽象方法描述軟件的不同側面,也就不能將它們表達為抽象概念上的圖形。如果你找到了這樣的方法,那么這個“軟件”本身就不足夠復雜,因此也就不是原本含義上的“根本任務”。所以,它是隱形的——你如果看見了它,要么是看見了諸多復雜的方面中的一面,要么根本就是看錯了。

          面對一個具有“自增+自療+變形+隱身”的“不死人狼”,我們何以應對?

          一、 在應對“自療”方面,在軟件產品開發工廠化的過程中,我們要注意到仍然解決的是次要因素,比如加大公用組件開發,加大平臺和框架的建設,而業務功能本身導致的復雜性是無法避免的,F在市場上有很多快速開發平臺,但是真正能夠不寫代碼就完成業務功能的開發平臺基本上沒有成功的,特別是在業務場景比較復雜情況下,編程自動化基本是不可能的事情。唯一看到有所突破的是關于統一框架和技術平臺等方面的建設,在原有的框架基礎上我們可以構建一個產品開發平臺,將跟業務關系不大的權限模型,工作流引擎等集成進去,將常用的可復用組件集成進去,加快開發速度。我們不能在追求自動編程平臺上下功夫,可以在加強組件復用和技術平臺建設上下功夫。

          二、 在應對“自增”方面,我們要在軟件產品的設計過程中,盡可能考慮到軟件的可擴展性。

          三、 在應對“變形”方面,軟件開發的過程必須要考慮如何適應變化,我們要在需求,設計和編碼過程中都需要考慮如何快速響應變化,如何提高軟件產品的可擴展性。我們在軟件開發生命周期模型上強調增量迭代的思路,強調測試驅動的思路其根本目的就是為了快速響應變化,降低變化帶來的風險。

          四、 在應對“隱身”方面,我們要改進軟件開發模型,比如增量迭代的開發模型,快速原型法,測試驅動,高級語言和圖形化編程等。

          總之,盡管我們或許找不到殺死“不死人狼”的銀彈,但是只要我們全面剖析“不死人狼”特性,結合人類的智慧,不斷改進工作思路,隨機應變,找準突破口總能找到有效克制它的方法。

        【雙十讀書活動總結】相關文章:

        雙十一活動總結08-10

        雙十一活動的總結03-23

        雙十一活動總結07-29

        雙十二促銷活動總結04-30

        雙十一促銷活動總結08-16

        商家雙十一活動總結08-22

        舉辦雙十一活動總結10-25

        店鋪雙十二活動總結11-21

        關于雙十一活動總結11-09

        雙十一活動總結通用03-23

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>