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