軟體工程與開發技術(第二版)

軟體工程與開發技術(第二版)

《軟體工程與開發技術(第二版)》是2009年西安電子科技大學出版社出版的圖書,作者是江開耀。

基本介紹

  • 中文名:軟體工程與開發技術(第二版)
  • 作者:江開耀
  • 出版社:西安電子科技大學出版社
  • 出版時間:2009年02月
  • 定價:28.9 元
  • ISBN:978-7-5606-2158-6
內容簡介,目錄,

內容簡介

本書從軟體工程方法、軟體工程過程層面對現代軟體工程學進行了較為系統和全面的介紹。
全書共分為四篇,23章。第一篇介紹了傳統的軟體工程知識,包括軟體工程的由來與發展、與軟體工程學科相關的基礎知識以及傳統的結構化軟體工程方法,具體內容有基於結構化方法的可行性分析、需求分析、設計與編碼和軟體測試知識等。第二篇以RUP為藍本,介紹了現代面向對象的軟體工程方法,重點就業務模型、用例模型、對象模型、包模型、動態模型、構件模型、部署模型的建模方法進行了詳細講述,最後介紹了面向對象測試的概念。第三篇就項目估算、項目策劃、品質管理、配置管理、風險管理等項目經理必備的項目管理知識作了較全面的介紹。現代軟體工程十分重視不斷提升個人與組織的工程過程能力,因此,第四篇用較大篇幅論述了軟體能力成熟度模型、個人軟體過程PSP和小組軟體過程TSP的相關內容。
本書適合作為計算機相關專業本科教學中軟體工程課程的教科書,也可作為軟體從業人員的參考書

目錄

