軟件維護(hù)電子教案_第1頁(yè)
軟件維護(hù)電子教案_第2頁(yè)
軟件維護(hù)電子教案_第3頁(yè)
軟件維護(hù)電子教案_第4頁(yè)
軟件維護(hù)電子教案_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第第8章章 軟件維護(hù)軟件維護(hù) 學(xué)習(xí)目標(biāo)u掌握軟件維護(hù)的概念及類型 u掌握軟件維護(hù)的過(guò)程 u掌握軟件維護(hù)的可維護(hù)性 u了解提高軟件可維護(hù)性的途徑 2第第8章章 軟件維護(hù)軟件維護(hù) 教學(xué)內(nèi)容: 8.1 軟件維護(hù)概述 8.2 軟件維護(hù)的過(guò)程 8.3 軟件的可維護(hù)性 8.4 提高可維護(hù)性的途徑 8.5 逆向工程和再工程 本章小結(jié) 38.1 軟件維護(hù)概述軟件維護(hù)概述主要教學(xué)內(nèi)容: 8.1.1 軟件維護(hù)的基本概念 8.1.2 軟件維護(hù)的種類 8.1.3 影響軟件維護(hù)工作量的因素 8.1.4 軟件維護(hù)的策略 返回目錄48.1 軟件維護(hù)概述軟件維護(hù)概述8.1.1 軟件維護(hù)的基本概念 把軟件運(yùn)行/維護(hù)階段對(duì)軟件

2、產(chǎn)品所作的修改稱為軟件維護(hù)。進(jìn)行軟件維護(hù)的原因有很多,主要有以下幾個(gè)方面:u改正在特定的使用條件下暴露出來(lái)的一些潛在的程序錯(cuò)誤或程序設(shè)計(jì)缺陷。u在軟件使用過(guò)程中數(shù)據(jù)環(huán)境發(fā)生了變化或處理環(huán)境發(fā)生了變化,需要對(duì)軟件進(jìn)行修改以適應(yīng)這種變化的需求。u用戶和數(shù)據(jù)處理人員在使用軟件時(shí)需要改進(jìn)現(xiàn)有的功能、增加新的功能、改善總體性能等,為滿足這些要求,需要對(duì)軟件進(jìn)行修改以便把這些要求納入到軟件之中。返回目錄58.1 軟件維護(hù)概述軟件維護(hù)概述8.1.2 軟件維護(hù)的種類1改正性維護(hù)(Corrective Maintenance) 為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,而應(yīng)當(dāng)進(jìn)行的診斷和

3、改正錯(cuò)誤的過(guò)程。2適應(yīng)性維護(hù)(Adaptive Maintenance) 為了使軟件適應(yīng)于各種變化,而去修改軟件的過(guò)程叫做適應(yīng)性維護(hù)。例如適應(yīng)性維護(hù)可以是為現(xiàn)有的某個(gè)應(yīng)用問(wèn)題實(shí)現(xiàn)一個(gè)數(shù)據(jù)庫(kù)、對(duì)某個(gè)指定的事務(wù)編碼進(jìn)行修改、增加字符個(gè)數(shù)、調(diào)整兩個(gè)程序使它們可以使用相同的記錄結(jié)構(gòu)、修改程序使其適用于另外一種終端等。 68.1 軟件維護(hù)概述軟件維護(hù)概述3完善性維護(hù)(Perfective Maintenance) 為了滿足用戶要求,需要修改或再開(kāi)發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性,這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性維護(hù)。4預(yù)防性維護(hù)(Preventive Mainte

4、nance) “把今天的方法學(xué)用于昨天的系統(tǒng)以滿足明天的需要”。也就是說(shuō),采用先進(jìn)的軟件工程方法對(duì)需要維護(hù)的軟件或軟件中的某一部分進(jìn)行(重新)設(shè)計(jì)、編制和測(cè)試。 在整個(gè)軟件維護(hù)階段所花費(fèi)的全部工作量中,預(yù)防性維護(hù)只占很小的比例,而完善性維護(hù)占了幾乎一半的工作量,參看圖8-1。78.1 軟件維護(hù)概述軟件維護(hù)概述從圖8-2 中可以看到,軟件維護(hù)活動(dòng)所花費(fèi)的工作占整個(gè)生存期工作量的70%以上,這是由于在軟件運(yùn)行過(guò)程中需要不斷對(duì)軟件進(jìn)行修改,以改正新發(fā)現(xiàn)的錯(cuò)誤,適應(yīng)新的環(huán)境和用戶新的要求,這些修改需要花費(fèi)很多精力和時(shí)間,而且有時(shí)修改不正確,還會(huì)引入新的錯(cuò)誤。 圖8-1 三類維護(hù)占總維護(hù)比例 圖8-2

