軟件工程-第6章第4節(jié)_第1頁
軟件工程-第6章第4節(jié)_第2頁
軟件工程-第6章第4節(jié)_第3頁
軟件工程-第6章第4節(jié)_第4頁
軟件工程-第6章第4節(jié)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

6.4軟件可維護(hù)性軟件的維護(hù)是十分困難的,這是因為軟件的源程序和文檔難于理解、難于修改,因此造成軟件維護(hù)工作量大、成本上升和修改出錯率高。軟件維護(hù)工作面廣,維護(hù)難度大,稍有不慎就會在修改中給軟件帶來新問題。為了使軟件能夠易于維護(hù),必須考慮使軟件具有可維護(hù)性。6.4.1可維護(hù)性定義軟件可維護(hù)性是指軟件能夠被理解、校正、適應(yīng)及增強(qiáng)功能的容易程度。軟件的可維護(hù)性、可使用性和可靠性是衡量軟件質(zhì)量的幾個主要特性,也是用戶十分關(guān)心的幾個問題。但是影響軟件質(zhì)量的這些主要因素,目前還沒有對它們普遍適用的定量度量的方法,就其概念和內(nèi)涵來說則是很明確的。6.4.1可維護(hù)性定義軟件的可維護(hù)性是軟件開發(fā)階段的關(guān)鍵目標(biāo)。影響軟件可維護(hù)性的因素較多,設(shè)計、編碼及測試中的疏忽和低劣的軟件配置,缺少文檔等都會對軟件的可維護(hù)性產(chǎn)生不良影響。軟件可維護(hù)性可用下面7個質(zhì)量特性來衡量,即可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。對于不同類型的維護(hù),這7種特性的側(cè)重點也不相同。這些質(zhì)量特性通常體現(xiàn)在軟件產(chǎn)品的許多方面。為使每一個質(zhì)量特性都達(dá)到預(yù)定的要求,需要在軟件開發(fā)的各個階段采取相應(yīng)的措施加以保證,即這些質(zhì)量要求要滲透到各開發(fā)階段的各個步驟中。因此,軟件的可維護(hù)性是產(chǎn)品投入運(yùn)行以前各階段針對上述各質(zhì)量特性要求進(jìn)行開發(fā)的最終結(jié)果。6.4.2可維護(hù)性的度量目前有若干對軟件可維護(hù)性進(jìn)行綜合度量的方法,但要對可維護(hù)性作出定量度量還是困難的。還沒有一種方法能夠使用計算機(jī)對軟件的可維護(hù)性進(jìn)行綜合性的定量評價。下面是度量一個可維護(hù)的軟件的7種特性時常采用的方法,即質(zhì)量檢查表、質(zhì)量測試和質(zhì)量標(biāo)準(zhǔn)。質(zhì)量檢查表是用于測試程序中某些質(zhì)量特性是否存在的一個問題清單。檢查者對檢查表上的每一個問題,依據(jù)自己的定性判斷,回答“是”或者“否”。質(zhì)量測試與質(zhì)量標(biāo)準(zhǔn)則用于定量分析和評價程序的質(zhì)量。由于許多質(zhì)量特性是相互抵觸的,要考慮幾種不同的度量標(biāo)準(zhǔn)去度量不同的質(zhì)量特性。6.4.3提高可維護(hù)性的方法(1)建立明確的軟件質(zhì)量目標(biāo)。(2)利用先進(jìn)的軟件開發(fā)技術(shù)和工具。(3)建立明確的質(zhì)量保證工作。(4)選擇可維護(hù)的程序設(shè)計語言。(5)改進(jìn)程序文檔。6.4.3提高可維護(hù)性的方法1.建立明確的軟件質(zhì)量目標(biāo)如果要使程序滿足可維護(hù)性的七種特性的全部要求,那是不現(xiàn)實的。實際上,有一些可維護(hù)特性是相互促進(jìn)的,如可理解性和可測試性,可理解性和可修改性;而另一些則是相互矛盾的,如效率和可移植性,效率和可修改性等。為保證程序的可維護(hù)性,應(yīng)該在一定程度上滿足可維護(hù)性的各個特性,但各個特性的重要性隨著程序用途的不同或計算機(jī)環(huán)境的不同而改變。對編譯程序來說,效率和可移植性是主要的;對信息管理系統(tǒng)來說,可使用性和可修改性可能是主要的。6.4.3提高可維護(hù)性的方法

