欧洲免费无码视频在线,亚洲日韩av中文字幕高清一区二区,亚洲人成人77777网站,韩国特黄毛片一级毛片免费,精品国产欧美,成人午夜精选视频在线观看免费,五月情天丁香宗合成人网

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 公文素材 > 范文素材 > 人月神話讀書(shū)筆記

人月神話讀書(shū)筆記

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-17 12:19:41 | 移動(dòng)端:人月神話讀書(shū)筆記

第一篇:人月神話讀書(shū)筆記

 人月神話這本書(shū)幾年前就聽(tīng)別人說(shuō)是本很經(jīng)典的軟件開(kāi)發(fā)方面的書(shū),這本書(shū)的成功之處在于他思想的前衛(wèi)性,以至于不只是軟件行業(yè)的人在讀,F(xiàn)在終于找到讀他的理由了,可以感受一下大師的杰作。在讀之前我已經(jīng)讀過(guò)了軟件工藝和極限編程,為什么留到最后讀人月神話呢?主要是因?yàn)槲矣X(jué)得一本能夠流傳30年還被人們津津樂(lè)道的書(shū),肯定是本學(xué)要好好細(xì)讀的書(shū),所以留到了最后。按照前兩篇讀書(shū)筆記的慣例,前面幾段是一些我讀書(shū)時(shí)的感受和收獲,還有一些對(duì)內(nèi)容的評(píng)價(jià)。

從這本書(shū)的內(nèi)容來(lái)看,對(duì)于一個(gè)項(xiàng)目經(jīng)理來(lái)說(shuō)肯定會(huì)有更大的收獲,這本書(shū)主要是針對(duì)軟件開(kāi)發(fā)管理方面的內(nèi)容,這主要原因可能是因?yàn)樽髡咭郧熬褪琼?xiàng)目的管理者,他是站在管理者的角度寫(xiě)的。即便這樣,對(duì)于一個(gè)從來(lái)沒(méi)有參與過(guò)真實(shí)項(xiàng)目開(kāi)發(fā),更沒(méi)有領(lǐng)導(dǎo)過(guò)團(tuán)隊(duì)的我還是有一定的吸引力,這本書(shū)中我最喜歡的就是前四章(焦油坑、人月神話、外科手術(shù)隊(duì)伍、貴族專(zhuān)制、民主政治和系統(tǒng)設(shè)計(jì))和沒(méi)有銀彈這章。這本書(shū)里面為了論證某一觀點(diǎn),會(huì)舉出許多實(shí)際的項(xiàng)目作為證據(jù),這一點(diǎn)非常好,事實(shí)勝于雄辯嘛!這些例子也許對(duì)于作者那個(gè)年代的人來(lái)說(shuō)很好理解,但是放在30年后來(lái)看這些例子又有些陳舊和難懂了。另外,從文中我發(fā)現(xiàn)作者非常注重文檔,一個(gè)優(yōu)質(zhì)的文檔就是項(xiàng)目成功的保證,這一點(diǎn)與傳統(tǒng)的軟件工程很相似,但是卻與極限編程的觀點(diǎn)相悖。下面就是一些讀書(shū)的總結(jié)了。

焦油坑 1. 編程系統(tǒng)產(chǎn)品開(kāi)發(fā)的工作量是供個(gè)人使用的、獨(dú)立開(kāi)發(fā)的構(gòu)件程序的九倍。

2. 編程行業(yè)的一些內(nèi)在固有苦惱:

l 將做事方式調(diào)整到追求完美,是學(xué)習(xí)編程的最困難部分。

l 由其他人來(lái)設(shè)定目標(biāo),并且必須依靠自己無(wú)法控制的事物。

l 真正的權(quán)威來(lái)自于每次任務(wù)的完成。

l 任何創(chuàng)造性活動(dòng)都伴隨著枯燥艱苦的勞動(dòng),編程也不例外

l 人們通常期望項(xiàng)目在接近結(jié)束時(shí)(bug、工作時(shí)間)能收斂得快一些,然而軟件項(xiàng)目的情況卻是越接近完成,收斂得越慢。

l 產(chǎn)品在即將完成時(shí)總面臨著陳舊過(guò)時(shí)的威脅。 人月神話 1. 缺乏合理的時(shí)間進(jìn)度是造成項(xiàng)目滯后的最主要原因,它比其他所有因素加起來(lái)影響還大。

2. 良好的烹飪需要時(shí)間,某些任務(wù)無(wú)法在不損害結(jié)果的情況下加快速度。

3. 我們的構(gòu)思是有缺陷的,因此總會(huì)有bug。

4. 我們圍繞成本核算的估計(jì)技術(shù),混淆了工作量和項(xiàng)目進(jìn)展。人月是危險(xiǎn)和帶有欺騙性的神話,因?yàn)樗凳救藛T數(shù)量和時(shí)間是可以相互替換的。

5. 在若干人員中分解任務(wù)會(huì)引發(fā)額外的溝通工作量--培訓(xùn)和相互溝通。

6. 關(guān)于進(jìn)度安排,作者的經(jīng)驗(yàn)是為1/3計(jì)劃、1/6編碼、1/4構(gòu)件測(cè)試以及1/4系統(tǒng)測(cè)試。

7. 因?yàn)槲覀儗?duì)自己的估計(jì)技術(shù)不確定,所以在管理和客戶的壓力下,我們常常缺乏堅(jiān)持的勇氣。

8. brook法則:向進(jìn)度落后的項(xiàng)目中增加人手,只會(huì)使進(jìn)度更加落后。

9. 向軟件項(xiàng)目中增派人手從三個(gè)方面增加了項(xiàng)目必要的總體工作量:任務(wù)重新分配本身和所造成的工作中斷;培訓(xùn)新人員;額外的相互溝通。 外科手術(shù)隊(duì)伍 1. 同樣有兩年經(jīng)驗(yàn)而且在受到同樣的培訓(xùn)的情況下,優(yōu)秀的專(zhuān)業(yè)程序員的工作效率是較差程序員的十倍。關(guān)于這一條我在極限編程里看到,sackman和humphrey分別做了實(shí)驗(yàn)發(fā)現(xiàn)優(yōu)秀程序員工作效率比較差程序員的工作效率最高要高達(dá)28倍。

2. 小型、精干隊(duì)伍是最好的。這一點(diǎn)在軟件工藝和極限編程里都得到了充分的體現(xiàn)。

3. 兩個(gè)人的團(tuán)隊(duì),其中一個(gè)項(xiàng)目經(jīng)理,常常是最佳的人員使用方法。

4. 對(duì)于真正意義上的大型系統(tǒng),小型精干的隊(duì)伍太慢了。

5. 實(shí)際上,絕大多數(shù)大型編程系統(tǒng)的經(jīng)驗(yàn)顯示出,一擁而上的開(kāi)發(fā)方法是高成本、速度緩慢、不充分的,開(kāi)發(fā)出的產(chǎn)品無(wú)法進(jìn)行概念上的集成。

6. 一位首席程序員、類(lèi)似于外科手術(shù)隊(duì)伍的團(tuán)隊(duì)架構(gòu)提供了一種方法,既能獲得由少數(shù)頭腦產(chǎn)生的產(chǎn)品完整性,又能得到多位協(xié)助人員的總體生產(chǎn)率,還徹底地減少了溝通的工作量。圖1是10人的程序開(kāi)發(fā)隊(duì)伍溝通模式。 圖1 10人程序開(kāi)發(fā)隊(duì)伍溝通模式

貴族專(zhuān)制、民主政治和系統(tǒng)設(shè)計(jì) 1. 概念完整性是系統(tǒng)設(shè)計(jì)中最重要的考慮因素。

2. 為了獲得概念完整性,設(shè)計(jì)必須由一個(gè)人或者具有共識(shí)的小型團(tuán)隊(duì)來(lái)完成。