5、維護(hù)在軟件生存期所占比例 返回目錄88.1 軟件維護(hù)概述軟件維護(hù)概述8.1.3 影響軟件維護(hù)工作量的因素 維護(hù)中,影響維護(hù)工作量的程序特性有以下幾種:(1)系統(tǒng)的大?。?)程序設(shè)計(jì)語(yǔ)言 (3)系統(tǒng)年齡 (4)數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用 (5)先進(jìn)的軟件開(kāi)發(fā)技術(shù) (6)其他方面 此外,許多軟件在開(kāi)發(fā)時(shí)并未考慮將來(lái)的修改,這就為軟件的維護(hù)帶來(lái)許多問(wèn)題。返回目錄98.1 軟件維護(hù)概述軟件維護(hù)概述8.1.4 軟件維護(hù)的策略 針對(duì)三種典型的維護(hù),James Martin等提出了一些維護(hù)策略,以控制維護(hù)成本。1改正性維護(hù) 使用新技術(shù),可大大提高可靠性,減少進(jìn)行改正性維護(hù)的需要。這些技術(shù)包括:數(shù)據(jù)庫(kù)管理系統(tǒng)、軟件開(kāi)發(fā)

6、環(huán)境、程序自動(dòng)生成系統(tǒng)、較高級(jí)(第四代)的語(yǔ)言。應(yīng)用以上4種方法可產(chǎn)生更加可靠的代碼。此外:108.1 軟件維護(hù)概述軟件維護(hù)概述(1)利用應(yīng)用軟件包。(2)結(jié)構(gòu)化技術(shù)。(3)防錯(cuò)性程序設(shè)計(jì)。(4)通過(guò)周期性維護(hù)審查,在形成維護(hù)問(wèn)題之前就可確定質(zhì)量缺陷。 2適應(yīng)性維護(hù) 這一類維護(hù)不可避免,但可以控制。(1)在配置管理時(shí),把硬件、操作系統(tǒng)和其他相關(guān)環(huán)境因素的可能變化考慮在內(nèi),可以減少某些適應(yīng)性維護(hù)的工作量。118.1 軟件維護(hù)概述軟件維護(hù)概述(2)把與硬件、操作系統(tǒng),以及其他外圍設(shè)備有關(guān)的程序歸到特定的程序模塊中;把因環(huán)境變化而必須修改的程序局部于某些程序模塊之中。(3)使用內(nèi)部程序列表、外部文件

7、,以及處理的例行程序包,可為維護(hù)時(shí)修改程序提供方便。3完善性維護(hù) 利用前兩類維護(hù)中列舉的方法,也可以減少這類維護(hù)。此外,建立軟件系統(tǒng)的原型,通過(guò)研究原型,進(jìn)一步完善他們的功能要求,就可以減少以后完善性維護(hù)的需要。返回目錄128.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程 主要教學(xué)內(nèi)容: 8.2.1 維護(hù)機(jī)構(gòu) 8.2.2 軟件維護(hù)申請(qǐng)報(bào)告 8.2.3 軟件維護(hù)工作流程 8.2.4 軟件維護(hù)記錄及評(píng)價(jià) 8.2.5 修改程序的副作用 返回目錄138.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程 為了有效地進(jìn)行軟件維護(hù),應(yīng)事先就開(kāi)始做組織工作。首先需要建立維護(hù)的機(jī)構(gòu),申明提出維護(hù)申請(qǐng)報(bào)告的過(guò)程及評(píng)價(jià)的過(guò)程;為每一個(gè)維護(hù)申請(qǐng)