面向?qū)ο蠓椒ㄩ_發(fā)出的軟件的穩(wěn)定性好。傳統(tǒng)方法開發(fā)出來的軟件系統(tǒng)的結(jié)構(gòu)緊密依賴于系統(tǒng)所需要完成的功能。當(dāng)功能需求發(fā)生變化時,將引起軟件結(jié)構(gòu)的整體修改,因而這樣的軟件結(jié)構(gòu)是不穩(wěn)定的。面向?qū)ο蠓椒ㄒ詫ο鬄橹行臉?gòu)造軟件系統(tǒng),用對象模擬問題領(lǐng)域中的實體,以對象間的聯(lián)系刻畫實體間的聯(lián)系,根據(jù)問題領(lǐng)域中的模型來建立軟件系統(tǒng)的結(jié)構(gòu)。由于客觀世界的實體及其之間的聯(lián)系相對穩(wěn)定,因此建立的模型也相對穩(wěn)定。當(dāng)系統(tǒng)的功能需求發(fā)生變化時,并不會引起軟件結(jié)構(gòu)的整體變化,往往只需要做一些局部性的修改。所以面向?qū)ο蠓椒?gòu)造的軟件系統(tǒng)也比較穩(wěn)定。6.4.3提高可維護(hù)性的方法面向?qū)ο蠓椒?gòu)造的軟件可重用性好。對象所固有的封裝性和信息隱蔽機(jī)制,使得對象內(nèi)部的實現(xiàn)和外界隔離,具有較強(qiáng)的獨立性。因此對象類提供了比較理想的模塊化機(jī)制和比較理想的可重用的軟件成分。由于對象類是理想的模塊機(jī)制,它的獨立性好,修改一個類通常很少涉及到其他類。若只修改一個類的內(nèi)部實現(xiàn)部分而不修改該類的對外接口,則可以完全不影響軟件的其他部分。由于面向?qū)ο蟮能浖夹g(shù)符合人們習(xí)慣的思維方式,用這種方法所建立的軟件系統(tǒng)的結(jié)構(gòu)與問題空間的結(jié)構(gòu)基本一致,因此面向?qū)ο蟮能浖到y(tǒng)比較容易理解。6.4.3提高可維護(hù)性的方法對面向?qū)ο蟮能浖到y(tǒng)進(jìn)行維護(hù),主要通過對從已有類派生出一些新類的維護(hù)來實現(xiàn)。因此,維護(hù)時的測試和調(diào)試工作也主要圍繞這些新派生出來的類進(jìn)行。類是獨立性很強(qiáng)的模塊,向類的實例發(fā)消息即可運(yùn)行它,觀察它是否能正確地完成要求它做的工作。對類的測試通常比較容易實現(xiàn),如果發(fā)現(xiàn)錯誤也往往集中在類的內(nèi)部,比較容易調(diào)試。6.4.3提高可維護(hù)性的方法3.建立明確的質(zhì)量保證1)在檢查點進(jìn)行檢查檢查點是指軟件開發(fā)的每一個階段的終點。在檢查點進(jìn)行檢查的目標(biāo)是證實已開發(fā)的軟件是滿足設(shè)計要求的。在不同的檢查點檢查的內(nèi)容是不同的。例如,在設(shè)計階段檢查的重點是可理解性、可修改性和可測試性,可理解性檢查的重點是檢查設(shè)計的復(fù)雜性。2)驗收檢查驗收檢查是一個特殊的檢查點的檢查,它是才軟件從開發(fā)轉(zhuǎn)移到維護(hù)的最后一次檢查。它對減少維護(hù)費(fèi)用、提高軟件質(zhì)量是非常重要的。驗收檢查實際上是我們已講過的驗收測試的一部分,只不過驗收檢查是從維護(hù)角度提出驗收條件或標(biāo)準(zhǔn)的。6.4.3提高可維護(hù)性的方法3)周期性的維護(hù)檢查上述兩種軟件檢查適用于新開發(fā)的軟件。對已運(yùn)行的軟件應(yīng)進(jìn)行周期性的維護(hù)檢查。為了改正在開發(fā)階段未發(fā)現(xiàn)的錯誤,使軟件適應(yīng)新的計算機(jī)環(huán)境并滿足變化的用戶需求,對正在使用的軟件進(jìn)行改變是不可避免的。改變程序可能引入新錯誤并破壞原來程序概念的完整性。為了保證軟件質(zhì)量應(yīng)該對正在使用的軟件進(jìn)行周期性維護(hù)檢查。實際上周期性維護(hù)檢查是開發(fā)階段對檢查點進(jìn)行檢查的繼續(xù),采用的檢查方法和檢查內(nèi)容都是相同的。把多次維護(hù)檢查結(jié)果同以前進(jìn)行的驗收檢查結(jié)果以及檢查點檢查結(jié)果做比較,對檢查結(jié)果的任何改變都要進(jìn)行分析,找出原因。6.4.3提高可維護(hù)性的方法4)對軟件包的檢查上述檢查方法適用于組織內(nèi)部開發(fā)和維護(hù)的軟件或?qū)樯贁?shù)幾個用戶設(shè)計的軟件,很難適用于享有多個用戶的通用軟件包。因為軟件包屬于賣方的資產(chǎn),用戶很難獲得軟件包的源代碼和完整的文檔。對軟件包的維護(hù)通常采用下述方法:使用單位的維護(hù)程序員在分析研究賣方提供的用戶手冊、操作手冊、培訓(xùn)教程、新版本策略指導(dǎo)、計算機(jī)環(huán)境和驗收測試的基礎(chǔ)上,深入了解本單位的希望和要求,編制軟件包檢驗程序。6.4.3提高可維護(hù)性的方法軟件包檢驗程序是一個測試程序,它檢查軟件包程序所執(zhí)行的功能是否與用戶的要求和條件相一致。為了建立這個程序,維護(hù)程序員可以利用賣方提供的驗收測試用例或重新設(shè)計新的測試用例,根據(jù)測試結(jié)果檢查和驗證軟件包的參數(shù)或控制機(jī)構(gòu),從而完成軟件包的維護(hù)。6.4.3提高可維護(hù)性的方法4.選擇可維護(hù)的語言