3. 對(duì)于非常大型的項(xiàng)目,將設(shè)計(jì)方法、體系結(jié)構(gòu)方面的工作與具體實(shí)現(xiàn)相分離是獲得概念完整性的強(qiáng)有力方法。

4. 紀(jì)律、規(guī)則對(duì)行業(yè)是有益的。外部的體系結(jié)構(gòu)規(guī)定實(shí)際上是增強(qiáng),而不是限制實(shí)現(xiàn)小組的創(chuàng)造性。

5. 體系結(jié)構(gòu)、設(shè)計(jì)實(shí)現(xiàn)、物理實(shí)現(xiàn)的許多工作可以并發(fā)進(jìn)行。 畫(huà)蛇添足 1. 盡早交流和持續(xù)溝通能使結(jié)構(gòu)師有較好的成本意識(shí),以及使開(kāi)發(fā)人員獲得對(duì)設(shè)計(jì)的信心,并且不會(huì)混淆各自的責(zé)任分工。

2. 結(jié)構(gòu)師如何成功地影響實(shí)現(xiàn):

i. 牢記是開(kāi)發(fā)人員承擔(dān)創(chuàng)造性的實(shí)現(xiàn)責(zé)任;結(jié)構(gòu)師只能提出建議。

ii. 聽(tīng)取開(kāi)發(fā)人員在體系結(jié)構(gòu)上改進(jìn)的建議。

3. 第二個(gè)系統(tǒng)是人們所設(shè)計(jì)的最危險(xiǎn)的系統(tǒng),通常的傾向是過(guò)分地進(jìn)行設(shè)計(jì)。關(guān)于這一點(diǎn)也許是正確的,但是這是一個(gè)回避不了的問(wèn)題,如果沒(méi)有開(kāi)發(fā)第二個(gè)系統(tǒng)經(jīng)驗(yàn)的人,就不可能有開(kāi)發(fā)第三個(gè)系統(tǒng)經(jīng)驗(yàn)的人了。 貫徹執(zhí)行 1. 即使是大型的設(shè)計(jì)團(tuán)隊(duì),設(shè)計(jì)結(jié)果也必須由一個(gè)或兩個(gè)人來(lái)完成,以確保這些決定是一致的。

2. 必須明確定義體系結(jié)構(gòu)中與先前定義不同的地方,重新定義的詳細(xì)程度應(yīng)該與原先的說(shuō)明一致。

3. 出于精確性的考慮,我們需要形式化的設(shè)計(jì)定義,同樣,我們需要記敘性定義來(lái)加深理解。

4. 允許體系結(jié)構(gòu)師對(duì)實(shí)現(xiàn)人員的詢(xún)問(wèn)做出電話應(yīng)答解釋是非常重要的,并且必須進(jìn)行日志記錄和整理發(fā)布。

5. 項(xiàng)目經(jīng)理最好的朋友就是他每天要面對(duì)的敵人--獨(dú)立的產(chǎn)品測(cè)試機(jī)構(gòu)/小組。 為什么巴比倫塔會(huì)失? 1. 巴比倫塔項(xiàng)目的失敗是因?yàn)槿狈涣,以及交流的結(jié)果的組織。

2. 因?yàn)樽笫植恢烙沂衷谧鍪裁矗瑥亩M(jìn)度災(zāi)難、功能的不合理和系統(tǒng)缺陷紛紛出現(xiàn)。由于對(duì)其他人的各種假設(shè),團(tuán)隊(duì)成員之間的理解開(kāi)始出現(xiàn)偏差。

3. 團(tuán)隊(duì)?wèi)?yīng)該以盡可能多的方式進(jìn)行相互之間的交流:非正式、常規(guī)項(xiàng)目會(huì)議,會(huì)上進(jìn)行簡(jiǎn)要的技術(shù)陳述、共享的正式項(xiàng)目工作手冊(cè)。 胸有成竹 1. 僅僅通過(guò)對(duì)編碼部分的估計(jì),然后乘以任務(wù)其他部分的相對(duì)系數(shù),是無(wú)法得出對(duì)整項(xiàng)工作的精確估計(jì)的。

2. 構(gòu)建獨(dú)立小型程序的數(shù)據(jù)不適用于編程系統(tǒng)項(xiàng)目。

3. 程序開(kāi)發(fā)與程序規(guī)模成指數(shù)增長(zhǎng)趨勢(shì)。

4. 當(dāng)使用適當(dāng)?shù)母呒?jí)語(yǔ)言時(shí),程序編制的生產(chǎn)率可以提高5倍。 削足適履

這一章主要是要解決項(xiàng)目投資與磁盤(pán)空間和內(nèi)存之間的矛盾,但是這個(gè)矛盾在電腦硬件發(fā)展到現(xiàn)在的層次已經(jīng)可以忽略掉了。

提綱挈領(lǐng) 1. 軟件項(xiàng)目的要求:目標(biāo)、用戶手冊(cè)、內(nèi)部文檔、進(jìn)度、預(yù)算、組織機(jī)構(gòu)圖和工作空間分配。

2. 即使是小型項(xiàng)目,項(xiàng)目經(jīng)理也應(yīng)該在項(xiàng)目早期規(guī)范化上述的一系列文檔。 這一章強(qiáng)調(diào)文檔重要性,但并沒(méi)有將一些教條主義的道理讓你相信文檔的重要性,而是給項(xiàng)目經(jīng)理給出了實(shí)實(shí)在在的操作步驟。

未雨綢繆 1. 對(duì)于大多數(shù)項(xiàng)目,第一個(gè)開(kāi)發(fā)的系統(tǒng)并不合用。它可能太慢、太大,而且難以使用,或者三者兼而有之。系統(tǒng)的丟棄和重新設(shè)計(jì)可以一步完成,也可以一塊塊地實(shí)現(xiàn)。這是個(gè)必須完成的步驟,如果將開(kāi)發(fā)的第一個(gè)系統(tǒng)丟棄原型發(fā)布給用戶,可以獲得時(shí)間,但是它的代價(jià)很高。對(duì)于用戶,使用極度痛苦;對(duì)于重新開(kāi)發(fā)的人員,分散了精力;對(duì)于產(chǎn)品,影響了聲譽(yù),即使最好的再設(shè)計(jì)也難以挽回名聲。

2. 用戶的實(shí)際需要和用戶感覺(jué)會(huì)隨著程序的構(gòu)建、測(cè)試和使用而變化。

3. 軟件產(chǎn)品易于掌握的特性和不可見(jiàn)性,導(dǎo)致了它的構(gòu)建人員面臨著永恒的需求變更。

4. 目標(biāo)和開(kāi)發(fā)策略上的一些正常變化無(wú)可避免,事先為它們做準(zhǔn)備總比假設(shè)它們不會(huì)出現(xiàn)要好得多。

5. 對(duì)于一個(gè)廣泛使用的程序,其維護(hù)總成本通常是開(kāi)發(fā)成本的40%或更多。

6. 維護(hù)成本受用戶數(shù)目的嚴(yán)重影響。用戶越多,所發(fā)現(xiàn)的錯(cuò)誤也越多。

7. campbell指出了一個(gè)顯示產(chǎn)品生命期中每月bug數(shù)的有趣曲線,它先是下降,然后攀升。

8. 缺陷修復(fù)總會(huì)以(20-50)%的機(jī)率引入新的bug。

9. 在每次修復(fù)之后,必須重新運(yùn)行先前所有的測(cè)試用例,從而確保系統(tǒng)不會(huì)以更隱蔽的方式被破壞。

10. 同樣,設(shè)計(jì)實(shí)現(xiàn)的人員越少、接口越少,產(chǎn)生的錯(cuò)誤也就越少。

11. 所有修改都傾向于破壞系統(tǒng)的架構(gòu),增加了系統(tǒng)的混亂程度。即使是最熟練的軟件維護(hù)工作,也只是放緩了系統(tǒng)退化到不可修復(fù)混亂的進(jìn)程。 干將莫邪

