《軟體工程(第3版)》是由錢樂秋、趙文耘、牛軍鈺編著,清華大學出版社2016年出版的普通高等教育“十二五”國家級規劃教材、21世紀大學本科計算機專業系列教材、上海市高等教育精品課程教材。該教材適合作為高等學校計算機科學與技術學科、軟體工程學科各專業的教材,也可作為軟體開發人員的參考書。
該教材共16章,由概論、系統工程、需求工程、設計工程、結構化分析與設計、面向數據結構的分析與設計、面向對象方法基礎、面向對象建模、基於構件的軟體開發、敏捷軟體開發、人機界面設計、程式設計語言和編碼、軟體測試、Web工程、軟體維護與再工程、軟體項目管理組成。
基本介紹
- 書名:軟體工程(第3版)
- 作者:錢樂秋、趙文耘、牛軍鈺
- ISBN:9787302446088
- 類別:普通高等教育“十二五”國家級規劃教材等
- 出版社:清華大學出版社
- 出版時間:2016年9月1日
- 裝幀:平裝
- 開本:185mm×260mm
- 字數:595千字
- CIP核字號:2016175388
成書過程
修訂情況
出版工作
責任編輯 | 封面設計 | 責任校對 | 責任印製 |
---|---|---|---|
張瑞慶 | 常雪影 | 焦麗麗 | 宋林 |
內容簡介
教材目錄
第1章 概論1 | 6.1JSP方法110 | 12.2.2數據說明244 |
1.1計算機軟體1 | 6.1.1數據結構與程式結構的表示110 | 12.2.3語句結構244 |
1.1.1軟體的發展1 | 6.1.2JSP方法的分析和設計步驟114 | 12.2.4輸入和輸出246 |
1.1.2軟體的特點2 | 6.2JSD方法簡介118 | 12.3小結246 |
1.1.3軟體的分類3 | 6.3小結119 | 習題246 |
1.1.4軟體語言3 | 習題119 | 第13章 軟體測試247 |
1.2軟體工程5 | 第7章 面向對象方法基礎120 | 13.1軟體測試基礎247 |
1.2.1軟體工程定義5 | 7.1面向對象的基本概念121 | 13.1.1軟體測試的目的247 |
1.2.2軟體工程框架6 | 7.2面向對象分析和設計過程124 | 13.1.2軟體測試的基本原則248 |
1.2.3軟體生存周期7 | 7.2.1面向對象分析過程124 | 13.1.3白盒測試和黑盒測試249 |
1.3軟體過程7 | 7.2.2面向對象設計過程126 | 13.2白盒測試249 |
1.3.1軟體生存周期過程8 | 7.2.3設計模式128 | 13.2.1邏輯覆蓋測試249 |
1.3.2能力成熟度模型11 | 7.3UML概述129 | 13.2.2邏輯表達式錯誤敏感的測試254 |
1.3.3能力成熟度模型集成13 | 7.3.1UML發展歷史129 | 13.2.3基本路徑測試255 |
1.4軟體過程模型16 | 7.3.2UML簡介130 | 13.2.4數據流測試257 |
1.4.1瀑布模型16 | 7.3.3視圖131 | 13.2.5循環測試258 |
1.4.2演化模型17 | 7.3.4圖133 | 13.3黑盒測試259 |
1.4.3增量模型18 | 7.4小結136 | 13.3.1等價類劃分259 |
1.4.4原型模型18 | 習題136 | 13.3.2邊界值分析262 |
1.4.5螺旋模型20 | 第8章 面向對象建模137 | 13.3.3比較測試263 |
1.4.6噴泉模型21 | 8.1用況建模137 | 13.3.4錯誤猜測263 |
1.4.7基於構件的開發模型21 | 8.1.1用況建模步驟137 | 13.3.5因果圖263 |
1.4.8形式化方法模型22 | 8.1.2確定執行者138 | 13.4測試策略267 |
1.5CASE工具與環境23 | 8.1.3確定用況139 | 13.4.1V模型267 |
1.5.1軟體工具23 | 8.1.4用況描述140 | 13.4.2單元測試268 |
1.5.2軟體開發環境25 | 8.1.5用況圖中的關係142 | 13.4.3集成測試269 |
1.6小結、習題26 | 8.1.6案例說明143 | 13.4.4確認測試272 |
第2章 系統工程27 | 8.1.7用況建模實例144 | 13.4.5系統測試273 |
2.1基於計算機的系統27 | 8.2靜態建模147 | 13.5面向對象測試274 |
2.2系統工程的任務28 | 8.2.1類圖和對象圖148 | 13.5.1面向對象語境對測試的影響274 |
2.3可行性分析29 | 8.2.2CRC技術148 | 13.5.2面向對象測試策略275 |
2.3.1經濟可行性29 | 8.2.3類之間的關係153 | 13.5.3面向對象測試用例設計276 |
2.3.2技術可行性31 | 8.2.4靜態建模實例161 | 13.6測試完成標準276 |
2.3.3法律可行性31 | 8.3動態建模163 | 13.7調試277 |
2.3.4方案的選擇和折衷31 | 8.3.1狀態機圖163 | 13.7.1調試過程277 |
2.4小結32 | 8.3.2活動圖170 | 13.7.2調試方法277 |
習題32 | 8.3.3順序圖172 | 13.7.3糾正錯誤278 |
第3章 需求工程33 | 8.3.4通信圖176 | 13.8小結279 |
3.1需求工程概述33 | 8.3.5動態建模實例178 | 習題279 |
3.2需求獲取35 | 8.4物理體系結構建模179 | 第14章 Web工程281 |
3.2.1軟體需求35 | 8.4.1構件圖180 | 14.1WebApp的屬性和類型281 |
3.2.2需求獲取方法與策略36 | 8.4.2部署圖181 | 14.1.1WebApp的屬性281 |
3.3需求分析、協商與建模40 | 8.5小結182 | 14.1.2WebApp的類型283 |
3.3.1需求分析原則40 | 習題182 | 14.2Web工程過程284 |
3.3.2信息域40 | 第9章 基於構件的軟體開發184 | 14.2.1過程框架284 |
3.3.3需求協商41 | 9.1基於構件的軟體開發概述184 | 14.2.2改善框架285 |
3.3.4需求建模41 | 9.1.1構件184 | 14.2.3Web工程的最佳實踐285 |
3.4需求規約與驗證42 | 9.1.2基於構件的軟體開發過程187 | 14.2.4方法和工具285 |
3.4.1需求規約的原則42 | 9.1.3CBSD對質量、生產率和成本的影響189 | 14.3WebApp建模286 |
3.4.2需求規約42 | 9.2建造可復用構件190 | 14.3.1WebApp需求建模286 |
3.4.3需求驗證44 | 9.2.1對可復用構件的要求190 | 14.3.2WebApp設計建模288 |
3.5需求管理44 | 9.2.2創建領域構件的設計框架191 | 14.4WebApp質量管理293 |
3.6小結45 | 9.2.3可變性分析191 | 14.4.1WebApp質量維度293 |
習題45 | 9.2.4可變性機制192 | 14.4.2WebApp的測試294 |
第4章 設計工程46 | 9.3套用系統工程194 | 14.4.3WebApp配置管理295 |
4.1軟體設計工程概述46 | 9.3.1基於CBSD的套用系統分析和設計194 | 14.5小結296 |
4.2軟體設計原則48 | 9.3.2構件的鑑定、特化和組裝195 | 習題296 |
4.2.1抽象與逐步求精49 | 9.4構件的管理196 | 第15章 軟體維護與再工程297 |
4.2.2模組化49 | 9.4.1構件的分類描述196 | 15.1軟體維護297 |
4.2.3信息隱藏50 | 9.4.2構件庫管理系統197 | 15.1.1軟體維護的概念297 |
4.2.4功能獨立51 | 9.5小結198 | 15.1.2軟體維護的過程300 |
4.3軟體體系結構設計53 | 習題198 | 15.1.3軟體可維護性302 |
4.3.1體系結構發展過程53 | 第10章 敏捷軟體開發199 | 15.2再工程技術305 |
4.3.2軟體體系結構的風格54 | 10.1敏捷軟體開發方法概述199 | 15.2.1再工程的概念305 |
4.3.3評估可選的體系結構56 | 10.1.1敏捷宣言199 | 15.2.2業務過程再工程305 |
4.4部件級設計技術57 | 10.1.2精益思想201 | 15.2.3軟體再工程過程306 |
4.4.1結構化程式設計方法58 | 10.1.3敏捷方法綜述202 | 15.2.4逆向工程308 |
4.4.2圖形表示法58 | 10.2Scrum方法203 | 15.3小結309 |
4.4.3判定表61 | 10.2.1Scrum簡介203 | 習題309 |
4.4.4設計性語言PDL62 | 10.2.2Scrum團隊205 | 第16章 軟體項目管理310 |
4.5設計規約與設計評審63 | 10.2.3需求管理205 | 16.1軟體項目管理概述310 |
4.5.1設計規約63 | 10.2.4基於時間盒的疊代206 | 16.1.1軟體項目管理的關注點310 |
4.5.2設計評審64 | 10.2.5回顧會議209 | 16.1.2軟體項目管理的內容313 |
4.6小結65 | 10.3極限編程方法210 | 16.2軟體度量316 |
習題65 | 10.3.1極限編程簡介210 | 16.2.1面向規模的度量317 |
第5章 結構化分析與設計67 | 10.3.2價值觀和原則211 | 16.2.2面向功能的度量318 |
5.1結構化分析方法概述67 | 10.3.3實踐212 | 16.2.3軟體質量模型321 |
5.2數據流圖69 | 10.4看板方法217 | 16.2.4程式複雜性度量327 |
5.2.1數據流圖的圖形表示69 | 10.4.1看板方法簡介217 | 16.2.5軟體可靠性度量329 |
5.2.2分層數據流圖的畫法72 | 10.4.2看板方法的規則218 | 16.3軟體項目估算330 |
5.3分層數據流圖的審查76 | 10.4.3看板方法和Scrum的比較219 | 16.3.1代碼行、功能點和工作量估算330 |
5.3.1分層數據流圖的一致性和完整性77 | 10.5小結220 | 16.3.2IBM估算模型331 |
5.3.2構造分層DFD時需要注意的問題80 | 習題220 | 16.3.3CoCoMo模型332 |
5.3.3分解的程度82 | 第11章 人機界面設計221 | 16.3.4Putnam模型334 |
5.4數據字典82 | 11.1人的因素221 | 16.3.5軟體可靠性估算335 |
5.4.1字典條目的種類及描述符號82 | 11.1.1人對感知過程的認識221 | 16.4項目進度管理336 |
5.4.2字典條目83 | 11.1.2用戶的技能和行為方式222 | 16.4.1人員與工作量之間的關係337 |
5.4.3字典條目實例87 | 11.1.3人體測量學對設計的影響222 | 16.4.2任務的分解與並行337 |
5.4.4數據字典的實現88 | 11.2人機界面風格224 | 16.4.3任務工作量的確定338 |
5.5描述基本加工的小說明88 | 11.3人機界面分析與建模227 | 16.4.4進度安排339 |
5.5.1結構化語言89 | 11.3.1人機界面設計過程227 | 16.5風險管理344 |
5.5.2判定表90 | 11.3.2人機界面設計中涉及的模型228 | 16.5.1風險標識344 |
5.5.3判定樹91 | 11.3.3任務分析的途徑與方法228 | 16.5.2風險預測345 |
5.6結構化設計概述91 | 11.4界面設計活動229 | 16.5.3風險評估345 |
5.6.1結構圖92 | 11.4.1定義界面對象和動作229 | 16.5.4風險管理和監控346 |
5.6.2啟發式設計策略94 | 11.4.2設計問題230 | 16.6軟體項目的組織348 |
5.6.3結構化設計的步驟96 | 11.4.3黃金原則231 | 16.6.1組織結構的模式348 |
5.7數據流圖到軟體體系結構的映射97 | 11.5實現工具233 | 16.6.2程式設計小組的組織形式348 |
5.7.1信息流97 | 11.6設計評估233 | 16.6.3人員配備350 |
5.7.2數據流圖映射到結構圖的步驟98 | 11.7小結235 | 16.7軟體質量管理351 |
5.7.3變換分析98 | 習題235 | 16.7.1軟體質量保證352 |
5.7.4事務分析101 | 第12章 程式設計語言和編碼236 | 16.7.2軟體評審353 |
5.7.5分層DFD的映射102 | 12.1程式設計語言236 | 16.8軟體配置管理355 |
5.8初始結構圖的改進104 | 12.1.1程式設計語言的基本成分236 | 16.8.1軟體配置管理的基本概念355 |
5.8.1結構圖改進實例104 | 12.1.2程式設計語言的特性238 | 16.8.2軟體配置管理的主要活動356 |
5.8.2結構圖改進技巧106 | 12.1.3程式設計語言的分類239 | 16.9小結359 |
5.9小結108 | 12.1.4程式設計語言的選擇240 | 習題359 |
習題108 | 12.2程式設計風格241 | 辭彙索引361 |
第6章 面向數據結構的分析與設計110 | 12.2.1源程式文檔化241 | 參考文獻371 |
教學資源
- 課程資源