軟件工程基礎(題庫+微課視頻版)

呂雲翔

  • 出版商: 清華大學
  • 出版日期: 2022-05-01
  • 定價: $419
  • 售價: 7.5$314
  • 語言: 簡體中文
  • ISBN: 7302601143
  • ISBN-13: 9787302601142
  • 相關分類: UML軟體工程軟體測試
  • 立即出貨 (庫存=1)

  • 軟件工程基礎(題庫+微課視頻版)-preview-1
  • 軟件工程基礎(題庫+微課視頻版)-preview-2
  • 軟件工程基礎(題庫+微課視頻版)-preview-3
軟件工程基礎(題庫+微課視頻版)-preview-1

買這商品的人也買了...

商品描述

本書按照典型的軟件開發過程來組織內容,旨在培養讀者的軟件工程思想及實際軟件開發的能力。全書共分6部分,分別是軟件工程概述、可行性研究與項目開發計劃、結構化分析與設計、面向對象分析與設計、軟件實現與測試、軟件維護與軟件工程管理。本書共分為13章,內容涉及軟件與軟件工程、軟件過程、敏捷軟件開發、可行性研究與項目開發計劃、結構化分析、結構化設計、面向對象方法與UML、面向對象分析、軟件體系結構與設計模式、面向對象設計、軟件實現、軟件測試、軟件維護與軟件工程管理。本書理論與實踐相結合,內容翔實,可操作性強。 本書是高等院校電腦科學與技術、軟件工程及相關專業“軟件工程”課程的推薦教材。

目錄大綱

目錄

第一部分軟件工程概述

第1章軟件與軟件工程

1.1軟件

1.1.1軟件的概念及特點

1.1.2軟件的分類

1.2軟件危機

1.2.1軟件危機的表現及其產生原因

1.2.2軟件危機的啟示

1.3軟件工程

1.3.1軟件工程的概念

1.3.2軟件工程研究的內容

1.3.3軟件工程目標和原則

1.3.4軟件工程知識體系

1.3.5軟件工程的發展

1.4軟件開發方法

1.4.1基本的軟件開發方法

1.4.2開源軟件開發方法

1.4.3群體化軟件開發方法

1.5軟件工程工具

1.6軟件工程人員的職業道德

1.7“小型網上書店系統”案例介紹

習題

第2章軟件過程

2.1軟件過程概述

2.2軟件生命周期

2.2.1軟件生命周期的概念

2.2.2傳統軟件生命周期的各個階段

2.3軟件過程模型

2.3.1瀑布模型

2.3.2快速原型模型

2.3.3增量模型

2.3.4螺旋模型

2.3.5噴泉模型

2.3.6基於組件的開發模型

2.3.7統一軟件開發過程模型

2.3.8幾種模型之間的關系

2.3.9選擇軟件過程模型

2.4軟件過程實例

習題

第3章敏捷軟件開發

3.1敏捷軟件開發方法

3.2Scrum

3.2.1概述

3.2.2Sprint

3.2.3每日站會

3.2.4用戶故事

3.2.5Backlog

3.2.6結對編程

3.3看板

3.3.1概述

3.3.2看板與Scrum的區別

3.4極限編程

3.4.1XP的4個價值觀

3.4.2XP的12個核心實踐

3.5CI/CD

3.5.1CI/CD概述

3.5.2CI/CD管道

3.5.3CI/CD的優勢

3.6DevOps

3.6.1DevOps生命周期

3.6.2DevOps文化

3.6.3DevOps工具

3.7敏捷軟件開發、CI/CD和DevOps

3.8敏捷軟件開發實例

習題

第二部分可行性研究與項目開發計劃

第4章項目立項、可行性研究與項目開發計劃

4.1項目立項概述

4.2可行性研究的任務

4.2.1技術可行性

4.2.2操作可行性

4.2.3經濟可行性

4.3可行性研究的步驟

4.4可行性研究實例

4.5制訂項目開發計劃

4.6案例: “小型網上書店系統”的軟件開發計劃書

習題

第三部分結構化分析與設計

第5章結構化分析

5.1需求分析

5.1.1需求分析的任務和原則

5.1.2需求分析的步驟

5.1.3需求管理