項(xiàng)目經(jīng)理應(yīng)該制訂一套策略,以及為通用工具的開(kāi)發(fā)分配資源,與此同時(shí),他還必須意識(shí)到專(zhuān)業(yè)工具的需求。

禍起蕭墻 1. 一天一天的進(jìn)度落后比起重大災(zāi)難,更難以識(shí)別,更不容易防范和更加難以彌補(bǔ)。

2. 根據(jù)一個(gè)嚴(yán)格的進(jìn)度表來(lái)控制項(xiàng)目的第一個(gè)步驟是制訂進(jìn)度表,進(jìn)度表由里程碑和日期組成。

3. 里程碑必須是具體的、特定的、可度量的事件,能進(jìn)行清晰能定義。

4. 如果里程碑定義得非常明確,以致于無(wú)法自欺欺人時(shí),程序員很少會(huì)就里程碑的進(jìn)展弄虛作假。 另外一面 1. 對(duì)于軟件編程產(chǎn)品來(lái)說(shuō),程序向用戶所呈現(xiàn)的面貌與提供給機(jī)器識(shí)別的內(nèi)容同樣重要。

2. 即使對(duì)于完全開(kāi)發(fā)給自己使用的程序,描述性文字也是必須的,因?yàn)樗鼈儠?huì)被用戶和作者所遺忘。

3. 文檔能在整個(gè)軟件開(kāi)發(fā)的生命周期對(duì)程序員克服懶惰和進(jìn)度的壓力起促進(jìn)激勵(lì)作用,但向編程人員成功地灌輸對(duì)待文檔的積極態(tài)度是一件困難的事情。

4. 為了使文檔易于維護(hù),將它們合并至源程序是至關(guān)重要的,而不是作為獨(dú)立文檔進(jìn)行保存。 沒(méi)有銀彈

人狼的傳說(shuō)可能有人聽(tīng)過(guò)也可能沒(méi)聽(tīng)過(guò),人狼是一種具有人和狼兩種特征的恐怖生物,而銀彈是消滅它的一種最有效的子彈,如果看過(guò)《吸血鬼傳說(shuō)》也許就能和容易的理解這一點(diǎn)。作者將軟件開(kāi)發(fā)比作人狼,而將提高軟件開(kāi)發(fā)效率的方法比作銀彈。作者預(yù)言未來(lái)十年,想要試圖通過(guò)尋找一種有效地銀彈將軟件開(kāi)發(fā)效率提高一個(gè)甚至幾個(gè)數(shù)量級(jí),這種銀彈不可能出現(xiàn)。

沒(méi)有銀彈這篇文章里作者列舉出了當(dāng)時(shí)一些非常先進(jìn)的技術(shù)或思想理念,例如ada和其他高級(jí)編程語(yǔ)言、面向?qū)ο缶幊獭⑷斯ぶ悄、?zhuān)家系統(tǒng)、"自動(dòng)"編程、圖形化編程、程序驗(yàn)證、環(huán)境和工具、工作站等。雖然這些先進(jìn)技術(shù)在一定程度上提高了軟件開(kāi)發(fā)的效率,但是始終沒(méi)有達(dá)到銀彈的效果。距離作者的預(yù)言已經(jīng)過(guò)去有20多年了,縱觀現(xiàn)在的軟件開(kāi)發(fā)領(lǐng)域,雖然新技術(shù)層出不窮,但是還是沒(méi)有一種銀彈能夠讓軟件開(kāi)發(fā)產(chǎn)生一次革命。

焦油坑依然存在

軟件工程的焦油坑在將來(lái)很長(zhǎng)一段時(shí)間內(nèi)會(huì)繼續(xù)困擾著人們。由于軟件系統(tǒng)多變性和錯(cuò)綜復(fù)雜性,這個(gè)行業(yè)只能是一步一個(gè)臺(tái)階的往上爬,而出現(xiàn)銀彈的希望在我們可以想象的時(shí)間范圍內(nèi)是非常渺茫的。我們將長(zhǎng)期與焦油作斗爭(zhēng)。

第二篇:《人月神話》讀書(shū)筆記

第1章 焦油坑

這一章分成兩個(gè)部分:

? 程序(program)、程序產(chǎn)品(programming product)、編程系統(tǒng)(programming system)、編程系統(tǒng)產(chǎn)品(programming product system)的概念

? 程序員的工作性質(zhì)

比較有意思的是第一部分的四個(gè)概念。

在作者的眼中,程序就是一堆代碼,任何人可以宣稱(chēng)自己會(huì)編程,但是編程得到的只是程序,而不是產(chǎn)品。程序要成為程序產(chǎn)品,需要有明確的輸入、功能和輸出,經(jīng)過(guò)完備的測(cè)試,具備合格的文檔,使之功能可靠,維護(hù)易行。

編程系統(tǒng)是從系統(tǒng)的角度來(lái)看待功能完整的程序模塊,要求程序要具備語(yǔ)法和語(yǔ)義精確的接口,能夠與其他的程序進(jìn)行流暢的交互。相比程序產(chǎn)品來(lái)說(shuō),不僅僅要嚴(yán)格測(cè)試程序自身的輸入、處理、輸出,還要測(cè)試與不同程序之間的交互,因?yàn)楹芏郻ug其實(shí)是隱含在不同功能模塊的交互過(guò)程中。另外編程系統(tǒng)還要考慮程序之外的軟硬件運(yùn)行環(huán)境。呵呵,只有經(jīng)過(guò)了集成測(cè)試之后才能稱(chēng)之為編程系統(tǒng)。

最高級(jí)的形式是編程系統(tǒng)產(chǎn)品,從書(shū)中的表述來(lái)看,就是編程系統(tǒng)+各類(lèi)文檔,文檔是為了后續(xù)維護(hù)和升級(jí)方便而準(zhǔn)備的。智力產(chǎn)品如果沒(méi)有說(shuō)明書(shū)真是一場(chǎng)噩夢(mèng)啊,之前我們經(jīng)歷過(guò)的不少系統(tǒng)到了后續(xù)維護(hù)的時(shí)候發(fā)現(xiàn)文檔補(bǔ)齊,維護(hù)人員真是傷透腦筋,最后問(wèn)題太多了索性就提議推倒重做。可以說(shuō)如果是文檔齊備一點(diǎn),我們公司很多系統(tǒng)的壽命是可以更長(zhǎng)的。

第2章 人月神話

第三篇:人月神話筆記

人月神話讀書(shū)筆記(一)

第一章 焦油坑

表面上看起來(lái)好像沒(méi)有任何一個(gè)單獨(dú)的問(wèn)題會(huì)導(dǎo)致困難,每個(gè)都能被

解決,但是當(dāng)它們相互糾纏和積累在一起的時(shí)候,團(tuán)隊(duì)的行動(dòng)就會(huì)變

得越來(lái)越慢。對(duì)問(wèn)題的麻煩程度,每個(gè)人似乎都會(huì)感到驚訝,并且很

難看清問(wèn)題的本質(zhì)。不過(guò),如果我們想解決問(wèn)題,就必須試圖先去理

解它。--清楚地解釋系統(tǒng)開(kāi)發(fā)的困難所在。

這,就是編程。一個(gè)許多人痛苦掙扎的焦油坑以及一種樂(lè)趣和苦惱共

存的創(chuàng)造性活動(dòng)。對(duì)于許多人而言,其中的樂(lè)趣遠(yuǎn)大于苦惱。而本書(shū)

的剩余部分將試圖搭建一些橋梁,為通過(guò)這樣的焦油坑提供一些指導(dǎo)。

--本書(shū)的目的

第二章 人月神話

1.在眾多軟件項(xiàng)目中,缺乏合理的時(shí)間進(jìn)度是造成項(xiàng)目滯后的最主要原因,它比其他所有因素加起來(lái)的影響還大。導(dǎo)致災(zāi)難的原因是:

首先,我們對(duì)估算技術(shù)缺乏有效的研究。

