關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
軟件開(kāi)發(fā)的201個(gè)原則(必讀經(jīng)典簡(jiǎn)裝本) 讀者對(duì)象:本書(shū)面向的讀者包括軟件工程師和管理者、軟件工程專業(yè)的學(xué)生、軟件工程領(lǐng)域的研發(fā)人員等。
軟件工程是一門(mén)工程學(xué)科,是對(duì)經(jīng)過(guò)驗(yàn)證的原則、技術(shù)、語(yǔ)言和工具的智慧的運(yùn)用,用于有成本效益的創(chuàng)造和維護(hù)能夠滿足用戶需求的軟件。 本書(shū)匯總了軟件工程原則,對(duì)于軟件研發(fā)中的主要思想,以一系列分類原則的方式,給出了總結(jié)。原則是關(guān)于軟件工程的基本原理、規(guī)則或結(jié)論,不管所選的技術(shù)、工具或語(yǔ)言是什么,這些原則都有效。 全書(shū)共9章,第1章為引言,后面8章將201個(gè)軟件工程的原則劃分為8個(gè)大的類別:一般原則、需求工程原則、設(shè)計(jì)原則、編碼原則、測(cè)試原則、管理原則、產(chǎn)品保證原則和演變?cè)瓌t。
Alan M. Davis是一名計(jì)算機(jī)科學(xué)家(伊利諾伊大學(xué)厄巴納-香檳分校計(jì)算機(jī)科學(xué)博士),他的職業(yè)生涯大約有一半在工業(yè)界,一半在學(xué)術(shù)界。他在工業(yè)界的經(jīng)歷包括:1.Offtoa公司的聯(lián)合創(chuàng)始人兼首席執(zhí)行官,這是一家?guī)椭髽I(yè)家制定商業(yè)戰(zhàn)略的互聯(lián)網(wǎng)公司(2012年至今)。2. Omni-Vista公司的聯(lián)合創(chuàng)始人、董事長(zhǎng)兼首席執(zhí)行官,這是一家位于科羅拉多斯普林斯的軟件公司(1998—2002)。3. Requisite公司的董事會(huì)創(chuàng)始成員,被Rational Software收購(gòu),后來(lái)被IBM收購(gòu)(1995—1997)。4. BTG公司副總裁,該公司位于弗吉尼亞州,于1995年上市,被Titan收購(gòu),隨后被L-3 Communications收購(gòu)(1984—1991)。5. 亞利桑那州鳳凰城GTE通信系統(tǒng)的研發(fā)總監(jiān)(1983—1984)。6. 馬薩諸塞州沃爾瑟姆GTE實(shí)驗(yàn)室的軟件工程師、項(xiàng)目經(jīng)理、部門(mén)經(jīng)理和軟件技術(shù)總監(jiān)(1977—1983)。7. 位于科羅拉多斯普林斯的天使俱樂(lè)部High Altitude Investors(HAI)的選舉委員會(huì)成員(2008—2015)。8. 催化劑信息技術(shù)發(fā)展基金(Catalyst InfoTech Development Fund)的非管理普通合伙人和有限合伙人。催化劑信息技術(shù)發(fā)展基金是科羅拉多州的一個(gè)小型風(fēng)險(xiǎn)投資基金(1995—2002)。他在學(xué)術(shù)界的經(jīng)歷包括:9. 位于丹佛的科羅拉多大學(xué)行政MBA創(chuàng)業(yè)教授,前任學(xué)術(shù)主席(2006—2018)。10. 科羅拉多大學(xué)斯普林斯分校的商業(yè)策略與企業(yè)家精神專業(yè)的教授,前El Pomar軟件工程教授(1991—2015)。11. 曾在澳大利亞、印度尼西亞、尼日利亞、南非和西班牙等國(guó)家擔(dān)任教職。
本書(shū)譯者均為百度公司員工,同時(shí)也是參加百度培訓(xùn)項(xiàng)目“代碼的藝術(shù)訓(xùn)練營(yíng)”的學(xué)員,他們是:葉王、馬學(xué)翔、吳斌、王冰清、楊光、曾浩浩、李殿斌、甘璐、李子昂、肖遠(yuǎn)昊、賈儒、王瑩、張苗、李雙婕、榮文升。
第1章 引言 ................................................................................... 3
第2章 一般原則 ........................................................................... 7 原則1 質(zhì)量第一 ................................................................. 8 原則2 質(zhì)量在每個(gè)人眼中都不同 ....................................... 9 原則3 開(kāi)發(fā)效率和質(zhì)量密不可分 .....................................10 原則4 高質(zhì)量軟件是可以實(shí)現(xiàn)的 .....................................11 原則5 不要試圖通過(guò)改進(jìn)軟件實(shí)現(xiàn)高質(zhì)量 ......................12 原則6 低可靠性比低效率更糟糕 .....................................13 原則7 盡早把產(chǎn)品交給客戶.............................................14 原則8 與客戶/用戶溝通 ...................................................15 原則9 促使開(kāi)發(fā)者與客戶的目標(biāo)一致 .............................16 原則10 做好拋棄的準(zhǔn)備 ..................................................17 原則11 開(kāi)發(fā)正確的原型 ..................................................18 原則12 構(gòu)建合適功能的原型 ..........................................19 原則13 要快速地開(kāi)發(fā)一次性原型 ...................................20 原則14 漸進(jìn)地?cái)U(kuò)展系統(tǒng) ..................................................21 原則15 看到越多,需要越多 ..........................................22 原則16 開(kāi)發(fā)過(guò)程中的變化是不可避免的 ........................23 原則17 只要可能,購(gòu)買而非開(kāi)發(fā) ...................................24 原則18 讓軟件只需簡(jiǎn)短的用戶手冊(cè) ...............................25 原則19 每個(gè)復(fù)雜問(wèn)題都有一個(gè)解決方案 ........................26 原則20 記錄你的假設(shè) ......................................................27 原則21 不同的階段,使用不同的語(yǔ)言 ...........................28 原則22 技術(shù)優(yōu)先于工具 ..................................................29 原則23 使用工具,但要?jiǎng)?wù)實(shí) ..........................................30 原則24 把工具交給優(yōu)秀的工程師 ...................................31 原則25 CASE工具是昂貴的 ...........................................32 原則26 “知道何時(shí)”和“知道如何”同樣重要 ............33 原則27 實(shí)現(xiàn)目標(biāo)就停止 ..................................................34 原則28 了解形式化方法 ..................................................35 原則29 和組織榮辱與共 ..................................................36 原則30 跟風(fēng)要小心 ..........................................................37 原則31 不要忽視技術(shù) ......................................................38 原則32 使用文檔標(biāo)準(zhǔn) ......................................................39 原則33 文檔要有術(shù)語(yǔ)表 ..................................................40 原則34 軟件文檔都要有索引 ..........................................41 原則35 對(duì)相同的概念用相同的名字 ...............................42 原則36 研究再轉(zhuǎn)化,不可行 ..........................................43 原則37 要承擔(dān)責(zé)任 ..........................................................44 第3章 需求工程原則 .................................................................. 47 原則38 低質(zhì)量的需求分析,導(dǎo)致低質(zhì)量的成本估算 .....48 原則39 先確定問(wèn)題,再寫(xiě)需求 .......................................49 原則40 立即確定需求 ......................................................50 原則41 立即修復(fù)需求規(guī)格說(shuō)明中的錯(cuò)誤 ........................51 原則42 原型可降低選擇用戶界面的風(fēng)險(xiǎn) ........................52 原則43 記錄需求為什么被引入 .......................................53 原則44 確定子集 .............................................................54 原則45 評(píng)審需求 .............................................................55 原則46 避免在需求分析時(shí)進(jìn)行系統(tǒng)設(shè)計(jì) ........................56 原則47 使用正確的方法 ..................................................57 原則48 使用多角度的需求視圖 .......................................58 原則49 合理地組織需求 ..................................................59 原則50 給需求排列優(yōu)先級(jí) ..............................................60 原則51 書(shū)寫(xiě)要簡(jiǎn)潔 ..........................................................61 原則52 給每個(gè)需求單獨(dú)編號(hào) ..........................................62 原則53 減少需求中的歧義 ..............................................63 原則54 對(duì)自然語(yǔ)言輔助增強(qiáng),而非替換 ........................64 原則55 在更形式化的模型前,先寫(xiě)自然語(yǔ)言 ................65 原則56 保持需求規(guī)格說(shuō)明的可讀性 ...............................66 原則57 明確規(guī)定可靠性 ..................................................67 原則58 應(yīng)明確環(huán)境超出“可接受”時(shí)的系統(tǒng)行為 ........68 原則59 自毀的待定項(xiàng) ......................................................69 原則60 將需求保存到數(shù)據(jù)庫(kù) ..........................................70 第4章 設(shè)計(jì)原則 ......................................................................... 73 原則61 從需求到設(shè)計(jì)的轉(zhuǎn)換并不容易 ...........................74 原則62 將設(shè)計(jì)追溯至需求 ..............................................75 原則63 評(píng)估備選方案 ......................................................76 原則64 沒(méi)有文檔的設(shè)計(jì)不是設(shè)計(jì) ...................................77 原則65 封裝 .....................................................................78 原則66 不要重復(fù)造輪子 ..................................................79 原則67 保持簡(jiǎn)單 .............................................................80 原則68 避免大量的特殊案例 ..........................................81 原則69 縮小智力距離 ......................................................82 原則70 將設(shè)計(jì)置于知識(shí)控制之下 ...................................83 原則71 保持概念一致 ......................................................84 原則72 概念性錯(cuò)誤比語(yǔ)法錯(cuò)誤更嚴(yán)重 ...........................85 原則73 使用耦合和內(nèi)聚 ..................................................86 原則74 為變化而設(shè)計(jì) ......................................................87 原則75 為維護(hù)而設(shè)計(jì) ......................................................88 原則76 為防備出現(xiàn)錯(cuò)誤而設(shè)計(jì) .......................................89 原則77 在軟件中植入通用性 ..........................................90 原則78 在軟件中植入靈活性 ..........................................91 原則79 使用高效的算法 ..................................................92 原則80 模塊規(guī)格說(shuō)明只提供用戶需要的所有信息 ........93 原則81 設(shè)計(jì)是多維的 ......................................................94 原則82 優(yōu)秀的設(shè)計(jì)出自優(yōu)秀的設(shè)計(jì)師 ...........................95 原則83 理解你的應(yīng)用場(chǎng)景 ..............................................96 原則84 無(wú)須太多投資,即可實(shí)現(xiàn)復(fù)用 ...........................97 原則85 “錯(cuò)進(jìn)錯(cuò)出”是不正確的 ...................................98 原則86 軟件可靠性可以通過(guò)冗余來(lái)實(shí)現(xiàn) ........................99 第5章 編碼原則 ....................................................................... 101 原則87 避免使用特殊技巧 ............................................102 原則88 避免使用全局變量 ............................................103 原則89 編寫(xiě)可自上而下閱讀的程序 .............................104 原則90 避免副作用 ........................................................105 原則91 使用有意義的命名 ............................................106 原則92 程序首先是寫(xiě)給人看的 .....................................107 原則93 使用最優(yōu)的數(shù)據(jù)結(jié)構(gòu) ........................................108 原則94 先確保正確,再提升性能 .................................109 原則95 在寫(xiě)完代碼之前寫(xiě)注釋 .....................................110 原則96 先寫(xiě)文檔后寫(xiě)代碼 ............................................111 原則97 手動(dòng)運(yùn)行每個(gè)組件 ............................................112 原則98 代碼審查 ...........................................................113 原則99 你可以使用非結(jié)構(gòu)化的語(yǔ)言 .............................114 原則100 結(jié)構(gòu)化的代碼未必是好的代碼 .......................115 原則101 不要嵌套太深 ..................................................116 原則102 使用合適的語(yǔ)言 ..............................................117 原則103 編程語(yǔ)言不是借口 ..........................................118 原則104 編程語(yǔ)言的知識(shí)沒(méi)那么重要 ...........................119 原則105 格式化你的代碼 ..............................................120 原則106 不要太早編碼 ..................................................121 第6章 測(cè)試原則 ....................................................................... 123 原則107 依據(jù)需求跟蹤測(cè)試 ..........................................124 原則108 在測(cè)試之前早做測(cè)試計(jì)劃 ...............................125 原則109 不要測(cè)試自己開(kāi)發(fā)的軟件 ...............................126 原則110 不要為自己的軟件做測(cè)試計(jì)劃 .......................127 原則111 測(cè)試只能揭示缺陷的存在 ...............................128 原則112 雖然大量的錯(cuò)誤可證明軟件毫無(wú)價(jià)值, 但是零錯(cuò)誤并不能說(shuō)明軟件的價(jià)值 ................129 原則113 成功的測(cè)試應(yīng)發(fā)現(xiàn)錯(cuò)誤 ...................................130 原則114 半數(shù)的錯(cuò)誤出現(xiàn)在15%的模塊中 ...................131 原則115 使用黑盒測(cè)試和白盒測(cè)試 ...............................132 原則116 測(cè)試用例應(yīng)包含期望的結(jié)果 ...........................133 原則117 測(cè)試不正確的輸入 ..........................................134 原則118 壓力測(cè)試必不可少 ..........................................135 原則119 大爆炸理論不適用 ..........................................136 原則120 使用 McCabe 復(fù)雜度指標(biāo) ............................137 原則121 使用有效的測(cè)試完成度標(biāo)準(zhǔn) ...........................138 原則122 達(dá)成有效的測(cè)試覆蓋 ......................................139 原則123 不要在單元測(cè)試之前集成 ...............................140 原則124 測(cè)量你的軟件 ..................................................141 原則125 分析錯(cuò)誤的原因 ..............................................142 原則126 對(duì)“錯(cuò)”不對(duì)人 ..............................................143 第7章 管理原則 ....................................................................... 145 原則127 好的管理比好的技術(shù)更重要 ...........................146 原則128 使用恰當(dāng)?shù)姆椒?..............................................147 原則129 不要相信你讀到的一切 ...................................148 原則130 理解客戶的優(yōu)先級(jí) ..........................................149 原則131 人是成功的關(guān)鍵 ..............................................150 原則132 幾個(gè)好手要強(qiáng)過(guò)很多生手 ...............................151 原則133 傾聽(tīng)你的員工 ..................................................152 原則134 信任你的員工 ..................................................153 原則135 期望優(yōu)秀 .........................................................154 原則136 溝通技巧是必要的 ..........................................155 原則137 端茶送水 .........................................................156 原則138 人們的動(dòng)機(jī)是不同的 ......................................157 原則139 讓辦公室保持安靜 ..........................................158 原則140 人和時(shí)間是不可互換的 ...................................159 原則141 軟件工程師之間存在巨大的差異 ....................160 原則142 你可以優(yōu)化任何你想要優(yōu)化的 .......................161 原則143 隱蔽地收集數(shù)據(jù) ..............................................162 原則144 每行代碼的成本是沒(méi)用的 ...............................163 原則145 衡量開(kāi)發(fā)效率沒(méi)有完美的方法 .......................164 原則146 剪裁成本估算方法 ..........................................165 原則147 不要設(shè)定不切實(shí)際的截止時(shí)間 .......................166 原則148 避免不可能 ......................................................167 原則149 評(píng)估之前先要了解 ..........................................168 原則150 收集生產(chǎn)力數(shù)據(jù) ..............................................169 原則151 不要忘記團(tuán)隊(duì)效率 ..........................................170 原則152 LOC/PM與語(yǔ)言無(wú)關(guān) .......................................171 原則153 相信排期 .........................................................172 原則154 精確的成本估算并不是萬(wàn)無(wú)一失的 ................173 原則155 定期重新評(píng)估排期 ..........................................174 原則156 輕微的低估不總是壞事 ...................................175 原則157 分配合適的資源 ..............................................176 原則158 制訂詳細(xì)的項(xiàng)目計(jì)劃 ......................................177 原則159 及時(shí)更新你的計(jì)劃 ..........................................178 原則160 避免駐波 .........................................................179 原則161 知曉十大風(fēng)險(xiǎn) ..................................................180 原則162 預(yù)先了解風(fēng)險(xiǎn) ..................................................181 原則163 使用適當(dāng)?shù)牧鞒棠P?......................................182 原則164 方法無(wú)法挽救你 ..............................................183 原則165 沒(méi)有奇跡般提升效率的秘密 ...........................184 原則166 了解進(jìn)度的含義 ..............................................185 原則167 按差異管理 ......................................................186 原則168 不要過(guò)度使用你的硬件 ...................................187 原則169 對(duì)硬件的演化要樂(lè)觀 ......................................188 原則170 對(duì)軟件的進(jìn)化要悲觀 ......................................189 原則171 認(rèn)為災(zāi)難是不可能的想法往往導(dǎo)致災(zāi)難 ........190 原則172 做項(xiàng)目總結(jié) ......................................................191 第8章 產(chǎn)品保證原則 ................................................................ 193 原則173 產(chǎn)品保證并不是奢侈品 ...................................194 原則174 盡早建立軟件配置管理過(guò)程 ...........................195 原則175 使軟件配置管理適應(yīng)軟件過(guò)程 .......................196 原則176 組織SCM獨(dú)立于項(xiàng)目管理 .............................197 原則177 輪換人員到產(chǎn)品保證組織 ...............................198 原則178 給所有中間產(chǎn)品一個(gè)名稱和版本 ....................199 原則179 控制基準(zhǔn) .........................................................200 原則180 保存所有內(nèi)容 ..................................................201 原則181 跟蹤每一個(gè)變更 ..............................................202 原則182 不要繞過(guò)變更控制 ..........................................203 原則183 對(duì)變更請(qǐng)求進(jìn)行分級(jí)和排期 ...........................204 原則184 在大型開(kāi)發(fā)項(xiàng)目中使用確認(rèn)和驗(yàn)證(V&V) ....205 第9章 演變?cè)瓌t ....................................................................... 207 原則185 軟件會(huì)持續(xù)變化 ..............................................208 原則186 軟件的熵增加 ..................................................209 原則187 如果沒(méi)有壞,就不要修理它 ...........................210 原則188 解決問(wèn)題,而不是癥狀 ...................................211 原則189 先變更需求 ......................................................212 原則190 發(fā)布之前的錯(cuò)誤也會(huì)在發(fā)布之后出現(xiàn) ............213 原則191 一個(gè)程序越老,維護(hù)起來(lái)越困難 ....................214 原則192 語(yǔ)言影響可維護(hù)性 ..........................................215 原則193 有時(shí)重新開(kāi)始會(huì)更好 ......................................216 原則194 首先翻新最差的 ..............................................217 原則195 維護(hù)階段比開(kāi)發(fā)階段產(chǎn)生的錯(cuò)誤更多 ............218 原則196 每次變更后都要進(jìn)行回歸測(cè)試 .......................219 原則197 “變更很容易”的想法,會(huì)使變更更 容易出錯(cuò) .........................................................220 原則198 對(duì)非結(jié)構(gòu)化代碼進(jìn)行結(jié)構(gòu)化改造,并不 一定會(huì)使它更好 ..............................................221 原則199 在優(yōu)化前先進(jìn)行性能分析 ...............................222 原則200 保持熟悉 .........................................................223 原則201 系統(tǒng)的存在促進(jìn)了演變 ...................................224 參考資料索引 ............................................................................... 225
你還可能感興趣
我要評(píng)論
|