5.1.4需求分析的常用方法

5.1.5軟件原型

5.2結構化分析概述

5.3結構化分析方法

5.3.1功能建模

5.3.2數據建模

5.3.3行為建模

5.3.4數據字典

5.3.5加工規格說明

5.4結構化分析的圖形工具

5.4.1層次方框圖

5.4.2Warnier圖 

5.4.3IPO圖

5.5結構化分析實例

習題

第6章結構化設計

6.1軟件設計的基本概念

6.1.1軟件設計的意義和目標

6.1.2軟件設計的原則

6.1.3軟件設計的分類

6.2數據庫結構設計

6.3用戶界面設計

6.3.1設計驅動開發

6.3.2目標用戶群體

6.3.3簡潔與清晰

6.3.4實現模型與心智模型

6.3.5設計的規範性

6.3.6設計的可用性和易用性

6.3.7設計的一致性

6.3.8設計的容錯性

6.4結構化設計概述

6.5結構化設計與結構化分析的關系

6.6體系結構設計

6.6.1表示軟件結構的圖形工具

6.6.2面向數據流的設計方法

6.6.3面向數據結構的設計方法

6.7接口設計

6.7.1接口設計概述

6.7.2界面設計

6.7.3UX設計與UI設計的區別

6.8數據設計

6.9過程設計

6.9.1程序流程圖

6.9.2NS圖

6.9.3PAD

6.9.4過程設計語言

6.10軟件設計評審

6.11結構化設計實例

習題

第四部分面向對象分析與設計

第7章面向對象方法與UML

7.1面向對象的軟件工程方法

7.1.1面向對象的基本概念

7.1.2面向對象的軟件工程方法的特徵與優勢

7.1.3面向對象的實施步驟

7.2統一建模語言UML

7.2.1UML簡述

7.2.2UML的特點

7.2.3UML的應用範圍

7.2.4UML的圖

7.2.5UML“4+1”視圖

7.3靜態建模機制

7.3.1用例圖

7.3.2類圖和對象圖

7.3.3包圖

7.4動態建模機制

7.4.1順序圖

7.4.2協作圖

7.4.3狀態圖

7.4.4活動圖

7.5描述物理架構的機制

7.5.1構件圖

7.5.2部署圖

7.6面向對象方法與UML實例

習題

第8章面向對象分析

8.1面向對象分析方法

8.1.1面向對象分析過程

8.1.2面向對象分析原則

8.2面向對象建模

8.2.1建立對象模型

8.2.2建立動態模型

8.2.3建立功能模型

8.2.43種模型之間的關系

8.3面向對象分析實例

8.4案例: “小型網上書店系統”的需求規格說明書

習題

第9章軟件體系結構與設計模式

9.1軟件體系結構的概念

9.1.1什麽是軟件體系結構

9.1.2軟件體系結構建模

9.1.3軟件體系結構的分層模型

9.1.4軟件體系結構的作用

9.2典型的軟件體系結構風格

9.2.1數據流風格

9.2.2調用/返回風格

9.2.3獨立構件風格

9.2.4虛擬機風格

9.2.5倉庫風格

9.3軟件質量屬性

9.4分佈式系統結構

9.4.1多處理器體系結構

9.4.2客戶機/服務器體系結構

9.4.3分佈式對象體系結構

9.4.4對等端體系結構

9.4.5代理

9.5體系結構框架

9.5.1模型視圖控制器

9.5.2模型視圖表示器

9.5.3J2EE體系結構框架

9.5.4PCMEF框架

9.5.5PCBMER框架

9.6軟件系統的設計模式

9.6.1工廠模式

9.6.2橋接模式

9.6.3策略模式

9.6.4其他模式

9.7軟件體系結構與設計模式實例

習題

第10章面向對象設計

10.1面向對象設計與結構化設計

10.2面向對象設計與面向對象分析的關系

10.3面向對象設計的過程與原則

10.3.1面向對象設計的過程

10.3.2面向對象設計的原則

10.4面向對象設計的啟發規則

10.5系統設計

10.5.1系統分解 

10.5.2問題域子系統的設計

10.5.3人機交互子系統的設計

10.5.4任務管理子系統的設計

