軟件工程(第二版)
-
【作 者】曾強聰 趙歆 陽王東 編著
【I S B N 】978-7-5170-7245-4
【責任編輯】張玉玲
【適用讀者群】本專通用
【出版時間】2018-12-20
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第2版第1次印刷
【頁 數】256
【千字數】388
【印 張】16
【定 價】¥35
【叢 書】普通高等教育“十三五”規劃教材(軟件工程專業)
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
軟件工程是軟件研發與維護的工程方法學。本書較好地體現了軟件工程的實用性,有較完整的軟件工程知識體系。
全書共10章內容:第1章至第3章是軟件工程基礎,涉及軟件工程概念方法、軟件項目管理、軟件開發過程模式等內容;第4章至第7章是軟件工程基于開發過程的細節說明,涉及軟件分析、軟件設計、軟件測試、軟件維護等內容;第8章和第9章是軟件工程主流方法說明,涉及結構化工程方法、面向對象工程方法等諸多工程方法;第10章簡要介紹了面向對象工程案例,內容有系統分析、系統設計、程序框架清單等。
本書語言精簡、通俗易懂、便于自學,而且教學資源完備,書中案例均已基于主流軟件工具(Rose、Visio、PowerDesigner)建立模型,可作為教學或自學資源供讀者參考(可與出版社或作者聯系獲取)。
本書可作為高校相關專業本科生、研究生的教材,也可作為軟件開發人員的技術參考書,還可供廣大讀者自學軟件工程方法。
較好地體現了軟件工程的實用性,有較完整的軟件工程知識體系。
語言精簡、通俗易懂、便于自學,教學資源完備。
可作為高校相關專業本科生、研究生教材,也可作為軟件開發人員的技術參考書。
第二版前言
本書第一版出版至今已經5年,產生了較好的教學效果。為了更好地服務教學,本書對第一版內容進行了必要的增補與修訂,并考慮到實際教學需要對內容進行了重新組織與章節調整,但保留了第一版既有的系統性與實用性風格,如重視軟件工程概念的說明,通過工程案例說明工程方法應用。
全書共10章內容:
第1章~第3章是軟件工程基礎,涉及軟件工程概念方法、軟件項目管理、軟件開發過程模式等內容,對軟件工程基于工程概念、項目進程、任務特征等進行了全局性說明,以使學習者在學習初期,就對軟件工程有初步的較全面的認識,并以此獲得較強的軟件工程意識,能夠盡早地以軟件工程思維方式去看待軟件開發問題。
第4章~第7章是軟件工程基于開發過程的任務細節說明,涉及軟件分析、軟件設計、軟件測試、軟件維護等內容。這是軟件開發必然需要涉及的幾項基本任務,每項任務都有特定目標,都要求有預期成果。實際上,這個順序與軟件工程課程實踐是保持一致的。
第8章、第9章是對軟件工程主流方法的說明,涉及結構化工程方法、面向對象工程方法等諸多工程方法。第8章是結構化工程方法,這是一種早期傳統的軟件工程方法,特點是以功能為問題源頭,并以實現功能為目標。第9章是面向對象工程方法,這是一種更接近現實世界的軟件工程方法,基于現實世界進行實體抽象,并通過對象實例演繹現實實體。
第10章則簡要介紹了面向對象工程案例,內容有系統分析、系統設計、程序框架清單等。
本書語言精簡、通俗易懂、便于自學,而且教學資源較完備。書中案例都已基于主流軟件工具(Rose、Visio、PowerDesigner)建立模型,可作為教學或自學資源供讀者參考(可與出版社聯系獲取)。
本書可作為高校相關專業本科生、研究生的教材,也可作為軟件開發人員的技術參考書,并可供廣大讀者自學軟件工程方法。
編 者
2018年9月
第一版前言
第1章 軟件工程綜述 1
1.1 什么是軟件工程 1
1.2 軟件有什么特點 2
1.2.1 軟件特點 3
1.2.2 軟件分類 4
1.3 為什么會發生軟件危機? 6
1.4 軟件工程技術 8
1.4.1 軟件過程 8
1.4.2 工程方法 9
1.4.3 軟件工具 9
1.5 軟件工程管理 10
1.5.1 項目計劃 10
1.5.2 人員組織 10
1.5.3 過程管理 11
1.5.4 產品管理 11
1.5.5 工程目標 11
1.6 主流軟件工程方法學 12
1.6.1 結構化方法學 12
1.6.2 面向對象方法學 13
1.7 常用軟件工具 15
1.7.1 Microsoft Visio 15
1.7.2 Sybase PowerDesigner 16
1.7.3 IBM Rational Rose 16
小結 17
習題 18
第2章 軟件項目管理 19
2.1 軟件研發團隊 19
2.1.1 軟件研發機構 19
2.1.2 軟件項目小組 20
2.1.3 項目小組管理機制 21
2.2 軟件項目計劃 23
2.2.1 任務分配 23
2.2.2 進度計劃 24
2.2.3 項目計劃書 26
2.3 軟件項目成本估算 26
2.3.1 程序代碼行成本估算 27
2.3.2 軟件功能點成本估算 28
2.3.3 基于軟件過程的成本估算 31
2.4 軟件項目風險 32
2.4.1 風險類別 32
2.4.2 風險識別 33
2.4.3 風險評估 34
2.4.4 風險防范 35
2.5 項目文檔管理 36
2.5.1 文檔概念 36
2.5.2 文檔分類 37
2.5.3 軟件文檔與軟件生存周期之間的
關系 37
2.5.4 文檔的使用者 38
2.5.5 文檔編碼 39
2.5.6 文檔格式 39
2.6 項目配置管理 41
2.6.1 軟件配置概念 41
2.6.2 配置規劃 41
2.6.3 軟件變更控制 43
2.6.4 軟件版本控制 43
2.7 項目質量管理 44
2.7.1 質量標準 44
2.7.2 質量計劃 45
2.7.3 質量保證 45
2.7.4 質量指標 46
2.8 軟件企業能力成熟度模型(CMM) 47
2.8.1 能力成熟度等級 47
2.8.2 軟件過程進化 47
2.8.3 個人軟件過程(PSP) 48
2.8.4 團隊軟件過程(TSP) 48
小結 50
習題 51
第3章 軟件工程過程模式 53
3.1 軟件生存周期 53
3.1.1 軟件定義期 53
3.1.2 軟件開發期 54
3.1.3 軟件運行與維護期 55
3.2 瀑布模式 56
3.2.1 瀑布模式的特點 56
3.2.2 瀑布模式中的信息反饋 57
3.2.3 瀑布模式的作用 58
3.3 原型進化模式 58
3.3.1 軟件原型 58
3.3.2 原型進化過程 59
3.4 增量模式 60
3.4.1 增量開發過程 60
3.4.2 增量模式的優越性 60
3.5 螺旋模式 61
3.6 迭代模式 62
3.7 組件復用模式 63
小結 64
習題 65
第4章 軟件分析 66
4.1 計算機系統工程 66
4.1.1 計算機系統特征 66
4.1.2 計算機體系結構 67
4.2 軟件系統前期分析 69
4.2.1 分析過程 70
4.2.2 系統結構建模 71
4.2.3 系統工作流建模 71
4.3 項目可行性分析 73
4.3.1 評估內容 74
4.3.2 評估報告 75
4.4 用戶需求分析 76
4.4.1 分析內容 76
4.4.2 分析過程 77
4.4.3 任務承擔者 77
4.5 獲取用戶需求 78
4.5.1 識別用戶 78
4.5.2 從調查中收集用戶需求 80
4.5.3 建立需求規約 82
4.6 建立需求模型 83
4.6.1 業務域模型 84
4.6.2 業務流模型 84
4.7 定義與驗證軟件規格 85
4.7.1 軟件規格定義 85
4.7.2 軟件需求驗證 86
4.7.3 通過原型驗證用戶需求 86
4.7.4 通過評審驗證產品規格 87
4.8 需求規格說明書 87
小結 88
習題 89
第5章 軟件設計 90
5.1 系統概要設計 90
5.1.1 基本任務 90
5.1.2 設計過程 91
5.2 系統構架設計 92
5.2.1 軟件系統支持環境 92
5.2.2 軟件系統體系結構 93
5.3 數據結構設計 97
5.3.1 動態程序數據 97
5.3.2 靜態存儲數據 97
5.4 程序結構設計 97
5.4.1 程序模塊 98
5.4.2 模塊獨立性 100
5.4.3 結構化程序結構 104
5.4.4 面向對象程序結構 105
5.5 概要設計說明書 106
5.6 程序結構化流程控制 108
5.7 算法設計工具 109
5.7.1 程序流程圖 109
5.7.2 NS圖 109
5.7.3 PAD圖 111
5.7.4 PDL語言 112
5.8 程序算法復雜度評估 113
5.8.1 程序算法復雜度 113
5.8.2 McCabe方法 113
5.9 程序編碼 115
5.9.1 編程語言 115
5.9.2 編程規范 117
5.9.3 程序運行效率 119
小結 120
習題 121
第6章 軟件測試 123
6.1 測試目的、計劃與方法 123
6.1.1 測試目的 123
6.1.2 測試計劃 123
6.1.3 測試方法 124
6.2 測試任務 125
6.2.1 單元測試 125
6.2.2 集成測試 127
6.2.3 確認測試 129
6.3 測試用例 130
6.3.1 白盒測試用例設計 130
6.3.2 黑盒測試用例設計 132
6.4 面向對象程序測試 134
6.4.1 面向對象單元測試 134
6.4.2 面向對象集成測試 134
6.4.3 面向對象確認測試 135
6.5 程序調試 135
6.5.1 診斷方法 135
6.5.2 調試策略 136
6.6 測試工具 137
6.6.1 測試數據生成程序 137
6.6.2 動態分析程序 137
6.6.3 靜態分析程序 137
小結 137
習題 138
第7章 軟件維護與再工程 140
7.1 軟件維護分類 140
7.2 軟件可維護性 141
7.2.1 軟件可維護性評估 141
7.2.2 如何提高軟件的可維護性? 141
7.3 軟件維護實施 142
7.3.1 維護機構 142
7.3.2 維護過程 143
7.4 軟件再工程 145
7.4.1 逆向工程 145
7.4.2 重構工程 146
7.4.3 正向工程 146
小結 146
習題 147
第8章 結構化工程方法 148
8.1 結構化分析 148
8.2 功能層級圖 149
8.3 數據流圖與功能建模 149
8.3.1 數據流圖 150
8.3.2 數據流細化 151
8.3.3 功能建模 152
8.3.4 數據字典 154
8.4 狀態轉換圖與行為建模 156
8.5 結構化設計建模 159
8.5.1 程序結構圖 159
8.5.2 HIPO圖 160
8.5.3 框架偽碼 161
8.6 基于數據流的程序結構映射 162
8.6.1 變換流映射 162
8.6.2 事務流映射 164
8.6.3 混合流映射 165
8.7 程序結構優化 167
8.8 設計舉例 170
小結 176
習題 177
第9章 面向對象工程方法 180
9.1 建模方法 180
9.2 UML建模語言 181
9.3 面向對象分析建模 184
9.3.1 用例建模 184
9.3.2 活動建模 189
9.3.3 實體類建模 191
9.4 面向對象設計建模 196
9.4.1 面向對象設計特點 196
9.4.2 基于UML的設計建模 198
9.5 系統邏輯結構設計 199
9.5.1 確定系統構架 199
9.5.2 設計類體 201
9.5.3 抽象類、接口及其用途 205
9.5.4 程序邏輯結構 207
9.6 程序對象交互設計 213
9.6.1 協作圖 213
9.6.2 時序圖 215
9.6.3 狀態圖 217
9.7 系統物理裝配與部署 218
9.7.1 程序構件圖 218
9.7.2 系統部署圖 220
小結 221
習題 223
第10章 面向對象工程案例 226
10.1 系統分析 226
10.1.1 基本需求說明 226
10.1.2 功能用例分析 226
10.1.3 任務活動分析 228
10.2 系統設計 229
10.2.1 系統構架設計 229
10.2.2 類結構設計 229
10.2.3 對象交互設計 231
10.2.4 棋局對壘界面設計 235
10.2.5 系統構件設計 236
10.3 程序框架清單 237
10.3.1 客戶端程序 237
10.3.2 服務器程序 242
參考文獻 244
- 實用運籌學 [主編 邢育紅 于晉臣]
- 電子技術(第二版) [主編 覃愛娜 李飛]
- 勞動爭議處理實務 [主編 王秀卿 羅靜]
- 工程數學 [主編 郭立娟 王海]
- 語音識別理論與實踐 [主編 莫宏偉]
- 武術基礎教程 [主編 李代勇 謝志民]
- 計算機網絡實訓教程 [主編 張浩軍 趙玉娟]
- 畫法幾何與機械制圖習題集(多學時) [主編 趙軍]
- 電工電子技術基礎 [主編 劉 軍 楊國龍 劉天成]
- MySQL數據庫項目式教程 [陳亞峰]
- 機械設計基礎(第二版) [主編 田亞平 李愛姣]
- 畫法幾何與機械制圖 [主編 趙軍]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- 智能化技術基礎(第三版) [鄧文達 李禮]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- 網絡營銷 [主編 夏薇薇 劉婷 尚潔]
- 電視節目策劃與制作(微課版) [主 編 黃滴滴]
- 數據庫技術與應用實踐教程(SQL Server 2019) [主 編 嚴暉 周肆清]
- 大學應用數學 [主編 郭立娟]
- 工業機器人拆裝與調試 [主編 胡月霞 向艷芳 朱奇]
- 功能材料制備與表征實驗指導書 [龔偉平 趙軍峰 梅海娟 等編著]
- 信號與系統(第二版) [主編 張宇]
- 信息技術基礎 [主編 唐倩 邵銳]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Photoshop 圖形圖像項目化教程 [主編 胡斌斌 黎婭 蘇大椿]
- 體育舞蹈教程 [主編 劉偉 陳志明 曾明]
- 線性代數導學篇 [主編 史昱]
- 信息技術基礎實訓與習題指導(Windows7+Office2016) [主編 周金容 唐天國]