8、規(guī)定標(biāo)準(zhǔn)的處理步驟;還必須建立維護(hù)活動(dòng)的登記制度以及規(guī)定評(píng)價(jià)和評(píng)審的標(biāo)準(zhǔn)。 8.2.1 維護(hù)機(jī)構(gòu) 如圖8-3就是一個(gè)維護(hù)機(jī)構(gòu)的組織方案。 148.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程圖8-3 軟件維護(hù)的機(jī)構(gòu) 158.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程 維護(hù)申請(qǐng)?zhí)峤唤o一個(gè)維護(hù)管理員,他把申請(qǐng)交給某個(gè)系統(tǒng)監(jiān)督員去評(píng)價(jià)。一旦做出評(píng)價(jià),由修改負(fù)責(zé)人確定如何進(jìn)行修改。在修改的過(guò)程中,由配置管理員嚴(yán)格把關(guān),控制修改的范圍,對(duì)軟件配置進(jìn)行審計(jì)。 在開(kāi)始維護(hù)之前,就把責(zé)任明確下來(lái),可以大大減少維護(hù)過(guò)程中的混亂。返回目錄168.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程8.2.2 軟件維護(hù)申請(qǐng)報(bào)告 維護(hù)申請(qǐng)報(bào)告(MRP,Mai

9、ntenance Request Form),或稱軟件問(wèn)題報(bào)告,由申請(qǐng)維護(hù)的用戶填寫。 如果遇到一個(gè)錯(cuò)誤,用戶必須完整地說(shuō)明產(chǎn)生錯(cuò)誤的情況,包括輸入數(shù)據(jù)、錯(cuò)誤清單以及其他相關(guān)材料。如果申請(qǐng)的是適應(yīng)性維護(hù)或完善性維護(hù),用戶必須提供一份修改說(shuō)明書,列出所有希望的修改。維護(hù)申請(qǐng)報(bào)告將由維護(hù)管理員和系統(tǒng)監(jiān)督員來(lái)研究處理。178.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程 收到軟件維護(hù)申請(qǐng)報(bào)告后,軟件組織內(nèi)部應(yīng)相應(yīng)地做出軟件修改報(bào)告(SCR,Software Change Report),指明:u所需修改變動(dòng)的性質(zhì);u申請(qǐng)修改的優(yōu)先級(jí);u為滿足某個(gè)維護(hù)申請(qǐng)報(bào)告,所需的工作量;u預(yù)計(jì)修改后的狀況。 軟件修改報(bào)告應(yīng)提

10、交修改負(fù)責(zé)人,經(jīng)批準(zhǔn)后才能開(kāi)始進(jìn)一步安排維護(hù)工作。 返回目錄188.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程8.2.3 軟件維護(hù)工作流程 圖8-4 軟件維護(hù)的工作流圖 198.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程 首先,第一步是先確認(rèn)維護(hù)要求。然后由維護(hù)組織管理員確認(rèn)維護(hù)類型。對(duì)于改正性維護(hù)申請(qǐng),從評(píng)價(jià)錯(cuò)誤的嚴(yán)重性開(kāi)始。對(duì)于適應(yīng)性維護(hù)和完善性維護(hù)申請(qǐng),需要先確定每項(xiàng)申請(qǐng)的優(yōu)先次序。 盡管維護(hù)申請(qǐng)的類型不同,但都要進(jìn)行同樣的技術(shù)工作。這些工作有:修改軟件需求說(shuō)明、修改軟件設(shè)計(jì)、設(shè)計(jì)評(píng)審、對(duì)源程序做必要的修改、單元測(cè)試、集成測(cè)試(回歸測(cè)試)、確認(rèn)測(cè)試、軟件配置評(píng)審等。 208.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程

11、 在每次軟件維護(hù)任務(wù)完成后,最好進(jìn)行一次情況評(píng)審,對(duì)以下問(wèn)題做一總結(jié):(1)在目前情況下,設(shè)計(jì)、編碼、測(cè)試中的哪一方面可以改進(jìn)?(2)哪些維護(hù)資源應(yīng)該有但沒(méi)有?(3)工作中主要的或次要的障礙是什么?(4)從維護(hù)申請(qǐng)的類型來(lái)看是否應(yīng)當(dāng)有預(yù)防性維護(hù)? 情況評(píng)審對(duì)將來(lái)的維護(hù)工作如何進(jìn)行會(huì)產(chǎn)生重要的影響,并可為軟件機(jī)構(gòu)的有效管理提供重要的反饋信息。返回目錄218.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程8.2.4 軟件維護(hù)記錄及評(píng)價(jià) 在維護(hù)的過(guò)程中做好維護(hù)檔案記錄。其內(nèi)容包括程序名稱、源程序語(yǔ)句條數(shù)、機(jī)器代碼指令條數(shù)、所用的程序設(shè)計(jì)語(yǔ)言、程序安裝的日期、程序安裝后的運(yùn)行次數(shù)、與程序安裝后運(yùn)行次數(shù)有關(guān)的處理故障

