《軟件工程(原書第10版)》是系統(tǒng)介紹軟件工程理論的經(jīng)典教材,共包含四個部分:第1部分(第1~9章)是對軟件工程的一般性介紹,介紹了軟件工程的一些重要概念(如軟件過程和敏捷方法),描述了基本的軟件開發(fā)活動(從需求規(guī)格說明一直到系統(tǒng)演化);第二部分(第10~14章)關(guān)注軟件系統(tǒng)可依賴性和信息安全等重要話題;第三部分(第15~21章)介紹更高級的軟件工程話題;第四部分(第22~25章)關(guān)注技術(shù)管理問題。
《軟件工程(原書第10版)》適合作為軟件和系統(tǒng)工程專業(yè)本科生或研究生教材,同時也是軟件工程師難得的參考書。
軟件工程在過去50年之中取得了令人矚目的進(jìn)展。我們的社會已經(jīng)無法在缺少大型專業(yè)化軟件系統(tǒng)的情況下正常運轉(zhuǎn)了。國家的公用事業(yè)和基礎(chǔ)設(shè)施(如能源、通信、交通)全都依賴于復(fù)雜且可靠的計算機系統(tǒng)。軟件使得我們可以探索空間,創(chuàng)造萬維網(wǎng)這一人類歷史上最重要的信息系統(tǒng)。智能手機和平板電腦無處不在,而為這些設(shè)備開發(fā)軟件的整個“應(yīng)用開發(fā)產(chǎn)業(yè)”已經(jīng)在過去幾年中悄然形成。
人類現(xiàn)在正面臨著一系列迫切的挑戰(zhàn)——氣候變化和極端天氣、自然資源的減少、需要為更多的人口提供食物和住房、國際恐怖主義的威脅,以及為老年人提供令人滿意的生活。我們需要新技術(shù)來幫助我們應(yīng)對這些挑戰(zhàn),可以肯定的是軟件將在這些技術(shù)中扮演核心角色。因此,軟件工程對于我們在這個星球上的未來極其重要。我們必須繼續(xù)培養(yǎng)軟件工程師并推動軟件工程學(xué)科的持續(xù)發(fā)展,從而滿足開發(fā)更多的軟件系統(tǒng)以及創(chuàng)造我們所需要的越來越復(fù)雜的未來系統(tǒng)的需要。
當(dāng)然,軟件項目還存在很多問題。系統(tǒng)仍然有時會延遲交付并且成本超支。我們正在創(chuàng)造越來越復(fù)雜的軟件系統(tǒng)之系統(tǒng)(software systems of systems),在這條道路上遇到各種困難也是不足為奇的。然而,我們不應(yīng)該讓這些問題掩蓋軟件工程領(lǐng)域已經(jīng)取得的巨大成就,以及所形成的各種令人印象深刻的軟件工程方法和技術(shù)。
本書的不同版本已經(jīng)有超過30年的歷史,而這一版同樣遵循了本書第1版中所建立的基本原則:
1.按照工業(yè)界實踐介紹軟件工程,不對任何特定的方法(例如敏捷開發(fā)、形式化方法)持傾向性態(tài)度。在現(xiàn)實中,工業(yè)界往往將各種技術(shù)(例如敏捷以及基于計劃的開發(fā))混合在一起使用,這一點也在本書中有所反映。
2.根據(jù)我所知道的以及所理解的知識介紹軟件工程。很多人建議我增加并詳細(xì)介紹其他相關(guān)話題,例如開源軟件開發(fā)、UML的使用以及移動軟件工程等,但是我對這些領(lǐng)域的了解并不多,我個人的工作主要是在系統(tǒng)可靠性和系統(tǒng)工程方面,這一點在我為本書所選擇的高級專題中有所反映。
我認(rèn)為現(xiàn)代軟件工程的關(guān)鍵問題是管理復(fù)雜性,將敏捷和其他方法結(jié)合起來,并確保我們的系統(tǒng)安全以及有韌性。這些問題是我在這一版中修改和新增內(nèi)容的主要因素。
出版者的話
譯者序
前言
第一部分 軟件工程導(dǎo)論
第1章 概述
1.1 專業(yè)化軟件開發(fā)
1.1.1 軟件工程
1.1.2 軟件工程的多樣性
1.1.3 互聯(lián)網(wǎng)軟件工程
1.2 軟件工程職業(yè)道德
1.3 案例研究
1.3.1 胰島素泵控制系統(tǒng)
1.3.2 心理健康治療病人信息系統(tǒng)
1.3.3 野外氣象站
1.3.4 學(xué)校數(shù)字化學(xué)習(xí)環(huán)境
要點
閱讀推薦
網(wǎng)站
練習(xí)
參考文獻(xiàn)
第2章 軟件過程
2.1 軟件過程模型
2.1.1 瀑布模型
2.1.2 增量式開發(fā)
2.1.3 集成與配置
2.2 過程活動
2.2.1 軟件規(guī)格說明
2.2.2 軟件設(shè)計和實現(xiàn)
2.2.3 軟件確認(rèn)
2.2.4 軟件演化
2.3 應(yīng)對變化
2.3.1 原型
2.3.2 增量式交付
2.4 過程改進(jìn)
要點
閱讀推薦
網(wǎng)站
練習(xí)
參考文獻(xiàn)
第3章 敏捷軟件開發(fā)
3.1 敏捷方法
3.2 敏捷開發(fā)技術(shù)
3.2.1 用戶故事
3.2.2 重構(gòu)
3.2.3 測試先行的開發(fā)
3.2.4 結(jié)對編程
3.3 敏捷項目管理
3.4 敏捷方法的伸縮
3.4.1 敏捷方法的實踐問題
3.4.2 敏捷和計劃驅(qū)動的方法
3.4.3 面向大型系統(tǒng)的敏捷方法
3.4.4 面向整個組織的敏捷方法
要點
閱讀推薦
網(wǎng)站
練習(xí)
參考文獻(xiàn)
第4章 需求工程
4.1 功能性需求和非功能性需求
4.1.1 功能性需求
4.1.2 非功能性需求
4.2 需求工程過程
4.3 需求抽取
4.3.1 需求抽取技術(shù)
……
第5章 系統(tǒng)建模
第6章 體系結(jié)構(gòu)設(shè)計
第7章 設(shè)計和實現(xiàn)
第8章 軟件測試
第9章 軟件演化
第二部分 系統(tǒng)可依賴性和信息安全
第10章 可依賴系統(tǒng)
第11章 可靠性工程
第12章 安全工程
第13章 信息安全工程
第14章 韌性工程
第三部分 高級軟件工程
第15章 軟件復(fù)用
第16章 基于構(gòu)件的軟件工具
第17章 分布式軟件工程
第18章 面向服務(wù)的軟件工程
第19章 系統(tǒng)工程
第20章 系統(tǒng)之系統(tǒng)
第21章 實時軟件工程
第四部分 軟件管理
第22章 項目管理
第23章 項目計劃
第24章 質(zhì)量管理
第25章 配置管理
術(shù)語表