軟體工程:從理論到實踐

《高等教育出版社》是由毛新軍、董威編著,高等教育出版社於2022年出版的教材。本書遵循課程規範,具有知識體系新穎、內容組織科學、知識詮釋深入、教學資源豐富等特點,可作為高校計算機或信息大類專業的本科生教材,也可作為研究生教材和軟體開發工程師的參考用書。

基本介紹

  • 中文名:軟體工程:從理論到實踐
  • 作者:毛新軍、董威
  • 出版社:高等教育出版社
  • 出版時間:2022年6月
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787040585483 
內容簡介,圖書目錄,

內容簡介

本書將軟體工程理論與軟體開發實踐相結合,在作者多年從事軟體工程教學、科研和開發所取得的經驗和成果基礎上,引入以開源軟體技術為代表的軟體產業界成功實踐和軟體資源,通過具體和完整的軟體開發案例,深入詮釋程式、軟體和軟體工程的概念、思想和內涵,系統介紹軟體工程的過程、方法學和工具,強化軟體工程課程的綜合實踐。
全書分為6部分,共16章。第一部分是基礎篇,包含第1~3章,從程式和軟體入手,介紹軟體工程的基本概念和思想、常見的軟體過程及主流的軟體開發方法。第二部分是需求篇,包含第4~6章,介紹獲取、分析、建模和文檔化軟體需求的過程和策略、語言和工具、軟體製品和質量保證。第三部分是設計篇,包含第7~10章,介紹軟體體系結構設計、用戶界面設計、軟體詳細設計的過程和策略、語言和工具、軟體製品和質量保證。第四部分是實現篇,包含第11~13章,介紹程式編碼和軟體測試的過程和策略、技術和工具、軟體製品和質量保證。第五部分是運維篇,包含第14~15章,介紹軟體部署、運行、維護和演化的策略和方法。第六部分是管理篇,包含第16章,介紹軟體項目管理的相關內容。

圖書目錄

