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