本書較為全面、系統地講述了當前軟件工程領域的理論和實踐知識,涉及了最新的軟件工程理論、標準、技術和工具,展望了軟件工程的發展趨勢。
適讀人群 :高等院校軟件工程相關專業的師生
明確定位面向初、中級讀者,由“入門”起步,側重“提高”;介紹軟件開發生命周期的各階段所需完成的圖表以及如何完成這些圖表;介紹軟件工程新進展、軟件工程案例和軟件工程實驗指導。
軟件工程是本科計算機相關專業及信息管理與信息系統專業的主干課程,也是電子信息工程專業的選修課程。它是一門理論與實踐緊密聯系的課程,直接關系到學生的理論分析能力和綜合動手能力的培養。本書簡要介紹軟件開發生命周期的各個階段的理論內容,重點介紹每階段所需完成的圖表以及如何采用相關的軟件工具完成這些圖表。
軟件工程理論繁雜,讓學生在實踐中學習理論知識,并用理論知識指導實踐是本書的寫作目的。本書培養學生按照軟件工程的原理、方法、技術、標準和規范進行軟件開發的能力,培養學生的合作意識和團隊精神,從而提高學生軟件開發的綜合能力。
本書內容精練、文字簡潔、結構合理、綜合性強,明確定位面向初、中級讀者,由“入門”起步,側重“提高”。特別適合作為高等院校相關專業軟件工程課程的教材或教學參考書,也可供計算機應用開發人員參考。
本書內容包括軟件工程學概述、軟件可行性與項目計劃、軟件需求分析、軟件設計、編程、測試、軟件項目驗收與維護、軟件項目管理、軟件過程、面向對象開發與UML、軟件工具和開發環境、文檔、軟件工程新進展、軟件工程案例和軟件工程實驗指導。
西安電子科技大學計算機學院魚濱教授對本書的編寫給予了大力的支持并提出了指導性意見。西安郵電大學計算機學院劉海、浙江大學城市學院周蘇教授對本教材的大綱、寫作風格等提出了很多寶貴意見。
出版說明
前言
第1章 軟件工程學概述
1.1 軟件
1.1.1 軟件發展歷史
1.1.2 軟件特點
1.1.3 軟件分類
1.2 軟件危機
1.2.1 軟件缺陷案例
1.2.2 軟件危機產生原因
1.3 軟件工程研究范疇
1.3.1 軟件開發方法
1.3.2 軟件開發工具
1.3.3 軟件開發過程
1.4 軟件開發模型
1.4.1 瀑布模型
1.4.2 原型模型
1.4.3 增量模型
1.4.4 螺旋模型
1.4.5 噴泉模型
1.5 軟件工程基本原理
1.6 軟件產業
1.6.1 國內外軟件產業的現狀
1.6.2 對軟件人才的要求
小結
習題
第2章 軟件可行性與項目計劃
2.1 可行性研究目的
2.2 可行性研究內容
2.2.1 分析現有系統
2.2.2 技術可行性
2.2.3 經濟可行性
2.2.4 其他可行性
2.3 可行性研究步驟
2.4 項目計劃
2.4.1 項目計劃作用
2.4.2 項目計劃種類
2.4.3 項目計劃內容
2.4.4 項目計劃目的
小結
習題
第3章 軟件需求分析
3.1 需求分析內容
3.2 需求分析困難
3.3 需求分析步驟
3.4 相關圖表
3.4.1 實體關系圖
3.4.2 數據流圖
3.4.3 數據字典
3.4.4 狀態轉換圖
3.4.5 層次方框圖
3.4.6 加工邏輯工具
小結
習題
第4章 軟件設計
4.1 軟件設計概述
4.1.1 數據結構設計
4.1.2 接口設計
4.1.3 過程設計
4.2 軟件設計的基本原理
4.2.1 模塊化設計
4.2.2 耦合性和內聚性
4.2.3 改進軟件結構的指導
原則
4.3 兩種設計方法
4.3.1 面向數據流設計方法
4.3.2 面向數據結構設計方法
4.4 軟件體系結構
4.4.1 二層模式——C/S體系
結構
4.4.2 三層模式——MVC模式
4.5 人機界面設計
4.5.1 用戶特性
4.5.2 人機界面設計原則
4.5.3 人機界面設計四個問題
4.6 相關圖表
4.6.1 程序流程圖
4.6.2 N-S圖
小結
習題
第5章 編程
5.1 編程語言
5.1.1 程序設計語言歷史
5.1.2 結構化程序設計
5.1.3 選擇語言的標準
5.2 高級程序設計語言
5.2.1 面向過程程序設計語言
5.2.2 面向對象程序設計語言
5.2.3 面向過程與面向對象的
區別
5.3 編碼規范
5.3.1 編碼風格
5.3.2 程序效率
5.4 程序調試
5.4.1 調試策略
5.4.2 三種調試工具
小結
習題
第6章 測試
6.1 測試歷史演變
6.2 測試目的和原則
6.3 測試模型
6.3.1 V模型
6.3.2 W模型
6.3.3 H模型
6.3.4 X模型
6.4 測試用例
6.5 測試方法
6.5.1 白盒測試
6.5.2 黑盒測試
6.6 測試生命周期
6.6.1 測試計劃
6.6.2 測試分析
6.6.3 測試設計
6.6.4 測試執行
6.6.5 評估測試
6.7 自動測試技術
6.7.1 自動化測試適用場合
6.7.2 測試工具原理
小結
習題
第7章 軟件項目驗收與維護
7.1 軟件項目驗收
7.1.1 項目結束
7.1.2 項目驗收過程
7.1.3 項目移交與清算
7.1.4 項目評價
7.2 軟件維護
7.2.1 軟件維護種類
7.2.2 軟件維護過程
7.2.3 軟件維護副作用
7.2.4 軟件可維護性
小結
習題
第8章 軟件項目管理
8.1 項目管理與軟件質量
8.1.1 項目管理
8.1.2 軟件質量
8.1.3 軟件測試與質量保證
8.2 成本管理
8.2.1 代碼行法
8.2.2 功能點法
8.2.3 構造型成本模型法
8.3 進度管理
8.3.1 圖示方法
8.3.2 活動歷時估計
8.4 人力資源管理
8.4.1 項目人員角色
8.4.2 項目組織結構
8.5 風險管理
8.5.1 風險類型
8.5.2 風險管理主要活動
8.6 配置管理
8.6.1 相關概念
8.6.2 配置管理流程
小結
習題
第9章 軟件過程
9.1 過程改進
9.2 ISO 9000系列
9.2.1 ISO 9000-3介紹
9.2.2 ISO/IEC 9126標準
9.3 CMM/PSP/TSP
9.3.1 軟件能力成熟度模型
9.3.2 個體軟件過程
9.3.3 群組軟件過程
9.4 ISO/IEC 15504過程評估
9.5 其他軟件過程
9.5.1 Rational統一過程
9.5.2 敏捷過程
9.5.3 微軟解決方案框架
小結
習題
第10章 面向對象開發與UML
10.1 面向對象開發過程
10.1.1 面向對象分析
10.1.2 面向對象設計
10.1.3 面向對象實現
10.2 統一建模語言
10.2.1 UML簡介
10.2.2 UML模型圖概述
10.2.3 用例圖、時序圖、狀態圖
舉例說明
10.3 UML在三種模型中的
應用
10.3.1 對象模型
10.3.2 動態模型
10.3.3 功能模型
小結
習題
第11章 軟件工具與開發環境
11.1 軟件工具與開發環境
11.2 軟件工具分類
11.3 通用項目管理工具
11.4 分析與設計工具
11.4.1 Project
11.4.2 GanttProject
11.4.3 Excel
11.4.4 Visio
11.4.5 PowerDesigner
11.5 軟件測試工具
11.5.1 測試管理軟件
TestDirector
11.5.2 功能測試工具
WinRunner
11.5.3 性能測試工具
LoadRunner
11.5.4 單元測試工具JUnit
11.6 缺陷跟蹤工具
11.6.1 Rational ClearQuest
11.6.2 JIRA
11.6.3 Bugzilla
11.7 軟件配置工具
11.7.1 Subversion(SVN)
11.7.2 VSS
11.7.3 ClearCase
11.7.4 CVS
11.8 UML工具
11.8.1 Rational Rose
11.8.2 ArgoUML
小結
習題
第12章 文檔
12.1 文檔作用
12.2 文檔編制原則
12.3 文檔分類
12.3.1 可行性研究報告
12.3.2 項目開發計劃
12.3.3 軟件需求說明書
12.3.4 概要設計說明書
12.3.5 詳細設計說明書
12.3.6 測試計劃
12.3.7 測試分析報告
12.3.8 用戶手冊
12.3.9 項目開發總結報告
小結
習題
第13章 軟件工程進展
13.1 軟件外包
13.1.1 外包分類
13.1.2 外包項目監理
13.2 開源軟件
13.2.1 開源軟件文檔
13.2.2 開源軟件協議
13.2.3 開源軟件簡介
13.3 凈室軟件工程
13.3.1 凈室軟件工程歷史
13.3.2 凈室軟件工程內容
13.4 軟件再工程
13.4.1 設計恢復
13.4.2 逆向工程
13.4.3 正向工程
13.4.4 重構
13.5 軟件復用
13.5.1 軟件復用分類
13.5.2 軟件復用技術
13.6 面向方面的編程
13.6.1 AOP概述
13.6.2 AOP術語
13.6.3 AOP語言
13.6.4 AOP研究方向
13.7 多Agent軟件體系
結構
13.7.1 Agent概述
13.7.2 面向對象與面向代理
13.7.3 MAS系統
13.7.4 MAS優點
13.8 網格動態體系結構
13.8.1 基本概念
13.8.2 網格的定義
13.8.3 網格的技術特征
13.8.4 網格的體系結構
小結
習題
第14章 軟件工程案例
14.1 面向過程開發案例—學生
宿舍管理系統
14.1.1 需求分析
14.1.2 軟件設計
14.1.3 系統實現
14.2 面向對象開發案例—廣告
管理系統
14.2.1 需求分析
14.2.2 軟件設計
14.2.3 系統實現
小結
習題
第15章 軟件工程實驗指導
15.1 實驗內容
15.1.1 實驗目的
15.1.2 實驗要求
15.1.3 實驗組織形式
15.2 實驗題目
15.2.1 工資管理系統需求
15.2.2 學校課程安排系統
需求
15.2.3 學校教材訂購系統
需求
15.2.4 實驗室設備管理系統
需求
15.2.5 機票預訂系統需求
小結
習題
參考文獻