第二,我們采用的估算技術(shù)隱含地假設(shè)人和月可以互換,錯(cuò)誤地將進(jìn)度與工作量相互混淆

第三,由于對(duì)自己的估算缺乏信心,軟件經(jīng)理通常不會(huì)有耐心持續(xù)地進(jìn)行估算這項(xiàng)工作。 第四,對(duì)進(jìn)度缺少跟蹤和監(jiān)督。

第五,當(dāng)意識(shí)到進(jìn)度的偏移時(shí),下意識(shí)(以及傳統(tǒng))的反應(yīng)是增加人力。

2.系統(tǒng)開(kāi)發(fā)過(guò)程中,樂(lè)觀主義并不應(yīng)該是理所應(yīng)當(dāng)?shù)摹?/p>

在單個(gè)任務(wù)中,“一切都將運(yùn)轉(zhuǎn)正!钡募僭O(shè)在時(shí)間進(jìn)度上具有可實(shí)現(xiàn)性。因?yàn)樗龅难舆t是一個(gè)概率分布曲線,“不會(huì)延遲”僅具有有限的概率,所以現(xiàn)實(shí)情況可能會(huì)像計(jì)劃安排的那樣順利。然而大型的編程工作,或多或少包含了很多任務(wù),某些任務(wù)間還具有前后的次序,從而一切正常的概率變得非常小,甚至接近于無(wú)。

3.成本的確隨開(kāi)發(fā)產(chǎn)品的人數(shù)和時(shí)間的不同,有著很大的變化,進(jìn)度卻不是如此。因此我認(rèn)為用人月作為衡量一項(xiàng)工作的規(guī)模是一個(gè)危險(xiǎn)和帶有欺騙性的神話。它暗示著人員數(shù)量和時(shí)間是可以相互替換的。

因?yàn)檐浖_(kāi)發(fā)本質(zhì)上是一項(xiàng)系統(tǒng)的工作--錯(cuò)綜復(fù)雜關(guān)系下的一種實(shí)踐--溝通、交流的工作量非常大,它很快會(huì)消耗任務(wù)分解所節(jié)省下來(lái)的個(gè)人時(shí)間。從而,添加更多的人手,實(shí)際上是延長(zhǎng)了,而不是縮短了時(shí)間進(jìn)度。

4.在時(shí)間進(jìn)度中,順序限制所造成的影響,沒(méi)有哪個(gè)部分比單元測(cè)試和系統(tǒng)測(cè)試所受到的牽涉更徹底。

對(duì)于任務(wù)的進(jìn)度安排,以下是作者使用了很多年的經(jīng)驗(yàn)法則:

1/3 計(jì)劃

1/6 編碼

1/4 構(gòu)件測(cè)試和早期系統(tǒng)測(cè)試(單元測(cè)試)

1/4 系統(tǒng)測(cè)試

5.如果發(fā)現(xiàn)項(xiàng)目的實(shí)際進(jìn)度滯后于預(yù)計(jì)的進(jìn)度,項(xiàng)目經(jīng)理最好的辦法是重新安排進(jìn)度,而不是增加項(xiàng)目人手。

6.項(xiàng)目的時(shí)間依賴(lài)于順序上的限制,人員的數(shù)量依賴(lài)于單個(gè)子任務(wù)的數(shù)量。從這兩個(gè)數(shù)值可以推算出進(jìn)度時(shí)間表,該表安排的人員較少,花費(fèi)的時(shí)間較長(zhǎng)(唯一的風(fēng)險(xiǎn)是產(chǎn)品可能過(guò)時(shí))。相反,分派較多的人手,計(jì)劃較短的時(shí)間,將無(wú)法得到可行的進(jìn)度表。總之,在眾多軟件項(xiàng)目中,缺乏合理的時(shí)間進(jìn)度是造成項(xiàng)目滯后的最主要原因,它比其他所有因素加

起來(lái)的影響還要大。

第三章 外科手術(shù)隊(duì)伍

1.對(duì)于效率和概念的完整性來(lái)說(shuō),最好由少數(shù)干練的人員來(lái)設(shè)計(jì)和開(kāi)發(fā),而對(duì)于大型 系統(tǒng),則需要大量的人手,以使產(chǎn)品能在時(shí)間上滿足要求。如何調(diào)和這兩方面的矛盾呢?--本章要解決的問(wèn)題

2.mills的建議:

外科醫(yī)生(首席程序員):定義功能和性能技術(shù)說(shuō)明書(shū),設(shè)計(jì)程序,編制源代碼,測(cè)試 以及書(shū)寫(xiě)技術(shù)文檔。

副手:主要作用是作為設(shè)計(jì)的思考者、討論者和評(píng)估人員。

管理員:控制財(cái)務(wù)、人員、工作地點(diǎn)安排和機(jī)器,充當(dāng)組織中其他管理機(jī)構(gòu)的接口。 編輯:根據(jù)外科醫(yī)生的草稿或者口述的手稿,進(jìn)行分析和重新組織,提供各種參考信息 和書(shū)目,對(duì)多個(gè)版本進(jìn)行維護(hù)以及監(jiān)督文檔生成的機(jī)制。

兩個(gè)秘書(shū)

程序職員:維護(hù)編程產(chǎn)品庫(kù)中所有團(tuán)隊(duì)的技術(shù)記錄。

工具維護(hù)人員:保證所有基本服務(wù)的可靠性,以及承擔(dān)團(tuán)隊(duì)成員所需要的特殊工具(特 別是交互式計(jì)算機(jī)服務(wù))的構(gòu)建、維護(hù)和升級(jí)責(zé)任。

測(cè)試人員:各個(gè)功能設(shè)計(jì)系統(tǒng)測(cè)試用例的對(duì)頭,同時(shí)也是日常調(diào)試設(shè)計(jì)測(cè)試數(shù)據(jù)的助手。 負(fù)責(zé)計(jì)劃測(cè)試的步驟和為測(cè)試搭建測(cè)試平臺(tái)。

語(yǔ)言專(zhuān)家:尋找一種簡(jiǎn)潔、有效的使用語(yǔ)言的方法來(lái)解決復(fù)雜、晦澀或者棘手的問(wèn)題。

3.當(dāng)進(jìn)行大系統(tǒng)開(kāi)發(fā)時(shí):

要有一個(gè)系統(tǒng)結(jié)構(gòu)師從上至下地進(jìn)行所有的設(shè)計(jì)。要使工作易于管理,必須清晰地劃分體

系結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn)之間的界線,系統(tǒng)結(jié)構(gòu)師必須一絲不茍地專(zhuān)注于體系結(jié)構(gòu)。

第四章 貴族專(zhuān)制、民主政治和系統(tǒng)設(shè)計(jì)

1.概念一致性

在系統(tǒng)設(shè)計(jì)中,概念完整性應(yīng)該是最重要的考慮因素。也就是說(shuō)為了反映一系列 連貫的設(shè)計(jì)思路,寧可省略一些不規(guī)則的特性和改進(jìn),也不提倡獨(dú)立和無(wú)法整合 的系統(tǒng),哪怕它們其實(shí)包含著許多很好的設(shè)計(jì)。

2.功能與理解上復(fù)雜程度的比值才是系統(tǒng)設(shè)計(jì)的最終測(cè)試標(biāo)準(zhǔn)。但是功能本身 或者易于使用都無(wú)法成為一個(gè)好的設(shè)計(jì)評(píng)判標(biāo)準(zhǔn)。

3.簡(jiǎn)潔和直白來(lái)自概念的完整性。每個(gè)部分必須反映相同的原理、原則和一致 的折衷機(jī)制。在語(yǔ)法上,每個(gè)部分應(yīng)使用相同的技巧;在語(yǔ)義上,應(yīng)具有同樣的 相似性。因此,易用性實(shí)際上需要設(shè)計(jì)的一致性和概念上的完整性。

