軟件工程--原理、方法與應用
-
【作 者】肖孟強 曲秀清 主編
【I S B N 】978-7-5084-3250-2
【責任編輯】張玉玲
【適用讀者群】高職高專
【出版時間】2007-08-01
【開 本】16開本
【裝幀信息】平裝(光膜)
【版 次】第1版
【頁 數】
【千字數】
【印 張】
【定 價】¥24
【叢 書】21世紀高等院校規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書是根據教育部應用型本科21世紀規劃教材指導思想與原則的要求,充分考慮應用型本科人才的培養目標和教學特點編寫而成的。全書共12章,主要內容包括:軟件工程概念、可行性研究與需求分析、軟件設計、面向對象技術、統一建模語言UML、編碼與編程語言、軟件測試、軟件維護、軟件工程管理和質量保證、軟件工程標準化、軟件工程環境、嵌入式系統軟件技術。本書在每一章的開頭均給出本章的教學目標、教學任務和重點難點,每一章的最后給出實例分析和本章小結,附以部分習題,以便于教學與自學。
本書強調內容的實用性。按軟件工程的全過程來安排與組織內容,條理性強,以案例
教學為驅動,易于學生學習與掌握。
本書可作為應用型本科計算機、自動化、機電類等專業和高職高專計算機專業的教材,
也可作為自學教材和軟件開發人員的參考用書。
本書所配電子教案可以從中國水利水電出版社網站上免費下載,網址為:
http://www.waterpub.com.cn/softdown/。
計算機技術的迅速發展帶動了軟件產業的快速發展,軟件工程作為一門如何運用工程化的方式有效地管理和規范軟件開發的學科,已逐漸被廣大計算機行業的人士所接受和運用。現已作為計算機專業學生的必修課。
本書在總結多年教學經驗和科研實踐的基礎上,結合當前軟件工程發展的新成果,對軟件工程的原理、技術和應用做了系統介紹。本書以傳統的軟件工程為主線,結合現代軟件工程技術,以案例為主導,從原理、技術到應用都做了全面的介紹,思路清晰,理論與實踐的結合性較好。能使讀者真正理解軟件工程的原理及其重要意義,并結合實際應用達到學習軟件工程的目的與要求。
本書在講解理論基礎的同時,注重實際應用,通過分析歸納,介紹解決工程實際問題的思想和方法,然后進行概括總結,可操作性強。以案例為主導的教學方式使學生在工程實例的引導下掌握理論知識,增強了實踐能力。
本書的特點是理論與實踐的有機結合,內容由淺入深,符合應用型人才的培養方向,同時注重標準和文檔的重要性。
本書考慮到軟件工程中不斷出現的新技術、新方法和逐步完善的軟件工程過程,在傳統軟件工程理論的基礎上,增加了新技術、新知識、新工藝的內容。對于比較流行的方法也做了簡單介紹,拓寬了讀者的知識層面,為進一步學習軟件工程理論打下了基礎。
全書共12章。第1章是軟件工程概述,以實際案例為先導,主要介紹軟件工程的產生發展及軟件的生存周期模型。第2章是可行性研究與需求分析,主要介紹軟件可行性研究與需求分析的基本知識和方法。第3章是軟件設計,主要講解軟件設計的基本概念和設計過程、結構化設計方法和詳細設計常用工具。第4章是面向對象技術,主要講解面向對象的軟件開發技術,包括面向對象的基本概念及分析與設計方法、面向對象軟件的開發過程和軟件重用技術。第5章是統一建模語言,主要介紹統一建模語言UML的基本概念及相關的機制和規則。第6章是編碼和編程語言,主要介紹編碼風格和語言選擇兩個方面的內容。第7章是軟件測試,介紹軟件測試的概念和方法,講述測試的策略和技術以及軟件糾錯的技術。第8章是軟件維護技術,主要講解軟件維護的一些基本概念、軟件維護的過程、軟件的可維護性以及提高可維護性的方法。第9章是軟件工程管理與質量保證,主要講解軟件工程管理與質量保證。第10章是軟件工程標準化,主要講解軟件工程標準化的基本內容。第11章是軟件工程環境,主要講解軟件工程環境的基本概念及組成內容。第12章是嵌入式系統軟件技術,主要介紹嵌入式系統的基本知識及開發過程和方法。
本書由肖孟強、曲秀清擔任主編,韓殿元、解圣慶、王宗江擔任副主編。本書第1章和第6章由肖孟強編寫,第2章和第3章由韓殿元編寫,第4章、第5章、第7章、第12章由曲秀清編寫,第8章由王宗江編寫,第9章~第11章由解圣慶編寫,另外參加本書編寫的還有王成端、劉永華、王紅老師。全書由肖孟強統稿、整理。山東交通學院的沈祥玖教授對全書進行了審閱并提出了寶貴意見,在此表示忠心感謝。
由于時間倉促及作者水平有限,書中難免存在缺點與不足之處,懇請廣大讀者和同行批評指正。
編 者
2005年7月
前言
第1章 軟件工程概論 1
本章學習目標 1
1.1 引言 1
1.2 軟件與軟件危機 3
1.2.1 軟件的定義 3
1.2.2 軟件的特點 3
1.2.3 軟件的分類 4
1.2.4 軟件危機 5
1.3 軟件工程的概念 7
1.3.1 軟件工程的產生及發展 7
1.3.2 軟件工程的定義及目標 9
1.3.3 軟件工程學的范疇 10
1.4 軟件生存周期及軟件開發模型 11
1.4.1 軟件生存周期 11
1.4.2 軟件生存周期模型 13
1.4.3 瀑布模型(Waterfall Model) 13
1.4.4 演化模型(Evolutional Model) 14
1.4.5 螺旋模型(Spiral Model) 15
1.4.6 智能模型(Intelligence Model) 16
本章小結 16
習題 17
第2章 可行性研究與需求分析 18
本章學習目標 18
2.1 可行性研究 18
2.1.1 問題的定義 18
2.1.2 可行性研究的任務 19
2.1.3 可行性研究的步驟及工具 20
2.1.4 制訂項目計劃 23
2.2 需求分析 24
2.2.1 需求分析的目標和任務 24
2.2.2 軟件需求的獲取 25
2.2.3 需求分析的過程 26
2.2.4 快速原型方法 28
2.3 結構化分析方法 30
2.3.1 結構化分析模型 31
2.3.2 數據流圖與數據字典 33
2.3.3 Warnier圖 38
2.4 需求分析評審 39
2.4.1 需求規格說明書 39
2.4.2 評審過程 40
2.5 需求分析實例 42
2.5.1 畫分層數據流圖 42
2.5.2 確定數據定義與加工策略 44
2.5.3 實例的需求分析評審 45
本章小結 46
習題 46
第3章 軟件設計 47
本章學習目標 47
3.1 軟件設計的任務 47
3.2 軟件設計的基本概念 49
3.2.1 軟件設計的概念 49
3.2.2 模塊化與模塊獨立性 50
3.2.3 抽象與信息隱蔽 55
3.2.4 軟件設計原則 57
3.3 結構化設計方法 58
3.3.1 系統結構圖 58
3.3.2 變換分析 60
3.3.3 事務分析 63
3.4 設計優化 65
3.5 詳細設計 68
3.5.1 詳細設計概述 68
3.5.2 程序流程圖 68
3.5.3 N-S圖(盒圖) 71
3.5.4 PAD圖 72
3.5.5 判定表與判定樹 73
3.5.6 PDL 75
本章小結 76
習題 77
第4章 面向對象技術 78
本章學習目標 78
4.1 面向對象的概念 78
4.1.1 面向對象 78
4.1.2 對象 78
4.1.3 類 79
4.1.4 繼承 79
4.1.5 消息 80
4.1.6 多態性 80
4.1.7 封裝性 80
4.2 面向對象的開發過程 81
4.2.1 應用生存期 81
4.2.2 類生存期 82
4.3 面向對象分析 83
4.3.1 面向對象分析 84
4.3.2 論域分析 84
4.3.3 應用分析(Application Analysis) 86
4.3.4 對象模型技術(OMT,Object Model Technology) 86
4.4 面向對象的設計與實現 90
4.4.1 高層設計 90
4.4.2 類的設計 91
4.4.3 系統的實現 94
4.5 Coad與Yourdon方法 94
4.5.1 面向對象的分析 95
4.5.2 面向對象的設計 97
4.5.3 Booch的方法 98
4.6 軟件復用技術 102
4.6.1 軟件復用的基本概念 102
4.6.2 軟件復用技術分類 103
4.6.3 論域工程 104
4.6.4 基于構件的軟件開發 106
4.6.5 面向對象方法與軟件復用 107
本章小結 108
習題 108
第5章 統一建模語言UML 109
本章學習目標 109
5.1 UML的基本概念 109
5.1.1 UML語言的產生 109
5.1.2 UML的定義 110
5.1.3 UML的目標 110
5.1.4 UML語言的應用 110
5.2 UML語言概述 111
5.2.1 視圖 111
5.2.2 圖 111
5.2.3 UML的模型元素及表示方法 112
5.2.4 UML的通用機制和擴展機制 115
5.2.5 UML的規則 116
5.3 靜態建模 117
5.3.1 用例模型 117
5.3.2 類和對象模型 117
5.3.3 類之間的關系 119
5.4 動態建模 122
5.4.1 消息 122
5.4.2 狀態圖和時序圖 123
5.4.3 協作圖和活動圖 124
5.5 物理架構建模 126
5.5.1 邏輯架構與物理架構 126
5.5.2 組件圖與部署圖 128
5.6 基于UML的統一建模過程——RUP 128
本章小結 129
習題 130
第6章 編碼和編程語言 131
本章學習目標 131
6.1 編碼的目的 131
6.2 編碼的風格 132
6.2.1 結構化程序設計 132
6.2.2 編碼風格 137
6.3 編碼語言 144
6.3.1 編碼語言的發展 144
6.3.2 常用的編碼語言 145
6.3.3 編碼語言的選擇 147
本章小結 149
習題 149
第7章 軟件測試 150
本章學習目標 150
7.1 軟件測試的基本概念 150
7.1.1 軟件測試的定義 150
7.1.2 軟件測試的目的和原則 151
7.1.3 軟件測試的對象及信息流 152
7.2 黑盒測試 153
7.2.1 等價類劃分法 153
7.2.2 邊界值分析 155
7.2.3 錯誤推測法 156
7.2.4 因果圖法 156
7.2.5 功能圖 156
7.3 白盒測試 156
7.3.1 邏輯覆蓋 157
7.3.2 基本路徑測試 162
7.4 軟件測試的步驟及過程 162
7.4.1 單元測試 162
7.4.2 集成測試 164
7.4.3 確認測試 165
7.4.4 系統測試 166
7.4.5 人工測試 167
7.4.6 軟件測試過程 167
7.5 軟件的調試及排錯 168
7.5.1 錯誤的診斷及排除 168
7.5.2 常用的幾種調試方法 169
7.6 面向對象的軟件測試 170
7.6.1 面向對象的測試模型 170
7.6.2 面向對象軟件的測試策略 171
7.6.3 面向對象軟件測試用例設計 172
本章小結 174
習題 174
第8章 軟件維護 175
本章學習目標 175
8.1 軟件維護概述 175
8.1.1 軟件維護的基本概念 175
8.1.2 軟件維護的種類 175
8.1.3 影響軟件維護工作量的因素 177
8.1.4 軟件維護的策略 177
8.2 軟件維護的過程 178
8.2.1 維護機構 178
8.2.2 軟件維護申請報告 179
8.2.3 軟件維護工作流程 179
8.2.4 軟件維護記錄及評價 180
8.2.5 修改程序的副作用 181
8.3 軟件的可維護性 181
8.3.1 可維護性的定義 182
8.3.2 可維護性的度量 182
8.4 提高可維護性的途徑 184
8.4.1 建立明確的軟件質量目標和優先級 184
8.4.2 使用提高軟件質量的技術和工具 184
8.4.3 進行明確的質量保證審查 185
8.4.4 選擇可維護的程序設計語言 187
8.4.5 改進程序的文檔 188
8.5 逆向工程和再工程 189
本章小結 189
習題 190
第9章 軟件工程管理與質量保證 191
本章學習目標 191
9.1 軟件度量技術 191
9.1.1 代碼行度量技術 191
9.1.2 功能點度量 192
9.1.3 COCOMO模型 194
9.2 軟件估算 195
9.2.1 資源估算 196
9.2.2 成本估算 197
9.2.3 人員的分配與組織 200
9.2.4 項目進度安排 203
9.3 質量保證 208
9.3.1 軟件的質量屬性 208
9.3.2 質量保證的活動內容 209
9.4 軟件可靠性 211
9.5 軟件配置管理 211
9.5.1 軟件配置管理 212
9.5.2 版本控制 213
9.5.3 配置狀態報告 214
9.5.4 配置審計 215
本章小結 216
習題 216
第10章 軟件工程標準化 217
本章學習目標 217
10.1 軟件工程標準化 217
10.1.1 軟件工程標準化的概念 217
10.1.2 軟件工程標準化的意義 218
10.2 軟件質量認證 218
10.2.1 ISO 9000系列標準 218
10.2.2 軟件質量認證 219
10.2.3 ISO 9000-3的要點 219
10.3 軟件文檔 220
10.3.1 軟件文檔的作用 220
10.3.2 軟件文檔的分類 221
10.3.3 文檔的管理與維護 221
10.3.4 常用的軟件文檔 221
10.4 CMM模型 222
10.4.1 軟件過程成熟度模型 223
10.4.2 關鍵過程域 224
10.4.3 成熟度提問單 224
本章小結 226
習題 226
第11章 軟件工程環境 227
本章學習目標 227
11.1 什么是軟件工程環境 227
11.1.1 軟件開發環境的特點 228
11.1.2 軟件開發環境的模型 230
11.2 CASE環境 230
11.2.1 CASE環境 230
11.2.2 CASE環境的組成與結構 230
本章小結 233
習題 233
第12章 嵌入式系統軟件技術 234
本章學習目標 234
12.1 嵌入式系統的基礎知識 234
12.1.1 嵌入式系統的定義 234
12.1.2 嵌入式系統的特點 235
12.1.3 嵌入式系統的應用 236
12.2 嵌入式系統開發過程 236
12.2.1 嵌入式軟件的開發特點 237
12.2.2 嵌入式軟件的開發過程 238
12.3 嵌入式軟件的測試 241
12.3.1 嵌入式軟件的測試方法 241
12.3.2 嵌入式軟件的測試策略 242
12.3.3 嵌入式軟件的測試工具 243
12.4 嵌入式系統的調試 244
12.4.1 嵌入式系統的調試方式 244
12.4.2 嵌入式系統的調試方法 245
本章小結 246
習題 246
參考文獻 247本書是根據教育部應用型本科21世紀規劃教材指導思想與原則的要求,充分考慮應用型本科人才的培養目標和教學特點編寫而成的。全書共12章,主要內容包括:軟件工程概念、可行性研究與需求分析、軟件設計、面向對象技術、統一建模語言UML、編碼與編程語言、軟件測試、軟件維護、軟件工程管理和質量保證、軟件工程標準化、軟件工程環境、嵌入式系統軟件技術。本書在每一章的開頭均給出本章的教學目標、教學任務和重點難點,每一章的最后給出實例分析和本章小結,附以部分習題,以便于教學與自學。
本書強調內容的實用性。按軟件工程的全過程來安排與組織內容,條理性強,以案例
教學為驅動,易于學生學習與掌握。
本書可作為應用型本科計算機、自動化、機電類等專業和高職高專計算機專業的教材,
也可作為自學教材和軟件開發人員的參考用書。
本書所配電子教案可以從中國水利水電出版社網站上免費下載,網址為:
http://www.waterpub.com.cn/softdown/。
- 庭院風骨—樹、灌、籬 [創意房主 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- 微積分(經管類)教程篇(下冊) [曹海軍 王海棠 周玲麗]
- 微積分(經管類)教程篇(上冊) [曹海軍 王海棠 周玲麗]
- 微積分(經管類)導學篇(上冊) [王海棠 曹海軍 周玲麗]
- 網站前端技術案例教程(HTML+CSS+JavaScript)(第二版) [黃華升]
- 線性代數 [主編 史昱 陳鳳欣]
- 電力電子技術課程學習及實驗指導 [主編 陳榮]
- 成長對話:青春的榜樣 [主編 施端銀 黃武剛 應巨林]
- 人工智能應用基礎 [主編 楊纓 李佳]
- 中華水文化(慕課版)(第二版) [畢雪燕 楊華軻 羅玲誼 等編著]
- 電路與電子技術Ⅱ——電路分析基礎 [主編 陳曉 金哲]
- 飛機維修專業英語——飛機系統(第二版) [趙迎春]
- 英語大爆炸:跟趣味情景劇學口語(微課版) [秦然 編著]
- 機械工程制圖任務跟蹤訓練 [主編 王瑞清 趙金考 周彥云 ]
- 機械工程制圖 [主編 覃國萍 劉百順 禹晨]
- 平面設計與制作項目化教程 [主編 李晨]
- 后期影像剪輯技術 [主編 郭建偉]
- 人工智能概論(第二版) [主編 任云暉 丁紅 徐迎春 ]
- 信息時代美育之道 [主編 劉宏宇 黎婭]
- 數字媒體交互設計項目式教程(微課版) [主編 蘇陸]
- 動畫運動規律項目實例解析(微課版) [孫珊珊 袁維坤]
- 自然語言處理 [主編 馮建周]
- 新媒體內容創作實務(微課版) [主編 覃思源]
- 人工智能基礎 [主編 余平 張春陽]
- 人工智能導論 [主編 王飛 潘立武]
- Amazing!兒童英語自然拼讀分級教材(全8冊) [王玲 編著]
- Spark大數據處理技術 [主編 劉仁山 周洪翠 莊新妍]
- 毫無PS痕跡—你的第一本Photoshop書(第二版) [趙鵬 著]
- 電視新聞制作(活頁式) [主編 王曉翠 劉傳琳]