智能軟件工程

朱少民、陶伊達

  • 出版商: 清華大學
  • 出版日期: 2025-09-01
  • 售價: $479
  • 語言: 簡體中文
  • ISBN: 7302698724
  • ISBN-13: 9787302698722
  • 相關分類: AI Coding
  • 下單後立即進貨 (約4週~6週)

  • 智能軟件工程-preview-1
  • 智能軟件工程-preview-2
  • 智能軟件工程-preview-3
  • 智能軟件工程-preview-4
  • 智能軟件工程-preview-5
  • 智能軟件工程-preview-6
  • 智能軟件工程-preview-7
智能軟件工程-preview-1

商品描述

"《智能軟件工程》是一部系統化闡述軟件工程理論與實踐的教材,緊扣智能化時代的軟件研發需求,全面覆蓋軟件工程的核心內容與**發展趨勢。全書以軟件開發生命周期為主線,詳細講解了需求分析、系統設計、編碼實現、測試與質量保障、運維與優化等關鍵環節,並結合人工智能(AI)、雲計算等新興技術,探討了AI(特別是大模型、智能體等)技術在軟件工程中的應用。通過理論與實踐的結合,本書不僅幫助讀者掌握傳統軟件工程的基本方法,還引導其理解如何利用大模型完成需求、設計、編程、測試、運維等工作,從而優化開發流程,顯著地提升軟件研發的效率與質量。 本書的主要特點在於其內容的前沿性與實用性。書中融入了目前先進的軟件工程理念、優秀的科研成果和業界實踐,並通過豐富的案例分析和實際操作,展示了AI技術如何賦能軟件研發與管理。本書語言簡潔流暢,結構清晰,既註重理論深度,又突出實踐應用,適合高等院校軟件工程、計算機科學及相關專業的學生作為教材使用,同時也為軟件工程師、項目經理及技術管理人員提供了寶貴的參考資源。無論是初學者還是有經驗的從業者,都能從中獲得系統的理論與全方位的實踐指導。 "

作者簡介

"朱少民,同濟大學特聘教授、CCF傑出會員。近三十年來一直從事軟件工程的教學與研究工作,先後獲得多項省、部級科技進步獎,已出版了二十多部著作和4本譯作。曾任思科(中國)軟件有限公司QA高級總監、IEEE ICST 2019工業論壇主席、多個IEEE國際學術會議的程序委員、《軟件學報》和《計算機學報》審稿人等。陶伊達,南方科技大學計算機科學與工程系講師。本科畢業於南京大學;博士畢業於香港科技大學。研究方向包括經驗軟件工程、智能化軟件開發等。長期從事程序設計、軟件工程等計算機基礎課程的教學工作。"

目錄大綱

目錄

案例文檔等

電子材料

第1章什麼是軟件工程

1.1軟件工程誕生

1.1.1軟件工程的定義

1.1.2從三個視角看軟件工程

1.1.3軟件工程方法學

1.1.4軟件工程管理學

1.1.5軟件工程要素

1.1.6軟件工程的基本思想

1.1.7軟件工程知識體系SWEBOK

1.2軟件工程1.0

1.2.1瀑布模型的不足

1.2.2V模型詮釋軟件過程

1.3軟件工程2.0

1.3.1敏捷開發歷史

1.3.2敏捷開發原則

1.3.3極限編程

1.3.4行為驅動開發

1.3.5Scrum開發框架

1.3.6軟件即服務

1.4軟件工程3.0

1.4.1軟件工程3.0的特征

1.4.2軟件工程三個時代的比較

小結

思考題

參考文獻

第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.2.5測試

2.2.6部署與運維

2.3開源軟件運動

2.4精益開發

2.4.1看板

2.4.2精益軟件開發實踐

2.5開發與運維的融合: DevOps

2.5.1DevOps的概念及其工具鏈

2.5.2經典案例: 鳳凰項目

思考題

參考文獻

第3章如何定義好的軟件需求

3.1軟件需求工程概要

3.2軟件有哪些需求

3.2.1業務需求

3.2.2用戶角色需求

3.2.3系統的功能需求

3.2.4系統非功能性需求

3.2.5其他需求類型

3.3真實需求的獲取

3.3.1需求獲取的過程

3.3.2傳統的需求獲取方法

3.3.3針對新產品的其他方法

3.3.4針對已有產品的其他方法

3.3.5智能需求獲取方法

3.4智能需求分析與定義

3.4.1去偽存真

3.4.2結構化分析方法

3.4.3面向對象的分析方法

3.4.4面向敏捷的分析方法

3.4.5場景分析方法

3.5需求評審

3.5.1如何確定傳統軟件需求的評審標準

3.5.2如何評審敏捷需求——用戶故事

3.5.3智能需求評審

3.6需求跟蹤與變更管理

3.6.1需求跟蹤

3.6.2需求變更管理

3.7業務架構

3.7.1業務架構的價值與構建

3.7.2業務架構的框架與工具

小結

思考題

參考文獻

第4章如何設計軟件

4.1軟件設計的基本原則

4.1.1抽象與精化

4.1.2模塊化

4.1.3信息隱藏

4.1.4關註點分離

4.1.5面向對象設計

4.1.6智能問答: 讓設計原則不再高冷 

4.2軟件系統架構設計

4.2.1單體架構

4.2.2分布式架構