12、次數(shù)、程序改變的層次及名稱、修改程序所增加的源程序語(yǔ)句條數(shù)、修改程序所減少的源程序語(yǔ)句條數(shù)、每次修改所付出的“人時(shí)”數(shù)、修改程序的日期、軟件維護(hù)人員的姓名、維護(hù)申請(qǐng)報(bào)告的名稱、維護(hù)類型、維護(hù)開(kāi)始時(shí)間和維護(hù)結(jié)束時(shí)間、花費(fèi)在維護(hù)上的累計(jì)“人時(shí)”數(shù)、維護(hù)工作的凈收益等。對(duì)每項(xiàng)維護(hù)任務(wù)都應(yīng)該收集上述數(shù)據(jù)。228.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程 評(píng)價(jià)維護(hù)活動(dòng)比較困難,因?yàn)槿狈煽康臄?shù)據(jù)。但如果維護(hù)的檔案記錄做得比較好,就可以得出一些維護(hù)“性能”方面的度量值??蓞⒖嫉亩攘恐等缦拢簎每次程序運(yùn)行時(shí)的平均出錯(cuò)次數(shù);u花費(fèi)在每類維護(hù)上的總“人時(shí)”數(shù); u每個(gè)程序、每種語(yǔ)言、每種維護(hù)類型的程序平均修改次數(shù); u

13、用于每種語(yǔ)言的平均“人時(shí)”數(shù);u維護(hù)增加或刪除每個(gè)源程序語(yǔ)句所花費(fèi)的平均“人時(shí)”數(shù); u維護(hù)申請(qǐng)報(bào)告的平均處理時(shí)間;u各類維護(hù)申請(qǐng)的百分比。返回目錄238.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程8.2.5 軟件維護(hù)的副作用 所謂副作用是指因修改軟件而造成的錯(cuò)誤或其它不希望發(fā)生的情況,有三種副作用:(1)修改代碼的副作用。在使用程序設(shè)計(jì)語(yǔ)言修改源代碼時(shí),都可能引入錯(cuò)誤。(2)修改數(shù)據(jù)的副作用。數(shù)據(jù)副作用就是修改軟件信息結(jié)構(gòu)導(dǎo)致的結(jié)果。(3)文檔的副作用。對(duì)數(shù)據(jù)流、軟件結(jié)構(gòu)、 模塊邏輯或任何其它有關(guān)特性進(jìn)行修改時(shí),必須對(duì)相關(guān)技術(shù)文檔進(jìn)行相應(yīng)修改。248.2 軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程 為了控制因修改而

14、引起的副作用,要做到:u按模塊把修改分組;u自頂向下地安排被修改模塊的順序;u每次修改一個(gè)模塊;u對(duì)于每個(gè)修改了的模塊,在安排修改下一個(gè)模塊之前,要確定這個(gè)修改的副作用??梢允褂媒徊嬉帽?、存儲(chǔ)映象表、執(zhí)行流程跟蹤等。返回目錄258.3 軟件的可維護(hù)性軟件的可維護(hù)性主要教學(xué)內(nèi)容: 8.3.1 可維護(hù)性的定義 8.3.2 可維護(hù)性的度量 返回目錄268.3 軟件的可維護(hù)性軟件的可維護(hù)性 8.3.1 可維護(hù)性的定義 軟件可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯(cuò)誤和缺陷,以及為滿足新的要求而進(jìn)行修改、擴(kuò)充或壓縮的容易程度??删S護(hù)性、可使用性、可靠性是衡量軟件質(zhì)量的幾個(gè)主要質(zhì)量特性,也是用戶十分關(guān)心的幾個(gè)方面