前輔文
第1章 從程式到軟體
1.1 何為程式
1.2 程式質量
1.3 程式質量保證方法
1.3.1 程式編碼風格
1.3.2 程式設計方法
1.3.3 程式代碼重用
1.3.4 結對編程
1.4 程式質量分析方法
1.4.1 人工代碼審查
1.4.2 自動化分析
1.4.3 程式測試技術
1.5 編寫程式需解決的問題
1.6 何為軟體
1.6.1 軟體的概念
1.6.2 軟體生存周期
1.6.3 軟體的特點
1.6.4 軟體的分類
1.7 開源軟體
1.7.1 何為開源軟體
1.7.2 開源軟體實踐
1.7.3 開源託管平台和社區
1.7.4 開源軟體的優勢
1.7.5 開源許可證
1.7.6 開源軟體的利用
1.8 軟體質量
1.9 軟體特徵的變化
1.9.1 軟體的地位和作用
1.9.2 軟體的基本形態
1.9.3 軟體系統的規模
1.10 軟體建設的挑戰和使命
1.11 本書軟體案例
1.11.1 “小米便簽”MiNotes
1.11.2 “12306”軟體
1.11.3 “空巢老人看護”軟體ElderCarer
本章小結
推薦閱讀
基礎習題
綜合實踐
第2章 軟體工程概述
2.1 軟體工程的產生背景
2.1.1 從編寫程式到軟體開發
2.1.2 軟體危機
2.2 軟體工程的概念和思想
2.2.1 何為軟體工程
2.2.2 軟體工程的三要素
2.2.3 軟體工程的目標
2.2.4 軟體工程的原則
2.3 計算機輔助軟體工程
2.3.1 何為計算機輔助軟體工程
2.3.2 CASE工具和環境
2.4 軟體工程視角下的軟體開發
2.4.1 軟體創作與軟體生產
2.4.2 軟體創作與軟體生產的軟體工程方法
2.5 軟體工程的發展
2.5.1 軟體工程的發展歷程
2.5.2 軟體工程發展的特點
2.5.3 我國軟體工程的發展
2.6 軟體工程教育
2.6.1 軟體工程從業人員
2.6.2 軟體工程教育發展
2.6.3 軟體工程教育國際規範
2.6.4 軟體工程教育挑戰
2.6.5 “軟體工程”課程教學
本章小結
推薦閱讀
基礎習題
綜合實踐
第3章 軟體過程模型和開發方法
3.1 軟體過程模型
3.1.1 何為軟體過程
3.1.2 代表性的軟體過程模型
3.1.3 軟體過程模型的重型化特點
3.1.4 軟體過程模型的選擇
3.2 敏捷方法
3.2.1 何為敏捷方法
3.2.2 極限編程
3.2.3 Scrum
3.2.4 測試驅動的開發
3.3 群體化開發方法
3.3.1 何為群體化開發方法
3.3.2 基於群體的軟體開發技術
3.3.3 開源軟體開發實踐
3.3.4 基於群智的知識分享
本章小結
推薦閱讀
基礎習題
綜合實踐
第4章 軟體需求工程基礎
4.1 軟體需求
4.1.1 何為軟體需求
4.1.2 軟體需求的類別
4.1.3 軟體需求的特點
4.1.4 軟體需求的質量要求
4.1.5 軟體需求的重要性
4.2 需求工程
4.2.1 何為需求工程
4.2.2 需求工程的一般性過程
4.2.3 需求工程的方法學
4.2.4 需求工程師
4.3 結構化需求分析方法學
4.3.1 基本概念和思想
4.3.2 數據流圖及軟體需求模型
4.3.3 面向數據流的需求分析的步驟和策略
4.4 面向對象的需求分析方法學
4.4.1 基本概念和思想
4.4.2 面向對象建模語言UML
4.4.3 面向對象的需求分析步驟和策略
4.5 需求工程的CASE工具
4.6 需求工程的輸出和評審
4.6.1 軟體需求製品
4.6.2 軟體需求缺陷
4.6.3 軟體需求評審
4.7 軟體需求變更管理
本章小結
推薦閱讀
基礎習題
綜合實踐
第5章 獲取軟體需求
5.1 獲取軟體需求概述
5.1.1 軟體需求從何而來
5.1.2 獲取軟體需求的方式
5.1.3 獲取軟體需求的困難
5.1.4 獲取軟體需求的方法
5.2 獲取軟體需求的過程
5.3 明確問題和基於軟體的解決方案
5.3.1 明確軟體要解決的問題
5.3.2 明確基於軟體的解決方案
5.4 導出和構思初步軟體需求
5.4.1 識別軟體的利益相關者
5.4.2 導出和構思軟體的功能需求
5.4.3 導出和構思軟體的非功能需求
5.4.4 持續獲取軟體需求
5.5 描述初步軟體需求
5.5.1 自然語言描述
5.5.2 軟體原型描述
5.5.3 UML用例圖
5.5.4 UML用例圖描述
5.5.5 撰寫軟體文檔
5.6 評審初步軟體需求
5.6.1 輸出的軟體製品
5.6.2 評審初步軟體需求
5.6.3 軟體需求可行性分析
本章小結
推薦閱讀
基礎習題
綜合實踐
第6章 分析軟體需求
6.1 分析軟體需求概述
6.1.1 為何要分析軟體需求
6.1.2 分析軟體需求的任務
6.2 軟體需求模型及UML表示方法
6.2.1 軟體需求模型
6.2.2 互動圖
6.2.3 類圖
6.2.4 狀態圖
6.3 分析軟體需求的過程
6.4 分析和確定軟體需求優先權
6.4.1 分析軟體需求的重要性
6.4.2 分析軟體需求的優先權
6.4.3 確定用例分析和實現的次序
6.5 分析和建立軟體需求模型
6.5.1 分析和建立用例的互動模型
6.5.2 分析和建立軟體需求的分析類模型
6.5.3 分析和建立對象的狀態模型
6.6 文檔化軟體需求
6.6.1 撰寫軟體需求規格說明書
6.6.2 輸出的軟體製品
6.7 確認和驗證軟體需求
6.7.1 評審軟體需求
6.7.2 解決軟體需求問題
本章小結
推薦閱讀
基礎習題
綜合實踐
第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.3.3 事務型數據流圖的轉換方法
7.4 面向對象的軟體設計方法學
7.4.1 基本思想
7.4.2 面向對象的軟體設計原則
7.4.3 面向對象的軟體設計優勢
7.5 軟體設計的CASE工具
7.6 軟體設計的輸出和評審
7.6.1 軟體設計製品
7.6.2 軟體設計缺陷
7.6.3 軟體設計驗證與評審
7.7 軟體設計管理
本章小結
推薦閱讀
基礎習題
綜合實踐
第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.3 軟體體系結構設計過程
8.4 設計初步的軟體體系結構
8.5 重用可用的已有軟體資源
8.6 精化軟體體系結構設計
8.6.1 確定公共基礎設施及服務
8.6.2 確定設計元素
8.7 設計軟體部署模型
8.8 文檔化軟體體系結構設計
8.9 評審軟體體系結構設計
本章小結
推薦閱讀
基礎習題
綜合實踐
第9章 用戶界面設計
9.1 用戶界面設計概述
9.1.1 人機互動方式
9.1.2 用戶界面設計的任務及其重要性
9.2 用戶界面組成及表示方法
9.2.1 圖形化用戶界面的組成
9.2.2 用戶界面設計模型的UML表示
9.3 用戶界面設計的過程和原則
9.3.1 用戶界面設計的過程
9.3.2 用戶界面設計的原則
9.4 用戶界面的初步設計
9.5 建立用戶界面間的跳轉關係
9.6 精化用戶界面設計
9.7 用戶界面設計的輸出
9.8 評審用戶界面設計
本章小結
推薦閱讀
基礎習題
綜合實踐
第10章 軟體詳細設計
10.1 軟體詳細設計概述
10.1.1 何為軟體詳細設計
10.1.2 軟體詳細設計的任務和過程
10.1.3 軟體詳細設計的原則
10.2 軟體詳細設計模型及表示方法
10.3 面向對象的軟體設計模式
10.3.1 何為設計模式
10.3.2 面向對象的軟體設計模式
10.4 用例設計
10.4.1 用例設計的過程和原則
10.4.2 設計用例實現方案
10.4.3 構造設計類圖
10.4.4 評審用例設計方案
10.4.5 輸出的軟體製品
10.5 類設計
10.5.1 類設計的過程和原則
10.5.2 確定類的可見範圍
10.5.3 精化類間的關係
10.5.4 精化類的屬性
10.5.5 精化類的方法
10.5.6 構造類對象的狀態圖
10.5.7 評審類設計
10.5.8 輸出的軟體製品
10.6 數據設計
10.6.1 數據設計的過程和原則
10.6.2 確定需要永久保存的數據
10.6.3 確定數據存儲和組織的方式
10.6.4 設計數據操作
10.6.5 評審數據設計
10.6.6 輸出的軟體製品
10.7 子系統和構件設計
10.8 文檔化和評審軟體詳細設計
本章小結
推薦閱讀
基礎習題
綜合實踐
第11章 軟體實現基礎
11.1 軟體實現概述
11.1.1 何為軟體實現
11.1.2 軟體實現的過程與原則
11.1.3 程式設計師
11.2 程式設計語言
11.2.1 程式設計語言的類別
11.2.2 程式設計語言的選擇
11.2.3 流行的程式設計語言
11.3 高質量編碼
11.4 支持軟體實現的CASE工具
11.5 軟體實現的輸出
本章小結
推薦閱讀
基礎習題
綜合實踐
第12章 編寫代碼
12.1 編寫代碼的任務
12.2 基於軟體設計編寫代碼
12.2.1 編寫類代碼
12.2.2 編寫用戶界面代碼
12.2.3 編寫數據設計代碼
12.3 代碼片段重用
12.4 軟體缺陷
12.4.1 軟體缺陷、錯誤和失效的概念
12.4.2 軟體缺陷的描述
12.4.3 軟體缺陷的應對方法
12.4.4 軟體缺陷的狀態
12.5 程式調試
12.6 基於群智知識解決編程和調試問題
12.7 編寫代碼的輸出
本章小結
推薦閱讀
基礎習題
綜合實踐
第13章 軟體測試
13.1 軟體測試概述
13.1.1 何為軟體測試
13.1.2 軟體測試的思想和原理
13.1.3 測試用例的設計
13.1.4 測試用例的運行
13.1.5 軟體測試面臨的挑戰
13.1.6 軟體測試工程師
13.2 軟體測試的過程和策略
13.2.1 軟體測試過程
13.2.2 單元測試
13.2.3 集成測試
13.2.4 確認測試
13.2.5 系統測試
13.3 軟體測試技術
13.3.1 白盒測試技術
13.3.2 黑盒測試技術
13.3.3 非功能測試技術
13.4 面向對象的軟體測試技術
13.4.1 面向對象的軟體測試的特殊性
13.4.2 互動測試
13.4.3 繼承測試
13.5 軟體測試計畫的制訂與實施
13.5.1 軟體測試組織
13.5.2 制訂和實施軟體測試計畫
13.6 軟體測試的輸出
本章小結
推薦閱讀
基礎習題
綜合實踐
第14章 軟體部署
14.1 軟體及其環境
14.1.1 軟體的運行環境
14.1.2 軟體運行環境的變化
14.2 軟體部署的概念和原則
14.3 軟體部署方式
14.3.1 單機部署
14.3.2 分散式部署
14.4 軟體部署方法
14.4.1 基於作業系統的部署
14.4.2 基於軟體開發框架和中間件的部署
14.4.3 基於容器的部署
14.5 支撐軟體部署的CASE工具
14.5.1 Fat Jar
14.5.2 Installer Project
14.5.3 Jenkins
本章小結
推薦閱讀
基礎習題
綜合實踐
第15章 軟體維護和演化
15.1 軟體維護
15.1.1 何為軟體維護
15.1.2 軟體維護的特點和挑戰
15.1.3 軟體維護工程師
15.2 軟體演化
15.2.1 何為軟體演化
15.2.2 軟體演化法則
15.3 軟體邏輯老化問題
15.3.1 何為軟體邏輯老化
15.3.2 軟體邏輯老化的原因和表現
15.3.3 解決軟體邏輯老化的方法
15.4 軟體維護技術
15.5 軟體維護過程
15.5.1 不同情況下的軟體維護過程
15.5.2 軟體維護需要解決的問題
15.6 軟體的可維護性
15.7 軟體維護的輸出
本章小結
推薦閱讀
基礎習題
綜合實踐
第16章 軟體項目管理
16.1 軟體項目管理概述
16.1.1 何為軟體項目
16.1.2 軟體項目管理的對象
16.1.3 軟體項目管理的內容
16.2 軟體度量、測量和估算
16.2.1 基本概念
16.2.2 軟體項目估算
16.2.3 套用軟體度量、測量和估算
16.3 軟體項目計畫
16.3.1 何為軟體項目計畫
16.3.2 軟體項目計畫的表示
16.3.3 軟體項目計畫要考慮的因素
16.3.4 制訂軟體項目計畫的步驟
16.3.5 實施軟體項目計畫
16.4 軟體項目跟蹤
16.4.1 軟體項目跟蹤的對象
16.4.2 軟體項目跟蹤的方法
16.4.3 軟體項目跟蹤的步驟
16.5 軟體配置管理
16.5.1 基本概念
16.5.2 軟體配置管理過程
16.5.3 軟體配置管理計畫
16.6 軟體風險管理
16.6.1 何為軟體風險
16.6.2 軟體風險的類別
16.6.3 軟體風險管理模式
16.6.4 軟體風險管理方法
16.7 軟體質量保證
16.7.1 基本概念
16.7.2 軟體質量保證方法
16.7.3 軟體質量保證計畫
本章小結
推薦閱讀
基礎習題
綜合實踐
參考文獻

相關詞條

熱門詞條

聯絡我們