伯克利軟件工程教程(原書第2版)

[美] 阿曼多·福克斯(Armando Fox),[美] 大衛·帕特森(David Patterson)

相關主題

商品描述

本書源自加州大學伯克利分校經典軟件工程課程,由在線教育先驅Armando Fox與圖靈獎得主David Patterson聯合撰寫。書中以“軟件即服務”(SaaS)為主線,圍繞雲計算環境下的敏捷開發(采用極限編程)展開,使用Ruby on Rails和HTML 5/JavaScript講授雲應用和移動應用從開發、測試到部署的完整生命周期。 第2版在保持原有“敏捷開發+SaaS教學法”核心理念的基礎上,引入COD(概念導向教學)與CHIPS(編碼實踐集成編程活動)的創新教學設計,將概念學習與動手實踐有機融合。同時提出“API優先”的服務器設計方法,幫助學習者建立基於資源的應用設計思維

作者簡介

陳翔,南通大學人工智能與計算機學院副教授,於南京大學獲得計算機軟件與理論專業博士學位。主要研究方向為軟件工程,涵蓋軟件測試與維護、安全漏洞檢測以及大語言模型在軟件工程中的應用等領域。作為項目負責人,主持並完成國家自然科學基金、江蘇省高校自然科學研究項目、南京大學計算機軟件新技術國家重點實驗室開放課題等科研項目10餘項。在TSE、TOSEM、ICSE、FSE、ASE、ISSTA等軟件工程領域國際期刊和會議上發表高水平學術論文100餘篇,並兩次榮獲ACM SIGSOFT傑出論文獎。憑借突出的學術影響力,先後入選斯坦福大學全球前2%頂尖科學家榜單和中國知網高被引學者(TOP1%),目前擔任期刊Information and Software Technology編委。

目錄大綱

譯者序
作者簡介
前言
第1章 軟件即服務、敏捷開發和雲計算簡介
1.1 引言
1.2 軟件開發過程:計劃–文檔
1.3 軟件開發過程:敏捷宣言
1.4 軟件質量保證:測試
1.5 生產力:簡潔性、綜合性、重用和工具
1.6 面向SaaS和服務的架構
1.7 部署SaaS:雲計算
1.8 部署SaaS:瀏覽器和移動設備
1.9 美麗代碼對比遺留代碼
1.10 導覽與本書使用指南
1.11 謬誤與陷阱
1.12 結語:軟件工程不止於編程
參考文獻
第一部分 軟件即服務:框架與語言
第2章 如何學習一門新語言
2.1 序言:學習如何學習語言和框架
2.2 結對編程
2.3 介紹Ruby,一種面向對象的語言
2.4 Ruby習慣用法:詩意編程風格、塊、鴨子類型
2.5 CHIPS:Ruby入門
2.6 Gems和Bundler:Ruby的庫管理
2.7 謬誤與陷阱
2.8 結語:如何(不)通過谷歌學習一門語言
參考文獻
第3章 SaaS應用架構:微服務、API和REST
3.1 Web的客戶端–服務器架構
3.2 SaaS通信使用HTTP路由
3.3 CHIPS:HTTP和URI
3.4 從網站到微服務:SOA
3.5 RESTful API:一切皆資源
3.6 RESTful URI、API調用和JSON
3.7 CHIPS:創建和部署一個簡單的SaaS應用
3.8 謬誤與陷阱
3.9 結語:從CGI到SOA的連續性
參考文獻
第4章 SaaS框架:作為模型–視圖–控制器框架的Rails
4.1 模型–視圖–控制器架構
4.2 Rails模型:數據庫和活動記錄
4.3 CHIPS:ActiveRecord基礎
4.4 路由、控制器和視圖
4.5 CHIPS:Rails路由
4.6 表單
4.7 CHIPS:Rails上的Hangperson
4.8 調試:當出現問題時
4.9 CHIPS:Hello Rails
4.10 謬誤與陷阱
4.11 結語:作為服務框架的Rails
參考文獻
第5章 SaaS框架:SaaS的高級編程抽象
5.1 在MVC中實現DRY原則:局部視圖、驗證和過濾器
5.2 單點登錄和第三方認證
5.3 CHIPS:Rails簡介
5.4 關聯和外鍵
5.5 直通關聯
5.6 關聯的RESTful路由
5.7 CHIPS:關聯
5.8 其他類型的代碼
5.9 謬誤與陷阱
5.10 結語:語言、生產力和美
參考文獻
第6章 移動和桌面SaaS客戶端:JavaScript簡介
6.1 JavaScript:全面概括
6.2 介紹ECMAScript
6.3 類、函數和構造函數
6.4 文檔對象模型和jQuery
6.5 文檔對象模型和可訪問性
6.6 事件和回調
6.7 AJAX:異步JavaScript和XML
6.8 測試JavaScript和AJAX
6.9 CHIPS:對爛番茄應用的AJAX增強
6.10 單頁應用程序和JSON API
6.11 謬誤與陷阱
6.12 結語:JavaScript的過去、現在和未來
參考文獻
第二部分 敏捷軟件開發
第7章 需求:行為驅動設計與用戶故事
7.1 行為驅動設計與用戶故事概述
7.2 評估用戶故事的SMART原則
7.3 低保真用戶界面草圖和故事板
7.4 點數和速度
7.5 敏捷成本估算
7.6 Cucumber:從用戶故事到驗收測試
7.7 CHIPS:行為驅動設計和Cucumber簡介
7.8 顯式對比隱式、命令式對比聲明式場景
7.9 文檔的計劃–文檔視角
7.10 謬誤與陷阱
7.11 結語:行為驅動設計的優缺點
參考文獻
第8章 軟件測試:測試驅動開發
8.1 FIRST原則、測試驅動開發和紅綠重構
8.2 測試用例的構成:準備、執行、斷言
8.3 隔離代碼:替身和接縫
8.4 對互聯網進行樁化
8.5 CHIPS:Rails上的RSpec入門
8.6 測試夾具和測試數據工廠
8.7 覆蓋概念和測試類型
8.8 其他測試方法和術語
8.9 CHIPS:驗收測試/單元測試周期
8.10 測試的計劃–文檔視角
8.11 謬誤與陷阱
8.12 結語:測試驅動開發對比傳統調試
參考文獻
第9章 軟件維護:使用重構和敏捷方法來增強遺留軟件
9.1 什麼使得代碼被“遺留”,如何使用敏捷方法改善這一狀況
9.2 探索遺留代碼庫
9.3 通過特征測試建立基本事實
9.4 註釋和提交:代碼記錄
9.5 指標、代碼異味和SOFA
9.6 方法級重構:用接縫代替依賴
9.7 以計劃–文檔角度處理遺留代碼
9.8 謬誤與陷阱
9.9 結語:持續重構
參考文獻
第10章 敏捷團隊
10.1 這需要一個團隊:兩比薩團隊與Scrum
10.2 有效使用分支
10.3 拉取請求和代碼審查
10.4 采用持續集成交付待辦事項
10.5 CHIPS:敏捷疊代
10.6 報告和修覆錯誤:五個R
10.7 管理團隊的計劃–文檔視角
10.8 謬誤與陷阱
10.9 結語:從獨立開發者到團隊合作
參考文獻
第11章 SaaS應用的設計模式
11.1 模式、反模式和SOLID類