21世紀(jì)高等學(xué)校規(guī)劃教材:軟件工程
定 價(jià):39.5 元
- 作者:尤志寧 ,等 著
- 出版時(shí)間:2010/8/1
- ISBN:9787302226802
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP311.5
- 頁(yè)碼:444
- 紙張:膠版紙
- 版次:1
- 開本:16開
《軟件工程》在軟件工程的知識(shí)域組織方面參考了IEEE和ACM提出的“軟件工程的知識(shí)體系(SWEBOK)”的基本框架,比較全面、系統(tǒng)地反應(yīng)了軟件工程的全貌,從理論與實(shí)踐的視角介紹了軟件工程的基本原理、概念和技術(shù)方法。全書共18章,在內(nèi)容結(jié)構(gòu)上可分為軟件工程與項(xiàng)目管理、結(jié)構(gòu)化開發(fā)方法、面向?qū)ο蟮拈_發(fā)方法及軟件工程高級(jí)專題4個(gè)部分。在每章后面都附有思考與練習(xí)題,供讀者復(fù)習(xí)鞏固之用。
《軟件工程》汲取了國(guó)內(nèi)外軟件工程的精華,并融人了作者多年在教學(xué)與科研過(guò)程中對(duì)軟件工程的理解與經(jīng)驗(yàn)總結(jié)。在內(nèi)容上既兼顧了傳統(tǒng)、實(shí)用的軟件開發(fā)方法,又引入了軟件工程領(lǐng)域比較新穎的技術(shù)和方法,并結(jié)合一個(gè)貫穿全書的具體案例加以介紹!盾浖こ獭返牧硪粋(gè)特點(diǎn)是介紹了許多軟件工程度量與估算的技術(shù)與方法,突出了軟件工程學(xué)科工程化、可度量的特點(diǎn)。
《軟件工程》可作為計(jì)算機(jī)相關(guān)專業(yè)本科生或研究生的教材,同時(shí)也可作為軟件工程領(lǐng)域?qū)I(yè)人員的參考書。
《軟件工程》特色:內(nèi)容涵蓋軟件工程理論與實(shí)踐的最新發(fā)展,以具體案例為驅(qū)動(dòng),貫穿結(jié)構(gòu)化方法與面向?qū)ο蠓椒ǖ娜^(guò)程,軟件項(xiàng)目管理內(nèi)容符合美國(guó)項(xiàng)目管理學(xué)會(huì)(PMI)的主要體系框架,軟件度量使軟件工程成為可量化的學(xué)科。
面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)技術(shù)是當(dāng)前主流的程序設(shè)計(jì)技術(shù)。和傳統(tǒng)的面向過(guò)程的程序設(shè)計(jì)技術(shù)相比,面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)具有明顯的優(yōu)勢(shì)。這種優(yōu)勢(shì)主要體現(xiàn)在以下幾個(gè)方面:
(1) 傳統(tǒng)的面向過(guò)程的程序設(shè)計(jì)方法忽略了數(shù)據(jù)和操作之間的內(nèi)在聯(lián)系,程序中的數(shù)據(jù)和操作它們的方法分離,而面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)將程序要處理的數(shù)據(jù)和處理它們的方法封裝在一起,構(gòu)成一個(gè)統(tǒng)一體——對(duì)象。程序中用對(duì)象模型來(lái)建,F(xiàn)實(shí)世界中的事物。這樣就使得空間模型的結(jié)構(gòu)和問(wèn)題空間模型的結(jié)構(gòu)相一致。使用面向?qū)ο蟮姆椒ń鉀Q問(wèn)題的思路更加符合人類一貫的思維方法。
(2) 面向?qū)ο蟮姆庋b技術(shù)為程序提供了更好的數(shù)據(jù)安全性。
(3) 面向?qū)ο蟮睦^承技術(shù)為程序提供了更好的可重用性。
(4) 面向?qū)ο蟮亩鄳B(tài)調(diào)用技術(shù)使程序具有更好的可擴(kuò)展性。
(5) 和傳統(tǒng)的面向過(guò)程的程序設(shè)計(jì)方法相比,面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)更適合開發(fā)大型的圖形界面應(yīng)用程序。
目前,常用的面向?qū)ο蟮木幊陶Z(yǔ)言有C++、Java、C#等。
C++語(yǔ)言是由C語(yǔ)言發(fā)展演變成的一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。它既具備C語(yǔ)言面向過(guò)程設(shè)計(jì)方法的特點(diǎn),同時(shí)又支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。它是目前程序員使用最多的編程語(yǔ)言之一。
本書以C++語(yǔ)言為基礎(chǔ),闡述面向?qū)ο蟮木幊淘怼1緯奶厣莾?nèi)容全面、語(yǔ)言簡(jiǎn)潔易懂、重點(diǎn)突出,是一部面向大學(xué)本科計(jì)算機(jī)科學(xué)相關(guān)專業(yè)的入門教材。
為了使讀者能夠透徹理解面向?qū)ο缶幊痰脑砗头椒,本書使用了大量自編的例程。全部例程的源代碼均使用Visual C++ 6.0編寫,并編譯通過(guò)。
本書由董正言主編,張聰、劉文濤、阮靈等老師也參加了部分章節(jié)的編寫工作。
由于學(xué)識(shí)水平和時(shí)間的限制,疏漏和不妥之處在所難免,敬請(qǐng)批評(píng)指正。
作者
2010年5月
第1章 軟件工程概述
1.1 軟件的定義與特點(diǎn)
1.1.1 什么是軟件
1.1.2 軟件的特點(diǎn)與本質(zhì)
1.1.3 “沒有銀彈”——復(fù)雜性是“軟件危機(jī)”的本質(zhì)原因
1.2 軟件工程的定義及研究的內(nèi)容
1.2.1 科學(xué)、工程與技術(shù)的界定
1.2.2 軟件工程的定義與原理
1.2.3 軟件工程的3個(gè)要素
1.2.4 軟件開發(fā)方法——對(duì)客觀世界的認(rèn)知觀
1.2.5 軟件工程與相關(guān)科學(xué)的關(guān)系
1.3 軟件工程的教育與知識(shí)體系
1.3.1 軟件工程的教育體系
1.3.2 CC2005的4個(gè)方向?qū)I(yè)規(guī)范
1.3.3 軟件工程的知識(shí)體系——SWEBOK
1.4 軟件工程的標(biāo)準(zhǔn)
1.4.1 軟件工程標(biāo)準(zhǔn)化的意義
1.4.2 軟件工程的國(guó)際標(biāo)準(zhǔn)與體系
1.4.3 國(guó)家標(biāo)準(zhǔn)
1.5 計(jì)算機(jī)輔助軟件工程
1.6 軟件工程人員的職業(yè)道德與行為準(zhǔn)則
本章小結(jié)
思考與練習(xí)
第2章 軟件過(guò)程
2.1 軟件過(guò)程
2.1.1 過(guò)程及其特征
2.1.2 軟件過(guò)程的公共框架
2.2 軟件過(guò)程模型
2.2.1 理解軟件過(guò)程模型
2.2.2 瀑布模型
2.2.3 演化軟件過(guò)程模型
2.2.4 快速原型開發(fā)方法
2.2.5 統(tǒng)一軟件過(guò)程
2.2.6 核心工作流
2.2.7 形式化方法模型
2.2.8 軟件復(fù)用一一基于構(gòu)件的開發(fā)方法
2.2.9 第4代技術(shù)
2.2.10微軟公司的軟件過(guò)程模型
2.3 軟件過(guò)程改進(jìn)
2.3.1 軟件能力成熟度模型——CMM與CMMI
2.3 CMM/CMMI的應(yīng)用及面臨的問(wèn)題
2.3.3 個(gè)體軟件過(guò)程
2.3.4 團(tuán)隊(duì)軟件過(guò)程
2.3.5 CMM、TSP、PSP三者的關(guān)系
本章小結(jié)
思考與練習(xí)
第3章 軟件工程領(lǐng)域下的項(xiàng)目管理
3.1 項(xiàng)目管理的歷史實(shí)踐
3.1.1 遠(yuǎn)古的偉大工程實(shí)踐
3.1.2 溝通的故事——巴比倫塔的倒塌
3.2 軟件項(xiàng)目管理的范圍與內(nèi)容
3.2.1 什么是項(xiàng)目管理
3.2.2 軟件項(xiàng)目管理的范圍
3.2.3 人員
3.2.4 產(chǎn)品
3.2.5 過(guò)程
3.2.6 項(xiàng)目
3.3 軟件項(xiàng)目管理的活動(dòng)一一從這里開始
3.3.1 軟件項(xiàng)目管理的活動(dòng)概述
3.3.2 項(xiàng)目溝通與需求管理
3.3.3 軟件項(xiàng)目計(jì)劃的制定
3.3.4 項(xiàng)目范圍與管理
3.3.5 3-:作分解結(jié)構(gòu)
3.3.6 軟件項(xiàng)目的組織
3.4 項(xiàng)目進(jìn)度管理
3.4.1 項(xiàng)目里程碑
3.4.2 人員與工作量分配
3.4.3 項(xiàng)目進(jìn)度管理的可視化工具
3.4.4 項(xiàng)目管理軟件及其功能
本章小結(jié)
思考與練習(xí)
第4章 軟件項(xiàng)目估算
4.1 軟件項(xiàng)目估算概述
4.1.1 什么是估算
4.1.2 軟件項(xiàng)目估算的特點(diǎn)
4.1.3 軟件項(xiàng)目估算的復(fù)雜性分析
4.1.4 軟件項(xiàng)目估算的相關(guān)內(nèi)容
4.2 項(xiàng)目規(guī)模估算
4.2.1 基于代碼行的規(guī)模估算
4.2.2 功能點(diǎn)估算
4.2.3 基于計(jì)劃評(píng)審技術(shù)的規(guī)模估算
4.3 工作量估算
4.3.1 用代碼行與功能點(diǎn)估算工作量的例子
4.3.2 基于數(shù)學(xué)模型的工作量估算
4.3.3 COCOMO模型
4.3.4 COCOMOⅡ模型
4.3.5 Putnam模型
4.4 軟件成本估算
4.4.1 軟件項(xiàng)目成本的組成
4.4.2 軟件成本的估算方法
4.4.3 估算技術(shù)的應(yīng)用與評(píng)價(jià)
4.5 項(xiàng)目進(jìn)度估算
4.5.1 三點(diǎn)估算方法
4.5.2 項(xiàng)目進(jìn)度獲取值分析——項(xiàng)目計(jì)劃與實(shí)際進(jìn)展的定量比較
4.6 軟件工程經(jīng)濟(jì)學(xué)
4.6.1 經(jīng)濟(jì)學(xué)與工程經(jīng)濟(jì)學(xué)
4.6.2 軟件工程經(jīng)濟(jì)學(xué)研究的基本問(wèn)題
4.6.3 資金的時(shí)間價(jià)值
4.6.4 軟件工程經(jīng)濟(jì)學(xué)中的成本效益評(píng)價(jià)技術(shù)
本章小結(jié)
思考與練習(xí)
第5章 軟件質(zhì)量管理
5.1 軟件質(zhì)量及其特性
5.1.1 難以定義和度量的軟件質(zhì)量
5.1.2 軟件質(zhì)量特性
5.1.3 軟件質(zhì)量保證及其活動(dòng)
5.2 軟件配置管理
5.2.1 制定項(xiàng)目的配置計(jì)劃
5.2.2 軟件配置項(xiàng)及其標(biāo)識(shí)
5.2.3 版本控制
5.2.4 變更控制
5.2.5 正式技術(shù)復(fù)審
本章小結(jié)
思考與練習(xí)
第6章 軟件風(fēng)險(xiǎn)管理
6.1 軟件項(xiàng)目的風(fēng)險(xiǎn)管理
6.1.1 風(fēng)險(xiǎn)與項(xiàng)目風(fēng)險(xiǎn)
6.1.2 軟件項(xiàng)目風(fēng)險(xiǎn)與管理
6.1.3 軟件風(fēng)險(xiǎn)的定義
6.1.4 軟件風(fēng)險(xiǎn)的類型
6.2 軟件風(fēng)險(xiǎn)管理的體系框架
6.2.1 常見風(fēng)險(xiǎn)管理過(guò)程框架
6.2.2 軟件風(fēng)險(xiǎn)管理的一般過(guò)程
6.3 風(fēng)險(xiǎn)識(shí)別
6.3.1 風(fēng)險(xiǎn)識(shí)別過(guò)程
6.3.2 風(fēng)險(xiǎn)識(shí)別的方法與工具
6.4 風(fēng)險(xiǎn)分析
6.4.1 風(fēng)險(xiǎn)分析過(guò)程
6.4.2 風(fēng)險(xiǎn)分析的技術(shù)與工具
6.5 風(fēng)險(xiǎn)規(guī)劃
6.5.1 風(fēng)險(xiǎn)規(guī)劃過(guò)程
6.5.2 風(fēng)險(xiǎn)規(guī)劃的工具與技術(shù)
6.6 風(fēng)險(xiǎn)監(jiān)控
6.6.1 風(fēng)險(xiǎn)監(jiān)控過(guò)程
6.6.2 風(fēng)險(xiǎn)監(jiān)控的技術(shù)與方法
6.6.3 風(fēng)險(xiǎn)監(jiān)控與管理計(jì)劃——RMMM計(jì)劃
本章小結(jié)
思考與練習(xí)
第2篇 結(jié)構(gòu)化開發(fā)方法
第7章 面向過(guò)程的結(jié)構(gòu)化分析
7.1 系統(tǒng)工程
……
第3篇 面向?qū)ο蟮拈_發(fā)方法
第11章 面向?qū)ο蟾攀?br>第12章 面向?qū)ο蠓治?br>第13章 面向?qū)ο笤O(shè)計(jì)
第14章 面向?qū)ο鬁y(cè)試
第15章 面向?qū)ο笙到y(tǒng)的技術(shù)度量
第4篇 軟件工程高級(jí)專題
第16章 敏捷過(guò)程開發(fā)
第17章 Web工程
第18章 形式化方法
附錄A 軟件工程和知可視化表征
瀑布模型強(qiáng)調(diào)系統(tǒng)開發(fā)應(yīng)有完整的周期,且必須完整地經(jīng)歷周期中的每一個(gè)開發(fā)階段。由于該模式強(qiáng)調(diào)系統(tǒng)開發(fā)過(guò)程需有完整的規(guī)劃、分析、設(shè)計(jì)、測(cè)試及文件等管理與控制,因此能有效地確保系統(tǒng)品質(zhì),它已經(jīng)成為業(yè)界大多數(shù)軟件開發(fā)的標(biāo)準(zhǔn)。
“線性”是人們最容易掌握并能熟練應(yīng)用的思維方法。當(dāng)人們碰到一個(gè)復(fù)雜的“非線性”問(wèn)題時(shí),總是千方百計(jì)地將其分解或轉(zhuǎn)化為一系列簡(jiǎn)單的線性問(wèn)題,然后逐個(gè)解決。然而在實(shí)踐中,過(guò)程很少能夠以純線性的方式進(jìn)行。應(yīng)提倡以一種迭代的方式重復(fù)地使用瀑布模型,通過(guò)回到前面的階段或改變前一階段的結(jié)果的迭代是非常普遍的。但是,很多人忽視了這一點(diǎn)。
線性順序模型過(guò)程的缺點(diǎn)也是非常明顯的,主要有以下幾點(diǎn)。
。1)實(shí)際的項(xiàng)目很少按照該模型給出的順序進(jìn)行。
。2)項(xiàng)目初期用戶常常難以清楚地給出所有需求,而這恰恰是線性順序模型所必須給出的。
。3)用戶必須有耐心,程序的運(yùn)行版本要等到項(xiàng)目開發(fā)晚期才能得到。大的錯(cuò)誤如果到檢查運(yùn)行程序時(shí)才被發(fā)現(xiàn),后果可能是災(zāi)難性的。
。4)開發(fā)者常常被不必要地耽擱。項(xiàng)目組某些成員不得不等待組內(nèi)其他成員先完成其依賴的任務(wù)。
盡管如此,瀑布模型仍然是軟件工程中應(yīng)用最廣泛的過(guò)程模型。很顯然,它比起軟件開發(fā)中隨意的狀態(tài)要好得多。
2.2.3演化軟件過(guò)程模型
人們已經(jīng)越來(lái)越認(rèn)識(shí)到軟件就像所有復(fù)雜系統(tǒng)一樣要經(jīng)過(guò)一段時(shí)間的演化。業(yè)務(wù)和產(chǎn)品需求隨著開發(fā)的發(fā)展常常發(fā)生改變,想找到最終產(chǎn)品的一條直線路徑是不可能的。
演化模型是利用一種迭代的思想方法,它的特征是使軟件工程師漸進(jìn)地開發(fā)逐步完善的軟件版本。主要包括增量模型和螺旋模型兩種范型。