![](/c49/99/12562856.jpg)
出版社:人民郵電出版社 ISBN:9787115498076 版次:3 商品編碼:12562856 品牌:異步圖書 包裝:平裝 開本:16開 出版時間:2019-02-01 用紙:膠版紙 頁數:550 正文語種:中文 作者:莎麗·勞倫斯·弗裡格(Shari,Lawrence,Pfleeger),喬安妮·M.阿特利(Joanne,M.,Atlee),楊衛東
" 編輯推薦 1.軟件工程課程的經典教材,國際上眾多名校均采用本書。 2.配有專門的配套網站,包含教學PPT和習題答案等豐富的教學資源。
本書是軟件工程領域公認的經典名著,也是業界常引用的主要文獻之一,被國內外眾多名校廣泛采用。與其他軟件工程著作不同,本書注重從實踐出發選擇和安排素材,同時又從理論上進行了全面深入的探討。對諸如復用、風險管理和質量工程、測度和度量等理論性比較強的主題,沒有專設章節,而是融合在相關的各種軟件工程活動中講述。 本書理論闡述循序漸進,善於揭示各知識點之間的內在聯繫,並通過大量實例和工程實踐深化和豐富理論知識;選材與時俱進,反映了業界動態,尤其是建模和敏捷方法方面的重要進展。兩個貫穿全書的研究案例——信息繫統案例和實時繫統案例,以及書中的學期項目,引導讀者很好地將概念有機地應用到實際項目中去。 內容簡介 本書是軟件工程領域的經典著作,國際上眾多名校均采用本書作為教材。全書共分為14章,分3個部分介紹主要內容。第一部分解釋為什麼軟件工程知識對實踐者和研究者同樣重要,還討論了理解過程模型問題的必要性以及敏捷方法和精細地進行項目計劃的必要性;第二部分論述開發和維護的主要步驟;第三部分主要講述軟件評估和改進。 本書適合作為計算機相關專業軟件工程課程的本科教材,也適用於介紹軟件工程的概念與實踐的研究生課程,期望進一步學習該領域相關知識的專業人員也可以閱讀本書。 作者簡介 Shari Lawrence Pfleeger 世界範圍內享有盛譽的軟件工程學者,在軟件開發領域有著數十年的豐富經驗,主要從事軟件工程和信息技術的教學、咨詢和研究。現任美國智庫蘭德公司的研究員。她曾經執教於馬裡蘭大學和倫敦城市大學,並擔任IEEE Software和IEEE Transactions on Software Engineering等業界期刊副主編多年。除本書外,她與人合作撰寫的Security in Computing也是廣泛采用的主流教材。
Joanne M. Atlee 世界知名的軟件工程學者,以軟件需求和軟件工程教育方面的傑出貢獻而聞名。她是IEEE計算機學會和ACM聯合發起的軟件工程課程項目指導委員會的成員,也是國際信息處理聯合會(IFIP)軟件需求工程工作組成員。她是滑鐵盧大學副教授,創立了該校的軟件工程學位項目並任項目主任。 目錄 第 1章軟件工程概述 1 1.1什麼是軟件工程1 1.1.1問題求解2 1.1.2軟件工程師的角色是什麼3 1.2軟件工程取得了哪些進展4 1.3什麼是好的軟件6 1.3.1產品的質量7 1.3.2過程的質量8 1.3.3商業環境背景下的質量8 1.4軟件工程涉及的人員10 1.5繫統的方法11 1.5.1繫統的要素11 1.5.2相互聯繫的繫統13 1.6工程的方法14 1.6.1蓋房子15 1.6.2構建繫統16 1.7開發團隊的成員17 1.8軟件工程發生了多大的變化19 1.8.1變化的本質19 1.8.2軟件工程的Wasserman規範20 1.9信息繫統的例子25 1.10實時繫統的例子26 1.11本章對單個開發人員的意義27 1.12本章對開發團隊的意義28 1.13本章對研究人員的意義28 1.14學期項目28 1.15主要參考文獻29 1.16練習30 第2章 過程和生命周期的建模32 2.1過程的含義32 2.2軟件過程模型34 2.2.1瀑布模型34 2.2.2V模型37 2.2.3原型化模型37 2.2.4可操作規格說明38 2.2.5可轉換模型38 2.2.6階段化開發:增量和迭代39 2.2.7螺旋模型40 2.2.8敏捷方法41 2.3過程建模工具和技術44 2.3.1靜態建模:Lai表示法45 2.3.2動態建模:繫統動力學47 2.4實際的過程建模49 2.4.1Marvel的案例研究49 2.4.2過程建模工具和技術應該具有的特性51 2.5信息繫統的例子51 2.6實時繫統的例子53 2.7本章對單個開發人員的意義54 2.8本章對開發團隊的意義54 2.9本章對研究人員的意義54 2.10學期項目54 2.11主要參考文獻56 2.12練習57 第3章計劃和管理項目58 3.1跟蹤項目進展58 3.1.1工作分解和活動圖60 3.1.2估算完成時間61 3.1.3跟蹤進展的工具65 3.2項目人員67 3.2.1人員角色和特性67 3.2.2工作風格70 3.2.3項目組織71 3.3工作量估算73 3.3.1專家判斷75 3.3.2算法方法77 3.3.3機器學習方法81 3.3.4找出適合具體情形的模型83 3.4風險管理84 3.4.1什麼是風險84 3.4.2風險管理活動85 3.5項目計劃87 3.6過程模型和項目管理88 3.6.1注冊管理88 3.6.2責任建模90 3.6.3緊密結合裡程碑92 3.7信息繫統的例子94 3.8實時繫統的例子95 3.9本章對單個開發人員的意義96 3.10本章對開發團隊的意義96 3.11本章對研究人員的意義96 3.12學期項目96 3.13主要參考文獻97 3.14練習97 第4章獲取需求100 4.1需求過程101 4.2需求引發102 4.3需求的類型105 4.3.1解決衝突107 4.3.2兩種需求文檔108 4.4需求的特性109 4.5建模表示法110 4.5.1實體-聯繫圖111 4.5.2例子:UML類圖112 4.5.3事件蹤跡114 4.5.4例子:消息時序圖114 4.5.5狀態機115 4.5.6例子:UML狀態圖116 4.5.7例子:Petri網119 4.5.8數據流圖121 4.5.9例子:用例122 4.5.10函數和關繫123 4.5.11例子:判定表124 4.5.12例子:Parnas表124 4.5.13邏輯125 4.5.14例子:對像約束語言(OCL)126 4.5.15例子:Z127 4.5.16代數規格說明129 4.5.17例子:SDL數據130 4.6需求和規格說明語言132 4.6.1統一建模語言(UML)132 4.6.2規格說明和描述語言(SDL)133 4.6.3軟件成本降低(SCR)133 4.6.4需求表示法的其他特征134 4.7原型化需求134 4.8需求文檔135 4.8.1需求定義136 4.8.2需求規格說明137 4.8.3過程管理和需求的可跟蹤性138 4.9確認和驗證138 4.9.1需求確認139 4.9.2驗證141 4.10測量需求142 4.11選擇規格說明技術143 4.12信息繫統的例子145 4.13實時繫統的例子147 4.14本章對單個開發人員的意義149 4.15本章對開發團隊的意義149 4.16本章對研究人員的意義149 4.17學期項目150 4.17.1前提和假設150 4.17.2功能的高層描述150 4.17.3功能需求150 4.17.4數據約束151 4.17.5設計和接口約束152 4.17.6質量需求152 4.18主要參考文獻152 4.19練習153 第5章設計體繫結構156 5.1設計過程156 5.1.1設計是一種創造性過程157 5.1.2設計過程模型160 5.2體繫結構建模161 5.3分解和視圖162 5.4體繫結構風格和策略165 5.4.1管道和過濾器165 5.4.2客戶—服務器166 5.4.3對等網絡167 5.4.4發布—訂閱168 5.4.5信息庫168 5.4.6分層169 5.4.7組合體繫結構風格170 5.5滿足質量屬性171 5.5.1可修改性171 5.5.2性能173 5.5.3安全性174 5.5.4可靠性175 5.5.5健壯性177 5.5.6易使用性178 5.5.7商業目標178 5.6協作設計179 5.7體繫結構的評估和改進180 5.7.1測量設計質量181 5.7.2故障樹分析181 5.7.3安全性分析183 5.7.4權衡分析184 5.7.5成本效益分析188 5.7.6原型化190 5.8文檔化軟件體繫結構191 5.8.1視圖間的映射193 5.8.2文檔化設計合理性193 5.9體繫結構設計評審193 5.9.1確認194 5.9.2驗證194 5.10軟件產品線195 5.10.1戰略範圍197 5.10.2產品線體繫結構的優勢197 5.10.3產品線的演化198 5.11信息繫統的例子198 5.12實時繫統的例子200 5.13本章對單個開發人員的意義201 5.14本章對開發團隊的意義201 5.15本章對研究人員的意義202 5.16學期項目202 5.17主要參考文獻203 5.18練習203 第6章設計模塊205 6.1設計方法205 6.2設計原則207 6.2.1模塊化207 6.2.2接口212 6.2.3信息隱藏213 6.2.4增量式開發214 6.2.5抽像215 6.2.6通用性216 6.3面向對像的設計218 6.3.1術語218 6.3.2繼承與對像組合221 6.3.3可替換性222 6.3.4德米特法則223 6.3.5依賴倒置224 6.4在UML中體現面向對像設計225 6.4.1過程中的UML225 6.4.2UML類圖227 6.4.3其他UML圖232 6.5面向對像設計模式240 6.5.1模板方法模式241 6.5.2工廠方法模式241 6.5.3策略模式242 6.5.4裝飾者模式242 6.5.5觀察者模式244 6.5.6組合模式244 6.5.7訪問者模式245 6.6設計中其他方面的考慮247 6.6.1數據管理247 6.6.2異常處理247 6.6.3用戶界面設計249 6.6.4框架250 6.7面向對像度量250 6.7.1面向對像繫統規模的度量251 6.7.2面向對像繫統設計質量的度量252 6.7.3在何處進行面向對像測量258 6.8設計文檔259 6.9信息繫統的例子261 6.10實時繫統的例子262 6.11本章對單個開發人員的意義263 6.12本章對開發團隊的意義263 6.13本章對研究人員的意義263 6.14學期項目263 6.15主要參考文獻264 6.16練習264 第7章編寫程序267 7.1編程標準和過程267 7.1.1對單個開發人員的標準268 7.1.2對其他開發人員的標準268 7.1.3設計和實現的匹配269 7.2編程的指導原則269 7.2.1控制結構269 7.2.2算法270 7.2.3數據結構271 7.2.4通用性指導原則273 7.3文檔276 7.3.1內部文檔276 7.3.2外部文檔279 7.4編程過程280 7.4.1將編程作為問題求解280 7.4.2極限編程281 7.4.3結對編程281 7.4.4編程向何處去282 7.5信息繫統的例子282 7.6實時繫統的例子283 7.7本章對單個開發人員的意義284 7.8本章對開發團隊的意義284 7.9本章對研究人員的意義284 7.10學期項目285 7.11主要參考文獻285 7.12練習285 第8章測試程序287 8.1軟件故障和失效287 8.1.1故障的類型288 8.1.2正交缺陷分類289 8.2測試的相關問題291 8.2.1測試的組織291 8.2.2對測試的態度292 8.2.3誰執行測試293 8.2.4測試對像的視圖293 8.測試295 8.3.1檢查代碼295 8.3.2證明代碼正確性297 8.3.3測試程序構件301 8.3.4技術比較304 8.4集成測試305 8.4.1自底向上集成305 8.4.2自頂向下集成306 8.4.3一次性集成308 8.4.4三明治集成308 8.4.5集成策略的比較309 8.5測試面向對像繫統311 8.5.1代碼測試311 8.5.2面向對像測試和傳統測試之間的區別311 8.6測試計劃313 8.6.1計劃的目的313 8.6.2計劃的內容313 8.7自動測試工具314 8.7.1代碼分析工具314 8.7.2測試執行工具315 8.7.3測試用例生成器316 8.8什麼時候停止測試316 8.8.1故障播種317 8.8.2軟件中的可信度318 8.8.3其他的停止測試的標準319 8.8.4識別易出故障的代碼319 8.9信息繫統的例子320 8.10實時繫統的例子321 8.11本章對單個開發人員的意義321 8.12本章對開發團隊的意義322 8.13本章對研究人員的意義322 8.14學期項目322 8.15主要參考文獻322 8.16練習323 第9章測試繫統325 9.1繫統測試的原則325 9.1.1軟件故障根源325 9.1.2繫統測試過程327 9.1.3配置管理329 9.1.4測試小組333 9.2功能測試334 9.2.1目的與職責334 9.2.2因果圖335 9.3性能測試338 9.3.1目的和職責338 9.3.2性能測試的類型338 9.4可靠性、可用性以及可維護性339 9.4.1定義339 9.4.2失效數據340 9.4.3測量可靠性、可用性和可維護性341 9.4.4可靠性穩定性和可靠性增長342 9.4.5可靠性預測343 9.4.6操作環境的重要性345 9.5驗收測試346 9.5.1目的和職責346 9.5.2驗收測試的種類346 9.5.3驗收測試的結果347 9.6安裝測試348 9.7自動化繫統測試348 9.8測試文檔349 9.8.1測試計劃349 9.8.2測試規格說明和評估351 9.8.3測試描述353 9.8.4測試分析報告355 9.8.5問題報告表355 9.9測試安全攸關的繫統357 9.9.1設計多樣性358 9.9.2軟件安全性案例359 9.9.3淨室方法361 9.10信息繫統的例子364 9.11實時繫統的例子366 9.12本章對單個開發人員的意義367 9.13本章對開發團隊的意義367 9.14本章對研究人員的意義367 9.15學期項目367 9.16主要參考文獻368 9.17練習368 第10章 交付繫統372 10.1培訓372 10.1.1培訓的種類373 10.1.2培訓助手374 10.1.3培訓的指導原則375 10.2文檔375 10.2.1文檔的種類375 10.2.2用戶幫助和疑難解答379 10.3信息繫統的例子380 10.4實時繫統的例子381 10.5本章對單個開發人員的意義381 10.6本章對開發團隊的意義381 10.7本章對研究人員的意義382 10.8學期項目382 10.9主要參考文獻382 10.10練習382 第11章 維護繫統384 11.1變化的繫統384 11.1.1繫統的類型384 11.1.2在繫統生命周期過程中發生的變化387 11.1.3繫統生命周期跨度388 11.2維護的本質389 11.3維護問題392 11.3.1人員問題392 11.3.2技術問題393 11.3.3必要的妥協394 11.3.4維護成本395 11.4測量維護特性397 11.4.1可維護性的外部視圖398 11.4.2影響可維護性的內部屬性398 11.4.3其他的產品測量400 11.5維護技術和工具401 11.5.1配置管理401 11.5.2影響分析403 11.5.3自動化維護工具406 11.6軟件再生407 11.6.1文檔重構408 11.6.2重組409 11.6.3逆向工程410 11.6.4再工程410 11.6.5軟件再生的前景411 11.7信息繫統的例子412 11.8實時繫統的例子412 11.9本章對單個開發人員的意義413 11.10本章對開發團隊的意義413 11.11本章對研究人員的意義414 11.12學期項目414 11.13主要參考文獻414 11.14練習414 第12章 評估產品、過程和資源416 12.1評估的方法416 12.1.1特征分析416 12.1.2調查417 12.1.3案例研究417 12.1.4正式試驗418 12.1.5準備評估418 12.2選擇評估技術419 12.2.1關鍵選擇因素420 12.2.2相信什麼420 12.3評價與預測423 12.3.1確認預測繫統423 12.3.2確認測量425 12.3.3對確認的緊迫需求425 12.4評估產品426 12.4.1產品質量模型426 12.4.2建立基線和設定目標430 12.4.3軟件可復用性431 12.5評估過程437 12.5.1事後分析437 12.5.2過程成熟度模型441 12.6評估資源448 12.6.1人員成熟度模型448 12.6.2投資回報450 12.7信息繫統的例子451 12.8實時繫統的例子452 12.9本章對單個開發人員的意義452 12.10本章對開發團隊的意義452 12.11本章對研究人員的意義453 12.12學期項目453 12.13主要參考文獻453 12.14練習454 第13章 改進預測、產品、過程和資源455 13.1改進預測455 13.1.1預測的精確性455 13.1.2處理偏誤:u曲線456 13.1.3處理噪聲:prequential似然度458 13.1.4重新校準預測459 13.2改進產品462 13.2.1審查462 13.2.2復用464 13.3改進過程465 13.3.1過程和能力成熟度465 13.3.2維護467 13.3.3淨室方法468 13.4改進資源470 13.4.1工作環境470 13.4.2成本和進度的權衡471 13.5總體改進指導原則472 13.6信息繫統的例子473 13.7實時繫統的例子473 13.8本章對單個開發人員的意義473 13.9本章對開發團隊的意義474 13.10本章對研究人員的意義474 13.11學期項目474 13.12主要參考文獻475 13.13練習475 第14章 軟件工程的未來476 14.1已經取得的進展476 14.1.1Wasserman的獲得成熟度的措施476 14.1.2當前要做的工作478 14.2技術轉移478 14.2.1現在我們怎樣做出技術轉移的決策479 14.2.2在技術決策中使用證據479 14.2.3支持技術決策的證據480 14.2.4對證據的進一步討論481 14.2.5技術轉移的新模型483 14.2.6改進技術轉移的下一步483 14.3軟件工程中的決策484 14.3.1大量的決策484 14.3.2群體決策486 14.3.3我們實際上如何決策486 14.3.4群體實際上如何決策488 14.3.5一個適度的觀察研究489 14.3.6獲得的經驗教訓492 14.4軟件工程的職業化:執照發放、認證和倫理492 14.4.1將重點放在人員上493 14.4.2軟件工程教育493 14.4.3軟件工程知識體繫495 14.4.4給軟件工程師頒發執照496 14.4.5認證500 14.4.6倫理守則502 14.4.7職業發展503 14.4.8研究和實踐的進一步發展504 14.5學期項目505 14.6主要參考文獻505 14.7練習505 參考文獻注解507 索引536 查看全部↓
" |