圖書信息
出版社: 西安電子科技大學出版社; 第1版 (2009年2月1日)
叢書名: 普通高等教育“十一五”國家級規劃教材
平裝: 380頁
正文語種: 簡體中文
開本: 16
ISBN: 7560621589, 9787560621586
條形碼: 9787560621586
尺寸: 25.8 x 18.2 x 1.2 cm
重量: 599 g
內容簡介
《軟體工程與開發技術(第2版)》從軟體工程方法、軟體工程過程層面對現代軟體工程學進行了較為系統和全面的介紹。全書共分為四篇,23章。第一篇介紹了傳統的軟體工程知識,包括軟體工程的由來與發展、與軟體工程學科相關的基礎知識以及傳統的結構化軟體工程方法,具體內容有基於結構化方法的可行性分析、需求分析、設計與編碼和軟體測試知識等。第二篇以RuP為藍本,介紹了現代面向對象的軟體工程方法,重點就業務模型、用例模型、對象模型、包模型、動態模型、構件模型、部署模型的建模方法進行了詳細講述,最後介紹了面向對象測試的概念。第三篇就項目估算、項目策劃、品質管理、配置管理、風險管理等項目經理必備的項目管理知識作了較全面的介紹。現代軟體工程十分重視不斷提升個人與組織的工程過程能力,因此,第四篇用較大篇幅論述了軟體能力成熟度模型、個人軟體過程PsP和小組軟體過程TsP的相關內容。
《軟體工程與開發技術(第2版)》適合作為計算機相關專業本科教學中軟體工程課程的教科書,也可作為軟體從業人員的參考書。
目錄
第一篇 傳統的軟體工程
第1章 軟體工程引論
1.1 軟體產品的概念與特徵
1.1.1 軟體產品的概念與分類
1.1.2 軟體產品的特徵
1.1.3 軟體發展的階段劃分
1.2 軟體危機
1.2.1 軟體危機及其表現
1.2.2 生軟體危機的原因
1.2.3 解決軟體危機的途徑
1.3 軟體工程的產生及其發展
1.4 軟體工程的技術基礎
1.5 軟體工程過程的概念
1.6 幾種軟體過程模型
1.6.1 線性順序模型
1.6.2 原型模型
1.6.3 快速套用開發模型
1.6.4 演化軟體過程模型
1.7 過程技術
1.8 軟體重用技術
1.9 計算機輔助軟體工程工具
1.10 小結
習題
第2章 系統工程基礎與軟體可行性研究
2.1 基於計算機的系統
2.1.1 基於計算機的系統概述
2.1.2 計算機系統工程
2.2 系統需求識別
2.2.1 系統分析的目標
2.2.2 系統分析過程
2.3 可行性研究與分析
2.3.1 效益度量方法
2.3.2 成本一效益分析
2.3.3 技術分析
2.3.4 方案制定與評估
2.4 系統體系結構建模
2.4.1 建立系統結構流程圖
2.4.2 系統結構的規格說明定義
2.5 系統定義與評審
2.5.1 系統定義文檔模板
2.5.2 系統定義的評審
2.6 小結
習題
第3章 結構化需求分析與建模
3.1 需求分析
3.1.1 需求分析的任務
3.1.2 需求分析的步驟
3.1.3 需求分析的原則
3.2 數據建模
3.2.1 實體一關係模型
3.2.2 數據建模的其他工具
3.3 功能建模
3.3.1 數據流圖的基本符號
3.3.2 數據流與加工之間的關係
3.3.3 數據流模型的建立方法
3.3.4 建立數據流模型的原則
3.4 行為建模
3.4.1 狀態遷移圖
3.4.2 Petri網
3.5 數據字典
3.5.1 數據字典的基本符號
3.5.2 數據字典中的條目及說明格式
3.5.3 加工邏輯的描述
3.5.4 數據字典的建立
3.6 結構化需求分析的若干技術
3.7 驗證軟體需求
3.7.1 軟體需求規格說明的主要內容
3.7.2 軟體需求的驗證
3.8 小結
習題
第4章 結構化軟體設計
4.1 軟體設計中的基本概念和原理
4.2 體系結構設計概述
4.2.1 體系結構設計的任務
4.2.2 體系結構設計中可採用的工具
4.2.3 體系結構設計的原則
4.2.4 體系結構設計說明書
4.3 面向數據流的體系結構設計方法
4.3.1 數據流圖的類型
4.3.2 面向數據流的體系結構設計過程
4.4 詳細設計概述
4.4.1 詳細設計的任務
4.4.2 詳細設計可採用的工具
4.4.3 詳細設計的原則
4.4.4 詳細設計說明書
4.5 面向數據流的詳細設計方法
4.6 面向數據結構的設計方法
4.7 小結
習題
第5章 軟體編碼
5.1 程式設計語言
5.1.1 程式設計語言的分類
5.1.2 程式設計語言的特性
5.1.3 程式設計語言的選擇
5.2 編碼風格及軟體效率
5.2.1 編碼風格
5.2.2 軟體效率
5.3 程式複雜度的概念及度量方法
5.3.1 程式圖
5.3.2 程式複雜度的度量方法
5.4 小結
習題
第6章 軟體測試技術
6.1 軟體測試基礎
6.1.1 軟體測試的概念、目的和原則
6.1.2 軟體測試的過程
6.1.3 軟體測試的方法
6.2 白盒測試技術
6.2.1 白盒測試概念
6.2.2.白盒測試的用例設計
6.3 黑盒測試技術
6.3.1 黑盒測試概念
6.3.2 黑盒測試的用例設計
6.4 軟體測試計畫和測試分析報告
6.5 軟體測試策略
6.5.1 單元測試
6.5.2 集成測試
6.5.3 確認測試
6.5.4 系統測試
6.6 小結
習題
第二篇 面向對象的軟體工程
第7章 面向對象技術總論
7.1 概述——面向對象方法論
7.2 面向對象技術的基本概念
7.2.1 類
7.2.2 對象及對象實例
7.2.3 訊息機制
7.3 面向對象技術的基本特點
7.3.1 封裝性
7.3.2 繼承性
7.3.3 多態性
7.3.4 抽象性
7.4 面向對象分析方法
7.5 面向對象技術與程式結構
7.5.1 概述
7.5.2 重構
7.5.3 個程式結構改進(重構)的例子
7.6 面向對象軟體工程
7.6.1 傳統的面向對象軟體工程
7.6.2 現代的面向對象軟體工程
7.6.3 RuP過程
7.6.4 LIML簡介
7.7 設計模式與框架
7.7.1 設計模式的基本概念
7.7.2 設計模式舉例——AbstractFactory(抽象工廠)模式
7.7.3 框架的基本概念
7.7.4 框架的套用
7.7.5 框架開發與軟體重用
7.7.6 框架的分類及開發原則
7.8 基於構件的軟體體系結構(Com/Dcom、Corba、Internet)
7.9 面向對象分析解決(描述)問題的模式
7.10 小結
習題
第8章 業務模型
8.1 業務模型概述
8.2 業務建模的目的及內容
8.2.1 業務建模的目的
8.2.2 業務建模的內容
8.3 業務建模流程和任務
8.4 業務建模中使用到的UML元素和版型
8.4.1 業務系統
8.4.2 業務目標
8.4.3 業務規則
8.4.4 業務參與者
8.4.5 業務工人
8.4.6 業務實體
8.4.7 業務事件
8.4.8 業務用例
8.4.9 業務用例實現
8.4.10 業務用例與業務用例實現的區別
8.5 業務建模舉例
8.5.1 業務目標(部分)
8.5.2 組織結構
8.5.3 崗位設定和職責
8.5.4 業務參與者(部分)
8.5.5 業務用例模型
8.5.6 業務對象模型
8.6 小結
習題
第9章 需求分析與用例模型
9.1 需求分析
9.1.1 系統需求和需求描述
9.1.2 需求類型
9.1.3 需求與用例模型
9.2 Actor及其關係
9.2.1 Actor
9.2.2 如何發現Actor
9.2.3 Actor之間的關係
9.3 用例及其關係
9.3.1 用例(UseCase)
9.3.2 用例的版型(Stereotype)及用例觀點
9.3.3 用例之間的關係
9.4 用例圖和用例模型
9.4.1 參與者與用例之間的關聯
9.4.2 用例圖
9.4.3 用例模型
9.5 用例規格說明
9.5.1 概述
9.5.2 用例的描述模板
9.5.3 通過用例描述來獲取系統的功能
9.5.4 用例的描述方法及舉例
9.6 用例描述中常見的錯誤舉例
9.7 使用用例方法發現和確定系統功能需求
9.7.1 通過Actor來發現用例
9.7.2 通過業務用例和業務流程來發現用例
9.7.3 多視角的建模
9.8 小結
習題
第10章 分析設計與對象模型
10.1 類和對象的定義
lO.1.1 類的定義
10.1.2 類的定義討論
10.1.3 類的程式語言定義及和現實世界類的映射
10.1.4 類的高級概念
10.2 對象、類之間的關係
10.2.1 泛化
10.2.2 關聯
10.2.3 聚集
10.2.4 依賴
10.3 抽象類和接口
10.4 分析模型
10.4.1 邊界類
10.4.2 控制類
10.4.3 實體類
10.4.4 分析模型舉例
10.5 設計模型
10.6 抽象類和接口的設計原則
10.6.1 預設抽象原則DAP
10.6.2 接口設計原則IDP
10.6.3 黑盒原則BBP
10.6.4 不要具體化超類原則DCSP
10.7 類圖
10.8 領域設計
10.8.1 概述
10.8.2 領域建模
10.8.3 領域分析
10.8.4 領域工程
10.9 面向對象設計的原則
10.9.1 單一職責原則(sRP)
10.9.2 開閉原則(OCF)
10.9.3 Liskov替換原則
10.9.4 依賴倒置原則(DIP)
10.9.5 接口分離原則(ISP)
10.10 對象模型與關係模型
10.10.1 概念模型的表示方法
10.10.2 對象模型和關係模型的相互轉換
10.11 小結
習題
第11章 系統結構與包模型
11.1 包的概念
11.2 包之間的依賴關係
11.3 包的版型
11.4 用包表示的系統高層結構
11.5 設計包的原則
11.5.1 重用等價原則(REP)
11.5.2 共同閉包原則(CCP)
11.5.3 共同重用原則(CRP)
11.5.4 非循環依賴原則(ADP)
11.5.5 穩定依賴原則(SDP)
11.5.6 穩定抽象原則(SAP)
11.6 小結
習題
第12章 系統動態特性與對象互動模型
12.1 動態模型概述
12.2 互動圖
12.2.1 概述
12.2.2 順序圖
12.2.3 順序圖中的對象
12.2.4 順序圖中的訊息
12.2.5 建立順序圖的方法和步驟
……
第三篇 軟體工程項目管理
第四篇 軟體工程過程模型
參考文獻
新版圖書
圖書信息書目:軟體工程與開發技術
作者:張凱
出版:清華大學出版社
ISBN:9787302268741
定價:38元
印次:1-1
裝幀:平裝
印刷日期:2012-1-10圖書簡介
本書主要介紹與軟體工程相關的基本理論概念、軟體工程及軟體開發方法、軟體工程的設計與開發、軟體質量保證、軟體工程師的指南及實際案例分析。本書的目的並不是只追求軟體工程理論的前沿,而是培養能勝任軟體開發和套用工作的實用型、複合型人才,是一本套用性書籍。
本書不但可以作為大中專院校軟體工程教材,也可作為廣大工程師的參考書。
第一篇 軟體與軟體工程
第1章 軟體31.1 軟體的發展3
1.2 軟體的定義5
1.2.1 軟體的含義5
1.2.2 軟體的種類7
1.3 軟體危機9
習題9
第2章 軟體工程10
2.1 軟體工程的定義10
2.2 軟體工程開發模式10
2.2.1 瀑布模型11
2.2.2 原型模型11
2.2.3 螺旋模型12
2.2.4 四代技術13
2.2.5 面向對象生存期模型14
2.2.6 過程開發模型15
習題15
第二篇 軟體開發方法
第3章 結構化設計方法193.1 結構化設計19/目 錄/ 3.1.1 概要19
3.1.2 設計圖的說明20
3.1.3 設計步驟21
3.2 數據結構主導設計法23
3.3 系統的層次分割法24
3.4 Top-Down設計法26
習題27
第4章 面向對象的開發方法28
4.1 傳統軟體開發方法存在的問題28
4.2 面向對象的主要概念29
4.3 面向對象的特徵32
4.4 面向對象的要素33
4.5 面向對象的開發方法33
4.6 面向對象開發方法的基本特徵41
4.7 面向對象的模型42
4.8 面向對象的分析44
4.8.1 建立對象模型45
4.8.2 建立動態模型49
4.8.3 建立功能模型51
4.9 面向對象的設計與實現52
習題54
第三篇 軟體工程的設計與實踐
第5章 制訂計畫和管理595.1 軟體開發的成功路程59
5.1.1 追求現代的信息處理技術人員59
5.1.2 在軟體開發實踐中總結出失敗與原因60
5.1.3 軟體開發成功之路61
5.2 軟體開發項目61
5.2.1 從5W2H考慮項目61
5.2.2 作成“項目計畫書”62
5.2.3 發揮領導作用63
5.2.4 選擇適當的處理模型63
5.2.5 通過項目應注意的事項64
5.3 構建及運轉一支高效善於溝通的團隊65
5.3.1 構建項目團隊65
5.3.2 強化溝通66
5.3.3 有效的會議69
5.3.4 根據軟體開發規模來決定責任70
5.4 構築並維持和客戶間及各子團隊間的協調體制70
5.4.1 客戶及開發方考慮所存在的“鴻溝”70
5.4.2 使客戶認識到自己的作用71
5.4.3 不斷修正的體制和視窗的一體化71
5.4.4 其他子團隊也是“客戶”72
5.4.5 兼任項目時應注意的事項72
5.4.6 把握好客戶同事之間的力度關係73
5.4.7 建立遵守現實妥當的計畫73
習題79
第6章 需求分析及文檔化--系統規範設計的關鍵點80
6.1 需求分析的重要性80
6.1.1 需求分析80
6.1.2 需求分析的問題點81
6.1.3 需求分析的考慮方法83
6.2 需求分析的概要84
6.2.1 需求分析的對象系統84
6.2.2 需求分析的關係者85
6.2.3 需求分析的工作工程86
6.2.4 需求分析的文檔87
6.3 需求分析工作的步驟90
6.3.1 需求分析工程90
6.3.2 需求規格化工程110
6.3.3 項目計畫工程119
6.4 需求分析的技術、工具122
6.4.1 需求分析工程的技術和工具122
6.4.2 需求文檔化工程的技術和工具125
習題132
第7章 從需求到設計133
7.1 需求分析工程的進行方法133
7.2 順利且有效進行需求工程的注意點137
7.3 外部設計140
7.4 內部設計145
7.4.1 內部設計工作的實行步驟145
7.4.2 模組化146
7.4.3 數據的物理設計148
7.4.4 性能/容量的分析148
7.5 高效推進設計工程的注意點148
7.5.1 防止錯誤進入設計148
7.5.2 易變更、易維護的設計151
7.5.3 不要急於編程151
7.5.4 設計工程不只包括業務設計152
7.5.5 通過文檔上的意見一致來實現客戶的滿意152
7.5.6 管理文檔的變更需求153
7.5.7 變更管理的對應點154
7.6 開發與測試工程相連154
7.6.1 階段性工作結束時計畫的修正154
7.6.2 開發、測試計畫的作成155
習題155
第8章 編程工程156
8.1 編程工程156
8.2 標準化及共享化階段157
8.2.1 制定標準157
8.2.2 準備知識的公共環境158
8.2.3 高效利用綜合開發環境159
8.2.4 注意開發環境與實際環境的差異160
8.3 程式詳細設計可使內部設計書更加細化160
8.4 編程的要點161
8.4.1 編程的技術面161
8.4.2 編碼的管理方面162
8.5 單元測試解決模組內部問題163
8.6 準備實際運行164
8.6.1 導入支援工具164
8.6.2 文檔作成164
8.6.3 運行支援工具165
習題166
第9章 從測試到運行167
9.1 軟體的質量和測試的含義167
9.2 測試計畫和設計170
9.2.1 制訂測試計畫和設計170
9.2.2 測試流程和測試數據171
9.2.3 理解系統的錯誤和故障所帶來的影響171
9.2.4 白盒測試與黑盒測試173
9.2.5 開發環境和測試環境174
9.2.6 確保必要的測試時間175
9.2.7 回歸測試計畫175
9.2.8 測試系統接口175
9.3 實施測試176
9.3.1 自頂向下測試與自底向上測試176
9.3.2 活用各種測試工具177
9.3.3 意識風險178
9.3.4 在測試中發現錯誤並修正178
9.3.5 對不再出現問題的對策179
9.3.6 多個版本的管理180
9.3.7 防止正式運行時的問題180
9.3.8 提高測試工程的效率181
9.4 從運行測試到運轉181
9.4.1 以系統使用人員為主體的運行測試181
9.4.2 用運行測試來進行業務的測試182
9.4.3 正式運行183
9.4.4 測試設計、實施上的注意點183
9.5 系統的導入184
9.6 正式運轉186
習題190
第10章 客戶的交貨和驗收/系統移交運行/維護團隊192
10.1 驗證系統192
10.1.1 交貨前所需做的準備192
10.1.2 理解客戶的驗收工作193
10.1.3 驗收結果的反饋194
10.2 系統的交貨日與運行日195
10.2.1 理解交貨日和運行日的關係195
10.2.2 在系統維護階段的契約196
10.2.3 發現錯誤時的考慮方法和維護契約197
10.2.4 系統需追加的性能、功能198
10.3 向運轉團隊移交系統198
10.3.1 開始系統運行時的必要準備199
10.3.2 向運行團隊移交手冊199
10.3.3 軟體工程師所起的三個作用201
第四篇 軟體質量與質量保證
第11章 質量管理20511.1 軟體產品的質量205
11.2 項目質量管理的框架206
11.3 質量保證形式206
11.4 質量保證的處理過程207
11.5 從CMM到CMMI208
習題212
第12章 設計文檔213
12.1 文檔的重要性213
12.2 文檔的種類214
12.2.1 按使用目的對文檔進行分類214
12.2.2 各種文檔的完成時期215
12.3 文檔的完成時期和其內容215
12.3.1 針對客戶的文檔218
12.3.2 針對開發人員的文檔222
12.3.3 針對維護人員的文檔237
12.4 文檔的質量管理239
12.4.1 對記載內容進行的驗證239
12.4.2 維護管理法241
12.4.3 文檔支援工具242
習題244
第13章 設計評審245
13.1 設計評審的重要性245
13.2 設計評審的內容和實施方法248
13.2.1 設計評審的內容248
13.2.2 軟體開發工程和產品249
13.2.3 設計評審的管理體制和管理方法250
13.2.4 設計評審的標準化251
13.2.5 設計評審的實施方法251
13.3 設計評審的文檔263
13.3.1 設計評審管理用文檔263
13.3.2 檢查報表264
13.4 設計評審實施上的注意點265
習題266
第五篇 軟體工程師指南
第14章 軟體工程師的全體工作概述26914.1 系統開發方法269
14.2 調查客戶的現狀,理解需求270
14.2.1 理解客戶的要求270
14.2.2 分析現狀272
14.3 概要的提案273
14.3.1 本書所涉及的系統273
14.3.2 系統的費用差274
14.3.3 提案的範圍275
14.4 系統構築和軟體工程師的作用276
14.4.1 從概要設計到詳細設計276
14.4.2 軟體工程師與各專門技術人員的合作276
14.4.3 軟體工程師的作用--管理系統開發項目的全體278
14.5 交貨及交貨後的維護279
14.5.1 從開發結束到向客戶交貨的流程279
14.5.2 驗收後軟體工程師的可能工作280
習題280
第15章 軟體工程師的演講技巧282
15.1 演講的必要性282
15.1.1 在演講中加深理解282
15.1.2 演講所能提供給客戶的信息283
15.1.3 準備有效的演講284
15.2 實際演講285
15.2.1 演講內容285
15.2.2 有效使用圖像信息來進行演講286
15.3 接受反饋意見287
15.3.1 在各階段演講時所要確認的事項287
15.3.2 對應來自客戶的需求和變更288
15.3.3 最終確認289
習題291
第16章 作為項目經理的軟體工程師292
16.1 計畫管理的方法292
16.1.1 將項目全體列入一張表中292
16.1.2 構想最好、典型及最壞事例的情況294
16.2 系統開發團隊中各成員的作用295
16.2.1 軟體工程師的責任範圍和作用295
16.2.2 技術工程師的種類和其作用296
16.2.3 程式設計師應起的作用297
16.3 系統設計中的必要考慮方法298
16.4 考慮用戶外部接口的界面設計300
16.5 開發系統302
16.5.1 撰寫無遺漏的設計文檔302
16.5.2 將系統分割成子系統進行開發303
16.6 測試系統304
16.6.1 測試的時刻304
16.6.2 單元測試305
16.6.3 結合測試和系統測試306
16.6.4 運行測試306
16.6.5 製作各測試的設計文檔307
16.7 驗證和解決系統的問題點308
16.7.1 有關硬體的問題及解決方法309
16.7.2 有關網路問題和解決方法309
16.7.3 有關軟體問題和解決方法310
習題311
第17章 高級軟體工程師的目標312
17.1 磨鍊作為軟體工程師的技術力312
17.1.1 不能過信自己的技術312
17.1.2 軟體工程師繼續學習的重要性313
17.2 為了開發更好的系統314
17.2.1 今後系統的基本點--安全314
17.2.2 根據客戶需求的最適設計315
17.3 項目管理注意事項317
17.4 客戶對高級軟體工程師的期待319
17.5 滿足客戶需求的軟體322
17.5.1 對於客戶來說的優質軟體322
17.5.2 軟體質量與客戶滿意度323
17.5.3 對軟體需求的變化323
17.6 軟體開發階段客戶的滿足324
17.6.1 交貨期和功能--優先順序324
17.6.2 沒能遵守交貨期的對應解決方法325
17.6.3 需求分析的進展方法326
17.6.4 客戶的真正期待326
17.7 軟體使用階段客戶的滿意度327
17.7.1 設計與使用者所持技術相對應的功能和操作性327
17.7.2 操作培訓的進行方法328
17.7.3 製作易使用的手冊329
17.8 軟體維護階段客戶的滿足330
17.9 公司內的關鍵人員對高級軟體工程師的期望333
17.9.1 軟體工程師在項目團隊中所起的作用333
17.9.2 遵守交貨期和費用334
17.9.3 應對軟體開發的風險334
17.9.4 意識開發的後期工程335
17.10 軟體開發中的作用336
17.11 與客戶交涉的技巧338
習題340
第六篇 軟體工程現場實際案例分析
第18章 與客戶的交涉力345第19章 維護人員的幹勁/完成難以管理的任務(統率力)356
第20章 解決問題同時,提出與新商機相連的方案365
參考文獻375