軟件之道:軟件開發(fā)爭議問題剖析
本文關(guān)鍵詞:軟件之道:軟件開發(fā)爭議問題剖析,由筆耕文化傳播整理發(fā)布。
軟件之道:軟件開發(fā)爭議問題剖析
書籍作者:
(美)AndyOram
書籍出版:
人民郵電出版社
書籍頁數(shù):
438
書籍ISBN:
9787115270443
書籍人氣:
1315
推薦指數(shù):
★★★★
上一個:互動電子創(chuàng)意設(shè)計與制作:Arduino一試就上手
下一個:北京高等教育精品教材:軟件工程導論(第5版)學習輔導
軟件之道:軟件開發(fā)爭議問題剖析
《軟件之道:軟件開發(fā)爭議問題剖析》集合了幾十位軟件工程領(lǐng)域頂尖研究人員的實證研究,通過呈現(xiàn)他們長達幾年甚至幾十年的研究成果,揭示了軟件開發(fā)社區(qū)普遍存在的一些確鑿事實和虛構(gòu)之事。書中探討了更有效的編程語言,對比了軟件開發(fā)人員之間的效率差異,驗證了康威定理,并反思了軟件行業(yè)的最新模式!軟件之道:軟件開發(fā)爭議問題剖析》將幫助讀者拓寬視野,更好地選擇適合的工具和技術(shù),并最終成為一名更加優(yōu)秀的軟件行業(yè)從業(yè)人員。
《軟件之道:軟件開發(fā)爭議問題剖析》適合所有軟件開發(fā)人員和研究人員閱讀。
第一部分 搜尋和使用證據(jù)的一般原則
第1章 探尋有力的證據(jù)
1.1 起步階段
1.2 當今證據(jù)的狀態(tài)
1.2.1 精確性研究的挑戰(zhàn)
1.2.2 統(tǒng)計強度的挑戰(zhàn)
1.2.3 結(jié)果可復制性的挑戰(zhàn)
1.3 我們可以相信的改變
1.4 背景的影響
1.5 展望未來
1.6 參考文獻
第2章 可信度,為什么我堅決要求確信的證據(jù)
2.1 軟件工程中的證據(jù)是如何發(fā)現(xiàn)的
2.2 可信度和適用性
2.2.1 適用性,為什么使你信服的證據(jù)不能使我信服
2.2.2 定性證據(jù)對戰(zhàn)定量證據(jù):錯誤的二分法
2.3 整合證據(jù)
2.4 證據(jù)的類型以及它們的優(yōu)缺點
2.4.1 對照實驗和準實驗
2.4.2 問卷調(diào)查
2.4.3 經(jīng)驗匯報和案例研究
2.4.4 其他方法
2.4.5 報告中的可信度(或缺乏可信度)的標識
2.5 社會、文化、軟件工程和你
2.6 致謝
2.7 參考文獻
第3章 我們能從系統(tǒng)性評審中學到什么
3.1 系統(tǒng)性評審總覽
3.2 系統(tǒng)性評審的長處和短處
3.2.1 系統(tǒng)性評審的流程
3.2.2 開展一項評審所牽連的問題
3.3 軟件工程中的系統(tǒng)性評審
3.3.1 成本估算研究
3.3.2 敏捷方法
3.3.3 檢驗方法
3.4 結(jié)論
3.5 參考文獻
第4章 用定性研究方法來理解軟件工程學
4.1 何為定性研究方法
4.2 如何解讀定性研究
4.3 在工作中運用定性研究方法
4.4 推廣應(yīng)用定性研究的結(jié)果
4.5 定性研究方法是系統(tǒng)的研究方法
4.6 參考文獻
第5章 在實踐中學習成長:軟件工程實驗室中的質(zhì)量改進范式
5.1 軟件工程研究獨有的困難之處
5.2 實證研究的現(xiàn)實之路
5.3 NASA軟件工程實驗室:一個充滿活力的實證研究測試平臺
5.4 質(zhì)量改進范式
5.4.1 表征
5.4.2 設(shè)立目標
5.4.3 選擇流程
5.4.4 執(zhí)行流程
5.4.5 分析
5.4.6 封裝
5.5 結(jié)論
5.6 參考文獻
第6章 性格、智力和專業(yè)技能對軟件開發(fā)的影響
6.1 如何辨別優(yōu)秀的程序員
6.1.1 個體差異:固定的還是可塑造的
6.1.2 個性
6.1.3 智力
6.1.4 編程任務(wù)
6.1.5 編程表現(xiàn)
6.1.6 專業(yè)技能
6.1.7 軟件工作量估算
6.2 環(huán)境因素還是個人因素
6.2.1 軟件工程中應(yīng)該提高技能還是提高安全保障
6.2.2 合作
6.2.3 再談個性
6.2.4 從更廣的角度看待智力
6.3 結(jié)束語
6.4 參考文獻
第7章 為什么學編程這么難
7.1 學生學習編程有困難嗎
7.1.1 2001年McCracken工作小組
7.1.2 Lister工作小組
7.2 人們對編程的本能理解是什么
7.3 通過可視化編程來優(yōu)化工具
7.4 融入語境后的改變
7.5 總結(jié):一個新興的領(lǐng)域
7.6 參考文獻
第8章 超越代碼行:我們還需要其他的復雜度指標嗎
8.1 對軟件的調(diào)查
8.2 計算源代碼的指標
8.3 指標計算案例
8.3.1 源代碼行數(shù)(SLOC)
8.3.2 代碼行數(shù)(LOC)
8.3.3 C函數(shù)的數(shù)量
8.3.4 McCabe圈復雜度
8.3.5 Halstead軟件科學指標
8.4 統(tǒng)計分析
8.4.1 總體分析
8.4.2 頭文件和非頭文件之間的區(qū)別
8.4.3 干擾效應(yīng):文件大小對相關(guān)性的影響
8.5 關(guān)于統(tǒng)計學方法的一些說明
8.6 還需要其他的復雜度指標嗎
8.7 參考文獻
第二部分 軟件工程的特有話題
第9章 自動故障預報系統(tǒng)實例一則
9.1 故障的分布
9.2 故障高發(fā)文件的特征
9.3 預測模型概覽
9.4 預測模型的復驗和變體
9.4.1 開發(fā)人員的角色
9.4.2 用其他類型的模型來預測故障
9.5 工具的設(shè)計
9.6 一些忠告
9.7 參考文獻
第10章 架構(gòu)設(shè)計的程度和時機
10.1 修正缺陷的成本是否會隨著項目的進行而增加
10.2 架構(gòu)設(shè)計應(yīng)該做到什么程度
10.3 架構(gòu)設(shè)計的成本--修復數(shù)據(jù)給予我們的啟示
10.3.1 關(guān)于COCOMO II架構(gòu)設(shè)計和風險解決系數(shù)的基礎(chǔ)知識
10.3.2 Ada COCOMO及COCOMO II中的架構(gòu)設(shè)計以及風險應(yīng)對系數(shù)
10.3.3 用于改善系統(tǒng)設(shè)計的投入的ROI
10.4 那么到底架構(gòu)要做到什么程度才夠
10.5 架構(gòu)設(shè)計是否必須提前做好
10.6 總結(jié)
10.7 參考文獻
第11章 康威推論
11.1 康威定律
11.2 協(xié)調(diào)工作、和諧度和效率
11.3 微軟公司的組織復雜度
11.4 開源軟件集市上的小教堂
11.5 總結(jié)
11.6 參考文獻
第12章 測試驅(qū)動開發(fā)的效果如何
12.1 TDD藥丸是什么
12.2 TDD臨床試驗概要
12.3 TDD的效力
12.3.1 內(nèi)部質(zhì)量
12.3.2 外部質(zhì)量
12.3.3 生產(chǎn)力
12.3.4 測試質(zhì)量
12.4 在試驗中強制TDD的正確劑量
12.5 警告和副作用
12.6 結(jié)論
12.7 致謝
12.8 參考文獻
第13章 為何計算機科學領(lǐng)域的女性不多
13.1 為什么女性很少
13.1.1 能力缺陷,個人喜好以及文化偏見
13.1.2 偏見、成見和男性計算機科學文化
13.2 值得在意嗎
13.2.1 扭轉(zhuǎn)這種趨勢,我們可以做些什么
13.2.2 跨國數(shù)據(jù)的意義
13.3 結(jié)論
13.4 參考文獻
第14章 兩個關(guān)于編程語言的比較
14.1 一個搜索算法決定了一種語言的勝出
14.1.1 編程任務(wù):電話編碼
14.1.2 比較執(zhí)行速度
14.1.3 內(nèi)存使用情況的比較
14.1.4 比較效率和代碼長度
14.1.5 比較可靠性
14.1.6 比較程序結(jié)構(gòu)
14.1.7 我可以相信嗎
14.2 Plat_Forms:網(wǎng)絡(luò)開發(fā)技術(shù)和文化
14.2.1 開發(fā)任務(wù):人以類聚
14.2.2 下注吧
14.2.3 比較工作效率
14.2.4 比較軟件工件的大小
14.2.5 比較可修改性
14.2.6 比較穩(wěn)健性和安全性
14.2.7 嘿,"插入你自己的話題"如何
14.3 那又怎樣
14.4 參考文獻
第15章 質(zhì)量之戰(zhàn):開源軟件對戰(zhàn)專有軟件
15.1 以往的沖突
15.2 戰(zhàn)場
15.3 開戰(zhàn)
15.3.1 文件組織
15.3.2 代碼結(jié)構(gòu)
15.3.3 代碼風格
15.3.4 預處理
15.3.5 數(shù)據(jù)組織
15.4 成果和結(jié)論
15.5 致謝
15.6 參考文獻
第16章 碼語者
16.1 程序員的一天
16.1.1 日記研究
16.1.2 觀察研究
16.1.3 程序員們是不是在掙表現(xiàn)
16.2 說這么多有什么意義
16.2.1 問問題
16.2.2 探尋設(shè)計理念
16.2.3 工作的中斷和多任務(wù)
16.2.4 程序員都在問什么問題
16.2.5 使用敏捷方法是不是更利于溝通
16.3 如何看待溝通
16.4 參考文獻
第17章 結(jié)對編程
17.1 結(jié)對編程的歷史
17.2 產(chǎn)業(yè)環(huán)境中的結(jié)對編程
17.2.1 結(jié)對編程的行業(yè)實踐
17.2.2 業(yè)內(nèi)使用結(jié)對編程的效果
17.3 教育環(huán)境中的結(jié)對編程
17.3.1 教學中特有的實踐
17.3.2 教學中使用結(jié)對編程的效果
17.4 分布式結(jié)對編程
17.5 面對的挑戰(zhàn)
17.6 經(jīng)驗教訓
17.7 致謝
17.8 參考文獻
第18章 現(xiàn)代化代碼審查
18.1 常識
18.2 程序員獨立進行小量代碼審查
18.2.1 防止注意力疲勞
18.2.2 切忌速度過快
18.2.3 切忌數(shù)量過大
18.2.4 上下文的重要性
18.3 團隊影響
18.3.1 是否有必要開會
18.3.2 虛假缺陷
18.3.3 外部審查真的需要嗎
18.4 結(jié)論
18.5 參考文獻
第19章 公共辦公室還是私人辦公室
19.1 私人辦公室
19.2 公共辦公室
19.3 工作模式
19.4 最后的忠告
19.5 參考文獻
第20章 識別及管理全球性軟件開發(fā)中的依賴關(guān)系
20.1 為什么協(xié)調(diào)工作對于GSD來說是挑戰(zhàn)
20.2 依賴關(guān)系及其社會/技術(shù)二重性
20.2.1 技術(shù)方面
20.2.2 社會/組織結(jié)構(gòu)方面
20.2.3 社會-技術(shù)方面
20.3 從研究到實踐
20.3.1 充分使用軟件儲存庫中的數(shù)據(jù)
20.3.2 團隊領(lǐng)導和管理者在依賴關(guān)系管理中的角色
20.3.3 開發(fā)人員、工作項目和分布式開發(fā)
20.4 未來的方向
20.4.1 適合GSD的軟件架構(gòu)
20.4.2 協(xié)作軟件工程工具
20.4.3 標準化和靈活度的平衡
20.5 參考文獻
第21章 模塊化的效果如何
21.1 所分析的軟件系統(tǒng)
21.2 如何定義"修改"
21.3 如何定義"模塊"
21.4 研究結(jié)果
21.4.1 修改的范圍
21.4.2 需要參考的模塊
21.4.3 自發(fā)式的模塊化
21.5 有效性的問題
21.6 總結(jié)
21.7 參考文獻
第22章 設(shè)計模式的證據(jù)
22.1 設(shè)計模式的例子
22.2 為什么認為設(shè)計模式可行
22.3 第一個實驗:關(guān)于設(shè)計模式文檔的測試
22.3.1 實驗的設(shè)計
22.3.2 研究結(jié)果
22.4 第二個實驗:基于設(shè)計模式的解決方案和簡單解決方案的對比
22.5 第三個試驗:設(shè)計模式之于團隊溝通
22.6 經(jīng)驗教訓
22.7 總結(jié)
22.8 致謝
22.9 參考文獻
第23章 循證故障預測
23.1 簡介
23.2 代碼覆蓋率
23.3 代碼變動
23.4 代碼復雜度
23.5 代碼依賴
23.6 人與組織度量
23.7 預測缺陷的綜合方法
23.8 結(jié)論
23.9 致謝
23.10 參考文獻
第24章 采集缺陷報告的藝術(shù)
24.1 缺陷報告的優(yōu)劣之分
24.2 優(yōu)秀缺陷報告需要具備的要素
24.3 調(diào)查結(jié)果
24.3.1 開發(fā)人員眼中的缺陷報告內(nèi)容
24.3.2 報告者眼中的缺陷報告內(nèi)容
24.4 來自不一致信息的證據(jù)
24.5 缺陷報告的問題
24.6 重復缺陷報告的價值
24.7 并非所有的缺陷都被修復了
24.8 結(jié)論
24.9 致謝
24.10 參考文獻
第25章 軟件的缺陷都從哪兒來
25.1 研究軟件的缺陷
25.2 本次研究的環(huán)境和背景
25.3 第一階段:總體調(diào)查
25.3.1 調(diào)查問卷
25.3.2 數(shù)據(jù)的總結(jié)
25.3.3 第一部分的研究總結(jié)
25.4 第二階段:設(shè)計/代碼編寫類故障調(diào)查
25.4.1 調(diào)查問卷
25.4.2 統(tǒng)計分析
25.4.3 界面故障與實現(xiàn)故障
25.5 研究結(jié)果可靠嗎
25.5.1 我們調(diào)查的對象是否正確
25.5.2 我們的方法是否正確
25.5.3 我們能用這些結(jié)果做什么
25.6 我們明白了什么
25.7 致謝
25.8 參考文獻
第26章 新手專家:軟件行業(yè)的應(yīng)屆畢業(yè)生們
26.1 研究方法
26.1.1 研究對象
26.1.2 任務(wù)分析
26.1.3 任務(wù)案例
26.1.4 做回顧的方法
26.1.5 有效性問題
26.2 軟件開發(fā)任務(wù)
26.3 新手開發(fā)人員的優(yōu)點和缺點
26.3.1 優(yōu)點分析
26.3.2 缺點分析
26.4 回顧
26.4.1 管理層的介入
26.4.2 毅力、疑惑和新人特質(zhì)
26.4.3 大型的軟件團隊環(huán)境
26.5 妨礙學習的誤解
26.6 教育方法的反思
26.6.1 結(jié)對編程
26.6.2 合理的邊際參與
26.6.3 導師制
26.7 改變的意義
26.7.1 新人培訓
26.7.2 學校教育
26.8 參考文獻
第27章 挖掘你自己的證據(jù)
27.1 對什么進行數(shù)據(jù)挖掘
27.2 設(shè)計你的研究
27.3 數(shù)據(jù)挖掘入門
27.3.1 第一步:確定要用哪些數(shù)據(jù)
27.3.2 第二步:獲取數(shù)據(jù)
27.3.3 第三步:數(shù)據(jù)轉(zhuǎn)換(可選)
27.3.4 第四步:提取數(shù)據(jù)
27.3.5 第五步:解析bug報告
27.3.6 第六步:關(guān)聯(lián)數(shù)據(jù)
27.3.7 第六步:找出漏掉的關(guān)聯(lián)
27.3.8 第七步:將bug對應(yīng)到文件
27.4 下面怎么辦
27.5 致謝
27.6 參考文獻
第28章 正當使用"復制-粘貼"大法
28.1 代碼克隆的示例
28.2 尋找軟件中的克隆代碼
28.3 對代碼克隆行為的調(diào)查
28.3.1 分叉
28.3.2 模板
28.3.3 定制
28.4 我們的研究
28.5 總結(jié)
28.6 參考文獻
第29章 你的API有多好用
29.1 為什么研究API的易用性很重要
29.2 研究API易用性的首次嘗試
29.2.1 研究的設(shè)計
29.2.2 第一次研究的結(jié)論摘要
29.3 如果一開始你沒有成功
29.3.1 第二次研究的設(shè)計
29.3.2 第二次研究的結(jié)論摘要
29.3.3 認知維度
29.4 使用不同的工作風格
29.5 結(jié)論
29.6 參考文獻
第30章 "10倍"意味著什么?編程生產(chǎn)力的差距測量
30.1 軟件開發(fā)中的個人效率的變化
30.1.1 巨大的差距帶來的負面影響
30.1.2 什么造就了真正的"10倍程序員"
30.2 測量程序員的個人生產(chǎn)力的問題
30.2.1 生產(chǎn)力=每月產(chǎn)出的代碼行數(shù)嗎
30.2.2 生產(chǎn)力=功能點嗎
30.2.3 復雜度呢
30.2.4 到底有沒有辦法可以測量個人生產(chǎn)力
30.3 軟件開發(fā)中的團隊生產(chǎn)力差距
30.4 參考文獻
撰稿人
本文關(guān)鍵詞:軟件之道:軟件開發(fā)爭議問題剖析,由筆耕文化傳播整理發(fā)布。
,本文編號:104309
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/104309.html