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