4.概念的完整性要求設(shè)計(jì)必須由一個(gè)人,或者非常少數(shù)互有默契的人員來(lái)實(shí)現(xiàn)。

5.系統(tǒng)的體系結(jié)構(gòu)(architecture)指的是完整和詳細(xì)的用戶接口說(shuō)明。體系結(jié) 構(gòu)必須同實(shí)現(xiàn)仔細(xì)地區(qū)分開(kāi)來(lái)。

6.作者不認(rèn)為只有結(jié)構(gòu)師才有好的創(chuàng)意。新的概念經(jīng)常來(lái)自實(shí)現(xiàn)者或者用戶。 然而系統(tǒng)的概念完整性決定了使用的容易程度。不能與系統(tǒng)基本概念進(jìn)行整合的 良好想法和特色,最好放到一邊,不予考慮。如果出現(xiàn)了很多非常重要但不兼容 的構(gòu)想,就應(yīng)該拋棄原來(lái)的設(shè)計(jì),對(duì)不同基本概念進(jìn)行合并,在合并后的系統(tǒng)上 重新開(kāi)始。

7.概念的完整性的確要求系統(tǒng)只反映唯一的設(shè)計(jì)理念,用戶所見(jiàn)的技術(shù)說(shuō)明來(lái) 自少數(shù)人的思想。實(shí)際工作被劃分成體系結(jié)構(gòu)、設(shè)計(jì)實(shí)現(xiàn)和物理實(shí)現(xiàn),但這并不 意味著該開(kāi)發(fā)模式下的系統(tǒng)需要更長(zhǎng)的時(shí)間來(lái)創(chuàng)建。經(jīng)驗(yàn)顯示恰恰相反,整個(gè)系

統(tǒng)將會(huì)開(kāi)發(fā)得更快,所需要的測(cè)試時(shí)間將更少。同工作的水平分割相比,垂直劃 分從根本上大大減少了勞動(dòng)量,結(jié)果是使交流徹底地簡(jiǎn)化,概念完整性得到大幅 提高。

第五章 畫(huà)蛇添足

1. 本章的目標(biāo):結(jié)構(gòu)設(shè)計(jì)師要避免向系統(tǒng)中添加很多不實(shí)際的功能(避免

畫(huà)蛇添足)。

2. 盡早交流和持續(xù)溝通能使結(jié)構(gòu)師有較好的成本意識(shí),以及使開(kāi)發(fā)人員獲

得對(duì)設(shè)計(jì)的信心,并且不會(huì)混淆各自的責(zé)任分工。

3. 面對(duì)估算過(guò)高的難題,結(jié)構(gòu)師有兩個(gè)選擇:削減設(shè)計(jì)或者建議成本更低

的實(shí)現(xiàn)方法--挑戰(zhàn)估算的結(jié)果。后者是固有的主觀感性反應(yīng)。此時(shí),結(jié)構(gòu)師 是在向開(kāi)發(fā)人員的做事方式提出挑戰(zhàn)。想要成功,結(jié)構(gòu)師必須

牢記是開(kāi)發(fā)人員承擔(dān)創(chuàng)造性和發(fā)明性的實(shí)現(xiàn)責(zé)任,所以結(jié)構(gòu)師只能建議,而 不能支配;

時(shí)刻準(zhǔn)備著為所指定的說(shuō)明建議一種實(shí)現(xiàn)的方法,同樣準(zhǔn)備接受其他任何能 達(dá)到目標(biāo)的方法;

對(duì)上述的建議保持低調(diào)和平靜;

準(zhǔn)備放棄堅(jiān)持所作的改進(jìn)建議。

4. 一個(gè)可以開(kāi)闊結(jié)構(gòu)師眼界的準(zhǔn)則是為每個(gè)小功能分配一個(gè)值:每次改進(jìn), 功能 x 不超過(guò) m 字節(jié)的內(nèi)存和 n 微秒。這些值會(huì)在一開(kāi)始作為決策的向?qū)?,在物理實(shí)現(xiàn)期間指南和對(duì)所有人的警示。

5. 項(xiàng)目經(jīng)理必須堅(jiān)持至少擁有兩個(gè)系統(tǒng)以上開(kāi)發(fā)經(jīng)驗(yàn)的結(jié)構(gòu)師的決定。同時(shí) ,保持對(duì)特殊誘惑的警覺(jué),他可以不斷提出正確的問(wèn)題,確保原則上的概念和 目標(biāo)在詳細(xì)設(shè)計(jì)中得到完整的體現(xiàn)。

第六章 貫徹執(zhí)行

1. 問(wèn)題:項(xiàng)目經(jīng)理如何確保每個(gè)人聽(tīng)從、理解并實(shí)現(xiàn)結(jié)構(gòu)師的決策?對(duì)于有多個(gè)結(jié)構(gòu)師

的小組如何保持系統(tǒng)概念上的完整性。

2. 手冊(cè)、或者書(shū)面規(guī)格說(shuō)明,是一個(gè)非常必要的工具。手冊(cè)是產(chǎn)品的外部規(guī)格說(shuō)明,它

描述和規(guī)定了用戶所見(jiàn)的每一個(gè)細(xì)節(jié);同樣的,它也是結(jié)構(gòu)師主要的工作產(chǎn)物。

手冊(cè)不但要描述包括所有界面在內(nèi)的用戶可見(jiàn)的一切,它同時(shí)還要描述用戶看不見(jiàn)的事物。

后者是編程實(shí)現(xiàn)人員的工作范疇,而實(shí)現(xiàn)人員的設(shè)計(jì)和創(chuàng)造是不應(yīng)該被限制的。體系結(jié)構(gòu)

設(shè)計(jì)人員必須為自己描述的任何特性準(zhǔn)備一種實(shí)現(xiàn)方法,但是他不應(yīng)該試圖支配具體的實(shí)

現(xiàn)過(guò)程。

規(guī)格說(shuō)明的風(fēng)格必須清晰、完整和準(zhǔn)確。用戶常常會(huì)單獨(dú)提到某個(gè)定義,所以每條說(shuō)明都

必須重復(fù)所有的基本要素,所以所有文字都要相互一致。

3. 規(guī)格說(shuō)明中,形式化定義是精確的,它們傾向于更加完整;差異得更加明顯,可以更

快地完成。但是形式化定義的缺點(diǎn)是不易理解。記敘性文字則可以顯示結(jié)構(gòu)性的原則,描

述階段上或?qū)哟紊系慕Y(jié)構(gòu),以及提供例子。應(yīng)同時(shí)包括形式化和記敘性定義兩種方式。

4. 通過(guò)會(huì)議的方式,開(kāi)發(fā)人員進(jìn)行溝通和討論問(wèn)題。

5. 不同實(shí)現(xiàn)之間嚴(yán)格要求相互兼容。如果起初至少有兩種以上的實(shí)現(xiàn),那么定義會(huì)更加

整潔和規(guī)范。

6. 對(duì)于存有疑問(wèn)的實(shí)現(xiàn)人員,應(yīng)鼓勵(lì)他們打電話詢(xún)問(wèn)相應(yīng)的結(jié)構(gòu)師,而不是一邊自行猜

測(cè)一邊工作。

一種有用的機(jī)制是由結(jié)構(gòu)師保存電話日志。日志中,他記錄了每一個(gè)問(wèn)題和相應(yīng)的回答。 每周,對(duì)若干結(jié)構(gòu)師的日志進(jìn)行合并,重新整理,并發(fā)布給用戶和實(shí)現(xiàn)人員。這種機(jī)制很

不正式,但非常快捷和易于理解。

7. 在最后的分析中,用戶是獨(dú)立的監(jiān)督人員。在殘酷的現(xiàn)實(shí)使用環(huán)境中,每個(gè)細(xì)微缺陷

都將無(wú)從遁形。產(chǎn)品測(cè)試小組則是顧客的代理人,專(zhuān)門(mén)尋找缺陷。不時(shí)地,細(xì)心的產(chǎn)品測(cè)