15、。 軟件的可維護(hù)性是軟件開(kāi)發(fā)階段各個(gè)時(shí)期的關(guān)鍵目標(biāo)。 目前廣泛使用的是用如下的七個(gè)特性來(lái)衡量程序的可維護(hù)性。而且對(duì)于不同類型的維護(hù),這七種特性的側(cè)重點(diǎn)也不相同。278.3 軟件的可維護(hù)性軟件的可維護(hù)性 表8-1顯示了在各類維護(hù)中應(yīng)側(cè)重哪些特性。表中的“”表示需要的特性。 改正性維護(hù)適應(yīng)性維護(hù)完善性維護(hù) 可理解性 可測(cè)試性 可修改性 可 靠 性 可移植性 可使用性 效 率 表8-1 在各類維護(hù)中的側(cè)重點(diǎn)288.3 軟件的可維護(hù)性軟件的可維護(hù)性 表中所列舉的這些質(zhì)量特性通常體現(xiàn)在軟件產(chǎn)品的許多方面,為使每一個(gè)質(zhì)量特性都達(dá)到預(yù)定的要求,需要在軟件開(kāi)發(fā)的各個(gè)階段采取相應(yīng)的措施加以保證。也就是說(shuō),這些質(zhì)

16、量要求要滲透到各開(kāi)發(fā)階段的各個(gè)步驟當(dāng)中。因此,軟件的可維護(hù)性是產(chǎn)品投入運(yùn)行以前各階段面向上述各質(zhì)量特性要求進(jìn)行開(kāi)發(fā)的最終結(jié)果。 返回目錄298.3 軟件的可維護(hù)軟件的可維護(hù)性性8.3.2 可維護(hù)性的度量 度量一個(gè)可維護(hù)的程序的七種特性時(shí)常用的方法就是質(zhì)量檢查表、質(zhì)量測(cè)試、質(zhì)量標(biāo)準(zhǔn)。 質(zhì)量檢查表是用于測(cè)試程序中某些質(zhì)量特性是否存在的一個(gè)問(wèn)題清單。評(píng)價(jià)者針對(duì)檢查表上的每一個(gè)問(wèn)題,依據(jù)自己的定性判斷,回答“Yes”或者“No”。 質(zhì)量測(cè)試與質(zhì)量標(biāo)準(zhǔn)則用于定量分析和評(píng)價(jià)程序的質(zhì)量。由于許多質(zhì)量特性是相互抵觸的,要考慮幾種不同的度量標(biāo)準(zhǔn),相應(yīng)地去度量不同的質(zhì)量特性。 308.3 軟件的可維護(hù)性軟件的可維

