軟件工程教程

出版時(shí)間:2010-4  出版社:陳建明、王輝、 孫涌 機(jī)械工業(yè)出版社 (2010-04出版)  作者:孫涌,等 編  頁(yè)數(shù):332  

前言

自20世紀(jì)60年代末期創(chuàng)立以來(lái),軟件工程伴隨著計(jì)算機(jī)軟、硬件的快速發(fā)展,經(jīng)歷了從結(jié)構(gòu)化到面向?qū)ο蟮囊幌盗邪l(fā)展過(guò)程,并且已經(jīng)形成了若干工具、分支學(xué)科,目前軟件工程仍然是一個(gè)異?;钴S的研究領(lǐng)域。人們已經(jīng)認(rèn)識(shí)到,如果有哪個(gè)項(xiàng)目不遵循軟件工程原則,必定會(huì)受到實(shí)踐的懲罰。當(dāng)然,軟件工程學(xué)的研究范圍非常廣泛,包括技術(shù)方法、工具和管理等許多方面,新的技術(shù)方法和工具還在不斷涌現(xiàn)。 本書集合作者多年從事本科生和研究生軟件工程課程教學(xué)經(jīng)驗(yàn),在參考了大量國(guó)內(nèi)外教材與專著的基礎(chǔ)上,結(jié)合當(dāng)前大學(xué)軟件工程課程教學(xué)的實(shí)際要求和將來(lái)從事實(shí)際軟件開(kāi)發(fā)的相關(guān)情況而編寫。本教程作為蘇州大學(xué)首批精品課程建設(shè)計(jì)劃之一,是計(jì)算機(jī)專業(yè)的一門專業(yè)課。本教材雖然不可能包含軟件工程的全部?jī)?nèi)容,但卻是本著易懂、實(shí)用的原則并結(jié)合多年從事軟件工程教學(xué)、科研實(shí)踐編寫而成。另外考慮到軟件工程的發(fā)展,編入了一定量的現(xiàn)代軟件工程的概念、方法及技術(shù)。 在寫作過(guò)程中,本書重點(diǎn)關(guān)注了以下幾個(gè)方面: ?以實(shí)用為主的同時(shí),適當(dāng)加強(qiáng)理論的敘述,在相關(guān)章節(jié)中增加了一些形式化的內(nèi)容,便于更深入地學(xué)習(xí)軟件工程相關(guān)理論或指導(dǎo)實(shí)際的軟件項(xiàng)目開(kāi)發(fā)。 ?按照一般軟件產(chǎn)品(項(xiàng)目)開(kāi)發(fā)過(guò)程的順序進(jìn)行軟件工程內(nèi)容敘述,便于進(jìn)行相關(guān)實(shí)驗(yàn)或?qū)嵺`。 ?面向?qū)ο蠹夹g(shù)在突出統(tǒng)一建?;靖拍睢⒎椒ǖ耐瑫r(shí),強(qiáng)調(diào)建模與高級(jí)語(yǔ)言的結(jié)合與融合,避免了過(guò)程建模與具體實(shí)現(xiàn)脫節(jié)的問(wèn)題。這一點(diǎn)對(duì)于我國(guó)的學(xué)生尤為重要,其理由是我國(guó)當(dāng)前絕大部分學(xué)生認(rèn)為只有編寫代碼才能進(jìn)行軟件開(kāi)發(fā)。 ?對(duì)一些比較成熟的最新技術(shù)進(jìn)行了介紹,如設(shè)計(jì)模式、Web工程等。通過(guò)這部分內(nèi)容的學(xué)習(xí),既能夠與當(dāng)前實(shí)際開(kāi)發(fā)緊密結(jié)合,也可為將來(lái)繼續(xù)深化、研究起到一個(gè)入門的作用。 本書共15章。第1章概括介紹了軟件工程學(xué)的基本原理、概念和方法。第2章到第6章主要介紹了面向過(guò)程軟件工程生命周期順序的前幾個(gè)階段的任務(wù)、過(guò)程、方法和工具。第7章到第9章比較完整地介紹了面向?qū)ο蟮拈_(kāi)發(fā)方法。第10章到第13章介紹了軟件工程中面向過(guò)程及面向?qū)ο蟮能浖y(cè)試、維護(hù)、質(zhì)量保證及相關(guān)的過(guò)程、方法和工具。第15章較詳細(xì)地介紹了目前軟件工程的一些新技術(shù),包括敏捷軟件開(kāi)發(fā)、設(shè)計(jì)模式、軟件復(fù)用、Web工程等。 由于軟件工程這門課程涉及面廣,內(nèi)容豐富,發(fā)展迅速,所以我們?cè)谌〔姆矫?,既考慮保持傳統(tǒng)的內(nèi)容,又充分將軟件工程中的新技術(shù)、新發(fā)展融入其中。同時(shí),我們也兼顧到目前高校學(xué)生的實(shí)際情況,力爭(zhēng)做到取材合理、內(nèi)容新穎、理論為主、結(jié)合實(shí)際、重點(diǎn)突出、實(shí)用性強(qiáng)。 根據(jù)多年從事軟件開(kāi)發(fā)和軟件工程課程教學(xué)的經(jīng)驗(yàn)和體會(huì),作者認(rèn)為:軟件工程這門課程的特點(diǎn)在于:它看似簡(jiǎn)單,大部分內(nèi)容是敘述性的,但要真正掌握好并運(yùn)用好,絕非易事!特別是軟件工程的思想、方法、理論、技術(shù)等貫穿整個(gè)軟件產(chǎn)品(項(xiàng)目)開(kāi)發(fā)的始終,這是任何一門課程所無(wú)法替代的。它既有宏觀的一面,又有微觀、具體的一面,同時(shí)還與諸多學(xué)科相關(guān)聯(lián)。在此,希望廣大學(xué)生與讀者,能夠在學(xué)習(xí)本書內(nèi)容的同時(shí),將相關(guān)知識(shí)與一個(gè)實(shí)際項(xiàng)目結(jié)合,哪怕是非常小的項(xiàng)目,只有這樣,才有可能真正學(xué)好軟件工程。 本書由孫涌主編,陳建明、王輝參編。全書完稿后,由孫涌進(jìn)行統(tǒng)稿和整理工作。 在本書的編寫過(guò)程中,感謝王璁偉、房鵬、王晉、姜曉猛、沈文超、葛小培、陳祥榮、耿勝恩等同學(xué)為之付出的辛勤勞動(dòng),同時(shí)還要感謝機(jī)械工業(yè)出版社的編輯們對(duì)本書出版給予的支持。 由于時(shí)間倉(cāng)促,加之作者水平有限,書中難免存在不足和疏漏之處,敬請(qǐng)廣大讀者不吝賜教。

內(nèi)容概要

  《軟件工程教程》全面系統(tǒng)地介紹了軟件工程的有關(guān)概念、原則、方法和工具。全書共15章,內(nèi)容包括:軟件工程中面向過(guò)程、面向?qū)ο蟮拈_(kāi)發(fā)方法,技術(shù)度量,質(zhì)量保證,軟件項(xiàng)目計(jì)劃與管理,用統(tǒng)一建模語(yǔ)言UML開(kāi)發(fā)軟件的方法等。另外,還對(duì)設(shè)計(jì)模式、敏捷軟件開(kāi)發(fā)、Web工程等軟件工程相關(guān)領(lǐng)域進(jìn)行了介紹和討論?!盾浖こ探坛獭芳茸⒅乜茖W(xué)性和系統(tǒng)性,又注重實(shí)用性和新穎性?!  盾浖こ探坛獭房勺鳛榇髮W(xué)計(jì)算機(jī)及相關(guān)專業(yè)本(專)科學(xué)生的教材或教學(xué)參考書,也可作為研究生的參考教材。

書籍目錄

出版者的話 前言 教學(xué)建議 第1章 軟件工程概述 1 1.1 軟件發(fā)展和軟件危機(jī) 1 1.1.1 軟件的定義和發(fā)展 1 1.1.2 軟件危機(jī)過(guò)程 2 1.2 軟件工程學(xué)的范疇 5 1.3 軟件開(kāi)發(fā)的生命周期 5 1.4 傳統(tǒng)軟件工程和面向?qū)ο筌浖こ?7 1.5 軟件的特點(diǎn) 10 1.6 軟件工程的基本目標(biāo) 11 小結(jié) 12 習(xí)題 12 第2章 軟件生命周期過(guò)程模型 13 2.1 過(guò)程及軟件生命周期 13 2.2 軟件過(guò)程模型 14 2.2.1 瀑布模型 15 2.2.2 具有原型化的瀑布模型 17 2.3 演化過(guò)程模型 18 2.3.1 原型化模型 18 2.3.2 螺旋模型 19 2.3.3 操作說(shuō)明模型 20 2.4 增量過(guò)程模型 21 2.4.1 RAD模型 21 2.4.2 增量和迭代模型 22 2.5 其他類型的過(guò)程模型 23 2.5.1 噴泉模型 23 2.5.2 智能模型 24 2.5.3 V模型 25 2.5.4 變換模型 25 小結(jié) 26 習(xí)題 26 第3章 需求分析 27 3.1 需求分析的任務(wù) 27 3.1.1 需求定義 27 3.1.2 需求的層次 28 3.1.3 需求的開(kāi)發(fā)與管理 28 3.2 需求獲取技術(shù) 30 3.2.1 需求分析人員的組成 30 3.2.2 需求的類型 30 3.2.3 獲取需求的途徑 31 3.3 需求規(guī)格說(shuō)明書 36 3.3.1 需求說(shuō)明的目的 36 3.3.2 需求說(shuō)明的方法 36 3.4 需求描述技術(shù) 36 3.4.1 結(jié)構(gòu)化技術(shù) 36 3.4.2 形式化技術(shù) 40 3.5 需求驗(yàn)證 48 小結(jié) 49 習(xí)題 49 第4章 概要設(shè)計(jì) 51 4.1 概要設(shè)計(jì)的概念 51 4.1.1 概要設(shè)計(jì)的目標(biāo)和任務(wù) 51 4.1.2 概要設(shè)計(jì)的過(guò)程 53 4.1.3 概要設(shè)計(jì)的工具 53 4.2 模塊獨(dú)立性 55 4.2.1 模塊化 55 4.2.2 模塊的耦合性 56 4.2.3 模塊的內(nèi)聚性 60 4.3 結(jié)構(gòu)化設(shè)計(jì)方法 63 4.3.1 概念 63 4.3.2 變換分析 66 4.3.3 事務(wù)分析 68 4.3.4 設(shè)計(jì)的后處理 69 4.4 數(shù)據(jù)設(shè)計(jì) 70 4.4.1 數(shù)據(jù)設(shè)計(jì)的原則 70 4.4.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 71 4.4.3 文件設(shè)計(jì) 71 4.4.4 數(shù)據(jù)庫(kù)設(shè)計(jì) 72 小結(jié) 73 習(xí)題 73 第5章 詳細(xì)設(shè)計(jì) 74 5.1 詳細(xì)設(shè)計(jì)的任務(wù) 74 5.2 詳細(xì)設(shè)計(jì)的方法 75 5.2.1 設(shè)計(jì)表示法 75 5.2.2 結(jié)構(gòu)化程序設(shè)計(jì) 77 5.2.3 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì) 80 5.2.4 詳細(xì)設(shè)計(jì)文檔與復(fù)審 85 小結(jié) 90 習(xí)題 91 第6章 編碼與語(yǔ)言選擇 92 6.1 編碼的目的和任務(wù) 92 6.2 編碼所使用的語(yǔ)言 93 6.2.1 程序設(shè)計(jì)語(yǔ)言范型 93 6.2.2 程序設(shè)計(jì)語(yǔ)言的發(fā)展 94 6.2.3 常用的編碼語(yǔ)言 96 6.2.4 編碼語(yǔ)言的選擇 98 6.3 編碼的風(fēng)格 99 小結(jié) 103 習(xí)題 103 第7章 面向?qū)ο蠓椒?104 7.1 面向?qū)ο蟮幕靖拍?104 7.1.1 對(duì)象 104 7.1.2 類與消息 105 7.1.3 類的基本特征 106 7.2 面向?qū)ο蟮拈_(kāi)發(fā)方法 106 7.2.1 概述 107 7.2.2 面向?qū)ο蠓椒ǖ陌l(fā)展歷程 107 7.2.3 常用的面向?qū)ο蠓治龅姆椒?108 7.3 面向?qū)ο蟮脑O(shè)計(jì) 111 7.3.1 面向?qū)ο笤O(shè)計(jì)概述 111 7.3.2 底層設(shè)計(jì)—類的設(shè)計(jì) 118 7.3.3 OOD的Yourdon的方法 120 7.3.4 Booch的方法 125 7.3.5 系統(tǒng)的設(shè)計(jì)過(guò)程 126 小結(jié) 129 習(xí)題 129 第8章 統(tǒng)一建模語(yǔ)言 130 8.1 統(tǒng)一建模語(yǔ)言簡(jiǎn)介 130 8.1.1 發(fā)展歷史 130 8.1.2 UML簡(jiǎn)介 131 8.1.3 UML視圖簡(jiǎn)介 132 8.1.4 視圖 132 8.1.5 UML類、構(gòu)件、部署和協(xié)作圖 中的圖標(biāo) 133 8.1.6 擴(kuò)展組件 134 8.1.7 各種視圖間的關(guān)系 134 8.2 概念與視圖 135 8.2.1 靜態(tài)視圖 135 8.2.2 用例圖 136 8.2.3 交互視圖 136 8.2.4 狀態(tài)圖 138 8.2.5 活動(dòng)視圖 139 8.2.6 物理視圖 140 8.2.7 模型管理視圖 142 8.3 UML與Java的對(duì)應(yīng)關(guān)系 143 8.3.1 表示結(jié)構(gòu) 143 8.3.2 表示關(guān)系 145 8.4 統(tǒng)一建模語(yǔ)言的綜合應(yīng)用 149 8.4.1 項(xiàng)目概述 149 8.4.2 靜態(tài)分析和設(shè)計(jì) 150 8.4.3 持久對(duì)象設(shè)計(jì) 151 8.4.4 動(dòng)態(tài)對(duì)象設(shè)計(jì) 152 8.4.5 通用接口設(shè)計(jì) 154 8.4.6 體系結(jié)構(gòu)設(shè)計(jì) 157 小結(jié) 159 習(xí)題 160 第9章 統(tǒng)一軟件過(guò)程 161 9.1 軟件開(kāi)發(fā)過(guò)程 161 9.2 迭代和遞增 162 9.3 核心工作流 162 9.3.1 需求流 162 9.3.2 分析流 164 9.3.3 設(shè)計(jì)流 166 9.3.4 實(shí)現(xiàn)流 167 9.3.5 測(cè)試流 168 9.3.6 交付后維護(hù) 170 9.3.7 退役 170 9.4 統(tǒng)一過(guò)程的各階段 171 9.4.1 開(kāi)始階段 171 9.4.2 細(xì)化階段 173 9.4.3 構(gòu)建階段 173 9.4.4 轉(zhuǎn)換階段 174 9.5 二維生命周期模型 174 小結(jié) 174 習(xí)題 174 第10章 軟件測(cè)試 176 10.1 軟件測(cè)試概述 176 10.1.1 軟件測(cè)試的目標(biāo) 176 10.1.2 軟件測(cè)試的原則 177 10.1.3 軟件測(cè)試的方法 178 10.1.4 軟件測(cè)試與軟件開(kāi)發(fā)各階段的 關(guān)系 178 10.1.5 測(cè)試信息流 179 10.1.6 錯(cuò)誤分類 179 10.2 軟件測(cè)試過(guò)程與策略 182 10.2.1 單元測(cè)試 182 10.2.2 集成測(cè)試 183 10.2.3 確認(rèn)測(cè)試 186 10.2.4 平行運(yùn)行 187 10.3 設(shè)計(jì)測(cè)試方案 187 10.3.1 邏輯覆蓋 188 10.3.2 等價(jià)劃分 191 10.3.3 邊界值分析 194 10.3.4 錯(cuò)誤推測(cè) 194 10.3.5 實(shí)用測(cè)試策略 195 10.4 糾錯(cuò) 198 10.5 對(duì)OOA和OOD模型的測(cè)試 200 10.5.1 擴(kuò)大測(cè)試的視角 201 10.5.2 測(cè)試OOA和OOD模型 201 10.6 面向?qū)ο蟮臏y(cè)試策略 203 10.6.1 在OO語(yǔ)境中的單元測(cè)試 203 10.6.2 在OO語(yǔ)境中的集成測(cè)試 203 10.6.3 在OO語(yǔ)境中的有效性測(cè)試 204 10.7 OO軟件的測(cè)試用例設(shè)計(jì) 204 10.7.1 OO概念的測(cè)試用例設(shè)計(jì)的 含義 204 10.7.2 傳統(tǒng)測(cè)試用例設(shè)計(jì)方法的 可用性 204 10.7.3 基于故障的測(cè)試 205 10.7.4 OO編程對(duì)測(cè)試的影響 205 10.7.5 測(cè)試用例和類層次 206 10.7.6 基于場(chǎng)景的測(cè)試設(shè)計(jì) 206 10.7.7 測(cè)試表層結(jié)構(gòu)和深層結(jié)構(gòu) 207 10.8 其他專門環(huán)境要求的測(cè)試 208 10.8.1 GUI測(cè)試 208 10.8.2 測(cè)試文檔和幫助設(shè)施 209 10.8.3 實(shí)時(shí)系統(tǒng)測(cè)試 210 小結(jié) 211 習(xí)題 211 第11章 軟件維護(hù) 213 11.1 系統(tǒng)的變化 213 11.1.1 系統(tǒng)的類型 214 11.1.2 系統(tǒng)生命周期中的變化 215 11.1.3 系統(tǒng)的生命范圍 216 11.2 軟件維護(hù)的基本內(nèi)容和特點(diǎn) 218 11.2.1 軟件維護(hù)概述 218 11.2.2 軟件維護(hù)的特點(diǎn) 219 11.2.3 維護(hù)中的問(wèn)題 220 11.3 軟件維護(hù)的實(shí)施 221 11.3.1 軟件維護(hù)的過(guò)程 221 11.3.2 軟件維護(hù)的技術(shù) 224 11.4 軟件的可維護(hù)性 224 11.4.1 軟件可維護(hù)性概述 225 11.4.2 軟件可維護(hù)性度量 225 11.4.3 提高可維護(hù)性的方法 225 11.5 軟件維護(hù)的副作用 226 11.5.1 代碼副作用 226 11.5.2 數(shù)據(jù)副作用 227 11.5.3 文檔副作用 227 11.6 軟件再工程 227 11.6.1 軟件再工程的過(guò)程 227 11.6.2 軟件再工程的方法 228 小結(jié) 228 習(xí)題 229 第12章 軟件質(zhì)量及其管理 230 12.1 軟件質(zhì)量的概念及屬性 230 12.1.1 軟件質(zhì)量概述 230 12.1.2 軟件質(zhì)量的屬性 230 12.2 軟件質(zhì)量保證與控制 231 12.2.1 軟件質(zhì)量保證概述 232 12.2.2 軟件質(zhì)量保證計(jì)劃 232 12.2.3 軟件質(zhì)量成本 234 12.2.4 軟件質(zhì)量控制 234 12.3 軟件質(zhì)量度量 235 12.3.1 軟件質(zhì)量度量概述 235 12.3.2 質(zhì)量度量模型 235 12.3.3 三種度量模型的比較 236 12.3.4 軟件質(zhì)量評(píng)價(jià) 238 12.4 軟件可靠性 238 12.4.1 基本概念 238 12.4.2 影響軟件可靠性的因素 239 12.4.3 軟件可靠性模型 240 12.4.4 軟件可靠性工程 242 12.5 CMM:軟件能力成熟度模型 242 12.5.1 CMM的發(fā)展 242 12.5.2 基本概念 243 12.5.3 SW-CMM的用途 243 12.5.4 CMM的五個(gè)等級(jí) 244 12.5.5 CMM的內(nèi)部結(jié)構(gòu) 246 12.5.6 采用CMM的意義 248 小結(jié) 249 習(xí)題 249 第13章 軟件項(xiàng)目管理 250 13.1 項(xiàng)目管理的概念 250 13.1.1 項(xiàng)目管理過(guò)程 250 13.1.2 項(xiàng)目管理的范圍 251 13.1.3 項(xiàng)目管理中的資源 251 13.2 可行性研究 252 13.2.1 可行性研究的任務(wù)和過(guò)程 252 13.2.2 技術(shù)可行性研究 253 13.2.3 經(jīng)濟(jì)可行性研究 254 13.2.4 運(yùn)行可行性研究 256 13.3 軟件項(xiàng)目估算 257 13.3.1 代碼行技術(shù) 257 13.3.2 功能點(diǎn)技術(shù) 257 13.4 軟件開(kāi)發(fā)成本估算 260 13.4.1 軟件開(kāi)發(fā)成本估算方法 260 13.4.2 專家判定技術(shù) 260 13.4.3 軟件開(kāi)發(fā)成本估算的早期經(jīng)驗(yàn) 模型 261 13.5 進(jìn)度安排 264 13.5.1 軟件開(kāi)發(fā)小組人數(shù)與軟件 生產(chǎn)率 264 13.5.2 任務(wù)的確定與并行性 264 13.5.3 制定開(kāi)發(fā)進(jìn)度計(jì)劃 265 13.5.4 項(xiàng)目的追蹤和控制 265 13.6 人員組織 266 13.6.1 民主制程序員組 266 13.6.2 主程序員組 267 13.6.3 現(xiàn)代程序員組 268 13.7 軟件風(fēng)險(xiǎn)管理 269 13.7.1 風(fēng)險(xiǎn)識(shí)別 269 13.7.2 風(fēng)險(xiǎn)估計(jì) 271 13.7.3 風(fēng)險(xiǎn)評(píng)價(jià) 272 13.7.4 風(fēng)險(xiǎn)駕馭和監(jiān)控 273 13.8 軟件配置管理 274 13.8.1 軟件配置 274 13.8.2 軟件配置管理過(guò)程 275 小結(jié) 276 習(xí)題 276 第14章 CASE環(huán)境與工具 278 14.1 工程環(huán)境 278 14.1.1 軟件開(kāi)發(fā)環(huán)境的特點(diǎn) 278 14.1.2 理想環(huán)境的模型 280 14.1.3 CASE環(huán)境簡(jiǎn)介 280 14.2 CASE環(huán)境的組成與結(jié)構(gòu) 281 14.2.1 CASE的組成構(gòu)件 281 14.2.2 CASE的一般結(jié)構(gòu) 283 14.3 CASE環(huán)境工具與實(shí)踐 284 14.3.1 CASE軟件工程實(shí)踐 284 14.3.2 常用CASE工具介紹 285 14.4 逐步求精 287 小結(jié) 290 習(xí)題 290 第15章 軟件工程新技術(shù)概述 292 15.1 敏捷軟件開(kāi)發(fā)過(guò)程 292 15.1.1 敏捷的概念 293 15.1.2 敏捷過(guò)程的含義 293 15.1.3 敏捷過(guò)程模型 295 15.2 設(shè)計(jì)模式 302 15.2.1 設(shè)計(jì)模式的基本概念 302 15.2.2 關(guān)系環(huán)與組合模式 303 15.2.3 工廠模式 306 15.2.4 觀察者模式與拉推數(shù)據(jù) 315 15.3 Web工程簡(jiǎn)介 320 15.3.1 Web系統(tǒng)和應(yīng)用特點(diǎn) 320 15.3.2 Web工程的層次 321 15.3.3 Web分析 322 15.3.4 Web設(shè)計(jì) 323 15.3.5 Web測(cè)試 324 15.3.6 Web的項(xiàng)目管理 328 小結(jié) 330 習(xí)題 330 參考文獻(xiàn) 331

章節(jié)摘錄

插圖:做好軟件定義階段的工作,是降低軟件開(kāi)發(fā)成本并提高軟件質(zhì)量的關(guān)鍵。如果軟件開(kāi)發(fā)人員在定義階段沒(méi)有正確全面地理解用戶需求,直到測(cè)試階段或軟件交付使用后才發(fā)現(xiàn)“已完成的”軟件不完全符合用戶的需要,這時(shí)再修改就為時(shí)已晚了。嚴(yán)重的問(wèn)題是,在軟件開(kāi)發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不相同的,在早期引入變動(dòng),涉及的面較少,因而代價(jià)也比較低。而在開(kāi)發(fā)的中期軟件配置的許多部分已經(jīng)完成,引入一個(gè)變動(dòng)要對(duì)所有已完成的配置部分都做相應(yīng)的修改,不僅工作量大,而且邏輯上也更復(fù)雜,因此付出的代價(jià)劇增。在軟件“已經(jīng)完成”時(shí)再引入變動(dòng),當(dāng)然需要付出更高的代價(jià)。根據(jù)美國(guó)一些軟件公司的統(tǒng)計(jì)資料,在后期引入一個(gè)變動(dòng)比在早期引入相同變動(dòng)所需付出的代價(jià)高2~3個(gè)數(shù)量級(jí)。通過(guò)上面的論述不難認(rèn)識(shí)到,輕視維護(hù)是一個(gè)最大的錯(cuò)誤.許多軟件產(chǎn)品的使用壽命長(zhǎng)達(dá)10年甚至20年,在這樣漫長(zhǎng)的時(shí)期中不僅必須改正使用過(guò)程中發(fā)現(xiàn)的每一個(gè)潛伏的錯(cuò)誤,而且當(dāng)環(huán)境變化時(shí)(如硬件或系統(tǒng)軟件更新?lián)Q代)還必須相應(yīng)地修改軟件以適應(yīng)新的環(huán)境。特別是必須經(jīng)常改進(jìn)或擴(kuò)充原來(lái)的軟件以滿足用戶不斷變化的需要。所有這些改動(dòng)都屬于維護(hù)工作,而且是在軟件已經(jīng)完成之后進(jìn)行的,因此維護(hù)是極端艱巨和復(fù)雜的工作,需要花費(fèi)很大代價(jià)。統(tǒng)計(jì)數(shù)據(jù)表明,實(shí)際上用于軟件維護(hù)的費(fèi)用占軟件總費(fèi)用的55%一70%。軟件工程學(xué)的:一個(gè)重要目標(biāo)就是提高軟件的可維護(hù)性,減少軟件維護(hù)的代價(jià)。了解產(chǎn)生軟件危機(jī)的原因,澄清錯(cuò)誤認(rèn)識(shí),建立起關(guān)于軟件開(kāi)發(fā)和維護(hù)的正確概念,還僅僅是解決軟件危機(jī)的開(kāi)始,全面解決軟件危機(jī)需要一系列綜合措施。  3.緩解軟件危機(jī)的途徑  軟件開(kāi)發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好,管理嚴(yán)密,各類人員協(xié)同配合,共同完成的工程項(xiàng)目。必須充分吸取和借鑒人類長(zhǎng)期以來(lái)從事各種工程項(xiàng)目所積累的行之有效的原理、概念、技術(shù)和方法,特別要吸取幾十年來(lái)人類從事計(jì)算機(jī)硬件研究和開(kāi)發(fā)的經(jīng)驗(yàn)教訓(xùn)。應(yīng)該推廣使用在實(shí)踐中總結(jié)出來(lái)的開(kāi)發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好、更有效的技術(shù)和方法,盡快消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯(cuò)誤概念和做法。應(yīng)該開(kāi)發(fā)和使用更好的軟件工具。正如機(jī)械工具可以“放大”人類的體力一樣,軟件工具可以“放大”人類的智力。在軟件開(kāi)發(fā)的每個(gè)階段都有許多煩瑣重復(fù)的工作需要做,在適當(dāng)?shù)能浖ぞ咻o助下,開(kāi)發(fā)人員可以把這類工作做得既快又好。如果把各個(gè)階段使用的軟件工具有機(jī)地集合成一個(gè)整體,支持軟件開(kāi)發(fā)的全過(guò)程,則稱為軟件工程支撐環(huán)境。總之,為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開(kāi)發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。

編輯推薦

《軟件工程教程》:高等院校精品課程系列教材

圖書封面

評(píng)論、評(píng)分、閱讀與下載


    軟件工程教程 PDF格式下載


用戶評(píng)論 (總計(jì)0條)

 
 

 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7