程序設(shè)計語言的選擇對維護(hù)影響很大。低級語言很難理解,很難掌握,因而很難維護(hù)。一般來說,高級語言比低級語言更容易理解,在高級語言中,一些語言可能比另一些語言更容易理解。

第四代語言,例如查詢語言、圖形語言、報表生成語言和非常高級語言等,對減少維護(hù)費(fèi)用來說是一種最有吸引力的語言。人們?nèi)菀资褂?、理解和修改它們。例如,用戶使用第四代語言開發(fā)商業(yè)應(yīng)用程序比使用通常的高級語言要快好多倍。一些第四代語言是過程語言,而另一些是非過程語言。6.4.3提高可維護(hù)性的方法對于非過程的第四代語言,用戶不需要指出實現(xiàn)的算法,用戶只需向編譯程序或解釋程序提出自己的要求。例如它能自動地選擇報表格式、選擇字符類型等。自動生成指令能改進(jìn)軟件可靠性。此外,第四代語言容易理解,容易編程,程序容易修改,因此改進(jìn)了可維護(hù)性。6.4.3提高可維護(hù)性的方法5.改進(jìn)程序的文檔1)程序文檔程序員利用程序文檔來理解程序的內(nèi)部結(jié)構(gòu)、程序同系統(tǒng)內(nèi)其他程序、操作系統(tǒng)和其他軟件系統(tǒng)如何相互作用。程序文檔包括源代碼的注釋、設(shè)計文檔、系統(tǒng)流程圖、程序流程圖和交叉引用表等。程序文擋是對程序功能、程序各組成部分之間的關(guān)系、程序設(shè)計策略和程序?qū)崿F(xiàn)過程的歷史數(shù)據(jù)等的說明和補(bǔ)充。程序文檔對提高程序的可閱讀性有重要作用。6.4.3提高可維護(hù)性的方法

為了維護(hù)程序,人們必須閱讀和理解程序文檔。通常過低估計文檔的價值是因為人們過低估計用戶對修改的需求。雖然人們對文檔的重要性還有許多不同的看法,但大多數(shù)人同意以下的觀點:(1)好的文檔能提高程序的可閱讀性,但壞的文檔比沒有文檔更差。(2)好的文檔意味著簡明性、風(fēng)格的一致性,且容易修改。(3)程序編碼中應(yīng)該有必要的注釋以提高程序的可理解性。(4)程序越長、越復(fù)雜,則它對文檔的需求也越迫切。6.4.3提高可維護(hù)性的方法2)用戶文檔用戶文檔提供用戶如何使用程序的命令和指示,通常是指用戶手冊。更好的用戶文檔是聯(lián)機(jī)的,用戶在終端就可以閱讀到它,這給沒有經(jīng)驗的用戶提供了必要的幫助和引導(dǎo)。3)操作文檔操作文檔指導(dǎo)用戶如何運(yùn)行程序,它包括操作員手冊、運(yùn)行記錄和備用文件目錄等。6.4.3提高可維護(hù)性的方法4)數(shù)據(jù)文檔數(shù)據(jù)文檔是程序數(shù)據(jù)部分的說明,它由數(shù)據(jù)模型和數(shù)據(jù)詞典組成。數(shù)據(jù)模型表示數(shù)據(jù)內(nèi)部結(jié)構(gòu)和數(shù)據(jù)各部分之間的功能依賴性。通常數(shù)據(jù)模型是用圖形表示的。數(shù)據(jù)詞典列出了程序中使用的全部數(shù)據(jù)項,包括數(shù)據(jù)項的定義、數(shù)據(jù)項的使用以及在什么地方使

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論