4.2.3面向服務的架構

4.2.4微服務架構

4.2.5無服務架構

4.3微服務架構設計

4.3.1如何定義“服務”

4.3.2如何實現服務間的溝通

4.3.3REST與消息機制

4.3.4AI輔助的軟件架構設計

4.3.5最佳實踐

4.4接口設計

4.4.1設計維度

4.4.2設計原則

4.4.3案例研究: 使用Cursor輔助的接口設計

4.5UI設計

4.5.1視覺

4.5.2交互

4.5.3原型

4.5.4智能化工具

4.6數據設計

4.6.1數據組織

4.6.2數據存儲

4.6.3AI輔助的數據設計

小結

思考題

參考文獻

第5章如何高效地進行軟件開發

5.1AI輔助編程

5.1.1代碼實現

5.1.2代碼理解

5.1.3代碼調試

5.1.4代碼可維護性

5.2軟件構建

5.2.1編譯和構建

5.2.2構建系統類型

5.2.3軟件包管理

5.2.4依賴管理

5.2.5最佳實踐

5.2.6Dependabot與智能構建

5.3軟件文檔

5.3.1讀者類型

5.3.2文檔類型

5.3.3文檔的重要性

5.3.4編寫高質量文檔的挑戰

5.3.5最佳實踐: 文檔即代碼

5.3.6AI文檔生成

5.4代碼審查

5.4.1關鍵要素

5.4.2工作流程

5.4.3自動化與智能化

小結

思考題

參考文獻

第6章如何保障軟件質量

6.1深入理解軟件質量

6.1.1什麼是質量

6.1.2軟件質量屬性

6.1.3軟件缺陷: 質量的對立面

6.2軟件質量工程體系

6.2.1傳統的質量管理體系

6.2.2構建軟件質量工程體系

6.2.3根據上下文定制SQES

6.3軟件測試目標、原則和類型

6.3.1軟件測試目標

6.3.2軟件測試的分類

6.3.3測試的原則

6.4智能測試分析與計劃

6.4.1LLM驅動測試需求分析

6.4.2生成測試計劃書

6.5智能測試設計與開發

6.5.1智能測試方法概述

6.5.2基於測試需求文檔生成測試用例

6.5.3基於業務流程圖生成E2E測試用例

6.5.4測試用例的復審

6.5.5生成功能測試腳本

6.5.6生成API測試腳本

6.6LLM驅動非功能性測試

6.6.1LLM驅動性能測試

6.6.2LLM驅動安全性測試

6.7智能測試評估

6.7.1智能缺陷定位

6.7.2評估測試覆蓋率

6.7.3測試報告生成

小結

思考題

參考文獻

第7章如何實現持續集成與持續交付

7.1持續交付

7.1.1軟件交付概述

7.1.2軟件交付的反模式

7.1.3持續交付的理念

7.2持續集成

7.2.1過程與方法

7.2.2最佳實踐

7.2.3智能化持續集成

7.3持續測試

7.3.1測試的分類

7.3.2與持續交付集成的持續測試策略

7.4部署與發布

7.4.1自動化部署

7.4.2低風險發布

7.5部署流水線

7.5.1執行流程解析

7.5.2定制的部署流水線

7.5.3部署流水線平臺與工具鏈

7.6雲原生的CI/CD

7.6.1“雲原生”概念

7.6.2搭建雲原生的CI/CD工作流

7.6.3智能雲

7.7智能化應用的CI/CD

7.7.1機器學習模型

7.7.2基於LLM的軟件應用

小結

思考題

參考文獻

第8章下一個版本如何開始

8.1軟件維護

8.1.1軟件維護的類型

8.1.2可維護性指標

8.1.3軟件腐化

8.1.4代碼重構

8.1.5智能維護和升級

8.2軟件演化

8.2.1遺留系統

8.2.2風險與挑戰

8.2.3遺留系統管理策略

8.2.4現代化與再工程

8.2.5架構重構

8.2.6棄用

8.3向智能化軟件演進

8.3.1任務智能化

8.3.2功能智能化

8.3.3過程智能化

小結

思考題

參考文獻

第9章如何更好地支持系統運維

9.1基礎設施維護與驗證

9.1.1基礎設施即代碼

9.1.2對基礎設施進行驗證

9.1.3系統運維工具

9.2A/B測試

9.2.1A/B測試設計

9.2.2A/B測試平臺與測試執行

9.2.3關於用戶體驗度量

9.3監控告警系統

9.3.1日誌分析及Elastic Stack的使用

9.3.2調用鏈分析及Skywalking的使用

9.3.3指標監控及Prometheus的使用

9.3.4監控系統解決方案

9.4安全性監控

9.4.1安全監控與審計框架

9.4.2智能安全監控

9.5智能運維

9.5.1從自動化運維到智能運維

9.5.2智能運維的典型場景

小結

思考題

參考文獻

第10章智能化浪潮下軟件工程的未來

10.1現狀

10.1.1需求

10.1.2設計

10.1.3實現

10.1.4質量管理

10.1.5維護與演化

10.2挑戰

10.2.1大模型在軟件工程任務上的局限性

10.2.2計算資源與基礎設施

10.3未來

10.3.1自然的人機交互

10.3.2端到端工作流

10.3.3隔離環境

10.3.4自學習與自適應

小結

思考題

參考文獻

附錄實驗