計算機科學與技術專業(yè)規(guī)劃教材:軟件工程(第2版)
定 價:35 元
- 作者:李偉波 ,等 著
- 出版時間:2010/8/1
- ISBN:9787307079823
- 出 版 社:武漢大學出版社
- 中圖法分類:TP311.5
- 頁碼:334
- 紙張:膠版紙
- 版次:2
- 開本:16開
《軟件工程(第2版)》以軟件生存周期為主線,遵循軟件開發(fā)“工程化思想”,主要講述軟件工程各個知識領域的基礎內容,系統(tǒng)地介紹了軟件工程學的概念、原理和方法,重點介紹應用技術。內容包括:軟件工程的基本概念、軟件過程和軟件開發(fā)模型、軟件需求分析、軟件設計、軟件編碼、軟件測試、軟件維護、軟件質量和軟件工程標準化、軟件項目管理等。《軟件工程(第2版)》在強調基本理論體系的基礎上,融入當前軟件工程的最新發(fā)展和技術,深入淺出,語言簡潔,注重培養(yǎng)實際開發(fā)能力和文檔寫作能力,具有較強的實用性。為方便教學和自學.每
章都附有學習目的與要求、小結及習題!盾浖こ蹋ǖ2版)》可作為高等院校軟件工程課程的教材或教學參考書,也可作為軟件工程管理者和技術人員的參考書。
軟件工程是指導計算機軟件開發(fā)和維護的一門工程學科,強調采用工程的概念、原理、技術和方法來開發(fā)與維護軟件。軟件工程的最終目的是以較少的成本獲得易理解、易維護、可靠性高、符合用戶需要的軟件產(chǎn)品。軟件工程主要研究一套符合軟件產(chǎn)品開發(fā)特點的工程方法,包括軟件設計與維護方法、軟件工具與環(huán)境、軟件工程標準與規(guī)范、軟件開發(fā)技術與管理技術等。隨著計算機技術的飛速發(fā)展和軟件項目的復雜多樣化,軟件工程的理論和方法也在不斷地更新和進步。根據(jù)軟件工程的發(fā)展現(xiàn)狀和教學實踐的經(jīng)驗總結,本書對基本原理和方法更加凝練,略去過多的概念論述,在強調知識領域的重要性、完整性和銜接性的同時,更加注重理論與實際的結合,突出了統(tǒng)一建模語言(DML)的使用。
全書共分10章。第1章主要講述軟件、軟件危機、軟件工程等基本概念,簡要介紹了軟件開發(fā)方法和軟件工具與環(huán)境。第2章講述各種軟件過程、軟件生存周期等基本知識,重點講述軟件過程模型和統(tǒng)一建模語言(UMD)。第3章主要講述需求分析的任務、原則和方法,重點講述結構化分析、功能建模、數(shù)據(jù)建模和行為建模的原理和實現(xiàn)方法。第4章主要講述.軟件設計的基本概念和原則、概要設計和詳細設計的任務和工具,以及程序設計語言的選擇和軟件編碼準則,重點講述了結構化設計方法和面向數(shù)據(jù)結構的設計方法。第5章主要講述面向對象方法學的基本概念和面向對象的分析,重點講述運用用例分析建立功能模型、運用類圖建立對象模型和運用各種交互圖建立動態(tài)模型的方法。第6章主要講述面向對象設計的基本概念,重點講述系統(tǒng)設計、詳細設計和面向對象的編碼。第7章主要講述軟件測試的基本概念,重點講述白盒測試技術、黑盒測試技術、灰盒測試技術、面向對象的測試技術、軟件測試過程、測試工具和測試文檔等。第8章主要講述軟件配置和軟件維護的基本概念,重點講述版本管理和變更管理的方法、軟件維護的實施方法等。第9章主要講述軟件質量、軟件可靠性和復雜性、軟件工程標準化和軟件能力成熟度模型等基本概念,重點講述軟件質量保證體系和軟件可靠性評價方法。第10章主要講述軟件項目管理的基本概念,包括風險管理、人員管理、進度管理、成本管理和文檔管理等多方面內容,重點講述軟件規(guī)模估算、風險識別和評估方法及進度跟蹤與控制技術等。
為方便教學,書中每章都附有學習目的與要求、小結及習題。另外還將出版與本書配套的教學輔導材料。
本書是在2006年第一版的基礎上修訂完成的,是作者多年來軟件工程課程及相關課程的教學和實踐的總結。本書適用面廣,內容滿足軟件工程教學的基本要求,可作為高等院校軟件工程課程的教材或教學參考書,也可作為軟件工程管理者和技術人員的參考書。
第1章 軟件工程概述
1.1 計算機漱件
1.1.1 軟件的概念
1.1.2 軟件的特點
1.1.3 軟件的分類
1.1.4 軟件的發(fā)展歷程
1.1.5 軟件危機及其解決危機的途徑
1.2 軟件工程
1.2.1 軟件工程的概念
1.2.2 軟件工程的基本原理和原則
1.2.3 軟件工程學研究的內容
1.2.4 軟件開發(fā)方法簡述
1.2.5 軟件工具與環(huán)境
本章小結
習題
第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 統(tǒng)一過程模型RUP
2.4 統(tǒng)一建模語言切VIL
2.4.1 UML的結構
2.4.2 UML建模機制
2.4.3 UML圖形示例
本章小結
習題
第3章 需求分析與建模
3.1 需求分析
3.1.1 需求分析的任務和原則
3.1.2 獲取需求的方法
3.1.3 需求分析的模型和方法
3.1.4 需求分析的主要過程
3.2 結構化分析方法
3.2.1 基本思想和分析過程
3.2.2 系統(tǒng)流程圖
3.2.3 數(shù)據(jù)流圖
3.2.4 數(shù)據(jù)字典
3.2.5 加工邏輯說明
3.3 功能建模
3.3.1 IDEF0模型
3.3.2 IDEF0建模方法
3.3.3 IDEF0建模步驟
3.4 數(shù)據(jù)建模與ER圖
3.4.1 實體、屬性與聯(lián)系
3.4.2 實體.聯(lián)系圖
3.4.3 擴充實體聯(lián)系圖
3.4.4 數(shù)據(jù)建模步驟
3.5 行為建模與STD圖
3.5.1 處理模型和控制模型之間的關系
3.5.2 控制流圖
3.5.3 狀態(tài)轉換圖
3.6 需求規(guī)格說明與驗證
3.6.1 需求規(guī)格說明書的主要內容
3.6.2 軟件需求的驗證
本章小結
習題
第4章 軟件設計與編碼
114.1 軟件設計的基苯概念和原則
4.1.1 模塊化
4.1.2 抽象
4.1.3 求精
4.1.4 信息隱藏
4.1.5 體系結構
4.1.6 設計模式
4.1.7 重構
4.1.8 功能獨立性
4.2 概要設計
4.2.1 概要設計的任務和過程
4.2.2 概要設計的原則
4.2.3 常見的軟件體系結構
4.2.4 體系結構設計
4.2.5 數(shù)據(jù)庫的概念結構設計
4.2.6 概要設計中常用的圖形工具
4.3 結構化設計方法
4.3.1 數(shù)據(jù)流的類型
4.3.2 變換分析
4.3.3 事務分析
4.3.4 設計過程和原則
4.4 詳細設計
4.4.1 詳細設計的目標與任務
4.4.2 過程設計的常用工具
4.4.3 數(shù)據(jù)庫邏輯結構設計和物理設計
4.4.4 人機界面設計
4.5 面向數(shù)據(jù)結構的設計方法
4.5.1 Jackson方法
4.5.2 Wamier方法
4.6 編碼
4.6.1 選擇程序設計語言
4.6.2 編碼的準則
本章小結
習題
第5章 面向對象的分析與建模
5.1 面向對象方法學概述
5.1.1 面向對象方法學的概念
5.1.2 面向對象方法學的基本特點
5.1.3 面向對象的軟件工程及開發(fā)模型
5.1.4 常用的面向對象的開發(fā)方法
5.2 面向對象的分析
5.2.1 面向對象分析的任務和模型
5.2.2 面向對象分析的過程
5.3用例分析建立功能模型
5.3.1 用例分析的步驟
5.3.2 確定系統(tǒng)邊界和參與者
5.3.3 建立場景和用例
5.3.4 定義關系和建立用例圖
5.3.5 用戶界面草案
5.3.6 系統(tǒng)用例的優(yōu)先級處理
5.4 建立對象模型
5.4.1 確定類與對象
5.4.2 定義屬性與服務
5.4.3 定義關系和建立類圖
5.5 建立動態(tài)模型
5.5.1 畫順序圖
5.5.2 畫協(xié)作圖
5.5.3 畫狀態(tài)圖
5.5.4 畫活動圖
本章小結
習題
第6章 面向對象的軟件設計與實現(xiàn)
6.1 面向對象軟件設計概述
6.1.1 面向對象設計的目標
6.1.2 面向對象設計的模型
6.2 系統(tǒng)設計
6.2.1 系統(tǒng)設計的主要內容
6.2.2 系統(tǒng)頂層架構的選擇
6.2.3 系統(tǒng)設計的分層模式
6.3詳細設計
6.3.1 詳細設計的主要內容
6.3.2 問題域子系統(tǒng)設計
6.3.3 人機交互子系統(tǒng)設計
6.3.4 任務管理子系統(tǒng)設計
6.3.5 數(shù)據(jù)管理子系統(tǒng)設計
6.3.6 設計優(yōu)化
6.4 面向對象的編碼
6.4.1 程序設計語言的特點
6.4.2 程序設計語言的選擇
6.4.3 編碼的風格與準則
6.4 A.類的實現(xiàn)
6.4.5 泛化和聚合關系的實現(xiàn)
6.4.6 關聯(lián)關系的實現(xiàn)
6.4.7 依賴關系的實現(xiàn)
……
第7章 軟件測試技術
第8章 軟件配置與軟件維護
第9章 質量保證與軟件工程標準化
第10章 軟件項目管理
參考文獻
(5)一致性。保持軟件系統(tǒng)中模塊、接口等各個部分在概念、定義、操作的一致性,避免產(chǎn)生異義和歧義。
(6)完備性。軟件系統(tǒng)不丟失任何有效成員,保持軟件功能在需求規(guī)范中的完整性。
(7)可驗證性。在“自頂向下,逐步求精”的分解過程中,對所有分解得到的模塊,必須易于檢查、測試和評審。
1.2.3軟件工程學研究的內容
從20世紀70年代軟件工程學科創(chuàng)立以來,人們不斷地總結軟件工程研究的成果,形成了一門新興的學科一軟件工程學。這是一個跨學科、跨領域、范圍廣泛的新興學科,是計算機軟件理論研究的前沿和核心之一,是當前一個十分活躍的研究方向。
軟件工程學研究的內容包含三個方面:軟件工程理論、軟件工程方法學、軟件工程管理。
(1)軟件工程理論:程序正確性證明、軟件可靠性理論、成本估計模型、軟件開發(fā)模型等。
(2)軟件工程方法學:是研究軟件開發(fā)方法的學科,包括以下三個方面:
①方法:完成軟件開發(fā)各項任務的技術方法;卮稹凹夹g上如何做”的問題。
②工具:為方法的應用提供自動或半自動的軟件支撐環(huán)境和軟件工具。
⑨過程:為了獲得高質量軟件而需要執(zhí)行的一系列任務的框架(開發(fā)模型)和工作步驟;卮?怎么做才能做好”的問題。
(3)軟件工程管理:所謂管理就是通過計劃、組織和控制等一系列活動,合理地配置和使用各種資源,以達到既定目標的過程。管理技術包括:軟件質量管理、軟件項目管理、軟件經(jīng)濟等。1。2.4軟件開發(fā)方法簡述
20世紀60年代中期爆發(fā)了眾所周知的軟件危機。為了克服這一危機,在1968年和1969年連續(xù)召開的兩次著名的NATO會議上提出了軟件工程這一術語,并在以后不斷發(fā)展并完善。與此同時,軟件研究人員也在不斷探索新的軟件開發(fā)方法,至今已形成多種軟件開發(fā)方法,簡要介紹如下。
1.Parnas方法
最早的軟件開發(fā)方法是由D.Pamas在1972年提出的。由于當時軟件在可維護性和可靠性方面存在著嚴重問題,因此Parnas針對這兩個問題提出了以下兩個原則:
(1)信息隱蔽原則。在概要設計時列出將來可能發(fā)生變化的因素,并在模塊劃分時將這些因素放到個別模塊的內部。這樣,在將來由于這些因素變化而需修改軟件時,只需修改這些個別的模塊,其他模塊不受影響。
(2)在軟件設計時應對可能發(fā)生的種種意外故障采取措施。軟件是很脆弱的,很可能因為一個微小的錯誤而引發(fā)嚴重的事故,所以必須加強防范。如在分配使用設備前,應該讀取設備狀態(tài)字,檢查設備是否正常。此外,模塊之間也要加強檢查,防止錯誤蔓延。