前 言Software Engineering: A Practitioner’s Approach, Eighth Edition, Chinese Abridgement
如果有這樣一款計算機軟件,它能滿足用戶的需求,能在相當長的時間內無故障地運行,修改起來輕松便捷,使用起來更是得心應手,那么,這款軟件必定是成功的,它切實改善了我們的生活。但是,如果有這樣一款軟件,它令用戶失望,錯誤頻出,修改起來困難重重,使用起來更是舉步維艱,那么,這必定是一款失敗的軟件,它使我們的生活一團糟。誰都希望開發出優秀的軟件,為我們的生活帶來便利,而不是把自己陷入失敗的深淵。要想使軟件獲得成功,在設計和構建軟件時就需要有規范,需要采用工程化的方法。
自本書第1版問世以來的近35年中,軟件工程已經從少數倡導者提出的一些朦朧概念發展成為一門正規的工程學科,已被公認為是一個值得深入研究、認真學習和熱烈討論的課題。在整個行業中,軟件工程師已經代替程序員成為人們優先選擇的工作崗位,軟件過程模型、軟件工程方法和軟件工具都已在全行業的所有環節成功采用。
盡管管理人員和一線專業人員都承認需要有更為規范的軟件方法,但他們卻始終在爭論應該采用什么樣的規范。有許多個人和公司至今仍在雜亂無章地開發著自己的軟件,甚至即使他們正在開發的系統要服務于當今最為先進的技術,狀況也仍是如此。許多專業人員和學生并不了解現代方法,這導致他們所開發的軟件質量很差,因而造成了嚴重的后果。此外,有關軟件工程方法真實本質的爭論一直持續進行著。軟件工程的地位問題已成為一門對比研究課題。人們對軟件工程的態度已經有所改善,研究工作已取得了進展,不過要成為一門完全成熟的學科,我們還有大量的工作要做。
我們希望本書能夠成為引導讀者進入正在走向成熟的軟件工程學科的入門讀物,和以前的7個版本一樣,第8版對學生和專業人員同樣具有很強的吸引力。它既是軟件專業人員的工作指南,也是高年級本科生和一年級研究生的綜合性參考書。
第8版中包含了許多新的內容,它絕不只是前一版的簡單更新。這一版不僅對內容做了適當的修改,而且調整了全書的結構,以改進教學順序;同時更加強調一些新的和重要的軟件工程過程和軟件工程實踐知識。此外,本書進一步加強了“支持系統”,為學生、教師和專業人員提供了更為豐富的知識資源。讀者可訪問專門為本書建立的網站(www.mhhe.com/pressman)查閱這些信息。
篇章結構本書共26章,分為四個部分。這種劃分有利于那些無法在一個學期內講完全書內容的教師靈活安排教學。
第一部分“軟件過程”給出了有關軟件過程的各種不同觀點,討論了所有重要的過程模型,還涉及慣用過程和敏捷過程在指導思想上的分歧。第二部分“建模”給出了分析方法和設計方法,重點講解面向對象方法和UML建模。第三部分“質量管理”介紹了有關質量管理的概念、規程和方法,使得軟件團隊能夠很好地評估軟件質量,實施軟件質量保證規程,并正確地運用有效的測試策略和戰術。第四部分“管理軟件項目”介紹了與計劃、管理和控制軟件開發項目的人員有關的問題。
第8版沿用了前面幾個版本的做法,在各章中都提供了大量的輔助閱讀信息,包括一個虛擬軟件團隊在工作中遇到困難時展開的對話,還包括對各章相關知識給出的補充方法和工具。
致謝我們要特別感謝渥太華大學的Tim Lethbridge,他幫助我們開發了UML和OCL的案例,以及配合本書內容的其他案例研究。Colby學院的Dale Skrien開發了附錄1的UML教輔資源。他們的幫助和意見都是十分寶貴的。此外也感謝高級軟件工程師Austin Krauss,他提供了關于視頻游戲產業軟件開發的寶貴意見。同時,要對為第8版評審做出貢獻的幾位教授表示感謝,他們是佛羅里達大學的Manuel E. Bermudez、堪薩斯州立大學的Scott DeLoach、密歇根州立大學的Alex Liu和猶他州立大學的Dean Mathias。正是他們的詳盡而真誠的評審意見幫助了我們,使得本書更加完善。
特別感謝十分高興有機會與羅杰合作,參與本書第8版的撰寫工作。在此期間我的兒子Benjamin推出了他的第一款移動App,我的女兒Katherine開始了她的室內設計生涯。我十分高興地看到他們已經長大成人。同時非常感謝妻子Norma,她熱情地支持我,使我能夠將所有空閑時間都投入本書的寫作。
布魯斯R. 馬克西姆(Bruce R. Maxim)隨著本書各版本的不斷推出,我的兩個兒子Mathew和Michael也逐漸從小男孩成長為男子漢。他們在生活中的成熟、品格和成功鼓舞著我,沒有什么比這更讓我自豪了。他們現在也已經有了自己的孩子——Maya和 Lily,這兩個女孩已經是移動計算時代新智能設備方面的奇才。最后要感謝妻子Barbara,她寬容我花費如此多的時間在辦公室工作,并且還鼓勵我繼續寫作本書的下一個版本。
羅杰 S.普萊斯曼(Roger S. Pressman)
改編者序Software Engineering: A Practitioner’s Approach, Eighth Edition, Chinese AbridgementPressman博士的《軟件工程:實踐者的研究方法》(第8版)加入了Maxim博士的工作,一如既往是軟件工程領域的經典教材。
此次本科教學版的推出,主要是為了與第7版本科教學版保持一致,使內容更符合普通高校本科生的課程大綱,適合本科學生在一學期內掌握軟件工程最核心的基礎內容,也幫助更多學生更好地接受英文原版教材。
與原版相比,第8版本科教學版的改動內容如下。
我們注意到新版增加了移動App和安全工程這兩塊非常重要的內容。然而,考慮到課時限制,我們只保留了安全工程部分,將移動App的內容留給研究生課程。與第7版的改動宗旨相似,我們主要關注公共框架中的基本概念,而將WebApp、移動App、度量及其他高級課題內容留給研究生階段的課程。
本科教學版不包含但適合研究生階段學習的章節有:完整版第16章(基于模式的設計),第17章(WebApp設計),第18章(移動App設計),第20章(評審技術),第25章(測試WebApp),第26章(測試移動App),第28章(形式化建模與驗證),第36章(維護與再工程),以及關于高級課題的第五部分。完整版第30章(產品度量)也是比較高級的課題,但概要介紹框架性概念的30.1節可保留,此節被移到第21章(軟件質量保證)最后,變為21.10節。
此外,為了與第7版本科教學版保持一致,下列章節中還做了少量裁減:
1. 所有與WebApp和移動App相關的章節都被刪除,具體包括:11.5節、14.5節、15.5節、22.5~22.6節、29.4節、32.2.6節、34.5.4 節。
2. 第3、4章:裁減3.5節和4.4~4.5節屬于研究生課程中的高級內容。
3. 第7章:該章只是引言,其核心內容將在后面的章節中逐一展開介紹。為減少學生必須閱讀的篇幅,該章被整體刪除。
4. 第8章:裁減8.2.5~8.2.6節、8.6~8.8節屬于研究生課程中的高級內容。
5. 第23章:裁減23.4.4節、23.6.1節、23.6.4節、23.8~23.10節屬于研究生課程中的高級內容。
6. 對于本科課程而言,了解關于度量和估算的基本概念就足夠了,因此32.4~32.6節以及33.9~33.10節也作為高級內容被裁減。
經過壓縮,英文完整版900余頁的篇幅被大幅壓縮到中文版400頁左右。由于我們只是就知識點做了裁減,對于保留部分并未刪減原作的語言和案例,所以不會對寫作風格造成明顯的破壞。鑒于改編者的經驗和學識有限,對于裁減內容的定奪或存在欠妥之處,歡迎廣大讀者批評指正。
陳越2016年11月譯 者 序Software Engineering: A Practitioner’s Approach, Eighth Edition, Chinese Abridgement本書是國際知名軟件工程專家羅杰 S. 普萊斯曼(Roger S. Pressman)的最新著作。自35年前第1版問世以來,這本書在軟件工程界產生了巨大而深遠的影響。其權威性是無可置疑的,在培養軟件工程專業人才方面所起的作用也是顯而易見的。在這一版中,新加入的布魯斯(Bruce)作為第二作者參與了本書的編寫工作。
我自20世紀80年代中期開始從事高校軟件工程方面的教學與科研工作,多年來,這本書的各個版本一直是我的重要參考書,它給了我許多啟發和幫助,我也曾多次向許多業界好友和學生推薦此書。
如今基于計算機的系統已經廣泛而深入地滲透到經濟、國防和人們日常生活的各個領域,特別是在互聯網的推動下,不僅許多行業得以改進和更新,而且產生了一批新的行業,展現了全新的業態。我們必須意識到,在計算機不斷向社會的深度和廣度層面發展的過程中,軟件始終處在系統的核心地位,起著中樞和靈魂的作用,而且這種作用正日益突出。因此,如何為現代化系統配備合格和優良的軟件也就更加受到人們的廣泛關注。
本書系統地論證了軟件工程領域的基本知識和最新研究成果,包括新的概念、原則、技術、方法和工具。同時書中還為讀者提供了進一步學習和研究的線索,包括許多可供利用的網上資料和信息。與第7版相比,本版繼承了一些優點,同時也做了一些改動、擴充和更新。
本書特點1. 全書內容分為四個部分,共26章,還包括兩個附錄。四個部分的內容分別為軟件過程、建模、質量管理和管理軟件項目。
2. 本書繼承了前一版的特色,突出了軟件質量管理的內容,同時也加強了軟件過程部分。此外,增加的內容還包括:軟件工程工作對人員的要求;近年來軟件產業發展中出現的新課題——軟件系統安全性和移動App。
3. 仍然在各章的開頭給出“要點瀏覽”(包括概念、人員、重要性、步驟、工作產品和質量保證措施)以及“關鍵概念”(全章內容的關鍵詞)。
4. 仍然在各章的末尾給出“習題與思考題”以及“擴展閱讀與信息資源”,這些都非常適合有興趣、有需要的讀者沿著所提供的線索開展進一步的學習和研究。
5. 仍然保留了本書歷次版本在各章中為讀者提供的多種形式的輔助閱讀信息,可以說這是本書的一個突出特點。這些信息從形式上分為兩類:一類是采用通欄形式的說明框,包括要點瀏覽、信息欄、軟件工具和SafeHome對話框等。
……
Roger S. Pressman軟件過程改善和軟件工程技術方面的國際知名人士,目前還擔任R. S. Pressman and Associates 公司總裁。30多年來,他作為軟件工程師、管理人員、教授、作者及咨詢顧問始終工作在軟件工程領域。Pressman博士著有6部著作,并撰寫了很多技術文章,是多種行業期刊的固定撰稿人,曾任多個行業雜志的編委,多年來一直擔任 《IEEE Software》雜志的Manager專欄的編輯。Pressman博士是知名的演講者,曾在許多行業會議上演講,他還是美國計算機協會 (ACM)、美國電氣與電子工程師協會(IEEE)等組織的成員。