17、護(hù)性1可理解性 可理解性表明人們通過(guò)閱讀源代碼和相關(guān)文檔,了解程序功能及其如何運(yùn)行的容易程度。一個(gè)可理解的程序主要應(yīng)具備以下一些特性:模塊化(模塊結(jié)構(gòu)良好、功能完整、簡(jiǎn)明),風(fēng)格一致性(代碼風(fēng)格及設(shè)計(jì)風(fēng)格的一致性),不使用令人琢磨不定或含糊不清的代碼,使用有意義的數(shù)據(jù)名和過(guò)程名,結(jié)構(gòu)化,完整性(對(duì)輸入數(shù)據(jù)進(jìn)行完整性檢查)等。 對(duì)于可理解性,可以使用一種叫做“90-10測(cè)試”的方法來(lái)衡量。 318.3 軟件的可維護(hù)性軟件的可維護(hù)性2可靠性 可靠性表明一個(gè)程序按照用戶的要求和設(shè)計(jì)目標(biāo),在給定的一段時(shí)間內(nèi)正確執(zhí)行的概率。關(guān)于可靠性,度量的標(biāo)準(zhǔn)主要有: 平均失效間隔時(shí)間MTTF(Mean Time T

18、o Failure) 平均修復(fù)時(shí)間MTTR(Mean Time To Repair Error) 有效性A=(MTBD/(MTBD+MDT)。328.3 軟件的可維護(hù)性軟件的可維護(hù)性 度量可靠性的方法,主要有兩類:(1)根據(jù)程序錯(cuò)誤統(tǒng)計(jì)數(shù)字,進(jìn)行可靠性預(yù)測(cè)。(2)根據(jù)程序復(fù)雜性,預(yù)測(cè)軟件可靠性。3可測(cè)試性 可測(cè)試性表明論證程序正確性的容易程度。程序越簡(jiǎn)單,證明其正確性就越容易。設(shè)計(jì)合適的測(cè)試用例,取決于對(duì)程序的全面理解。因此,一個(gè)可測(cè)試的程序應(yīng)當(dāng)是可理解的、可靠的、簡(jiǎn)單的。 338.3 軟件的可維護(hù)性軟件的可維護(hù)性4可修改性 可修改性表明程序容易修改的程度。一個(gè)可修改的程序應(yīng)當(dāng)是可理解的、通用

19、的、靈活的、簡(jiǎn)單的。5可移植性 可移植性表明程序轉(zhuǎn)移到一個(gè)新的計(jì)算環(huán)境的可能性的大小?;蛘咚砻鞒绦蚩梢匀菀椎?、有效地在各種各樣的計(jì)算環(huán)境中運(yùn)行的容易程度。 一個(gè)可移植的程序應(yīng)具有結(jié)構(gòu)良好、靈活,不依賴于某一具體計(jì)算機(jī)或操作系統(tǒng)的性能。348.3 軟件的可維護(hù)性軟件的可維護(hù)性6效率 效率表明一個(gè)程序能執(zhí)行預(yù)定功能而又不浪費(fèi)機(jī)器資源的程度。這些機(jī)器資源包括內(nèi)存容量、外存容量、通道容量和執(zhí)行時(shí)間。7可使用性 從用戶觀點(diǎn)出發(fā),把可使用性定義為程序方便、實(shí)用、易于使用的程度。一個(gè)可使用的程序應(yīng)當(dāng)是易于使用的,能允許用戶出錯(cuò)和改變,并盡可能不使用戶陷入混亂狀態(tài)的程序。8其他間接定量度量可維護(hù)性的方法。返

20、回目錄358.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑主要教學(xué)內(nèi)容: 8.4.1 建立明確的軟件質(zhì)量目標(biāo)和優(yōu)先級(jí) 8.4.2 使用提高軟件質(zhì)量的技術(shù)和工具 8.4.3 進(jìn)行明確的質(zhì)量保證審查 8.4.4 選擇可維護(hù)的程序設(shè)計(jì)語(yǔ)言 8.4.5 改進(jìn)程序的文檔 返回目錄368.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑 8.4.1 建立明確的軟件質(zhì)量目標(biāo)和優(yōu)先級(jí) 一個(gè)可維護(hù)的程序應(yīng)是可理解的、可靠的、可測(cè)試的、可修改的、可移植的、效率高的、可使用的。但要實(shí)現(xiàn)所有的目標(biāo),需要付出非常大的代價(jià),而且也不一定行得通。盡管可維護(hù)性要求每一種質(zhì)量特性都要得到滿足,但它們的相對(duì)重要性應(yīng)隨程序的用

21、途及計(jì)算環(huán)境的不同而不同。所以,應(yīng)當(dāng)對(duì)程序的質(zhì)量特性,在提出目標(biāo)的同時(shí)還必須規(guī)定它們的優(yōu)先級(jí)。這樣有助于提高軟件的質(zhì)量,并對(duì)軟件生存期的費(fèi)用產(chǎn)生很大的影響。返回目錄378.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑8.4.2 使用提高軟件質(zhì)量的技術(shù)和工具1模塊化 是提高軟件質(zhì)量,降低成本的有效方法之一。也是提高可維護(hù)性的有效技術(shù)。2結(jié)構(gòu)化程序設(shè)計(jì) 結(jié)構(gòu)化程序設(shè)計(jì)使模塊結(jié)構(gòu)及模塊間的相互作用都標(biāo)準(zhǔn)化了。采用結(jié)構(gòu)化程序設(shè)計(jì)可以獲得良好的程序結(jié)構(gòu)。3使用結(jié)構(gòu)化程序設(shè)計(jì)技術(shù),提高現(xiàn)有系統(tǒng)的可維護(hù)性388.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑 提高現(xiàn)有系統(tǒng)的可維護(hù)性的一個(gè)比較好的方法是

22、使維護(hù)過(guò)程結(jié)構(gòu)化,而不是使現(xiàn)有系統(tǒng)重新結(jié)構(gòu)化。 軟件開(kāi)發(fā)過(guò)程中,建立主程序員小組,實(shí)現(xiàn)嚴(yán)格的組織化結(jié)構(gòu),強(qiáng)調(diào)規(guī)范,明確領(lǐng)導(dǎo)以及職能分工,能夠改善通信、提高程序生產(chǎn)率;在檢查程序質(zhì)量時(shí),采取有組織分工的結(jié)構(gòu)普查,分工合作,各司其職,能夠有效地實(shí)施質(zhì)量檢查。 同樣,在軟件維護(hù)過(guò)程中,維護(hù)小組也可以采取與主程序員小組和結(jié)構(gòu)普查類似的方式,保證程序的質(zhì)量。返回目錄398.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑8.4.3 進(jìn)行明確的質(zhì)量保證審查 質(zhì)量保證審查對(duì)于獲得和維持軟件的質(zhì)量,是一個(gè)很有用的技術(shù)。審查還可以用來(lái)檢測(cè)在開(kāi)發(fā)和維護(hù)階段內(nèi)發(fā)生的質(zhì)量變化。一旦檢測(cè)出問(wèn)題來(lái),就可以采取措施來(lái)糾正,

23、延長(zhǎng)軟件系統(tǒng)的有效生命期。 為了保證軟件的可維護(hù)性,有四種類型的軟件審查:(1)在檢查點(diǎn)進(jìn)行復(fù)審 如圖8-5所示。408.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑(2)驗(yàn)收檢查u需求和規(guī)范標(biāo)準(zhǔn) u設(shè)計(jì)標(biāo)準(zhǔn) u源代碼標(biāo)準(zhǔn) u文檔標(biāo)準(zhǔn)圖8-5 軟件開(kāi)發(fā)期間各個(gè)檢查點(diǎn)的檢查重點(diǎn) 418.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑(3)周期性的維護(hù)審查 檢查點(diǎn)復(fù)查和驗(yàn)收檢查,可用來(lái)保證新軟件系統(tǒng)的可維護(hù)性。對(duì)已有的軟件系統(tǒng),則應(yīng)當(dāng)進(jìn)行周期性的維護(hù)檢查。 (4)對(duì)軟件包進(jìn)行檢查 軟件包是一種標(biāo)準(zhǔn)化了的,可為不同單位、不同用戶使用的軟件。軟件包開(kāi)發(fā)者考慮到他的專利權(quán),一般不會(huì)提供給用戶他的源

24、代碼和程序文檔。因此,要采用一定的方法對(duì)軟件包進(jìn)行維護(hù)。 返回目錄428.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑8.4.4 選擇可維護(hù)的程序設(shè)計(jì)語(yǔ)言 程序設(shè)計(jì)語(yǔ)言的選擇,對(duì)程序的可維護(hù)性影響很大。低級(jí)語(yǔ)言,EP機(jī)器語(yǔ)言和匯編語(yǔ)言,難于理解和掌握,因此很難維護(hù)。高級(jí)語(yǔ)言比低級(jí)語(yǔ)言容易理解,具有更好的可維護(hù)性。但同是高級(jí)語(yǔ)言,可理解的程度也不一樣。 總之,從維護(hù)角度來(lái)看,第四代語(yǔ)言比其他語(yǔ)言更容易維護(hù)。 返回目錄438.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑8.4.5 改進(jìn)程序的文檔 程序文檔是對(duì)程序總目標(biāo)、程序各組成部分之間的關(guān)系、程序設(shè)計(jì)策略、程序?qū)崿F(xiàn)過(guò)程的歷史數(shù)據(jù)等的說(shuō)明

