構建之法——現代軟件工程(第四版)
鄒欣
相關主題
商品描述
AI 時代,軟件工程迎來新的變化和機會,也面臨諸多新的課題和挑戰。本書作者基於在微軟產品團隊、微軟亞洲研究院、CSDN 及智能駕駛初創公司的一線實戰經驗,以及在國家級人工智能學院—北京中關村學院的實際授課實踐,總結出讓學習者在 16 周內掌握實用軟件工程技術的教學知識體系。該體系立足於軟件工程教學實踐,同時吸納了產業最前沿的人才培養需求,力圖為 AI 時代軟件工程的人才培養貢獻有益素材。
在此基礎上,本書嚴格參照 ACM/IEEE-CS/AAAI《計算機科學課程指南 2023》中軟件工程的核心知識單元,融入了知識-技能-品行勝任力模型及社會、倫理與職業要求。本書堅持“做中學”的教學理念,以及“在開源社區中建設,在開源社區中教學”的原則。使用本書作為教材,全部教學過程可以在公開代碼托管平臺(Gitee)進行。作者一直認為,可運行的項目代碼、實時更新的文檔和公開的協作記錄是軟件工程最好的實戰素材。因此,本書不是一本靜態的教材—各章節配有持續更新的線上資源。本書前三版在豆瓣等平臺收獲大量好評,自2012 年起,圍繞本書的教學實踐和討論,已經形成了活躍的教學社區,並延續至今。這也為第四版的內容更新、理念升級提供了有力的支撐。
本書適合作為高等院校軟件工程相關專業的教材,也適合軟件開發自學者、創業者作為行動的指導。
作者簡介
作者鄒欣,現任北京中關村學院智能創新中心負責人。畢業於北京大學計算機系,並於美國韋恩州立大學獲軟件專業碩士學位。在加入北京中關村學院之前,曾擔任智能駕駛初創公司Momenta的高級架構師、CSDN研發副總裁。
更早之前,在微軟公司工作長達24 年,先後任職於 Azure、Office、Visual Studio、Bing、Windows 等多個研發團隊,並曾在微軟亞洲研究院擔任首席研發經理職務,從事技術創新工作。
鄒欣老師長期致力於軟件工程教育改進。2007年,合著出版《編程之美》,該書成為開拓編程思維的經典讀物;2014年,出版《構建之法》,該書被多所高校用作軟件工程課程教材;2020年,出版《智能之門》;2025年,翻譯出版《深度學習:基礎與概念》。
他還積極推動高校軟件工程教學改革,曾在清華大學、北京航空航天大學等高校開設“現代軟件工程”課程,形成了“做中學”的實戰驅動的教學體系和開源學習社區,並已推廣到五十多所高校。
目錄大綱
目 錄
第 1 章 概論
1.1 軟件 = 程序 + 軟件工程
1.2 為何需要軟件工程
1.3 軟件工程的目標:在約束條件下創造“足夠好”的軟件
1.4 軟件工程的廣闊天地:知識領域與內涵
1.5 軟件工程與計算機科學
1.6 總結:軟件工程師的宗旨
第 2 章 個人技術和流程
2.1 單元測試
2.2 單元測試案例分析
2.3 效能分析工具
2.4 編程練習和成長
第 3 章 軟件工程師的成長
3.1 個人能力的衡量與發展
3.2 個人軟件過程
3.3 技能的反面
3.4 軟件工程師的思維誤區
3.5 軟件工程師的成長
3.6 軟件工程師的職業發展
第 4 章 兩人合作
4.1 代碼規範
4.2 代碼風格規範
4.3 代碼設計規範
4.4 代碼復審
4.5 結對編程
4.6 與 AI 結對編程—知人善任
4.7 兩人合作的不同階段和技巧
4.8 本章小結
第 5 章 團隊和流程
5.1 非團隊和團隊
5.2 軟件團隊的模式
5.3 開發流程
5.4 開源浪潮中的團隊和流程
第 6 章 敏捷流程
6.1 敏捷流程簡介
6.2 敏捷流程中的問題和解法
6.3 敏捷流程的團隊與哲學
6.4 AI 時代的敏捷流程—BMad 方法
6.5 關於敏捷的問答
6.6 開源與敏捷:協作哲學的沖突與融合
6.7 案例分析—“超算”項目之垂直切片
第 7 章 實戰中的軟件工程
7.1 實戰中總結出來的原則 MSF
7.2 MSF 的精髓:九條原則及其文化內核
7.3 MSF 的團隊模型與流程模型:歷史的鏡鑒
7.4 實戰中的演進:從“牛仔”到“雲原生”
7.5 總結和反思
第 8 章 需求分析
8.1 軟件需求
8.2 軟件產品的利益相關者
8.3 獲取用戶需求—用戶調研
8.4 競爭性需求分析的核心框架
8.5 功能的定位和優先級
8.6 計劃和估算
8.7 分而治之(WBS 和 JTBD)
第 9 章 項目經理
9.1 PM 角色定義與分類
9.2 PM 的核心能力與知識體系
9.3 推動高效的團隊討論
9.4 管理風險:從震驚到主動創造機會
9.5 PM 的挑戰與成長
第 10 章 典型用戶和場景
10.1 典型用戶和典型場景
10.2 用例和用例圖
10.3 功能說明書和技術說明書
10.4 AI 賦能的功能驅動設計
10.5 從功能定義到產品演進
第 11 章 軟件設計與實現
11.1 分析和設計方法
11.2 模型化方法
11.3 AI 編程的歷史
11.4 AI 時代:軟件工程師的成長與未來
11.5 案例剖析:在已有服務的基礎上增加新功能
11.6 現代軟件工程的“腳手架”:源代碼管理
11.7 從每日構建到持續集成
第 12 章 用戶體驗
12.1 設計的演進:從器物到數字體驗
12.2 用戶體驗的三個層次
12.3 用戶體驗設計的步驟和方法
12.4 UX 設計案例
12.5 用戶體驗的評價標準
12.6 具身智能形態之辯:通用機器人一定會人形化嗎
第 13 章 軟件測試
13.1 由核事故引出的基本名詞解釋
13.2 AI 系統的 Bug 和測試
13.3 各種測試方法
13.4 實戰中的測試
13.5 嵌入式系統的測試和發布
13.6 案例分析
第 14 章 質量保障
14.1 什麼是軟件的質量
14.2 質量保障的組織與實施
14.3 質量是構建出來的
第 15 章 穩定、發布和維護
15.1 代碼完成是另一個開始
15.2 穩定與發布階段的關鍵戰術
15.3 漸進式交付:持續交付的實戰
15.4 案例分析—AI 批改簡答題
15.5 提高 DevOps 長期效率
15.6 發布之後—解剖自己
第 16 章 IT 行業的創新
16.1 深度理解創新:打破迷思
16.2 創新的理論基石
16.3 把握創新的時機
16.4 創新策略與實踐
16.5 競爭的案例:入口爭奪、護城河與用戶洞察
16.6 創新者的修煉
第 17 章 人、績效和職業道德
17.1 領導力:從自我生存到引領團隊
17.2 識人與用人:構建高效團隊的基石
17.3 團隊發展的生命周期
17.4 團隊角色與責任
17.5 績效管理的藝術與科學
17.6 構建頂尖團隊環境:幾種創新文化的範式
17.7 軟件工程師的職業道德