試人員總會(huì)發(fā)現(xiàn)一些沒(méi)有貫徹執(zhí)行、設(shè)計(jì)決策沒(méi)有正確理解或準(zhǔn)確實(shí)現(xiàn)的地方。出于這方

面的原因,設(shè)立測(cè)試小組是使設(shè)計(jì)決策得以貫徹執(zhí)行的必要手段,同樣也是需要盡早著手

,與設(shè)計(jì)同時(shí)實(shí)現(xiàn)的重要環(huán)節(jié)。

第七章 為什么巴比倫塔會(huì)失敗

1. 項(xiàng)目人員之間的交流和溝通是項(xiàng)目能否順利和成功的一個(gè)重要因素。

2. 缺乏交流引起進(jìn)度災(zāi)難、功能的不合理和系統(tǒng)缺陷紛紛出現(xiàn)。隨著工作的進(jìn)行,許多小組慢慢地修改自己程序的功能、規(guī)模和速度,他們明確或者隱含地更改了一些有效輸入和輸出結(jié)果用法上的約定。

團(tuán)隊(duì)如何進(jìn)行相互之間的交流溝通:

清晰定義小組內(nèi)部的相互關(guān)系和充分利用電話,能鼓勵(lì)大量的電話溝通,從而達(dá)到對(duì)所書(shū)寫(xiě)文檔的共同理解。

常規(guī)項(xiàng)目會(huì)議。會(huì)議中,團(tuán)隊(duì)一個(gè)接一個(gè)地進(jìn)行簡(jiǎn)要的技術(shù)陳述。這種方式非常有用,能澄清成百上千的細(xì)小誤解。

在項(xiàng)目的開(kāi)始階段,應(yīng)該準(zhǔn)備正式的項(xiàng)目工作手冊(cè)。

3. 項(xiàng)目工作手冊(cè)不是獨(dú)立的一篇文檔,它是對(duì)項(xiàng)目必須產(chǎn)出的一系列文檔進(jìn)行組織的一種結(jié)構(gòu)。

項(xiàng)目所有的文檔都必須是該結(jié)構(gòu)的一部分。這包括目的、外部規(guī)格說(shuō)明、接口說(shuō)明、技術(shù)標(biāo)準(zhǔn)、內(nèi)部說(shuō)明和管理備忘錄。

4. 使用項(xiàng)目工作手冊(cè)的原因:

技術(shù)說(shuō)明幾乎是必不可少的。如果某人就硬件和軟件的某部分,去查看一系列相關(guān)的用戶手冊(cè)。他發(fā)現(xiàn)的不僅僅是思路,而且還有能追溯到最早備忘錄的許多文字和章節(jié),這些備忘錄對(duì)產(chǎn)品提出建議或者解釋設(shè)計(jì)。

正確的文檔結(jié)構(gòu)非常重要。事先將項(xiàng)目工作手冊(cè)設(shè)計(jì)好,能保證文檔的結(jié)構(gòu)本身是規(guī)范的。另外,有了文檔結(jié)構(gòu),后來(lái)書(shū)寫(xiě)的文字就可以放置在合適的章節(jié)中。

控制信息發(fā)布,確保信息能到達(dá)所有需要它的人的手中。

5. 團(tuán)隊(duì)組織的目的是減少不必要的交流和合作的數(shù)量。減少交流的方法是人力劃分和限定職責(zé)范圍。當(dāng)使用人力劃分和職責(zé)限定時(shí),樹(shù)狀管理結(jié)構(gòu)所映出對(duì)詳細(xì)交流的需要會(huì)相應(yīng)減少。

第八章 胸有成竹

1. 問(wèn)題:系統(tǒng)編程需要花費(fèi)多長(zhǎng)時(shí)間?需要多少工作量?如何進(jìn)行估計(jì)?

2. 工作量是規(guī)模的冪函數(shù)。

portman的數(shù)據(jù):工作花費(fèi)的時(shí)間大約是估計(jì)的兩倍。

aron、harr、os/360的數(shù)據(jù):生產(chǎn)率會(huì)根據(jù)任務(wù)本身的復(fù)雜度和困難程度表現(xiàn)出顯著差異。

carbato的數(shù)據(jù):對(duì)常用的編程語(yǔ)句而言。生產(chǎn)率似乎是固定的。這個(gè)固定的生產(chǎn)率包括了編程中需要注釋?zhuān)⒖赡艽嬖阱e(cuò)誤的情況。使用適當(dāng)?shù)母呒?jí)語(yǔ)言,編程的 生產(chǎn)率可以提高5倍。

第九章 削足適履

1. 系統(tǒng)的空間規(guī)模:規(guī)模是軟件系統(tǒng)產(chǎn)品用戶成本中如此大的一個(gè)組成部分,開(kāi)發(fā) 人員必須設(shè)置規(guī)模的目標(biāo),控制規(guī)模,考慮減小規(guī)模的方法。同任何開(kāi)銷(xiāo)一樣,規(guī)模 本身不是壞事,但不必要的規(guī)模是不可取的。

2. 對(duì)項(xiàng)目經(jīng)理而言,規(guī)?刂萍仁羌夹g(shù)工作的一部分,也是管理工作的一部分。必 須研究用戶和他們的應(yīng)用,以設(shè)置將開(kāi)發(fā)系統(tǒng)的規(guī)模。接著,把這些系統(tǒng)劃分成若干 部分,并設(shè)定每個(gè)部分的規(guī)模目標(biāo)。由于規(guī)模--速度權(quán)衡方案的結(jié)果在很大的范圍內(nèi) 變化,規(guī)模目標(biāo)的設(shè)置是一件頗具技巧的事情,需要對(duì)每個(gè)可用方案有深刻的了解。 聰明的項(xiàng)目經(jīng)理還會(huì)給自己預(yù)留一些空間,在工作推行時(shí)分配。

僅對(duì)核心程序設(shè)定規(guī)模目標(biāo)是不夠的,必須把所有的方面都編入預(yù)算。

在指明模塊有多大的同時(shí),確切定義模塊的功能。

培養(yǎng)開(kāi)發(fā)人員從系統(tǒng)整體出發(fā),面對(duì)用戶的態(tài)度。

3. 在速度不變的情況下,更多的功能意味著需要更多的空間。其中一個(gè)技巧是用功 能交換尺寸。設(shè)計(jì)人員必須決定用戶可選項(xiàng)目的精細(xì)程度。

4. 考慮空間--時(shí)間的折衷。對(duì)于給定的功能,空間越多,速度越快。

項(xiàng)目經(jīng)理可以做兩件事來(lái)幫助他的團(tuán)隊(duì)取得良好的空間--時(shí)間折衷。一是確保他們?cè)?編程技能上得到培訓(xùn),而不僅僅是依賴(lài)他們自己掌握的知識(shí)和先前的經(jīng)驗(yàn)。特別是使 用新語(yǔ)言或者新機(jī)器時(shí),培訓(xùn)顯得尤其重要。另一種方法是認(rèn)識(shí)到編程需要技術(shù)積累, 需要開(kāi)發(fā)很多公共單元構(gòu)件。

5. 戰(zhàn)略上的突破常來(lái)自數(shù)據(jù)或表的重新表達(dá)--這是程序的核心所在。數(shù)據(jù)的表現(xiàn)形 式時(shí)編程的根本。

第十章 提綱挈領(lǐng)

1. 文檔的跟蹤維護(hù)是項(xiàng)目監(jiān)督和預(yù)警的機(jī)制。文檔本身可以作為檢查

列表、狀態(tài)控制,也可以作為匯報(bào)的數(shù)據(jù)基礎(chǔ)。

2. 軟件項(xiàng)目文檔的內(nèi)容:

目標(biāo)。待完成的目標(biāo)、迫切需要的資源、約束和優(yōu)先級(jí)。 軟件開(kāi)發(fā)網(wǎng)

產(chǎn)品技術(shù)說(shuō)明。

