講解如何構(gòu)建穩(wěn)定的軟件 《軟件工程入門經(jīng)典》揭秘專業(yè)開發(fā)人員為設(shè)計和構(gòu)建穩(wěn)定、、高效軟件所運用的軟件工程技術(shù)和方法。本書通俗易懂,在大量案例的引導下,演示適用于任何編程語言的重要概念和技術(shù);即使你目前不具有編程、開發(fā)和管理經(jīng)驗,同樣可以閱讀和學習本書。每章末尾附有精選習題,以測試你對知識的理解程度,引導你悟透主要概念。本書介紹了瀑布、生魚片、敏捷、RAD、Scrum、看板和極限編程等各種開發(fā)方法所涉及的基本任務(wù)。 主要內(nèi)容 詳述軟件工程概念 闡釋參與軟件工程項目的團隊成員的角色和職責 指出軟件工程項目都必須經(jīng)歷哪些重要階段才能開發(fā)出功能的應(yīng)用程序 詳述主流軟件開發(fā)方法及其處理重要開發(fā)任務(wù)的不同方式 提供從每章主要知識點引申的習題 附有詳明的軟件工程術(shù)語表
詳述軟件工程概念 闡釋參與軟件工程項目的團隊成員的角色和職責
Rod Stephens兒時夢想成為數(shù)學家,但當在麻省理工學院學習時,他發(fā)現(xiàn)編程非常有趣,從此便開始了專業(yè)的編程生涯。在其職業(yè)生涯中,他從事過很多不同領(lǐng)域的應(yīng)用程序開發(fā),如電話交換、計費、維修調(diào)度、稅務(wù)處理、污水處理、演唱會門票銷售、制圖以及專業(yè)足球運動員培訓。十多年來,Rod 一直都是“微軟Visual Basic 最有價值專家(MVP)”,曾教授過一些編程的入門課程。他撰寫過30 多本書,并且這些書籍還都被翻譯成不同的語言。他撰寫過250 多篇雜志文章,主要涉及Visual Basic、C#、Visual Basic for Applications、Delphi 以及Java。Rod 廣受歡迎的VB Helper 站點(www.vb-helper.com)包含有數(shù)千個針對Visual Basic 程序開發(fā)人員的提示、技巧以及示例程序頁面。他的C# Helper 站點(www.csharphelper.com)包含類似的一些C#開發(fā)資源。可以通過RodStephens@CSharpHelper.com 或RodStephens@vb-helper.com 和Rod 保持聯(lián)系。
第Ⅰ部分 進階
第1章 軟件工程概覽 3
1.1 需求收集 3
1.2 概要設(shè)計 4
1.3 詳細設(shè)計 5
1.4 開發(fā) 5
1.5 測試 6
1.6 部署 7
1.7 維護 8
1.8 總結(jié)和反思 8
1.9 一次性處理所有事項 8
1.10 本章小結(jié) 9
第2章 入手之前 13
2.1 文檔管理 13
2.2 歷史文檔 15
2.3 電子郵件 16
2.4 代碼 18
2.5 代碼文檔 18
2.6 應(yīng)用程序文檔 21
2.7 本章小結(jié) 21
第3章 項目管理 25
3.1 管理支持 26
3.2 項目管理 27
3.2.1 PERT圖 28
3.2.2 關(guān)鍵路徑方法 33
3.2.3 甘特圖 35
3.2.4 軟件日程安排 36
3.2.5 估算時間 36
3.3 風險管理 41
3.4 本章小結(jié) 42
第4章 需求收集 45
4.1 需求定義 46
4.1.1 清晰 46
4.1.2 沒有歧義 46
4.1.3 一致 47
4.1.4 優(yōu)先級排序 47
4.1.5 可驗證 50
4.1.6 應(yīng)避免使用的詞 51
4.2 需求分類 51
4.2.1 受眾導向的需求 51
4.2.2 FURPS 54
4.2.3 FURPS 54
4.2.4 通用需求 56
4.3 收集需求 57
4.3.1 傾聽客戶(和用戶)的需要 57
4.3.2 使用5W(和一個H) 57
4.3.3 研究用戶 59
4.4 細化需求 60
4.4.1 復制現(xiàn)有系統(tǒng) 60
4.4.2 未卜先知 61
4.4.3 頭腦風暴 62
4.5 記錄需求 64
4.5.1 UML 64
4.5.2 用戶故事 65
4.5.3 用例 65
4.5.4 原型 66
4.5.5 需求說明 67
4.6 確認和驗證 67
4.7 更改需求 67
4.8 本章小結(jié) 68
第5章 概要設(shè)計 71
5.1 縱覽全局 72
5.2 指定的事項 73
5.2.1 安全性 73
5.2.2 硬件 74
5.2.3 用戶接口 75
5.2.4 內(nèi)部接口 76
5.2.5 外部接口 76
5.2.6 架構(gòu) 77
5.2.7 報表 83
5.2.8 其他輸出 83
5.2.9 數(shù)據(jù)庫 84
5.2.10 配置數(shù)據(jù) 86
5.2.11 數(shù)據(jù)流及狀態(tài) 86
5.2.12 培訓 87
5.3 UML 87
5.3.1 結(jié)構(gòu)圖 88
5.3.2 行為圖 90
5.3.3 交互圖 93
5.4 本章小結(jié) 95
第6章 詳細設(shè)計 97
6.1 面向?qū)ο笤O(shè)計 98
6.1.1 識別類 99
6.1.2 創(chuàng)建繼承體系 99
6.1.3 對象組合 103
6.2 數(shù)據(jù)庫設(shè)計 104
6.2.1 關(guān)系數(shù)據(jù)庫 104
6.2.2 及時范式 106
6.2.3 第二范式 109
6.2.4 第三范式 111
6.2.5 更高級的規(guī)范化 112
6.3 本章小結(jié) 113
第7章 開發(fā) 117
7.1 使用正確的工具 118
7.1.1 硬件 118
7.1.2 網(wǎng)絡(luò) 119
7.1.3 開發(fā)環(huán)境 119
7.1.4 源代碼控制 120
7.1.5 分析器 120
7.1.6 靜態(tài)分析工具 120
7.1.7 測試工具 121
7.1.8 源代碼格式器 121
7.1.9 重構(gòu)工具 121
7.1.10 培訓 121
7.2 選擇算法 121
7.2.1 有效果 122
7.2.2 有效率 122
7.2.3 可預測 124
7.2.4 簡潔 124
7.2.5 預包裝 125
7.3 自上而下的設(shè)計 125
7.4 編程提示和技巧 127
7.4.1 保持清醒 127
7.4.2 為人編寫代碼,并非計算機 127
7.4.3 注釋優(yōu)先 128
7.4.4 編寫自文檔化的代碼 130
7.4.5 保持小巧 131
7.4.6 保持專注 132
7.4.7 避免副作用 132
7.4.8 驗證結(jié)果 133
7.4.9 實踐“進攻式”編程 135
7.4.10 使用異常 136
7.4.11 首先編寫異常處理程序 136
7.4.12 切勿重復代碼 137
7.4.13 推遲優(yōu)化 137
7.5 本章小結(jié) 138
第8章 測試 141
8.1 測試的目的 142
8.2 永不消亡的bug 143
8.2.1 收益遞減 143
8.2.2 期限 143
8.2.3 影響 143
8.2.4 為時尚早 143
8.2.5 有用性 144
8.2.6 過時 144
8.2.7 這并非一個bug 144
8.2.8 沒有盡頭 145
8.2.9 有總比沒有好 145
8.2.10 修復 bug很危險 145
8.2.11 修復哪些bug 146
8.3 測試級別 146
8.3.1 單元測試 146
8.3.2 集成測試 148
8.3.3 自動化測試 148
8.3.4 組件接口測試 149
8.3.5 系統(tǒng)測試 150
8.3.6 驗收性測試 150
8.3.7 其他測試類型 151
8.4 測試技術(shù) 152
8.4.1 窮舉測試 152
8.4.2 黑盒測試 153
8.4.3 白盒測試 153
8.4.4 灰盒測試 153
8.5 測試習慣 154
8.5.1 清醒時再進行測試和調(diào)試 154
8.5.2 測試自己的代碼 154
8.5.3 讓其他人測試你的代碼 155
8.5.4 修復自己的bug 156
8.5.5 修改前請“三思” 157
8.5.6 不要相信魔法 157
8.5.7 查看改變之處 157
8.5.8 修復bug,并非癥狀 158
8.5.9 對測試用例進行測試 158
8.6 如何修復bug 158
8.7 估算bug的數(shù)量 159
8.7.1 跟蹤發(fā)現(xiàn)的bug 159
8.7.2 播種 160
8.7.3 林肯指數(shù) 161
8.8 本章小結(jié) 162
第9章 部署 165
9.1 范圍 166
9.2 計劃 166
9.3 切換 167
9.3.1 階段性部署 167
9.3.2 逐步切換 168
9.3.3 增量部署 169
9.3.4 并行測試 170
9.4 部署任務(wù) 170
9.5 部署錯誤 171
9.6 本章小結(jié) 172
第10章 度量 175
10.1 慶祝會 176
10.2 缺陷分析 176
10.2.1 bug的種類 176
10.2.2 石川圖 178
10.3 軟件度量 181
10.3.1 好的屬性和度量指標的一些特征 182
10.3.2 度量的用途 182
10.3.3 需要度量的對象 184
10.3.4 規(guī)模標準化 186
10.3.5 功能點標準化 188
10.4 本章小結(jié) 192
第11章 維護 195
11.1 維護成本 196
11.2 任務(wù)分類 197
11.2.1 完成性任務(wù) 197
11.2.2 適應(yīng)性任務(wù) 200
11.2.3 糾正性任務(wù) 201
11.2.4 預防性任務(wù) 203
11.2.5 個別bug 207
11.2.6 “非我發(fā)明” 207
11.3 任務(wù)執(zhí)行 208
11.4 本章小結(jié) 208
第Ⅱ部分 模型
第12章 預測模型 215
12.1 模型 215
12.2 預備知識 216
12.3 預測和自適應(yīng) 216
12.3.1 成功和失敗的標志 217
12.3.2 利與弊 218
12.4 瀑布 219
12.5 帶有反饋的瀑布 220
12.6 生魚片 221
12.7 增量瀑布 222
12.8 V模型 224
12.9 系統(tǒng)開發(fā)生命周期 224
12.10 本章小結(jié) 227
第13章 迭代模型 229
13.1 迭代與預測 230
13.2 迭代與增量 231
13.3 原型 232
13.3.1 原型的類型 233
13.3.2 優(yōu)缺點 234
13.4 螺旋模型 235
13.4.1 澄清 237
13.4.2 優(yōu)勢和不足 238
13.5 統(tǒng)一過程 239
13.5.1 優(yōu)勢和不足 240
13.5.2 RUP 241
13.6 潔凈室模型 241
13.7 本章小結(jié) 242
第14章 RAD 245
14.1 RAD的主要原則 246
14.2 James Martin RAD 249
14.3 敏捷開發(fā) 249
14.3.1 自組織團隊 252
14.3.2 敏捷方法 253
14.4 XP 256
14.4.1 XP的角色 257
14.4.2 XP的價值觀 257
14.4.3 XP實踐 258
14.5 Scrum 264
14.5.1 Scrum角色 264
14.5.2 Scrum沖刺 265
14.5.3 計劃撲克 266
14.5.4 燃盡圖 267
14.5.5 速率 268
14.6 精益軟件開發(fā) 268
14.7 水晶方法 269
14.7.1 透明水晶 271
14.7.2 黃色水晶 272
14.7.3 橙色水晶 272
14.8 功能驅(qū)動開發(fā) 274
14.8.1 FDD角色 274
14.8.2 FDD階段 275
14.8.3 FDD迭代里程碑 277
14.9 敏捷統(tǒng)一過程 278
14.10 規(guī)范敏捷交付 280
14.10.1 DAD原則 280
14.10.2 DAD角色 280
14.10.3 DAD階段 281
14.11 動態(tài)系統(tǒng)開發(fā)方法 282
14.11.1 DSDM階段 282
14.11.2 DSDM原則 283
14.11.3 DSDM角色 284
14.12 看板軟件開發(fā)方法 285
14.12.1 看板的一些原則 285
14.12.2 和看板有關(guān)的一些實踐 286
14.12.3 看板圖 286
14.13 本章小結(jié) 287
附錄A 習題答案 293
術(shù)語表 337
?能力是必不可缺的一環(huán),但僅僅依靠語言是不夠的,還需要有一定的組織能力、總結(jié)能力以及團隊合作意識,才能讓分析出來的現(xiàn)象和得出的結(jié)論有一個好"歸宿"。
1.3.7 熟知--企業(yè)業(yè)務(wù)
不同的企業(yè)有不同的業(yè)務(wù),數(shù)據(jù)分析師必須要熟知自己所在企業(yè)的業(yè)務(wù),只有這樣才能實現(xiàn)高效、實用的數(shù)據(jù)分析操作。若數(shù)據(jù)分析師脫離了企業(yè)業(yè)務(wù)背景,那么分析出來的結(jié)果必然會偏離原本的軌道,導致實用性不強。
對于剛進企業(yè)的新手而言,想要一蹴而就地熟知企業(yè)業(yè)務(wù)是很難實現(xiàn)的,數(shù)據(jù)分析新手,可以通過以下幾點來了解,如圖1-15所示。
圖1-15 數(shù)據(jù)分析新手入門要點
一如既往的好
不錯
書不錯,郵寄速度很快
好評
很不錯的一本書
包裝完好,物流很快!
挺好的書,值得一看!你值得擁有!
挺好哈哈哈哈哈
發(fā)貨快,質(zhì)量好。