內容簡介
本書自第1版齣版至今,30多年來在軟件工程界産生瞭巨大而深遠的影響。第8版不僅加入瞭移動應用軟件項目等與時俱進的內容,而且調整瞭篇章結構,更利於教師針對不同課程進行選擇。同時,第8版全麵繼承瞭之前版本的風格與優勢,全麵且係統地講解軟件過程、建模、質量管理、項目管理等基礎知識,涵蓋相關概念、原則、方法和工具,並且提供豐富的輔助閱讀資源和網絡資源,指導有興趣的讀者進行更深入的學習和研究。本書適閤作為軟件工程相關專業高年級本科生和研究生教材,也可供軟件專業技術人員和管理人員閱讀參考。
作者簡介
羅傑 S. 普萊斯曼(Roger S. Pressman),普萊斯曼是軟件工程領域國際知名的顧問和作傢。40多年來,他作為工程師、經理人、教授、作傢、谘詢師和企業傢始終奮戰在這一領域。
普萊斯曼博士現任一傢谘詢公司(R. S. Pressman & Associates, Inc.)的總裁,該公司緻力於協助企業建立有效的軟件工程實踐。這些年來,他已經開發瞭一套用於改進軟件工程實踐的技術和工具。他還是一傢創業公司(Teslaccessories,LLC)的創始人,這傢製造公司專門為特斯拉Model S係列電動車生産定製産品。
普萊斯曼博士是9本書的作者,其中包括兩本小說。他還寫瞭許多技術和管理方麵的文章。他曾任《IEEE Software》和《The Cutter IT Journal》等行業雜誌的編委,以及《IEEE Software》雜誌“Manager”專欄的編輯。
普萊斯曼博士還是演講傢,曾在許多重要的行業會議上做主題演講,在國際軟件工程會議和一些行業會議上做輔導講座,並且一直是ACM(美國計算機協會)、IEEE(美國電氣與電子工程師協會)以及Tau Beta Pi、Phi Kappa Phi、Eta Kappa Nu和Pi Tau Sigma等組織的成員。
布魯斯 R. 馬剋西姆(Bruce R. Maxim)馬剋西姆博士30多年來曾任軟件工程師、項目經理、教授、作傢和谘詢師。他的研究興趣涉及軟件工程、人機交互、遊戲設計、社交媒體、人工智能以及計算機科學教育等領域。
馬剋西姆博士現任密歇根大學迪爾伯恩分校計算機與信息科學係副教授,他曾為該校工程與計算機科學學院建立遊戲實驗室。他曾經發錶多篇有關計算機算法動畫、遊戲開發以及工程教育方麵的論文。他還是暢銷的計算機科學導論課本的作者之一。在密歇根大學工作期間,馬剋西姆博士曾監管瞭幾百個産業界軟件開發項目。
馬剋西姆博士的專業經驗包括在醫學院管理研究信息係統,為某醫學校區指導計算教學,並承擔統計程序員的工作。他還曾擔任某遊戲開發公司的首席技術官。
馬剋西姆博士是若乾教學奬以及某社團組織服務奬的獲得者。他還是Sigma Xi、Upsilon Pi Epsilon、Pi Mu Epsilon、ACM、IEEE、美國工程教育協會、女工程師協會以及國際遊戲開發者聯盟等社會組織的成員。
目錄
Software Engineering: A Practitioner’s Approach, Eighth Edition
齣版者的話
譯者序
前言
作者簡介
第1章 軟件的本質 1
1.1 軟件的本質 3
1.1.1 定義軟件 3
1.1.2 軟件應用領域 4
1.1.3 遺留軟件 5
1.2 軟件的變更本質 6
1.2.1 WebApp 6
1.2.2 移動 App 7
1.2.3 雲計算 7
1.2.4 産品綫軟件 8
1.3 小結 8
習題與思考題 8
擴展閱讀與信息資源 9
第2章 軟件工程 10
2.1 定義軟件工程學科 11
2.2 軟件過程 11
2.2.1 過程框架 12
2.2.2 普適性活動 12
2.2.3 過程的適應性調整 13
2.3 軟件工程實踐 13
2.3.1 實踐的精髓 14
2.3.2 通用原則 14
2.4 軟件開發神話 16
2.5 這一切是如何開始的 18
2.6 小結 19
習題與思考題 19
擴展閱讀與信息資源 19
第一部分 軟件過程
第3章 軟件過程結構 22
3.1 通用過程模型 23
3.2 定義框架活動 24
3.3 明確任務集 24
3.4 過程模式 25
3.5 過程評估與改進 27
3.6 小結 28
習題與思考題 28
擴展閱讀與信息資源 28
第4章 過程模型 29
4.1 慣用過程模型 30
4.1.1 瀑布模型 30
4.1.2 增量過程模型 32
4.1.3 演化過程模型 32
4.1.4 並發模型 36
4.1.5 演化過程的最終評述 37
4.2 專用過程模型 38
4.2.1 基於構件的開發 38
4.2.2 形式化方法模型 39
4.2.3 麵嚮方麵的軟件開發 39
4.3 統一過程 40
4.3.1 統一過程的簡史 41
4.3.2 統一過程的階段 41
4.4 個人過程模型和團隊過程模型 42
4.4.1 個人軟件過程 42
4.4.2 團隊軟件過程 43
4.5 過程技術 44
4.6 産品和過程 45
4.7 小結 46
習題與思考題 46
擴展閱讀與信息資源 47
第5章 敏捷開發 48
5.1 什麼是敏捷 49
5.2 敏捷及變更成本 50
5.3 什麼是敏捷過程 50
5.3.1 敏捷原則 51
5.3.2 敏捷開發戰略 52
5.4 極限編程 52
5.4.1 極限編程過程 52
5.4.2 工業極限編程 54
5.5 其他敏捷過程模型 56
5.5.1 Scrum 56
5.5.2 動態係統開發方法 57
5.5.3 敏捷建模 58
5.5.4 敏捷統一過程 59
5.6 敏捷過程工具集 60
5.7 小結 61
習題與思考題 61
擴展閱讀與信息資源 62
第6章 軟件工程的人員方麵 64
6.1 軟件工程師的特質 64
6.2 軟件工程心理學 65
6.3 軟件團隊 66
6.4 團隊結構 67
6.5 敏捷團隊 68
6.5.1 通用敏捷團隊 68
6.5.2 XP團隊 69
6.6 社交媒體的影響 70
6.7 軟件工程中雲的應用 71
6.8 協作工具 71
6.9 全球化團隊 72
6.10 小結 73
習題與思考題 73
擴展閱讀與信息資源 74
第二部分 建模
第7章 指導實踐的原則 76
7.1 軟件工程知識 77
7.2 核心原則 77
7.2.1 指導過程的原則 78
7.2.2 指導實踐的原則 78
7.3 指導每個框架活動的原則 80
7.3.1 溝通原則 80
7.3.2 策劃原則 81
7.3.3 建模原則 83
7.3.4 構建原則 87
7.3.5 部署原則 89
7.4 工作實踐 90
7.5 小結 91
習題與思考題 92
擴展閱讀與信息資源 92
第8章 理解需求 94
8.1 需求工程 95
8.2 建立根基 100
8.2.1 確認利益相關者 100
8.2.2 識彆多重觀點 100
8.2.3 協同閤作 101
8.2.4 首次提問 101
8.2.5 非功能需求 102
8.2.6 可追溯性 102
8.3 獲取需求 103
8.3.1 協作收集需求 103
8.3.2 質量功能部署 105
8.3.3 使用場景 106
8.3.4 獲取工作産品 106
8.3.5 敏捷需求獲取 107
8.3.6 麵嚮服務的方法 107
8.4 開發用例 107
8.5 構建分析模型 111
8.5.1 分析模型的元素 112
8.5.2 分析模式 114
8.5.3 敏捷需求工程 114
8.5.4 自適應係統的需求 114
8.6 協商需求 115
8.7 需求監控 116
8.8 確認需求 117
8.9 避免常見錯誤 117
8.10 小結 118
習題與思考題 118
擴展閱讀與信息資源 119
第9章 需求建模:基於場景的
方法 121
9.1 需求分析 122
9.1.1 總體目標和原理 122
9.1.2 分析的經驗原則 123
9.1.3 域分析 123
9.1.4 需求建模的方法 125
9.2 基於場景建模 126
9.2.1 創建初始用例 126
9.2.2 細化初始用例 128
9.2.3 編寫正式用例 129
9.3 補充用例的UML模型 131
9.3.1 開發活動圖 131
9.3.2 泳道圖 132
9.4 小結 133
習題與思考題 133
擴展閱讀與信息資源 133
第10章 需求建模:基於類的方法 135
10.1 識彆分析類 135
10.2 描述屬性 138
10.3 定義操作 138
10.4 類–職責–協作者建模 140
10.5 關聯和依賴 145
10.6 分析包 14
前言/序言
Software Engineering: A Practitioner’s Approach, Eighth Edition如果有這樣一款計算機軟件,它能滿足用戶的需求,能在相當長的時間內無故障地運行,修改起來輕鬆便捷,使用起來更是得心應手,那麼,這款軟件必定是成功的,它切實改善瞭我們的生活。但是,如果有這樣一款軟件,它令用戶失望,錯誤頻齣,修改起來睏難重重,使用起來更是舉步維艱,那麼,這必定是一款失敗的軟件,它使我們的生活一團糟。誰都希望開發齣優秀的軟件,為我們的生活帶來便利,而不是把自己陷入失敗的深淵。要想使軟件獲得成功,在設計和構建軟件時就需要有規範,需要采用工程化的方法。
自本書第1版問世以來的近35年中,軟件工程已經從少數倡導者提齣的一些朦朧概念發展成為一門正規的工程學科,已被公認為是一個值得深入研究、認真學習和熱烈討論的課題。在整個行業中,軟件工程師已經代替程序員成為人們優先選擇的工作崗位,軟件過程模型、軟件工程方法和軟件工具都已在全行業的所有環節成功采用。
盡管管理人員和一綫專業人員都承認需要有更為規範的軟件方法,但他們卻始終在爭論應該采用什麼樣的規範。有許多個人和公司至今仍在雜亂無章地開發著自己的軟件,甚至即使他們正在開發的係統要服務於當今最為先進的技術,狀況也仍是如此。許多專業人員和學生並不瞭解現代方法,這導緻他們所開發的軟件質量很差,因而造成瞭嚴重的後果。此外,有關軟件工程方法真實本質的爭論一直持續進行著。軟件工程的地位問題已成為一門對比研究課題。人們對軟件工程的態度已經有所改善,研究工作已取得瞭進展,不過要成為一門完全成熟的學科,我們還有大量的工作要做。
我們希望本書能夠成為引導讀者進入正在走嚮成熟的軟件工程學科的入門讀物,和以前的7個版本一樣,第8版對學生和專業人員同樣具有很強的吸引力。它既是軟件專業人員的工作指南,也是高年級本科生和一年級研究生的綜閤性參考書。
第8版中包含瞭許多新的內容,它絕不隻是前一版的簡單更新。這一版不僅對內容做瞭適當的修改,而且調整瞭全書的結構,以改進教學順序;同時更加強調一些新的和重要的軟件工程過程和軟件工程實踐知識。此外,本書進一步加強瞭“支持係統”,為學生、教師和專業人員提供瞭更為豐富的知識資源。讀者可訪問專門為本書建立的網站(www.mhhe.com/pressman)查閱這些信息。
篇章結構本書共39章,分為五個部分。這種劃分有利於那些無法在一個學期內講完全書內容的教師靈活安排教學。
第一部分“軟件過程”給齣瞭有關軟件過程的各種不同觀點,討論瞭所有重要的過程模型,還涉及慣用過程和敏捷過程在指導思想上的分歧。第二部分“建模”給齣瞭分析方法和設計方法,重點講解麵嚮對象方法和UML建模,同時也介紹瞭基於模式的設計以及基於WebApp和移動App的設計。第三部分“質量管理”介紹瞭有關質量管理的概念、規程、技術和方法,使得軟件團隊能夠很好地評估軟件質量,評審軟件工程工作産品,實施軟件質量保證規程,並正確地運用有效的測試策略和戰術。此外,這一部分還討論瞭形式化建模和驗證方法。第四部分“管理軟件項目”介紹瞭與計劃、管理和控製軟件開發項目的人員有關的問題。第五部分“軟件工程高級課題”討論瞭軟件過程改進和軟件工程的發展趨勢。
第8版沿用瞭前麵幾個版本的做法,在各章中都提供瞭大量的輔助閱讀信息,包括一個虛擬軟件團隊在工作中遇到睏難時展開的對話,還包括對各章相關知識給齣的補充方法和工具。
第8版中五個部分的劃分有利於教師根據學時和教學要求安排課堂內容。在一個學期內可以安排一個部分的內容,也可以安排多個部分的內容。軟件工程概論課程可以從五個部分中選擇若乾章作為教材。側重分析和設計的軟件工程課程可以從第一部分和第二部分中選取素材。麵嚮測試的軟件工程課程則可以從第一部分和第三部分中選取素材,還應加上第二部分中的一些內容。側重管理的課程應突齣第一部分和第四部分的內容。我們用上述方式組織第8版的內容,意在給教師提供多種教學安排的選擇。但無論如何選擇這些內容,都可以從“支持係統”中獲得補充資源。
相關資源學生資源本書為學生提供的各種學習資料包括:在綫學習中心提供的各章學習指南,實踐測驗,題解以及多種在綫資源(軟件工程檢查單、一套正在演化的微型工具、綜閤案例研究和工作産品模闆等)。此外,1000多種網絡參考文獻可供學生更深入地探究軟件工程問題,還有500多篇可下載的參考文獻,這些都為讀者提供瞭關於高級軟件工程課題的更為詳盡的信息。
教師資源本書為教師提供的各種教學資料包括:在綫(也可下載)教師指南,由700多個PPT組成的教輔資源和試題庫。當然,學生資源(如微型工具、網絡參考文獻及可下載參考文獻)和專業人員資源也可供教師使用。
在本書的教師指南中,我們為各種類型的軟件工程課程提齣瞭建議,介紹瞭與課程配閤開展的軟件項目、部分問題的題解和許多有用的教學輔助工具。
專業人員資源本書為産業界專業人員(也包括在校學生)提供的各種資料包括:軟件工程文檔和其他工作産品的
軟件工程:實踐者的研究方法(原書第8版) 下載 mobi epub pdf txt 電子書 格式