進(jìn)度表。

資金預(yù)算。

工作空間分配。

人員組織。

3. 為什么要有正式的文檔

首先,書(shū)面記錄決策是必要的。人們能從令人迷惑的現(xiàn)象中得到清晰、確

定的決策。

第二,文檔能作為同其他人溝通的渠道。項(xiàng)目經(jīng)理的基本職責(zé)是使每個(gè)人

都向著相同的方向前進(jìn),所以他的工作主要是溝通,而不是做出決定。文

檔能極大地減輕他的負(fù)擔(dān)。

最后,文檔可以作為數(shù)據(jù)基礎(chǔ)和檢查列表。通過(guò)周期性的回顧,他能清楚

項(xiàng)目所處的狀態(tài),以及哪些需要重點(diǎn)進(jìn)行更改和調(diào)整。

項(xiàng)目經(jīng)理的任務(wù)是制訂計(jì)劃,并根據(jù)計(jì)劃實(shí)現(xiàn)。只有書(shū)面計(jì)劃是精確和可

以溝通的。通過(guò)遵循文檔開(kāi)展工作,項(xiàng)目經(jīng)理能更清晰和快速地設(shè)定自己

的方向。

第十一章 未雨綢繆

1. 對(duì)于大多數(shù)項(xiàng)目,第一個(gè)開(kāi)發(fā)的系統(tǒng)并不合用?赡芴⑻,而且難以 使用,或者三者兼而有之。要解決所有的問(wèn)題,除了重新開(kāi)始以外,沒(méi)有其他的 辦法--即開(kāi)發(fā)一個(gè)更靈巧或者更好的系統(tǒng)。系統(tǒng)的丟棄和重新設(shè)計(jì)可以一步完成 ,也可以一塊塊地實(shí)現(xiàn)。所有大型系統(tǒng)的經(jīng)驗(yàn)都顯示,這是必須完成的步驟。 -- 構(gòu)建一個(gè)試驗(yàn)性的系統(tǒng),然后拋棄它。

2. 一旦認(rèn)識(shí)到實(shí)驗(yàn)性的系統(tǒng)必須被構(gòu)建和丟棄,具有變更思想的重新設(shè)計(jì)不可 避免。

3. 為變化設(shè)計(jì)系統(tǒng),包括細(xì)致的模塊化、可擴(kuò)展的函數(shù)、精確完整的模塊間接 口設(shè)計(jì)、完備的文檔。另外,還可能會(huì)采用包括調(diào)用隊(duì)列和表驅(qū)動(dòng)技術(shù)。

最重要的措施是使用高級(jí)語(yǔ)言和自文檔技術(shù),以減少變更引起的錯(cuò)誤。采用編譯時(shí)的操作來(lái)整合標(biāo)準(zhǔn)說(shuō)明,在很大程度上幫助了變化的調(diào)整。

變更的階段化是一種必要的技術(shù)。每個(gè)產(chǎn)品都應(yīng)該有數(shù)字版本號(hào),每個(gè)版本都應(yīng) 該有自己的日程表和凍結(jié)日期。在此之后的變更屬于下一個(gè)版本的范疇。

4. 為變更計(jì)劃組織架構(gòu)和團(tuán)隊(duì)。

5. 程序維護(hù)中的一個(gè)基本問(wèn)題是 -- 缺陷修復(fù)總會(huì)以(20%--50%)的機(jī)率引入新 的bug。整個(gè)過(guò)程是前進(jìn)兩步,后退一步。作為引入新bug的一個(gè)后果,程序每條 語(yǔ)句的維護(hù)需要的系統(tǒng)測(cè)試比其他編程要多,成本非常高。

缺陷不能被徹底修復(fù)的原因:

首先,看上去很輕微的錯(cuò)誤,似乎僅僅是局部操作上的失敗,實(shí)際上卻是系統(tǒng)級(jí) 別的問(wèn)題。其次,維護(hù)人員通常不是編寫(xiě)代碼的開(kāi)發(fā)人員。

5. 使用能消除、至少是能指明副作用的程序設(shè)計(jì)方法,會(huì)在維護(hù)成本上有很大 的回報(bào)。設(shè)計(jì)實(shí)現(xiàn)的人員越少、接口越少,產(chǎn)生的錯(cuò)誤也就越少。

6. 維護(hù)工作破壞系統(tǒng)的架構(gòu),增加了系統(tǒng)的混亂程度。隨著時(shí)間的推移,系統(tǒng) 變得越來(lái)越無(wú)序,無(wú)法再成為下一步進(jìn)展的基礎(chǔ)。這時(shí),系統(tǒng)的重新設(shè)計(jì)完全是 必要的。

系統(tǒng)軟件開(kāi)發(fā)是減少混亂度的過(guò)程,軟件維護(hù)是提高混亂度的過(guò)程,即使是最熟 練的軟件維護(hù)工作,也只是放緩了系統(tǒng)退化的進(jìn)程。

第四篇:《人月神話》讀書(shū)心得

《軟件工程導(dǎo)論讀書(shū)心得》

隨著it行業(yè)的迅速發(fā)展,計(jì)算機(jī)使用越來(lái)越普及,越來(lái)越多的領(lǐng)域使用了計(jì)算機(jī),特別是一些重要領(lǐng)域如國(guó)防、銀行、金融、通訊、航天等,他們對(duì)軟件質(zhì)量要求很高。同時(shí)一些重大事故的發(fā)生,也引發(fā)了人們對(duì)軟件質(zhì)量的關(guān)注。如201*年歐洲載重10噸的阿麗亞娜5型火箭發(fā)射失敗,最后證實(shí)是軟件質(zhì)量問(wèn)題;還有國(guó)內(nèi)的一些銀行金融系統(tǒng),因軟件質(zhì)量問(wèn)題不得不暫停營(yíng)業(yè)。毋庸置疑,在經(jīng)歷了長(zhǎng)期的不為人知和可有可無(wú)后,軟件測(cè)試目前已變的炙手可熱。隨著中國(guó)軟件市場(chǎng)的發(fā)展,越來(lái)越多的國(guó)外資金投向中國(guó)軟件行業(yè)。據(jù)報(bào)道,中國(guó)軟件外包市場(chǎng)的潛力和機(jī)會(huì)已遠(yuǎn)遠(yuǎn)超過(guò)軟件王國(guó)印度,不過(guò)由于軟件人才的嚴(yán)重不足致使我國(guó)軟件發(fā)展遭遇“瓶頸”。國(guó)家為了大力培養(yǎng)軟件人才,不斷采取積極有效的措施。

在這里,我我總結(jié)了一學(xué)期來(lái)的上課聽(tīng)課心得,在我腦海里反響最為頻繁的同時(shí)讓我比較趕興趣的內(nèi)容就是老師在第七章章節(jié)講到的《實(shí)現(xiàn)》,在這章節(jié)里,講述了軟件的實(shí)現(xiàn)需要的是以測(cè)試為基礎(chǔ),從而確保在交付之前保證軟件的可靠性。關(guān)于軟件測(cè)試,軟件測(cè)試是軟件開(kāi)發(fā)過(guò)程中必不可少的一個(gè)步驟,是用來(lái)確認(rèn)一個(gè)軟件的品質(zhì)和性能的好與環(huán)。所謂軟件測(cè)試就是利用測(cè)試工具按照測(cè)試方案和流程對(duì)產(chǎn)品進(jìn)行功能和性能測(cè)試,甚至根據(jù)需要編寫(xiě)不同的測(cè)試工具,設(shè)計(jì)和維護(hù)測(cè)試系統(tǒng),對(duì)測(cè)試方案可能出現(xiàn)的問(wèn)題進(jìn)行分析和評(píng)估。執(zhí)行測(cè)試用例后,需要跟蹤故障,以確保開(kāi)發(fā)的產(chǎn)品適合需求。