10.5.5數據管理子系統的設計

10.6對象設計

10.6.1設計類中的服務

10.6.2設計類的關聯

10.6.3對象設計優化

10.7面向對象設計實例

10.8案例: “小型網上書店系統”的軟件設計說明書

習題

第五部分軟件實現與測試

第11章軟件實現

11.1編程語言

11.1.1編程語言的發展與分類

11.1.2選擇編程語言需考慮的因素

11.2編碼風格與規範

11.3面向對象實現

11.4代碼重用

11.5分析和評價代碼的質量

11.6軟件實現實例

11.7實驗: 使用Visual Studio Code 實現“小型網上書店系統”的

“用戶登錄”模塊

11.8案例: “小型網上書店系統”的源代碼

習題

第12章軟件測試

12.1軟件測試的基本概念

12.1.1軟件測試的原則

12.1.2軟件測試模型

12.2軟件測試的分類

12.3測試用例

12.3.1測試用例編寫

12.3.2測試用例設計

12.3.3測試用例場景

12.4軟件測試方法

12.5黑盒測試

12.5.1等價類劃分法

12.5.2邊界值分析法

12.5.3錯誤推測法

12.5.4因果圖法

12.5.5決策表法

12.5.6場景法

12.5.7黑盒測試方法的選擇

12.6白盒測試

12.6.1代碼檢查法

12.6.2靜態結構分析法

12.6.3程序插樁技術

12.6.4邏輯覆蓋法

12.6.5基本路徑法

12.6.6白盒測試方法的選擇

12.6.7白盒測試與黑盒測試比較

12.7軟件測試的一般步驟

12.8單元測試

12.8.1單元測試概述

12.8.2單元測試內容

12.8.3單元測試方法

12.9集成測試

12.9.1集成測試概述

12.9.2集成測試分析

12.9.3集成測試策略

12.10系統測試

12.10.1系統測試概述

12.10.2系統測試類型

12.11驗收測試

12.11.1驗收測試概述

12.11.2驗收測試內容

12.11.3α測試和β測試

12.12回歸測試

12.13面向對象測試

12.14自動化測試

12.14.1手工測試與自動化測試

12.14.2自動化測試的優缺點

12.14.3自動化測試工具

12.15軟件調試

12.15.1調試過程

12.15.2調試途徑

12.16軟件測試實例

12.17實驗: 使用Visual Studio Code 對“小型網上書店系統”的

“用戶登錄”模塊進行單元測試

12.18案例: “小型網上書店系統”的測試分析報告

習題

第六部分軟件維護與軟件工程管理

第13章軟件維護與軟件工程管理

13.1軟件維護

13.1.1軟件部署與軟件交付

13.1.2軟件維護的過程

13.1.3軟件維護的分類

13.1.4軟件的可維護性

13.1.5軟件維護的副作用

13.1.6自動化運維

13.1.7軟件再工程——重構、正向工程、逆向工程

13.2軟件估算

13.2.1軟件估算的概念

13.2.2軟件估算的方法

13.2.3軟件估算的原則與技巧

13.3軟件開發進度計劃

13.3.1Gantt圖

13.3.2PERT圖

13.4軟件開發人員組織

13.4.1民主製程序員組

13.4.2主程序員組

13.4.3現代程序員組

13.5軟件開發風險管理

13.5.1軟件開發風險

13.5.2軟件開發風險管理

13.6軟件質量保證

13.6.1軟件質量的基本概念

13.6.2軟件質量保證的措施

13.7軟件配置管理

13.7.1軟件配置管理術語

13.7.2軟件配置管理過程

13.7.3軟件配置管理的角色劃分

13.8軟件工程標準與軟件文檔

13.8.1軟件工程標準

13.8.2軟件文檔

13.9軟件過程能力成熟度模型

13.10軟件項目管理

13.10.1軟件項目管理概述

13.10.2軟件項目管理與軟件工程的關系

13.11實驗: 使用Project管理“小型網上書店系統”的開發過程

13.12案例: “小型網上書店系統”的部署文檔和用戶手冊

習題

附錄A課程設計指導

附錄B軟件工程工具及其應用的視頻和文檔

附錄C綜合案例

參考文獻