-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應(yīng)用
-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調(diào)優(yōu)實踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學(xué)習(xí)
軟件開發(fā)的201個原則 版權(quán)信息
- ISBN:9787121419973
- 條形碼:9787121419973 ; 978-7-121-41997-3
- 裝幀:一般純質(zhì)紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
軟件開發(fā)的201個原則 本書特色
1.一部英文原著亞馬遜4.5高分,暢銷全球26年的領(lǐng)域經(jīng)典——首次落地中國。 2.用【簡單原則】講透軟件研發(fā)重要思想——從需求分析到產(chǎn)品演進,覆蓋產(chǎn)品研發(fā)全流程。 3.首本實現(xiàn)【輕閱讀】的研發(fā)字典書——201個原則獨立成文,簡練深刻,輕松閱讀。 4.百度技術(shù)學(xué)院【指定用書】——掌握科學(xué)的方法,效率提高不止100%。 5.原則1:質(zhì)量**。原則7:盡早把產(chǎn)品交給客戶。原則39:先確定問題,再寫需求。原則64:沒有文檔的設(shè)計不是設(shè)計。原則66:不要重復(fù)造輪子。 6.原則92:程序首先是寫給人看的。原則104:編程語言的知識沒那么重要。原則123:不要在單元測試之前集成。原則127:好的管理比好的技術(shù)更重要。原則185:軟件會持續(xù)變化。
軟件開發(fā)的201個原則 內(nèi)容簡介
本書匯總了軟件工程原則。原則是關(guān)于軟件工程的基本原理、規(guī)則或結(jié)論,不管所選的技術(shù)、工具或語言是什么,這些原則都有效。全書共9章,章為引言,后面8章將201個軟件工程的原則劃分為8個大的類別:一般原則、需求工程原則、設(shè)計原則、編碼原則、測試原則、管理原則、產(chǎn)品保證原則和演變原則。
軟件開發(fā)的201個原則 目錄
★第1章 引言★
★第2章 一般原則★
原則1 質(zhì)量**
原則2 質(zhì)量在每個人眼中都不同
原則3 開發(fā)效率和質(zhì)量密不可分
原則4 高質(zhì)量軟件是可以實現(xiàn)的
原則5 不要試圖通過改進軟件實現(xiàn)高質(zhì)量
原則6 低可靠性比低效率更糟糕
原則7 盡早把產(chǎn)品交給客戶
原則8 與客戶/用戶溝通
原則9 促使開發(fā)者與客戶的目標一致
原則10 做好拋棄的準備
原則11 開發(fā)正確的原型
原則12 構(gòu)建合適功能的原型
原則13 要快速地開發(fā)一次性原型
原則14 漸進地擴展系統(tǒng)
原則15 看到越多,需要越多
原則16 開發(fā)過程中的變化是不可避免的
原則17 只要可能,購買而非開發(fā)
原則18 讓軟件只需簡短的用戶手冊
原則19 每個復(fù)雜問題都有一個解決方案
原則20 記錄你的假設(shè)
原則21 不同的階段,使用不同的語言
原則22 技術(shù)優(yōu)先于工具
原則23 使用工具,但要務(wù)實
原則24 把工具交給優(yōu)秀的工程師
原則25 CASE工具是昂貴的
原則26 “知道何時”和“知道如何”同樣重要
原則27 實現(xiàn)目標就停止
原則28 了解形式化方法
原則29 和組織榮辱與共
原則30 跟風(fēng)要小心
原則31 不要忽視技術(shù)
原則32 使用文檔標準
原則33 文檔要有術(shù)語表
原則34 軟件文檔都要有索引
原則35 對相同的概念用相同的名字
原則36 研究再轉(zhuǎn)化,不可行
原則37 要承擔(dān)責(zé)任
★第3章 需求工程原則★
原則38 低質(zhì)量的需求分析,導(dǎo)致低質(zhì)量的成本估算
原則39 先確定問題,再寫需求
原則40 立即確定需求
原則41 立即修復(fù)需求規(guī)格說明中的錯誤
原則42 原型可降低選擇用戶界面的風(fēng)險
原則43 記錄需求為什么被引入
原則44 確定子集
原則45 評審需求
原則46 避免在需求分析時進行系統(tǒng)設(shè)計
原則47 使用正確的方法
原則48 使用多角度的需求視圖
原則49 合理地組織需求
原則50 給需求排列優(yōu)先級
原則51 書寫要簡潔
原則52 給每個需求單獨編號
原則53 減少需求中的歧義
原則54 對自然語言輔助增強,而非替換
原則55 在更形式化的模型前,先寫自然語言
原則56 保持需求規(guī)格說明的可讀性
原則57 明確規(guī)定可靠性
原則58 應(yīng)明確環(huán)境超出預(yù)期時的系統(tǒng)行為
原則59 自毀的待定項
原則60 將需求保存到數(shù)據(jù)庫
★第4章 設(shè)計原則★
原則61 從需求到設(shè)計的轉(zhuǎn)換并不容易
原則62 將設(shè)計追溯至需求
原則63 評估備選方案
原則64 沒有文檔的設(shè)計不是設(shè)計
原則65 封裝
原則66 不要重復(fù)造輪子
原則67 保持簡單
原則68 避免大量的特殊案例
原則69 縮小智力距離
原則70 將設(shè)計置于知識控制之下
原則71 保持概念一致
原則72 概念性錯誤比語法錯誤更嚴重
原則73 使用耦合和內(nèi)聚
原則74 為變化而設(shè)計
原則75 為維護而設(shè)計
原則76 為防備出現(xiàn)錯誤而設(shè)計
原則77 在軟件中植入通用性
原則78 在軟件中植入靈活性
原則79 使用高效的算法
原則80 模塊規(guī)格說明只提供用戶需要的所有信息
原則81 設(shè)計是多維的
原則82 優(yōu)秀的設(shè)計出自優(yōu)秀的設(shè)計師
原則83 理解你的應(yīng)用場景
原則84 無須太多投資,即可實現(xiàn)復(fù)用
原則85 “錯進錯出”是不正確的
原則86 軟件可靠性可以通過冗余來實現(xiàn)
★第5章 編碼原則★
原則87 避免使用特殊技巧
原則88 避免使用全局變量
原則89 編寫可自上而下閱讀的程序
原則90 避免副作用
原則91 使用有意義的命名
原則92 程序首先是寫給人看的
原則93 使用*優(yōu)的數(shù)據(jù)結(jié)構(gòu)
原則94 先確保正確,再提升性能
原則95 在寫完代碼之前寫注釋
原則96 先寫文檔后寫代碼
原則97 手動運行每個組件
原則98 代碼審查
原則99 你可以使用非結(jié)構(gòu)化的語言
原則100 結(jié)構(gòu)化的代碼未必是好的代碼
原則101 不要嵌套太深
原則102 使用合適的語言
原則103 編程語言不是借口
原則104 編程語言的知識沒那么重要
原則105 格式化你的代碼
原則106 不要太早編碼
★第6章 測試原則★
原則107 依據(jù)需求跟蹤測試
原則108 在測試之前早做測試計劃
原則109 不要測試自己開發(fā)的軟件
原則110 不要為自己的軟件做測試計劃
原則111 測試只能揭示缺陷的存在
原則112 雖然大量的錯誤可證明軟件毫無價值,但是零錯誤并不能說明軟件的價值
原則113 成功的測試應(yīng)發(fā)現(xiàn)錯誤
原則114 半數(shù)的錯誤出現(xiàn)在15%的模塊中
原則115 使用黑盒測試和白盒測試
原則116 測試用例應(yīng)包含期望的結(jié)果
原則117 測試不正確的輸入
原則118 壓力測試必不可少
原則119 大爆炸理論不適用
原則120 使用 McCabe 復(fù)雜度指標
原則121 使用有效的測試完成度標準
原則122 達成有效的測試覆蓋
原則123 不要在單元測試之前集成
原則124 測量你的軟件
原則125 分析錯誤的原因
原則126 對“錯”不對人
★第7章 管理原則★
原則127 好的管理比好的技術(shù)更重要
原則128 使用恰當(dāng)?shù)姆椒?
原則129 不要相信你讀到的一切
原則130 理解客戶的優(yōu)先級
原則131 人是成功的關(guān)鍵
原則132 幾個好手要強過很多生手
原則133 傾聽你的員工
原則134 信任你的員工
原則135 期望優(yōu)秀
原則136 溝通技巧是必要的
原則137 端茶送水
原則138 人們的動機是不同的
原則139 讓辦公室保持安靜
原則140 人和時間是不可互換的
原則141 軟件工程師之間存在巨大的差異
原則142 你可以優(yōu)化任何你想要優(yōu)化的
原則143 隱蔽地收集數(shù)據(jù)
原則144 每行代碼的成本是沒用的
原則145 衡量開發(fā)效率沒有完美的方法
原則146 剪裁成本估算方法
原則147 不要設(shè)定不切實際的截止時間
原則148 避免不可能
原則149 評估之前先要了解
原則150 收集生產(chǎn)力數(shù)據(jù)
原則151 不要忘記團隊效率
原則152 LOC/PM與語言無關(guān)
原則153 相信排期
原則154 精確的成本估算并不是萬無一失的
原則155 定期重新評估排期
原則156 輕微的低估不總是壞事
原則157 分配合適的資源
原則158 制訂詳細的項目計劃
原則159 及時更新你的計劃
原則160 避免駐波
原則161 知曉十大風(fēng)險
原則162 預(yù)先了解風(fēng)險
原則163 使用適當(dāng)?shù)牧鞒棠P?
原則164 方法無法挽救你
原則165 沒有奇跡般提升效率的秘密
原則166 了解進度的含義
原則167 按差異管理
原則168 不要過度使用你的硬件
原則169 對硬件的演化要樂觀
原則170 對軟件的進化要悲觀
原則171 認為災(zāi)難是不可能的想法往往導(dǎo)致災(zāi)難
原則172 做項目總結(jié)
★第8章 產(chǎn)品保證原則★
原則173 產(chǎn)品保證并不是奢侈品
原則174 盡早建立軟件配置管理過程
原則175 使軟件配置管理適應(yīng)軟件過程
原則176 組織SCM獨立于項目管理
原則177 輪換人員到產(chǎn)品保證組織
原則178 給所有中間產(chǎn)品一個名稱和版本
原則179 控制基準
原則180 保存所有內(nèi)容
原則181 跟蹤每一個變更
原則182 不要繞過變更控制
原則183 對變更請求進行分級和排期
原則184 在大型開發(fā)項目中使用確認和驗證(V&V)
★第9章 演變原則★
原則185 軟件會持續(xù)變化
原則186 軟件的熵增加
原則187 如果沒有壞,就不要修理它
原則188 解決問題,而不是癥狀
原則189 先變更需求
原則190 發(fā)布之前的錯誤也會在發(fā)布之后出現(xiàn)
原則191 一個程序越老,維護起來越困難
原則192 語言影響可維護性
原則193 有時重新開始會更好
原則194 首先翻新*差的
原則195 維護階段比開發(fā)階段產(chǎn)生的錯誤更多
原則196 每次變更后都要進行回歸測試
原則197 “變更很容易”的想法,會使變更更容易出錯
原則198 對非結(jié)構(gòu)化代碼進行結(jié)構(gòu)化改造,并不一定會使它更好
原則199 在優(yōu)化前先進行性能分析
原則200 保持熟悉
原則201 系統(tǒng)的存在促進了演變
★參考資料索引★
★術(shù)語索引★
軟件開發(fā)的201個原則 節(jié)選
★原則1 質(zhì)量**★ 無論如何定義質(zhì)量,客戶都不會容忍低質(zhì)量的產(chǎn)品。質(zhì)量必須被量化,并建立可落地實施的機制,以促進和激勵質(zhì)量目標的達成。即使質(zhì)量沒達到要求,也要按時交付產(chǎn)品,這似乎是政治正確的行為,但這是短視的。從中長期來看,這樣做是自殺。質(zhì)量必須被放在首位,沒有可商量的余地。Edward Yourdon建議,當(dāng)你被要求加快測試、忽視剩余的少量bug、在設(shè)計或需求達成一致前就開始編碼時,要直接說“不”。 ★原則7 盡早把產(chǎn)品交給客戶★ 在需求階段,無論你多么努力地試圖去了解客戶的需求,都不如給他們一個產(chǎn)品,讓他們使用它,這是確定他們真實需求的*有效方法。如果遵循傳統(tǒng)的瀑布式開發(fā)模型,那么在99% 的開發(fā)資源已經(jīng)耗盡之后,才會**次向客戶交付產(chǎn)品。如此一來,大部分的客戶需求反饋將發(fā)生在資源耗盡之后。 和以上方法相反,可在開發(fā)過程的早期構(gòu)建一個快速而粗糙的原型。將這個原型交付給客戶,收集反饋,然后編寫需求規(guī)格說明并進行正規(guī)的開發(fā)。使用這種方法,當(dāng)客戶體驗到產(chǎn)品的**個版本時,只消耗了 5%~20% 的開發(fā)資源。如果原型包含合適的功能,就可以更好地理解和把握*有風(fēng)險的客戶需求,*終產(chǎn)品也就更有可能讓客戶滿意。這有助于確保將剩余的資源用于開發(fā)正確的系統(tǒng)。 ★原則39 先確定問題,再寫需求★ 當(dāng)面對他們認定的問題時,大多數(shù)工程師都會匆忙提供解決方案。如果工程師對這個問題的看法是正確的,那么解決方案可能奏效。然而,問題往往是難以捉摸的。例如,唐納德·高斯(Donald Gause)和杰拉爾德·溫伯格(Gerald Weinberg)描述了高層辦公樓中的一個“問題”,里面的住戶抱怨電梯等待時間太長。這真的是一個問題嗎?這是誰的問題?從居住者的角度來看,問題可能是浪費了他們太多時間。從房主的角度來看,問題可能是入住率(及租金)可能會下降。 顯而易見的解決辦法是提高電梯的速度。但其他解決方法可能包括(1)增加新電梯,(2)錯峰安排上班時間,(3)給快遞保留一些電梯,(4)提高租金(這樣業(yè)主可以接受降低后的入住率),(5)改進電梯使用的“歸位算法”(homing algorithm),以便在閑置時移動到高需求樓層。這些解決方案的成本、風(fēng)險和時間延遲差別巨大。而任何一個方案生效,都取決于特定的場景。在試圖解決問題前,針對面臨問題的人及問題的本質(zhì),要確保深入分析了所有的可能選擇。在解決問題時,不要被*初方案帶來的潛在興奮所蒙蔽。方案的變化總是比構(gòu)建系統(tǒng)的成本低。 ★原則64 沒有文檔的設(shè)計不是設(shè)計★ 我經(jīng)常聽到軟件工程師說,“我已經(jīng)完成了設(shè)計,剩下的工作就是寫文檔了”。這種做法毫無道理。你能想象一個建筑設(shè)計師說, “我已經(jīng)完成了你新家的設(shè)計,剩下的工作就是把它畫出來”,或者一個小說家說,“我已經(jīng)完成了這部小說,剩下的工作就是把它寫下來”? 設(shè)計,是在紙或其他媒介上,對恰當(dāng)?shù)捏w系結(jié)構(gòu)和算法的選擇、抽象和記錄。 ★原則66 不要重復(fù)造輪子★ 當(dāng)電子工程師設(shè)計新的印刷電路板時,他們會查閱可用集成電路的目錄,以選擇*合適的組件。當(dāng)電子工程師設(shè)計新的集成電路時,他們會查閱標準單元的目錄。當(dāng)建筑師設(shè)計新房屋時,他們會查閱預(yù)制門窗、飾條和其他組件的目錄。所有這些都被稱為“工程”。 軟件工程師經(jīng)常一次又一次地重新發(fā)明組件。他們很少修補已有的軟件組件。有趣的是,軟件業(yè)稱這種罕見的實踐為“復(fù)用”,而不是“工程”。 ★原則92 程序首先是寫給人看的★ 在計算機時代早期,計算機處理速度相對較慢,任何能夠減少一些指令操作的事情都值得去做。在非常昂貴的計算機系統(tǒng)上,*有效地利用資源是主要目標。如今形勢發(fā)生了變化。現(xiàn)在*有價值的資源是人力:開發(fā)軟件的人力、維護軟件的人力和提高軟件能力的人力。除了非常少數(shù)的例外場景,程序員應(yīng)該首先考慮的是,后續(xù)需要嘗試理解和適配軟件的人員。任何能夠幫助他們的事情都應(yīng)該去做(原則 87 到 91 會提供一些幫助)。執(zhí)行效率也很重要(見原則63、79、94),但它們并不是互斥的。如果你需要執(zhí)行效率,這沒問題,但要提升程序的可讀性,以免在這個過程中對相關(guān)人員造成負面影響。 ★原則104 編程語言的知識沒那么重要★ 不管使用哪種語言,優(yōu)秀的程序員都是優(yōu)秀的。不管使用哪種語言,糟糕的程序員仍然是糟糕的。不可能有一個人是“優(yōu)秀的C程序員”,同時是“糟糕的Ada程序員”。如果他確實在Ada語言上表現(xiàn)得很糟糕,那大概率在C語言上也不會表現(xiàn)得很好!除此之外,一個真正優(yōu)秀的程序員應(yīng)該可以很容易地學(xué)會一種新語言。這是因為一個真正優(yōu)秀的程序員很好地理解和贊賞高質(zhì)量編程的概念,而不只是了解某些編程語言的語法和語義特性。 所以,為一個項目選擇語言的首要驅(qū)動力應(yīng)該是什么語言更合適(見原則102),而不是程序員都在抱怨“我們只知道C語言”。如果由于項目選擇了其他語言而導(dǎo)致一些人退出,那么這個項目很可能會更好!
軟件開發(fā)的201個原則 作者簡介
★作者介紹★ Alan M. Davis是一名計算機科學(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í)行官,這是一家位于科羅拉多斯普林斯的軟件公司(1998—2002)。 他在學(xué)術(shù)界的經(jīng)歷包括: 位于丹佛的科羅拉多大學(xué)行政MBA創(chuàng)業(yè)教授,前任學(xué)術(shù)主席(2006—2018)。 科羅拉多大學(xué)斯普林斯分校的商業(yè)策略與企業(yè)家精神專業(yè)的教授,前El Pomar軟件工程教授(1991—2015)。 Davis博士在1994年至1998年擔(dān)任《IEEE 軟件》的主編;在全球28個國家或地區(qū)演講2000余次,并撰寫了9本圖書;他自1994年起成為IEEE會士;曾多次訪問中國,其中包括領(lǐng)導(dǎo)EMBA學(xué)生小組三度赴上海、北京出訪。 ★譯者介紹★ 本書譯者均為百度內(nèi)部培訓(xùn)項目“代碼的藝術(shù)訓(xùn)練營”的學(xué)員。出于對本書的熱愛和推廣優(yōu)秀軟件工程理念的使命,大家自發(fā)組織起來,利用業(yè)務(wù)時間完成了本書的翻譯。翻譯小組的成員包括:葉王,馬學(xué)翔,吳斌,王冰清,楊光,曾浩浩,李殿斌,甘璐,李子昂,肖遠昊,賈儒,王瑩,張苗,李雙婕,榮文升。 大家很高興能夠在百度完成這件非常有意義的工作。
- >
經(jīng)典常談
- >
【精裝繪本】畫給孩子的中國神話
- >
伊索寓言-世界文學(xué)名著典藏-全譯本
- >
人文閱讀與收藏·良友文學(xué)叢書:一天的工作
- >
隨園食單
- >
中國人在烏蘇里邊疆區(qū):歷史與人類學(xué)概述
- >
大紅狗在馬戲團-大紅狗克里弗-助人
- >
伯納黛特,你要去哪(2021新版)