軟件測(cè)試是個(gè)需求高,就職機(jī)會(huì)大的職業(yè)。目前,我國(guó)具備軟件測(cè)試能力的人員數(shù)量和市場(chǎng)需求相差巨大,巨大的市場(chǎng)空缺,使軟件測(cè)試工程師從初級(jí)到高級(jí),只需要 1 年甚至更短的時(shí)間來(lái)完成。所以軟件測(cè)試行業(yè),未來(lái)的發(fā)展空間是非常廣闊的。

隨著軟件測(cè)試技術(shù)的發(fā)展,測(cè)試方法更加多樣化,針對(duì)性更強(qiáng);選擇合適的軟件測(cè)試方法可以讓我們事半功倍。 從測(cè)試是否針對(duì)系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法的角度來(lái)看,可分為:白盒測(cè)試和黑盒測(cè)試。從是否需要執(zhí)行被測(cè)軟件的角度,可分為: 靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。

在測(cè)試的過(guò)程中,我們一定要碰到的就是bug!有人說(shuō),軟件測(cè)試就是在尋

找軟件中的bug,那么我么有必要搞清楚什么是bug。bug ,在英語(yǔ)中是指“小蟲(chóng)子”的意思,現(xiàn)在泛指計(jì)算機(jī)中硬件和軟件的錯(cuò)誤。硬件錯(cuò)誤有兩個(gè)原因:一是設(shè)計(jì)錯(cuò)誤,而是硬件老化失效。軟件的錯(cuò)誤全是廠家的錯(cuò)誤

雖然知道軟件測(cè)試這個(gè)名詞,但知其然不知其所以然,通過(guò)課后的自我復(fù)習(xí),讓我明白了什么是軟件測(cè)試,作為一個(gè)合格的軟件測(cè)試人員應(yīng)當(dāng)具備的軟件測(cè)試知識(shí)有哪些,比如說(shuō)一個(gè)完整的測(cè)試流程應(yīng)該是:?jiǎn)卧獪y(cè)試—>集成測(cè)試—>聯(lián)調(diào)—>系統(tǒng)預(yù)測(cè)試—>系統(tǒng)測(cè)試,當(dāng)然作為軟件測(cè)試人員還應(yīng)知道常用的軟件測(cè)試的工具,軟件測(cè)試工具的作用是用來(lái)發(fā)現(xiàn)bug并處理,一個(gè)好的軟件測(cè)試工具和測(cè)試管理工具結(jié)合起來(lái)使用將會(huì)使軟件測(cè)試效率大大的提高,對(duì)些軟件測(cè)試工具的了解讓我明白一個(gè)好的軟件真的是來(lái)之不易。通過(guò)寫(xiě)這門(mén)課程的心得,讓我明白任何知識(shí)只要你肯去了解,肯去鉆研,你肯定會(huì)得到你想要的結(jié)果,所以我感謝老師給了我們這么好的一個(gè)機(jī)會(huì)再一次的去深層次接觸軟件知識(shí),讓我受益匪淺!

軟工專(zhuān)升本一班:黃偉強(qiáng)

09670201*0

第五篇:人月神話讀后感(1)

人月神話讀后感

二十九年前(1975)﹐ibm大型電腦之父──fred brooks 出版一本書(shū)﹕"the mythical man-month"。收集了他在1960年代領(lǐng)導(dǎo)1000多人共同發(fā)展os/360大型軟件系統(tǒng)的心得和經(jīng)驗(yàn)。該書(shū)是論文集﹐其中有一篇文章叫"the mythical man-month"﹐他就以此作為書(shū)名。在1956~1965 之間﹐brooks實(shí)際領(lǐng)導(dǎo)ibm 360 大型電腦的開(kāi)發(fā)計(jì)劃﹐包括硬體結(jié)構(gòu)及龐大的os/360作業(yè)系統(tǒng)在內(nèi)﹐因之他具有ibm 大型電腦之父的尊稱(chēng)。由于os/360是多達(dá)1000位程式師共同合作的大型軟件開(kāi)發(fā)工作﹐讓他深刻了解到大型軟件開(kāi)發(fā)的技術(shù)和管理上所面臨的種種困難和挑戰(zhàn)。于是﹐他就將其領(lǐng)導(dǎo)開(kāi)發(fā)os/360軟件系統(tǒng)的經(jīng)驗(yàn)心得收集在這本書(shū)里。人們常拿man-month (多少人﹐做多少個(gè)月)來(lái)計(jì)算軟件的工作量﹐但是brooks發(fā)現(xiàn)軟件的開(kāi)發(fā)工作是需要人與人之間密切溝通的﹐使得設(shè)計(jì)工作不易分割﹐所以man-month 為單位的計(jì)算方法是有問(wèn)題的(mythical)。也就得出著名的brooks法則── 「對(duì)于進(jìn)度已落后的軟件開(kāi)發(fā)計(jì)劃而言﹐若再增加人力﹐只會(huì)讓其更加落后!(adding manpowww.7334dd.coman的觀點(diǎn)仍然適合現(xiàn)在,即編程人員實(shí)際的編程時(shí)間只有50%,其他的時(shí)間都花在了無(wú)關(guān)的瑣碎事情上。

7.削足適履ten pounds in a five-pound sack

主要講述程序占用的空間等,在70年代比較突出,但現(xiàn)在好多了。

8.提綱擎領(lǐng)the documentary hypothesis

說(shuō)明文檔的作用

9.未雨綢繆plan to throwww.7334dd.comenting)的程序:提出文檔與程序合為一體,能很好的解決文檔與程序分開(kāi)造成的文檔過(guò)時(shí)的問(wèn)題,并說(shuō)明了在程序中加入文檔的一些方法和技巧。

14.沒(méi)有銀彈-軟件工程中的根本和次要問(wèn)題(no silver bullet-essence and accident in software engineering)

人狼是傳說(shuō)中的妖怪,只有銀彈才能殺死他。作者認(rèn)為軟件項(xiàng)目具有人狼的特性,因?yàn)檐浖?xiàng)目也可能變成一個(gè)怪物,一個(gè)落后進(jìn)度、超出預(yù)算、存在大量缺陷的怪物。作者通過(guò)軟件系統(tǒng)的內(nèi)在特性復(fù)雜性、一致性、可變性和不可見(jiàn)性來(lái)分析說(shuō)明了軟件天生就沒(méi)有銀彈。 作者試圖通過(guò)分析軟件問(wèn)題的本質(zhì)和很多侯選銀彈的特征來(lái)探究其中的原因。他行動(dòng)的第一步是將大塊的“巨無(wú)霸理論”替換成“微生物理論”。這個(gè)變化的過(guò)程告訴你,進(jìn)步是逐步取得的,伴隨著辛勤的勞動(dòng),對(duì)規(guī)范化過(guò)程應(yīng)進(jìn)行持續(xù)不懈的努力,而這個(gè)努力的過(guò)程相應(yīng)的就誕生了軟件工程。

15.再論《沒(méi)有銀彈》no silver bullet refired

看完再論《沒(méi)有銀彈》后,雖然作者說(shuō)有不少人對(duì)他的觀點(diǎn)持反對(duì)或不同意見(jiàn),但我始終覺(jué)得他的觀點(diǎn)是對(duì)的——根本和次要問(wèn)題的劃分以及定義。作者認(rèn)為軟件開(kāi)發(fā)困難的部分是概念的結(jié)構(gòu),如規(guī)格化、設(shè)計(jì)和測(cè)試等概念的結(jié)構(gòu),而不是概念的表述和實(shí)現(xiàn)概念,雖然實(shí)現(xiàn)概念可能占用了小于90%的時(shí)間,就如現(xiàn)今的軟件開(kāi)發(fā)一樣,系統(tǒng)分析通常占用的整個(gè)項(xiàng)目開(kāi)發(fā)時(shí)間不超過(guò)20%,而80%的時(shí)間花在編程上一樣。

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


人月神話讀書(shū)筆記》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.7334dd.com/gongwen/287825.html
相關(guān)文章