關(guān)于我們
書單推薦
新書推薦
|
軟件開發(fā)的201個(gè)原則 ★本書匯總了軟件工程原則。原則是關(guān)于軟件工程的基本原理、規(guī)則或假設(shè),不管所選的技術(shù)、工具或語言是什么,這些原則都有效。 ★全書共9章,第1章為引言,后面8章將201個(gè)軟件工程的原則劃分為8個(gè)大的類別:一般原則、需求工程原則、設(shè)計(jì)原則、編碼原則、測(cè)試原則、管理原則、產(chǎn)品保證原則和演變?cè)瓌t。 ★本書面向的讀者包括軟件工程師和管理者、軟件工程專業(yè)的學(xué)生、軟件工程領(lǐng)域的研究人員等。 ★本書由百度公司支持出版。百度以技術(shù)創(chuàng)新為信仰,在創(chuàng)新投入、研發(fā)布局、人才引進(jìn)方面均走在國(guó)際前列。百度一直秉承著科技為更好的社會(huì)責(zé)任理念,堅(jiān)持運(yùn)用創(chuàng)新技術(shù),聚焦于解決社會(huì)問題,履行企業(yè)公民的社會(huì)責(zé)任,為幫助全球用戶創(chuàng)造更加美好的生活而不斷努力。 1.暢銷全球26年,軟件開發(fā)領(lǐng)域傳世經(jīng)典2021年首次落地國(guó)內(nèi)。 2.用【原則】講透軟件研發(fā)底層方法從需求分析到產(chǎn)品演進(jìn),覆蓋產(chǎn)品研發(fā)全流程。 3.首本實(shí)現(xiàn)【輕閱讀】的研發(fā)工具書201個(gè)原則獨(dú)立成文,簡(jiǎn)練深刻,輕松閱讀。 4.百度技術(shù)學(xué)院【指定用書】掌握科學(xué)的方法,效率提高不止100%。 5.原則1:質(zhì)量。原則7:盡早把產(chǎn)品交給客戶。原則39:先確定問題,再寫需求。原則64:沒有文檔的設(shè)計(jì)不是設(shè)計(jì)。原則66:不要重復(fù)造輪子。 6.原則92:程序首先是寫給人看的。原則104:編程語言的知識(shí)沒那么重要。原則123:不要在單元測(cè)試之前集成。原則127:好的管理比好的技術(shù)更重要。原則185:軟件會(huì)持續(xù)變化。 ★作者序★ 在1995年版的序言中,我寫道, 如果軟件工程真的是一門工程學(xué)科,那么它是對(duì)經(jīng)過驗(yàn)證的原則、技術(shù)、語言和工具的智慧的運(yùn)用,用于有成本效益地創(chuàng)造和維護(hù)能夠滿足用戶需求的軟件。本書是有史以來本成冊(cè)的軟件工程原則集。原則是關(guān)于軟件工程的基本原理、規(guī)則或假設(shè),不管所選的技術(shù)、工具或語言是什么,其都有效。 26年后的今天,當(dāng)我審視這201條原則時(shí),我很高興地宣告,幾乎所有的原則都經(jīng)受住了時(shí)間的考驗(yàn),就像物理學(xué)中的基本原理一樣。 然而,在這26年里,因?yàn)檐浖斐傻膯栴}相當(dāng)之多。舉幾個(gè)例子: ★波音 737 MAX 機(jī)動(dòng)特性增強(qiáng)系統(tǒng)(MCAS)的單點(diǎn)故障導(dǎo)致了兩起空難,共造成 346 人死亡,調(diào)查結(jié)果是軟件測(cè)試不徹底。 ★全球范圍的軟件系統(tǒng)反復(fù)被勒索軟件攻擊,表明軟件存在漏洞。 ★一個(gè)無法預(yù)測(cè)且未被發(fā)現(xiàn)的溢出錯(cuò)誤導(dǎo)致人類飛行控制員必須在發(fā)射后立即銷毀阿麗亞娜 5 型運(yùn)載火箭。 ★火星氣候軌道飛行器墜毀在火星上,原因是兩個(gè)程序員關(guān)于變量的單位出現(xiàn)錯(cuò)誤溝通:一個(gè)認(rèn)為是磅,另一個(gè)認(rèn)為是牛頓。 當(dāng)橋梁或建筑物倒塌時(shí),調(diào)查人員會(huì)嘗試確定是什么地方出了問題。通常,是因?yàn)榻ㄖ涛茨茏袷亟ㄖ?guī)范(即施工期間要遵循的一套規(guī)則或原則),或者檢查員未能找到物理損壞的位置。當(dāng)軟件失敗時(shí),通常是因?yàn)檐浖こ探M織沒有遵守某個(gè)原則。 理解和實(shí)踐一門學(xué)科的所有原則是否可以預(yù)防所有災(zāi)難?不是。它只會(huì)大大降低因你而導(dǎo)致災(zāi)難的可能性。正如亞歷山大·波普所說,犯錯(cuò)是人之常情。只有通過犯錯(cuò),我們才能學(xué)習(xí),并制定新的原則。 在這本書中發(fā)表的大部分原則并非原創(chuàng),很多是從軟件工程從業(yè)者和研究者的著作中摘錄而來的。這些人無私地和我們分享他們的經(jīng)驗(yàn)、想法和智慧。我并不認(rèn)為這201個(gè)原則是相互獨(dú)立的。不像Boehm提出的7個(gè)基本軟件工程原則,本書中的一些原則的組合可能蘊(yùn)涵另一個(gè)原則。但我也不認(rèn)為這201個(gè)原則中的某兩個(gè)或某幾個(gè)原則是100% 兼容的。俗話所說的,距離產(chǎn)生美和眼不見,心不煩都是真理,每個(gè)原則都可以應(yīng)用在我們的生活中,但是它們卻不能同時(shí)用來證明同一個(gè)決定是正確的。本書中包含的原則都是有效的,它們都能夠用來提升軟件工程的水平,但也許并不能將某些組合應(yīng)用到同一個(gè)項(xiàng)目中。 本版中的原則與1995版中的原則相同。但是,你可能會(huì)對(duì)我的想法感興趣,哪些仍然是正確的,哪些是我懷疑的。以下是我的想法: 對(duì)于第 2 章中介紹的一般原則,全部依然有效。一些額外說明如下。 ★在原則 23~25 中,CASE這個(gè)詞已經(jīng)不流行了。今天,主要的軟件開發(fā)工具支持問題跟蹤、版本控制、虛擬機(jī)模擬、項(xiàng)目管理和調(diào)試。 ★ 對(duì)于原則 28,我必須承認(rèn),在過去 26 年里,據(jù)我所知,沒有一個(gè)為我工作過的軟件工程師使用過形式化方法本身,盡管其中很多人還擁有高等數(shù)學(xué)學(xué)位,也就是說,他們?cè)诒举|(zhì)上,是知道如何以形式化的方式思考的。 對(duì)于第 3 章中介紹的需求工程原則,全部依然有效。一些額外說明如下。 ★對(duì)于原則 40、41、43、45、47、48、49 和 54,在過去 26 年的大部分時(shí)間里,我一直致力于創(chuàng)業(yè),在這種環(huán)境下,向客戶提供一系列不斷增大的小可行產(chǎn)品(MVP)以獲取他們的反饋至關(guān)重要。我們只是在問題跟蹤工具中以自然語言維護(hù)我們的需求,我們可以輕松地用優(yōu)先級(jí)、目標(biāo)版本、狀態(tài)和注解對(duì)它們進(jìn)行注釋。當(dāng)然,這正是原則 60 所體現(xiàn)的精神。 對(duì)于第 4 章中介紹的設(shè)計(jì)原則,全部依然有效。一些額外說明如下。 ★對(duì)于原則 73,如今耦合和內(nèi)聚變得不那么重要,已經(jīng)被重用所取代。今天,我們通過從大量經(jīng)過驗(yàn)證的組件庫中選取許多組件來構(gòu)建系統(tǒng),并在必要時(shí)進(jìn)行定制開發(fā)。庫所依賴的框架傾向于鼓勵(lì)弱耦合和強(qiáng)內(nèi)聚,但我們不再需要考慮它了。 ★ 原則 76 和 84 可能是所有原則中重要的原則。當(dāng)然,我們?cè)谶^去26年見證了框架的出現(xiàn),它使軟件重用變得更加容易。事實(shí)上,不再稱之為重用,我們就簡(jiǎn)稱其為軟件開發(fā)。 ★隨著硬件變得更快、更便宜,原則 79 變得越來越不重要。 ★原則 80,如果實(shí)施更正,可能已經(jīng)避免了阿麗亞娜 5 型火箭的災(zāi)難。 對(duì)于第 5 章中介紹的編碼原則,全部依然有效。一些額外說明如下。 ★對(duì)于原則 94,我認(rèn)為現(xiàn)代軟件工程師不需要再擔(dān)心這個(gè)了。 ★對(duì)于原則 96,這仍然是我的愛之一。我一直在實(shí)踐它,我的軟件工程師同事認(rèn)為我瘋了。 對(duì)于第 6 章中介紹的測(cè)試原則,全部依然有效。一些額外說明如下。 ★對(duì)于原則 120,謹(jǐn)以此向我的朋友湯姆·麥克凱布致以崇高的敬意,我認(rèn)為他的指標(biāo)已經(jīng)不再有用。我知道沒有人再使用它了。對(duì)不起,湯姆。 ★ 對(duì)于原則 124,所有現(xiàn)代測(cè)試工具都會(huì)自動(dòng)執(zhí)行此操作。 對(duì)于第 7 章中介紹的管理原則,全部依然有效。一些額外說明如下。 ★對(duì)于原則 129、131、132、133、134、135、137、138、140、142 和 147,如果你不相信這些,請(qǐng)不要成為經(jīng)理。 ★ 對(duì)于原則 168,對(duì)當(dāng)今的大多數(shù)應(yīng)用程序來說不是一個(gè)真正的問題。 對(duì)于第 8 章中介紹的產(chǎn)品保證原則,全部依然有效。一些額外說明: ★我近托運(yùn)了一輛自行車,幾乎橫跨了整個(gè)國(guó)家,當(dāng)收到時(shí),貨物箱子損壞而且很多零件不見了。我聯(lián)系制造商購買缺少的零件,他們告訴我,每輛自行車都不同,雖然我有型號(hào),但每輛自行車的每個(gè)實(shí)例都是不同的。不僅如此,他們也沒有記錄每輛運(yùn)輸?shù)淖孕熊嚱M裝了哪些零件,因此他們不可能將丟失的零件寄給我。我很震驚。軟件配置管理(如今,通常稱為版本控制)應(yīng)該跟蹤每個(gè)組件的每個(gè)版本,以及組件版本的哪些組合構(gòu)成了可行的系統(tǒng),以及哪些客戶擁有哪些可行的版本。我認(rèn)為這應(yīng)該是一個(gè)新的原則。 ★對(duì)于原則 176 和 177,可能不再那么重要了。 對(duì)于第 9 章中介紹的演變?cè)瓌t,全部依然有效。 Alan M. Davis 2021.9 ★譯者序★ 我不是譯者,僅是一名校對(duì)者。大家讓我來寫這篇譯者序,盛情難卻,無法推脫。本書英文版是我于2017年至2020年在百度舉辦代碼的藝術(shù)訓(xùn)練營(yíng)時(shí)使用的教材。這本書的內(nèi)容深受訓(xùn)練營(yíng)學(xué)員的好評(píng)。由于之前沒有中文版,對(duì)于部分英文基礎(chǔ)不太好的同學(xué)來說,閱讀有些困難。在2019年年底,十多名代碼的藝術(shù)訓(xùn)練營(yíng)的畢業(yè)生自發(fā)組織起來,開始了對(duì)此書的翻譯工作。我從2020年5月初開始校對(duì)工作,完成全書的校對(duì),我花費(fèi)了80~100小時(shí)。由此推斷,負(fù)責(zé)翻譯的同學(xué)花費(fèi)了數(shù)倍于此的時(shí)間。非常感謝這些同學(xué)的無私付出! 初識(shí)本書英文版是在二十多年前。當(dāng)時(shí)我還在清華大學(xué)讀書,在老師的指導(dǎo)下做一個(gè)有一定規(guī)模的軟件研發(fā)項(xiàng)目,在項(xiàng)目的研發(fā)過程中,遇到了不少軟件工程方面的問題。于是在那一年,我閱讀了大約十本軟件工程方面的圖書,包括Code Complete(《代碼大全》)、Rapid Development、Programming Pearls(《編程珠璣》),等等。本書是我當(dāng)時(shí)在清華大學(xué)圖書館里發(fā)現(xiàn)的寶貝。我必須說,此書對(duì)我的影響非常大,很多我現(xiàn)在經(jīng)常提起的軟件工程原則,都源于對(duì)這本書的閱讀。 2006年我離開清華大學(xué),到目前為止已經(jīng)在工業(yè)界工作了十多年,先后就職于多家公司。我發(fā)現(xiàn),雖然我們的軟件研發(fā)規(guī)模和二十多年前相比有了很大的發(fā)展,但是在軟件研發(fā)理念方面的進(jìn)步還是太慢了。有太多的軟件從業(yè)者,雖然已經(jīng)工作多年,但對(duì)軟件研發(fā)的基本理念和原則了解得還是不夠多。根據(jù)我的多次調(diào)查,閱讀超過兩本真正的軟件工程圖書的人都非常少。很多軟件工程師,仍然使用非常低效甚至是錯(cuò)誤的方法在工作! 于是在2015年,我在百度開辦了代碼的藝術(shù)面授課程,其中就重點(diǎn)推薦了本書的英文版。而在2017年做代碼的藝術(shù)訓(xùn)練營(yíng)的時(shí)候,這本書就成了指定教材。為什么要選擇這本書?因?yàn)樗鼘?duì)軟件工程的內(nèi)容覆蓋全面,且篇幅短小。對(duì)于一個(gè)短期培訓(xùn)班來說,如果選擇類似《代碼大全》這樣的圖書,閱讀所需要的時(shí)間就有些太多了。在這種情況下,本書的英文版是一個(gè)性價(jià)比更高的選擇。另外,我常常感覺,對(duì)于一個(gè)軟件工程師,具備正確的意識(shí)比掌握具體的知識(shí)更重要。如果有正確的意識(shí),即使不記得具體的知識(shí)點(diǎn),也可以在需要的時(shí)候查閱相關(guān)資料,而反過來則不是這樣的。 必須要說的是,本書的英文版寫于1995年,距今已經(jīng)有26年。這也是很多人擔(dān)心的地方計(jì)算機(jī)技術(shù)發(fā)展得如此之快,這本書是不是已經(jīng)過時(shí)了?但是,正如我在代碼的藝術(shù)課程中對(duì)知識(shí)方法精神三者所做的對(duì)比,方法的變化速度遠(yuǎn)遠(yuǎn)慢于知識(shí)。尤其是在本次校對(duì)過程中,我驚奇地發(fā)現(xiàn),書中真的可以說是過時(shí)的原則不足5個(gè)!是軟件研發(fā)的方法變化太慢,還是書的內(nèi)容太深刻?我想兩者兼而有之。在此,我必須要對(duì)本書的作者Alan M. Davis致敬,并對(duì)書中所有原則的貢獻(xiàn)者和歷史上所有軟件工程領(lǐng)域的大師們致敬! 在此,我要隆重介紹翻譯本書的百度的同學(xué)們,他們是:葉王、馬學(xué)翔、吳斌、王冰清、楊光、曾浩浩、李殿斌、甘璐、李子昂、肖遠(yuǎn)昊、賈儒、王瑩、張苗、李雙婕、榮文升。另外,經(jīng)大家商定,將本書因翻譯出版獲得的稿酬全都捐贈(zèng)給公益事業(yè)。 后,所有閱讀本書的軟件工程師和所有準(zhǔn)備從事軟件研發(fā)的同學(xué)們,我祝愿本書能助你們?nèi)〉酶蟮某晒Γ?/p> 章淼 博士 百度BFE團(tuán)隊(duì)技術(shù)負(fù)責(zé)人、百度代碼規(guī)范委員會(huì)主席 2021年6月14日寫于百度 ★作者介紹★ Alan M. Davis是一名計(jì)算機(jī)科學(xué)家,他的職業(yè)生涯大約有一半在工業(yè)界,一半在學(xué)術(shù)界。 他在工業(yè)界的經(jīng)歷包括: Offtoa公司的聯(lián)合創(chuàng)始人兼首席執(zhí)行官,這是一家?guī)椭髽I(yè)家制定商業(yè)戰(zhàn)略的互聯(lián)網(wǎng)公司(2012年至今)。 Omni-Vista公司的聯(lián)合創(chuàng)始人、董事長(zhǎng)兼首席執(zhí)行官,這是一家位于科羅拉多斯普林斯的軟件公司(19982002)。 他在學(xué)術(shù)界的經(jīng)歷包括: 位于丹佛的科羅拉多大學(xué)行政MBA創(chuàng)業(yè)教授,前任學(xué)術(shù)主席(20062018)。 科羅拉多大學(xué)斯普林斯分校的商業(yè)策略與企業(yè)家精神專業(yè)的教授,前El Pomar軟件工程教授(19912015)。 Davis博士在1994年至1998年擔(dān)任《IEEE 軟件》的主編;在全球28個(gè)國(guó)家或地區(qū)演講2000余次,并撰寫了9本圖書;他自1994年起成為IEEE會(huì)士;曾多次訪問中國(guó),其中包括領(lǐng)導(dǎo)EMBA學(xué)生小組三度赴上海、北京出訪。 ★譯者介紹★ 本書譯者均為百度內(nèi)部培訓(xùn)項(xiàng)目代碼的藝術(shù)訓(xùn)練營(yíng)的學(xué)員。出于對(duì)本書的熱愛和推廣優(yōu)秀軟件工程理念的使命,大家自發(fā)組織起來,利用業(yè)務(wù)時(shí)間完成了本書的翻譯。翻譯小組的成員包括:葉王,馬學(xué)翔,吳斌,王冰清,楊光,曾浩浩,李殿斌,甘璐,李子昂,肖遠(yuǎn)昊,賈儒,王瑩,張苗,李雙婕,榮文升。 大家很高興能夠在百度完成這件非常有意義的工作。 ★第1章 引言★ ★第2章 一般原則★ 原則1 質(zhì)量 原則2 質(zhì)量在每個(gè)人眼中都不同 原則3 開發(fā)效率和質(zhì)量密不可分 原則4 高質(zhì)量軟件是可以實(shí)現(xiàn)的 原則5 不要試圖通過改進(jìn)軟件實(shí)現(xiàn)高質(zhì)量 原則6 低可靠性比低效率更糟糕 原則7 盡早把產(chǎn)品交給客戶 原則8 與客戶/用戶溝通 原則9 促使開發(fā)者與客戶的目標(biāo)一致 原則10 做好拋棄的準(zhǔn)備 原則11 開發(fā)正確的原型 原則12 構(gòu)建合適功能的原型 原則13 要快速地開發(fā)一次性原型 原則14 漸進(jìn)地?cái)U(kuò)展系統(tǒng) 原則15 看到越多,需要越多 原則16 開發(fā)過程中的變化是不可避免的 原則17 只要可能,購買而非開發(fā) 原則18 讓軟件只需簡(jiǎn)短的用戶手冊(cè) 原則19 每個(gè)復(fù)雜問題都有一個(gè)解決方案 原則20 記錄你的假設(shè) 原則21 不同的階段,使用不同的語言 原則22 技術(shù)優(yōu)先于工具 原則23 使用工具,但要?jiǎng)?wù)實(shí) 原則24 把工具交給優(yōu)秀的工程師 原則25 CASE工具是昂貴的 原則26 知道何時(shí)和知道如何同樣重要 原則27 實(shí)現(xiàn)目標(biāo)就停止 原則28 了解形式化方法 原則29 和組織榮辱與共 原則30 跟風(fēng)要小心 原則31 不要忽視技術(shù) 原則32 使用文檔標(biāo)準(zhǔn) 原則33 文檔要有術(shù)語表 原則34 軟件文檔都要有索引 原則35 對(duì)相同的概念用相同的名字 原則36 研究再轉(zhuǎn)化,不可行 原則37 要承擔(dān)責(zé)任 ★第3章 需求工程原則★ 原則38 低質(zhì)量的需求分析,導(dǎo)致低質(zhì)量的成本估算 原則39 先確定問題,再寫需求 原則40 立即確定需求 原則41 立即修復(fù)需求規(guī)格說明中的錯(cuò)誤 原則42 原型可降低選擇用戶界面的風(fēng)險(xiǎn) 原則43 記錄需求為什么被引入 原則44 確定子集 原則45 評(píng)審需求 原則46 避免在需求分析時(shí)進(jìn)行系統(tǒng)設(shè)計(jì) 原則47 使用正確的方法 原則48 使用多角度的需求視圖 原則49 合理地組織需求 原則50 給需求排列優(yōu)先級(jí) 原則51 書寫要簡(jiǎn)潔 原則52 給每個(gè)需求單獨(dú)編號(hào) 原則53 減少需求中的歧義 原則54 對(duì)自然語言輔助增強(qiáng),而非替換 原則55 在更形式化的模型前,先寫自然語言 原則56 保持需求規(guī)格說明的可讀性 原則57 明確規(guī)定可靠性 原則58 應(yīng)明確環(huán)境超出預(yù)期時(shí)的系統(tǒng)行為 原則59 自毀的待定項(xiàng) 原則60 將需求保存到數(shù)據(jù)庫 ★第4章 設(shè)計(jì)原則★ 原則61 從需求到設(shè)計(jì)的轉(zhuǎn)換并不容易 原則62 將設(shè)計(jì)追溯至需求 原則63 評(píng)估備選方案 原則64 沒有文檔的設(shè)計(jì)不是設(shè)計(jì) 原則65 封裝 原則66 不要重復(fù)造輪子 原則67 保持簡(jiǎn)單 原則68 避免大量的特殊案例 原則69 縮小智力距離 原則70 將設(shè)計(jì)置于知識(shí)控制之下 原則71 保持概念一致 原則72 概念性錯(cuò)誤比語法錯(cuò)誤更嚴(yán)重 原則73 使用耦合和內(nèi)聚 原則74 為變化而設(shè)計(jì) 原則75 為維護(hù)而設(shè)計(jì) 原則76 為防備出現(xiàn)錯(cuò)誤而設(shè)計(jì) 原則77 在軟件中植入通用性 原則78 在軟件中植入靈活性 原則79 使用高效的算法 原則80 模塊規(guī)格說明只提供用戶需要的所有信息 原則81 設(shè)計(jì)是多維的 原則82 優(yōu)秀的設(shè)計(jì)出自優(yōu)秀的設(shè)計(jì)師 原則83 理解你的應(yīng)用場(chǎng)景 原則84 無須太多投資,即可實(shí)現(xiàn)復(fù)用 原則85 錯(cuò)進(jìn)錯(cuò)出是不正確的 原則86 軟件可靠性可以通過冗余來實(shí)現(xiàn) ★第5章 編碼原則★ 原則87 避免使用特殊技巧 原則88 避免使用全局變量 原則89 編寫可自上而下閱讀的程序 原則90 避免副作用 原則91 使用有意義的命名 原則92 程序首先是寫給人看的 原則93 使用的數(shù)據(jù)結(jié)構(gòu) 原則94 先確保正確,再提升性能 原則95 在寫完代碼之前寫注釋 原則96 先寫文檔后寫代碼 原則97 手動(dòng)運(yùn)行每個(gè)組件 原則98 代碼審查 原則99 你可以使用非結(jié)構(gòu)化的語言 原則100 結(jié)構(gòu)化的代碼未必是好的代碼 原則101 不要嵌套太深 原則102 使用合適的語言 原則103 編程語言不是借口 原則104 編程語言的知識(shí)沒那么重要 原則105 格式化你的代碼 原則106 不要太早編碼 ★第6章 測(cè)試原則★ 原則107 依據(jù)需求跟蹤測(cè)試 原則108 在測(cè)試之前早做測(cè)試計(jì)劃 原則109 不要測(cè)試自己開發(fā)的軟件 原則110 不要為自己的軟件做測(cè)試計(jì)劃 原則111 測(cè)試只能揭示缺陷的存在 原則112 雖然大量的錯(cuò)誤可證明軟件毫無價(jià)值,但是零錯(cuò)誤并不能說明軟件的價(jià)值 原則113 成功的測(cè)試應(yīng)發(fā)現(xiàn)錯(cuò)誤 原則114 半數(shù)的錯(cuò)誤出現(xiàn)在15%的模塊中 原則115 使用黑盒測(cè)試和白盒測(cè)試 原則116 測(cè)試用例應(yīng)包含期望的結(jié)果 原則117 測(cè)試不正確的輸入 原則118 壓力測(cè)試必不可少 原則119 大爆炸理論不適用 原則120 使用 McCabe 復(fù)雜度指標(biāo) 原則121 使用有效的測(cè)試完成度標(biāo)準(zhǔn) 原則122 達(dá)成有效的測(cè)試覆蓋 原則123 不要在單元測(cè)試之前集成 原則124 測(cè)量你的軟件 原則125 分析錯(cuò)誤的原因 原則126 對(duì)錯(cuò)不對(duì)人 ★第7章 管理原則★ 原則127 好的管理比好的技術(shù)更重要 原則128 使用恰當(dāng)?shù)姆椒?/p> 原則129 不要相信你讀到的一切 原則130 理解客戶的優(yōu)先級(jí) 原則131 人是成功的關(guān)鍵 原則132 幾個(gè)好手要強(qiáng)過很多生手 原則133 傾聽你的員工 原則134 信任你的員工 原則135 期望優(yōu)秀 原則136 溝通技巧是必要的 原則137 端茶送水 原則138 人們的動(dòng)機(jī)是不同的 原則139 讓辦公室保持安靜 原則140 人和時(shí)間是不可互換的 原則141 軟件工程師之間存在巨大的差異 原則142 你可以優(yōu)化任何你想要優(yōu)化的 原則143 隱蔽地收集數(shù)據(jù) 原則144 每行代碼的成本是沒用的 原則145 衡量開發(fā)效率沒有完美的方法 原則146 剪裁成本估算方法 原則147 不要設(shè)定不切實(shí)際的截止時(shí)間 原則148 避免不可能 原則149 評(píng)估之前先要了解 原則150 收集生產(chǎn)力數(shù)據(jù) 原則151 不要忘記團(tuán)隊(duì)效率 原則152 LOC/PM與語言無關(guān) 原則153 相信排期 原則154 精確的成本估算并不是萬無一失的 原則155 定期重新評(píng)估排期 原則156 輕微的低估不總是壞事 原則157 分配合適的資源 原則158 制訂詳細(xì)的項(xiàng)目計(jì)劃 原則159 及時(shí)更新你的計(jì)劃 原則160 避免駐波 原則161 知曉十大風(fēng)險(xiǎn) 原則162 預(yù)先了解風(fēng)險(xiǎn) 原則163 使用適當(dāng)?shù)牧鞒棠P?/p> 原則164 方法無法挽救你 原則165 沒有奇跡般提升效率的秘密 原則166 了解進(jìn)度的含義 原則167 按差異管理 原則168 不要過度使用你的硬件 原則169 對(duì)硬件的演化要樂觀 原則170 對(duì)軟件的進(jìn)化要悲觀 原則171 認(rèn)為災(zāi)難是不可能的想法往往導(dǎo)致災(zāi)難 原則172 做項(xiàng)目總結(jié) ★第8章 產(chǎn)品保證原則★ 原則173 產(chǎn)品保證并不是奢侈品 原則174 盡早建立軟件配置管理過程 原則175 使軟件配置管理適應(yīng)軟件過程 原則176 組織SCM獨(dú)立于項(xiàng)目管理 原則177 輪換人員到產(chǎn)品保證組織 原則178 給所有中間產(chǎn)品一個(gè)名稱和版本 原則179 控制基準(zhǔn) 原則180 保存所有內(nèi)容 原則181 跟蹤每一個(gè)變更 原則182 不要繞過變更控制 原則183 對(duì)變更請(qǐng)求進(jìn)行分級(jí)和排期 原則184 在大型開發(fā)項(xiàng)目中使用確認(rèn)和驗(yàn)證(V&V) ★第9章 演變?cè)瓌t★ 原則185 軟件會(huì)持續(xù)變化 原則186 軟件的熵增加 原則187 如果沒有壞,就不要修理它 原則188 解決問題,而不是癥狀 原則189 先變更需求 原則190 發(fā)布之前的錯(cuò)誤也會(huì)在發(fā)布之后出現(xiàn) 原則191 一個(gè)程序越老,維護(hù)起來越困難 原則192 語言影響可維護(hù)性 原則193 有時(shí)重新開始會(huì)更好 原則194 首先翻新差的 原則195 維護(hù)階段比開發(fā)階段產(chǎn)生的錯(cuò)誤更多 原則196 每次變更后都要進(jìn)行回歸測(cè)試 原則197 變更很容易的想法,會(huì)使變更更容易出錯(cuò) 原則198 對(duì)非結(jié)構(gòu)化代碼進(jìn)行結(jié)構(gòu)化改造,并不一定會(huì)使它更好 原則199 在優(yōu)化前先進(jìn)行性能分析 原則200 保持熟悉 原則201 系統(tǒng)的存在促進(jìn)了演變 ★參考資料索引★ ★術(shù)語索引★
你還可能感興趣
我要評(píng)論
|