25、和補(bǔ)充。程序文檔對(duì)提高程序的可理解性有著重要作用。 好的文檔是建立可維護(hù)性的基本條件。它的作用和意義有三點(diǎn): (1)文檔好的程序比沒(méi)有文檔的程序容易操作。因?yàn)樗黾恿顺绦虻目勺x性和可使用性。但不正確的文檔比根本沒(méi)有文檔要壞得多。448.4 8.4 提高可維護(hù)性的途徑提高可維護(hù)性的途徑(2)好的文檔意味著簡(jiǎn)潔、風(fēng)格一致、且易于更新。(3)程序應(yīng)當(dāng)成為其自身的文檔。也就是說(shuō),在程序中應(yīng)插入注釋,以提高程序的可理解,并以移行、空行等明顯的視覺(jué)組織來(lái)突出程序的控制結(jié)構(gòu)。如果程序越長(zhǎng)、越復(fù)雜,則它對(duì)文檔的需要就越迫切。 另外,在軟件維護(hù)階段,利用歷史文檔,可以大大簡(jiǎn)化維護(hù)工作。歷史文檔有三種:系統(tǒng)開(kāi)發(fā)日志、錯(cuò)誤記載 和系統(tǒng)維護(hù)日志 返回目錄458.5 逆向工程和再工程逆向工程和再工程 軟件的逆向

溫馨提示

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

評(píng)論

0/150

提交評(píng)論