第一篇 傳統的軟體工程
第1章 軟體工程引論 2
1.1 軟體產品的概念與特徵 2
1.1.1 軟體產品的概念與分類 2
1.1.2 軟體產品的特徵 3
1.1.3 軟體發展的階段劃分 4
1.2 軟體危機 5
1.2.1 軟體危機及其表現 5
1.2.2 產生軟體危機的原因 6
1.2.3 解決軟體危機的途徑 7
1.3 軟體工程的產生及其發展 8
1.4 軟體工程的技術基礎 9
1.5 軟體工程過程的概念 10
1.6 幾種軟體過程模型 12
1.6.1 線性順序模型 13
1.6.2 原型模型 14
1.6.3 快速套用開發模型 14
1.6.4 演化軟體過程模型 15
1.7 過程技術 17
1.8 軟體重用技術 18
1.9 計算機輔助軟體工程工具 19
1.10 小結 21
習題 21
第2章 系統工程基礎與軟體可行性研究 23
2.1 基於計算機的系統 23
2.1.1 基於計算機的系統概述 23
2.1.2 計算機系統工程 24
2.2 系統需求識別 27
2.2.1 系統分析的目標 27
2.2.2 系統分析過程 27
2.3 可行性研究與分析 28
2.3.1 效益度量方法 29
2.3.2 成本—效益分析 30
2.3.3 技術分析 31
2.3.4 方案制定與評估 32
2.4 系統體系結構建模 32
2.4.1 建立系統結構流程圖 32
2.4.2 系統結構的規格說明定義 35
2.5 系統定義與評審 35
2.5.1 系統定義文檔模板 35
2.5.2 系統定義的評審 36
2.6 小結 37
習題 37
第3章 結構化需求分析與建模 38
3.1 需求分析 38
3.1.1 需求分析的任務 38
3.1.2 需求分析的步驟 39
3.1.3 需求分析的原則 39
3.2 數據建模 40
3.2.1 實體—關係模型 40
3.2.2 數據建模的其他工具 42
3.3 功能建模 44
3.3.1 數據流圖的基本符號 44
3.3.2 數據流與加工之間的關係 45
3.3.3 數據流模型的建立方法 45
3.3.4 建立數據流模型的原則 47
3.4 行為建模 48
3.4.1 狀態遷移圖 48
3.4.2 Petri網 49
3.5 數據字典 51
3.5.1 數據字典的基本符號 51
3.5.2 數據字典中的條目及說明格式 51
3.5.3 加工邏輯的描述 53
3.5.4 數據字典的建立 55
3.6 結構化需求分析的若干技術 55
3.7 驗證軟體需求 57
3.7.1 軟體需求規格說明的主要內容 57
3.7.2 軟體需求的驗證 57
3.8 小結 58
習題 59
第4章 結構化軟體設計 60
4.1 軟體設計中的基本概念和原理 60
4.2 體系結構設計概述 64
4.2.1 體系結構設計的任務 64
4.2.2 體系結構設計中可採用的工具 66
4.2.3 體系結構設計的原則 67
4.2.4 體系結構設計說明書 69
4.3 面向數據流的體系結構設計方法 70
4.3.1 數據流圖的類型 70
4.3.2 面向數據流的體系結構設計過程 70
4.4 詳細設計概述 74
4.4.1 詳細設計的任務 74
4.4.2 詳細設計可採用的工具 75
4.4.3 詳細設計的原則 79
4.4.4 詳細設計說明書 80
4.5 面向數據流的詳細設計方法 80
4.6 面向數據結構的設計方法 82
4.7 小結 86
習題 86
第5章 軟體編碼 88
5.1 程式設計語言 88
5.1.1 程式設計語言的分類 88
5.1.2 程式設計語言的特性 89
5.1.3 程式設計語言的選擇 90
5.2 編碼風格及軟體效率 92
5.2.1 編碼風格 92
5.2.2 軟體效率 95
5.3 程式複雜度的概念及度量方法 95
5.3.1 程式圖 96
5.3.2 程式複雜度的度量方法 97
5.4 小結 99
習題 99
第6章 軟體測試技術 100
6.1 軟體測試基礎 100
6.1.1 軟體測試的概念、目的和原則 100
6.1.2 軟體測試的過程 102
6.1.3 軟體測試的方法 103
6.2 白盒測試技術 104
6.2.1 白盒測試概念 104
6.2.2 白盒測試的用例設計 105
6.3 黑盒測試技術 108
6.3.1 黑盒測試概念 108
6.3.2 黑盒測試的用例設計 108
6.4 軟體測試計畫和測試分析報告 115
6.5 軟體測試策略 117
6.5.1 單元測試 118
6.5.2 集成測試 120
6.5.3 確認測試 123
6.5.4 系統測試 124
6.6 小結 125
習題 125
第二篇 面向對象的軟體工程
第7章 面向對象技術總論 130
7.1 概述——面向對象方法論 130
7.2 面向對象技術的基本概念 132
7.2.1 類 132
7.2.2 對象及對象實例 132
7.2.3 訊息機制 134
7.3 面向對象技術的基本特點 134
7.3.1 封裝性 134
7.3.2 繼承性 135
7.3.3 多態性 136
7.3.4 抽象性 138
7.4 面向對象分析方法 139
7.5 面向對象技術與程式結構 141
7.5.1 概述 141
7.5.2 重構 142
7.5.3 一個程式結構改進(重構)的例子 144
7.6 面向對象軟體工程 148
7.6.1 傳統的面向對象軟體工程 148
7.6.2 現代的面向對象軟體工程 149
7.6.3 RUP過程 150
7.6.4 UML簡介 153
7.7 設計模式(Design Pattern)與框架(Framework) 155
7.7.1 設計模式的基本概念 155
7.7.2 設計模式舉例——Abstract Factory(抽象工廠)模式 156
7.7.3 框架的基本概念 157
7.7.4 框架的套用 158
7.7.5 框架開發與軟體重用 159
7.7.6 框架的分類及開發原則 160
7.8 基於構件的軟體體系結構(Com/Dcom、Corba、Internet) 160
7.9 面向對象分析解決(描述)問題的模式 161
7.10 小結 163
習題 164
第8章 業務模型 165
8.1 業務模型概述 165
8.2 業務建模的目的及內容 166
8.2.1 業務建模的目的 166
8.2.2 業務建模的內容 166
8.3 業務建模流程和任務 166
8.4 業務建模中使用到的UML元素和版型 168
8.4.1 業務系統(Business System) 168
8.4.2 業務目標(Business Goal) 168
8.4.3 業務規則(Business Rule) 169
8.4.4 業務參與者(Business Actor) 170
8.4.5 業務工人(Business Worker) 171
8.4.6 業務實體(Business Entity) 171
8.4.7 業務事件(Business Event) 172
8.4.8 業務用例(Business Use Case) 173
8.4.9 業務用例實現(Business Use Case Realization) 177
8.4.10 業務用例與業務用例實現的區別 178
8.5 業務建模舉例 178
8.5.1 業務目標(部分) 178
8.5.2 組織結構 179
8.5.3 崗位設定和職責 180
8.5.4 業務參與者(部分) 180
8.5.5 業務用例模型 180
8.5.6 業務對象模型 181
8.6 小結 181
習題 182
第9章 需求分析與用例模型 183
9.1 需求分析 183
9.1.1 系統需求和需求描述 183
9.1.2 需求類型 183
9.1.3 需求與用例模型 184
9.2 Actor及其關係 184
9.2.1 Actor 184
9.2.2 如何發現Actor 185
9.2.3 Actor之間的關係 186
9.3 用例及其關係 186
9.3.1 用例(Use Case) 186
9.3.2 用例的版型(Stereotype)及用例觀點 188
9.3.3 用例之間的關係 188
9.4 用例圖和用例模型 193
9.4.1 參與者與用例之間的關聯 193
9.4.2 用例圖 194
9.4.3 用例模型 195
9.5 用例規格說明 196
9.5.1 概述 196
9.5.2 用例的描述模板 196
9.5.3 通過用例描述來獲取系統的功能 197
9.5.4 用例的描述方法及舉例 198
9.6 用例描述中常見的錯誤舉例 200
9.7 使用用例方法發現和確定系統功能需求 203
9.7.1 通過Actor來發現用例 204
9.7.2 通過業務用例和業務流程來發現用例 205
9.7.3 多視角的建模 206
9.8 小結 206
習題 207
第10章 分析設計與對象模型 208
10.1 類和對象的定義 208
10.1.1 類的定義 208
10.1.2 類的定義討論 208
10.1.3 類的程式語言定義及和現實世界類的映射 209
10.1.4 類的高級概念 211
10.2 對象、類之間的關係 213
10.2.1 泛化(Generalization) 213
10.2.2 關聯(Association) 214
10.2.3 聚集(Aggregation) 216
10.2.4 依賴(Depandancy) 217
10.3 抽象類和接口 218
10.4 分析模型(Analysis Model) 219
10.4.1 邊界類(Boundary) 219
10.4.2 控制類(Control) 220
10.4.3 實體類(Entity) 221
10.4.4 分析模型舉例 222
10.5 設計模型 223
10.6 抽象類和接口的設計原則 225
10.6.1 預設抽象原則DAP(Default Abstraction Principle) 225
10.6.2 接口設計原則 IDP(Interface Design Principle) 225
10.6.3 黑盒原則BBP(Black Box Principle) 226
10.6.4 不要具體化超類原則DCSP(Don't Concrete Supperclass Principle) 226
10.7 類圖 227
10.8 領域設計(Domain Design) 227
10.8.1 概述 227
10.8.2 領域建模 228
10.8.3 領域分析 228
10.8.4 領域工程 228
10.9 面向對象設計的原則 229
10.9.1 單一職責原則(SRP) 229
10.9.2 開閉原則(OCP) 229
10.9.3 Liskov替換原則 231
10.9.4 依賴倒置原則(DIP) 237
10.9.5 接口分離原則(ISP) 238
10.10 對象模型與關係模型 240
10.10.1 概念模型的表示方法 240
10.10.2 對象模型和關係模型的相互轉換 241
10.11 小結 242
習題 242
第11章 系統結構與包模型 243
11.1 包的概念 243
11.2 包之間的依賴關係 243
11.3 包的版型 244
11.4 用包表示的系統高層結構 244
11.5 設計包的原則 245
11.5.1 重用等價原則(REP) 245
11.5.2 共同閉包原則(CCP) 245
11.5.3 共同重用原則(CRP) 246
11.5.4 非循環依賴原則(ADP) 246
11.5.5 穩定依賴原則 (SDP) 246
11.5.6 穩定抽象原則 (SAP) 246
11.6 小結 247
習題 247
第12章 系統動態特性與對象互動模型 248
12.1 動態模型概述 248
12.2 互動圖 248
12.2.1 概述 248
12.2.2 順序圖 248
12.2.3 順序圖中的對象 249
12.2.4 順序圖中的訊息 249
12.2.5 建立順序圖的方法和步驟 250
12.2.6 通信圖(Communication Diagram) 250
12.2.7 通信圖中的元素 251
12.2.8 順序圖和通信圖的比較 251
12.3 狀態圖 252
12.3.1 概述 252
12.3.2 狀態圖中的基本概念 253
12.3.3 狀態圖的工具支持 254
12.4 活動圖 254
12.4.1 概述 254
12.4.2 活動圖中的基本概念 254
12.4.3 活動圖的用途 256
12.4.4 活動圖的工具支持 257
12.5 UML 2.0的活動圖 257
12.6 小結 258
習題 259
第13章 構件模型和部署模型 260
13.1 代碼實現與構件模型 260
13.1.1 概述 260
13.1.2 構件(Component)和構件圖(Component Diagram) 260
13.1.3 構件(Component)圖的作用 261
13.2 部署圖(Deploy Diagram) 262
13.3 小結 262
習題 262
第14章 面向對象測試基礎 263
14.1 面向對象的單元測試 263
14.2 面向對象的集成測試 264
14.3 面向對象的確認測試與系統測試 264
14.4 設計測試用例 265
14.4.1 測試用例概述 265
14.4.2 面向對象概念對測試用例設計的影響 265
14.4.3 類測試用例設計 266
14.4.4 類間測試用例設計 267
14.4.5 測試用例設計舉例 268
14.5 小結 270
習題 270
第三篇 軟體工程項目管理
第15章 軟體工程項目管理基礎 272
15.1 項目管理的範圍 272
15.2 人員角色管理 273
15.2.1 項目參與者 273
15.2.2 項目負責人 274
15.2.3 軟體項目組的組織結構 274
15.2.4 小組內的協調和通信 275
15.3 問題管理 277
15.4 過程管理 277
15.5 小結 278
習題 278
第16章 軟體度量 280
16.1 軟體度量 280
16.2 面向規模的度量 281
16.3 面向功能的度量 281
16.4 軟體質量的度量 284
16.4.1 影響軟體質量的因素 284
16.4.2 軟體質量度量 285
16.5 在軟體過程中集成度量數據 286
16.5.1 建立基線 286
16.5.2 度量數據的收集、計算和評價 287
16.6 小結 288
習題 289
第17章 軟體計畫 290
17.1 軟體範圍界定 290
17.2 資源需求 292
17.3 項目估算 293
17.3.1 基於問題分解的估算 294
17.3.2 基於過程分解的估算 296
17.3.3 經驗估算模型 296
17.3.4 COCOMO模型 297
17.3.5 軟體方程式 299
17.3.6 自動估算工具 300
17.4 軟體項目計畫的結構 300
17.5 項目計畫的分解求精 302
17.5.1 任務的確定與並發處理 302
17.5.2 制定明細的開發進度計畫 303
17.6 計畫跟蹤監督 304
17.7 計畫執行情況的度量與計畫調控 305
17.8 小結 305
習題 306
第18章 軟體工程風險管理 307
18.1 軟體風險 307
18.2 風險識別 308
18.3 風險預測 309
18.3.1 建立風險表 309
18.3.2 風險評估 310
18.4 風險緩解、監控與管理 311
18.5 RMMM計畫 313
18.6 小結 314
習題 314
第19章 軟體質量保證 315
19.1 軟體質量與SQA 315
19.1.1 軟體質量 315
19.1.2 SQA活動 316
19.2 軟體複審 316
19.2.1 軟體複審簡介 316
19.2.2 軟體缺陷對成

熱門詞條

聯絡我們