




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 軟件維護(hù),5.1 軟件維護(hù)的定義、分類、特點(diǎn) 5.2 可維護(hù)性 5.3 維護(hù)活動(dòng) 5.4 軟件再工程,大約20年前,軟件工程人員對(duì)作完的程序不再關(guān)心,猶如過時(shí)的報(bào)紙。到1988年,軟件界第一次提出的“千年蟲”問題,工程人員不得不從洪水般的源代碼中去尋找“時(shí)間變量”。雖然,所需的修改僅僅是變量的類型或長(zhǎng)度,但在全球的軟件行業(yè)中卻掀起了巨大的波瀾。 由此可見,軟件投入運(yùn)行之后,進(jìn)行一定的修改和維護(hù)是必不可少的。軟件維護(hù)工作的好壞直接影響到軟件使用的成功與否。 對(duì)于軟件維護(hù)工作,我們要有正確的認(rèn)識(shí)。一需要人力,二需要資金的投入。,5.1 軟件維護(hù)的定義、分類、特點(diǎn),5.1.1 軟件維護(hù)的定義
2、 5.1.2 軟件維護(hù)的分類 5.1.3 軟件維護(hù)的特點(diǎn),5.1.1 軟件維護(hù)的定義,軟件維護(hù)就是在軟件已經(jīng)交付使用以后對(duì)其進(jìn)行修改,以糾正錯(cuò)誤或改進(jìn)性能和其他屬性,使產(chǎn)品適應(yīng)改變了的環(huán)境。 軟件維護(hù)工作處于軟件生命期的最后階段,維護(hù)階段是軟件生存期中最長(zhǎng)的一個(gè)階段,其費(fèi)用高達(dá)整個(gè)軟件生命期花費(fèi)的約60%-70。因此,應(yīng)充分認(rèn)識(shí)到維護(hù)工作的重要性和迫切性,提高軟件的可維護(hù)性,減少維護(hù)的工作量和費(fèi)用,延長(zhǎng)已開發(fā)軟件的生命期,以發(fā)揮其應(yīng)有的效益。,通常要求進(jìn)行維護(hù)的主要原因 運(yùn)行中發(fā)現(xiàn)在測(cè)試階段未能發(fā)現(xiàn)的軟件錯(cuò)誤和設(shè)計(jì)缺陷; 需要改進(jìn)設(shè)計(jì),以增強(qiáng)軟件的功能,提高軟件的性能; 要求已運(yùn)行的軟件能適應(yīng)
3、特定的硬件、軟件、外部設(shè)備和通信設(shè)備等的工作環(huán)境,或是要求適應(yīng)已變動(dòng)的數(shù)據(jù)或文件; 為使投入運(yùn)行的軟件與其他相關(guān)的程序有良好的接口,以利于協(xié)同工作; 為使運(yùn)行軟件的應(yīng)用范圍得到必要的擴(kuò)充。,5.1.2 軟件維護(hù)的分類,軟件維護(hù)的類型 完善性維護(hù)(Perfective Maintenance) 糾錯(cuò)性維護(hù)(Corrective Maintenance) 適應(yīng)性維護(hù)(Adaptive Maintenance) 預(yù)防性維護(hù)(Preventive Maintenance),完善性維護(hù)(Perfective Maintenance),擴(kuò)充原有系統(tǒng)的功能,提高系統(tǒng)的性能,提高軟件運(yùn)行的效率,滿足用戶的實(shí)際
4、需要而進(jìn)行的維護(hù)活動(dòng)。 當(dāng)一個(gè)軟件系統(tǒng)投入使用和成功地運(yùn)行時(shí),用戶會(huì)根據(jù)業(yè)務(wù)發(fā)展的實(shí)際需要,提出增加新功能、修改已有功能以及性能的改進(jìn)要求等。 例如人事管理程序,在使用過程中要不斷修改人事管理程序,使其增加或刪除新的項(xiàng)目,滿足新的需求; 原來軟件中的查詢響應(yīng)速度較慢,要提高軟件的響應(yīng)速度; 改變?cè)瓉碥浖挠脩艚缑婊蛟黾勇?lián)機(jī)幫助信息; 為軟件的運(yùn)行增加監(jiān)控設(shè)施等。,軟件維護(hù)的類型 完善性維護(hù)(Perfective Maintenance) 糾錯(cuò)性維護(hù)(Corrective Maintenance) 適應(yīng)性維護(hù)(Adaptive Maintenance) 預(yù)防性維護(hù)(Preventive Main
5、tenance),糾錯(cuò)性維護(hù)(Corrective Maintenance),軟件測(cè)試不可能找出一個(gè)軟件系統(tǒng)中所有潛伏的錯(cuò)誤,所以當(dāng)軟件在特定情況下運(yùn)行時(shí),這些潛伏的錯(cuò)誤可能會(huì)暴露出來。根據(jù)美國(guó)程序員雜志1995年7月提供的統(tǒng)計(jì)資料,全球大約5/6的軟件項(xiàng)目存在失敗的部分。 對(duì)在測(cè)試階段未能發(fā)現(xiàn)的,在軟件投入使用后才逐漸暴露出來的錯(cuò)誤的測(cè)試、診斷、定位、糾錯(cuò)以及驗(yàn)證、修改的回歸測(cè)試過程,稱為糾錯(cuò)性維護(hù)。,軟件維護(hù)的類型 完善性維護(hù)(Perfective Maintenance) 糾錯(cuò)性維護(hù)(Corrective Maintenance) 適應(yīng)性維護(hù)(Adaptive Maintenance)
6、預(yù)防性維護(hù)(Preventive Maintenance),適應(yīng)性維護(hù)(Adaptive Maintenance),計(jì)算機(jī)的軟、硬件環(huán)境,數(shù)據(jù)環(huán)境在不斷的變化,使運(yùn)行的軟件能適應(yīng)運(yùn)行環(huán)境或者數(shù)據(jù)的變動(dòng)而修改軟件的過程稱為適應(yīng)性維護(hù)。 環(huán)境的變化源于以下幾個(gè)方面: 用戶需求變化:如國(guó)家稅率調(diào)整、電話號(hào)碼升級(jí)、千年蟲問題等; 軟件環(huán)境變化:硬件和操作系統(tǒng)更新;系統(tǒng)運(yùn)行環(huán)境變化,如主機(jī)方式變?yōu)镃/S方式、C/S方式變?yōu)閃eb方式等。 開發(fā)環(huán)境的升級(jí)。,軟件維護(hù)的類型 完善性維護(hù)(Perfective Maintenance) 糾錯(cuò)性維護(hù)(Corrective Maintenance) 適應(yīng)性維護(hù)(A
7、daptive Maintenance) 預(yù)防性維護(hù)(Preventive Maintenance),預(yù)防性維護(hù)(Preventive Maintenance),為了進(jìn)一步改善軟件的可靠性和易維護(hù)性,或者為預(yù)見的將來軟件運(yùn)行和維護(hù)打下更好的基礎(chǔ)而對(duì)軟件進(jìn)行修改。 由于對(duì)于該類維護(hù)工作必須采用先進(jìn)的軟件工程方法,對(duì)需要修改的軟件或部分進(jìn)行設(shè)計(jì)、編碼和測(cè)試。對(duì)該類維護(hù)工作的必要性有爭(zhēng)議,它所占的比例較小。,從上可見,軟件維護(hù)不局限于糾正錯(cuò)誤。隨著網(wǎng)絡(luò)及通信技術(shù)高速發(fā)展,對(duì)軟件維護(hù)又提出了新的要求。如: 網(wǎng)絡(luò)環(huán)境下軟件的安全問題 軟件遭受黑客攻擊及病毒破壞后的軟件系統(tǒng)的恢復(fù)工作,軟件維護(hù)的策略 糾錯(cuò)
8、性維護(hù)策略:開發(fā)過程中采用新技術(shù),利用應(yīng)用軟件包,提高系統(tǒng)結(jié)構(gòu)化程度,進(jìn)行周期性維護(hù)審查等。 適應(yīng)性維護(hù)策略:對(duì)可能變化的因素進(jìn)行配置管理,將因環(huán)境變化而必須修改的部分局部化,即局限于某些程序模塊等。 完善性維護(hù)策略:除了可以使用前面兩類維護(hù)的策略外,還有使用功能強(qiáng)、使用方便的工具,采用原型化方法開發(fā)等,也可提高可維護(hù)性。 預(yù)防性維護(hù)策略:常采用提前實(shí)現(xiàn)、軟件重用等技術(shù)。,各類維護(hù)所占的比例,Lientz和Swanson在1980年寫的軟件維護(hù)管理一書中指出:從487個(gè)軟件開發(fā)機(jī)構(gòu)進(jìn)行調(diào)查研究的結(jié)果,給出各類維護(hù)所占的比重。,可見,維護(hù)并不一定是救火式的緊急維修。 一般來說,在維護(hù)階段最初一、
9、二年,改正維護(hù)的工作量較大。隨著錯(cuò)誤發(fā)現(xiàn)率較低,并趨于穩(wěn)定,就進(jìn)入了正常使用期。適應(yīng)性和完善性維護(hù)工作量逐步加大。,各類維護(hù)活動(dòng)的根本目的是延長(zhǎng)軟件生存期 常規(guī)軟件生成周期時(shí)間的估計(jì),5.1.3 軟件維護(hù)的特點(diǎn),1、時(shí)間長(zhǎng)、工作量大、成本高, 用于維護(hù)工作的勞動(dòng)可以分成生產(chǎn)性活動(dòng)(例如,分析評(píng)價(jià),修改設(shè)計(jì)和編寫程序代碼等)和非生產(chǎn)性活動(dòng)(例如,理解程序代碼的功能,解釋數(shù)據(jù)結(jié)構(gòu)、接口特點(diǎn)和性能限度等)。 影響軟件維護(hù)工作量和成本的因素很多,主要有以下方面:,()系統(tǒng)的大小系統(tǒng)越大,功能就越復(fù)雜,維護(hù)工作量就越大。 ()程序設(shè)計(jì)語(yǔ)言語(yǔ)言的功能越強(qiáng),生成程序所需要的指令(程序)越少,而且程序的可讀性
10、也越好,維護(hù)工作量也就越小。 ()系統(tǒng)年齡系統(tǒng)越老,修改維護(hù)的次數(shù)就越多,結(jié)構(gòu)也就越亂。因此維護(hù)工作量也就越大。 ()軟件開發(fā)新技術(shù)的應(yīng)用軟件開發(fā)過程中,使用先進(jìn)的分析和設(shè)計(jì)技術(shù),以及程序設(shè)計(jì)技術(shù),如:面向?qū)ο蟮募夹g(shù)、構(gòu)件技術(shù)、可視化程序設(shè)計(jì)技術(shù)等,可以減少維護(hù)工作量。,2、維護(hù)存在副作用 修改代碼的副作用:在修改源代碼時(shí),可能引起的錯(cuò)誤。例如1963年飛往火星的阿波羅宇宙飛船的飛行控制軟件,由于粗心把一個(gè)逗號(hào)寫成句號(hào),導(dǎo)致火箭爆炸,損失1000萬美元。 雖然不是所有的副作用都有這么嚴(yán)重的后果,但修改可能導(dǎo)致錯(cuò)誤,錯(cuò)誤總會(huì)導(dǎo)致各種問題。下面的一組修改將比其它修改更易出錯(cuò): (1)對(duì)子程序的刪除
11、或修改; (2)對(duì)語(yǔ)句標(biāo)號(hào)的刪除或修改; (3)對(duì)標(biāo)識(shí)符的刪除或修改; (4)為改進(jìn)程序執(zhí)行性能所做的修改: (5)改變文件的打開或關(guān)閉; (6)對(duì)邏輯運(yùn)算符的修改; (7)把設(shè)計(jì)的修改翻譯成程序代碼的修改; (8)對(duì)判定的邊界條件所做的修改。,修改數(shù)據(jù)的副作用:在修改數(shù)據(jù)結(jié)構(gòu)時(shí),有可能造成軟件設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)不匹配,因而導(dǎo)致軟件出錯(cuò)。數(shù)據(jù)副作用就是修改軟件信息結(jié)構(gòu)導(dǎo)致的結(jié)果。 (1)重新定義局部常量或全程常量; (2)重新定義記錄格式或文件格式; (3)改變一個(gè)數(shù)組或高階數(shù)據(jù)結(jié)構(gòu)的大??; (4)修改全程變量; (5)重新初始化控制標(biāo)記或指針; (6)重新排列輸入輸出或子程序的自變量。,修改文檔
12、的副作用: 維護(hù)應(yīng)該著眼于整個(gè)軟件的配置,而不只是源程序代碼的修改。對(duì)軟件的數(shù)據(jù)流、軟件結(jié)構(gòu)、模塊邏輯等進(jìn)行修改時(shí),必須對(duì)相關(guān)技術(shù)文檔進(jìn)行相應(yīng)修改。 但修改文檔過程會(huì)產(chǎn)生新的錯(cuò)誤,導(dǎo)致文檔與程序功能不匹配、缺省條件改變等錯(cuò)誤,產(chǎn)生文檔的副作用。實(shí)際上,某些維護(hù)申請(qǐng)的提出只是由于用戶文檔不夠清楚。這時(shí),只需對(duì)文檔進(jìn)行維護(hù)即可,并不要求修改軟件設(shè)計(jì)或源程序。 因此,在軟件再次交付使用之前,對(duì)整個(gè)軟件配置進(jìn)行評(píng)審將大大減少文檔的副作用。,3、結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)存在差異 非結(jié)構(gòu)化維護(hù) 缺乏必要的文檔說明,文檔缺少或者不一制,難于確定數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口等特性,這樣的維護(hù)工作令人生畏,事倍功半。 結(jié)
13、構(gòu)化維護(hù) 指軟件開發(fā)過程是按照軟件工程方法進(jìn)行的,開發(fā)各階段的文檔齊全,軟件的維護(hù)過程,有一整套完整的方案、技術(shù)、審定過程及文檔。,結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)的對(duì)比,太累了!受不了啦!幾萬行程序怎么改哦?,4、維護(hù)的代價(jià)高昂 有形的代價(jià):在過去的幾十年中,軟件維護(hù)的費(fèi)用穩(wěn)步上升。1970年用于維護(hù)已有軟件的費(fèi)用只占軟件總預(yù)算的35%40%,1980年上升為40%60%,1990年上升為70%80%。,無形的代價(jià) 因?yàn)榭捎玫馁Y源必須供維護(hù)任務(wù)使用,以致耽誤甚至喪失了開發(fā)新軟件的良機(jī); 當(dāng)看來合理的有關(guān)改錯(cuò)或修改的要求不能及時(shí)滿足時(shí)將引起用戶不滿; 由于維護(hù)時(shí)的改動(dòng),在軟件中引入了潛伏的故障,從而降
14、低了軟件的質(zhì)量; 當(dāng)必須把軟件工程師調(diào)去從事維護(hù)工作時(shí),將在開發(fā)過程中造成混亂。 生產(chǎn)率的大幅度下降,這種情況在維護(hù)舊程序時(shí)常常遇到。例如,據(jù)Gausler在1976年的報(bào)道,美國(guó)空軍的飛行控制軟件每條指令的開發(fā)成本是75美元,然而維護(hù)成本大約是每條指令4000美元,也就是說,生產(chǎn)率下降了50倍以上。,5、維護(hù)的問題很多 理解別人寫的程序通常非常困難,而且困難程度隨著軟件配置成分的減少而迅速增加。如果僅有程序代碼沒有說明文檔,則會(huì)出現(xiàn)嚴(yán)重的問題。 需要維護(hù)的軟件往往沒有合格的文檔,或者文檔資料顯著不足。認(rèn)識(shí)到軟件必須有文檔僅僅是第一步,容易理解的并且和程序代碼完全一致的文檔才真正有價(jià)值。,當(dāng)要
15、求對(duì)軟件進(jìn)行維護(hù)時(shí),不能指望由開發(fā)人員給我們仔細(xì)說明軟件。由于維護(hù)階段持續(xù)的時(shí)間很長(zhǎng),因此,當(dāng)需要解釋軟件時(shí),往往原來寫程序的人已經(jīng)不在附近了。 絕大多數(shù)軟件在設(shè)計(jì)時(shí)沒有考慮將來的修改。除非使用強(qiáng)調(diào)模塊獨(dú)立原理的設(shè)計(jì)方法學(xué),否則修改軟件既困難又容易發(fā)生差錯(cuò)。 軟件維護(hù)不是一項(xiàng)吸引人的工作。形成這種觀念很大程度上是因?yàn)榫S護(hù)工作經(jīng)常遭受挫折。,5.2 軟件可維護(hù)性,許多軟件的維護(hù)十分困難,主要原因在于:這些軟件的文檔和源程序難于理解,又難于修改。由于維護(hù)工作面廣,維護(hù)的難度大,稍有不慎,就會(huì)在修改中給軟件帶來新的問題或引入新的錯(cuò)誤,所以為了使得軟件能夠易于維護(hù),必須考慮使軟件具有可維護(hù)性。,5.2
16、.1 軟件可維護(hù)性的定義 5.2.2 可維護(hù)性的度量 5.2.3 提高可維護(hù)性的方法,5.2.1 軟件可維護(hù)性的定義,軟件可維護(hù)性是指維護(hù)人員對(duì)該軟件進(jìn)行維護(hù)的難易程度,具體包括理解、改正、改動(dòng)和改進(jìn)軟件的難易程度。 軟件的可維護(hù)性是軟件開發(fā)階段各個(gè)時(shí)期的關(guān)鍵目標(biāo)。,5.2.2 可維護(hù)性的度量,隨著如何對(duì)軟件可維護(hù)性進(jìn)行度量的深入研究的深入,形成了一個(gè)引人注目的學(xué)科軟件度量學(xué)。 度量一個(gè)軟件的可維護(hù)性常用的方法有: 質(zhì)量檢查表:是用于測(cè)試程序中某些質(zhì)量特性是否存在的一個(gè)問題清單。評(píng)測(cè)者針對(duì)檢查表上的每個(gè)問題,依據(jù)自己的定性判斷,回答“是”或“否”。 質(zhì)量測(cè)試和質(zhì)量標(biāo)準(zhǔn):用于定量分析和評(píng)價(jià)程序的
17、質(zhì)量。由于許多質(zhì)量特性是相互抵觸的。目前廣泛使用的衡量程序的可維護(hù)性的7種特性如表所示。而且對(duì)于不同類型的維護(hù),這7種特性的側(cè)重點(diǎn)也不相同。,可理解性:表明人們通過閱讀源代碼和相關(guān)文檔,了解程序功能及其如何運(yùn)行的容易程度。 一個(gè)可理解的程序主要應(yīng)具備以下一些特性:模塊化,風(fēng)格一致性,不使用令人捉摸不定或含糊不清的代碼,使用有意義的數(shù)據(jù)名和過程名,結(jié)構(gòu)化,完整性等。 對(duì)于可理解性,Shneiderman提出一種叫做“90-10測(cè)試法” 來衡量。即讓有經(jīng)驗(yàn)的程序員閱讀10分鐘要測(cè)試的程序,然后如能憑記憶和理解寫出90的程序,則稱該程序是可理解的。,可靠性:表明一個(gè)軟件按照用戶的要求和設(shè)計(jì)目標(biāo),在給
18、定的一段時(shí)間內(nèi)正確執(zhí)行的概率。 關(guān)于可靠性,度量的主要標(biāo)準(zhǔn)有:平均失效間隔時(shí)間、平均修復(fù)時(shí)間、有效性。 度量可靠性的方法,主要有兩類: 根據(jù)程序錯(cuò)誤統(tǒng)計(jì)數(shù)字,進(jìn)行可靠性預(yù)測(cè)。 根據(jù)程序復(fù)雜性,預(yù)測(cè)軟件可靠性。 可測(cè)試性:表明論證軟件正確性的容易程度。對(duì)于程序模塊,可用程序復(fù)雜性來度量可測(cè)試性。,可修改性:一個(gè)可修改的軟件應(yīng)當(dāng)是可理解的、通用的、靈活的、簡(jiǎn)單的。其中: 通用性:指軟件適用于各種功能變化而無需修改。 靈活性:是指能夠容易的對(duì)軟件進(jìn)行修改。 可移植性:表明軟件轉(zhuǎn)移到一個(gè)新的計(jì)算環(huán)境的可能性的大小?;蛘哕浖苡行У卦诟鞣N環(huán)境中運(yùn)行的容易程度。一個(gè)可移植性好的軟件應(yīng)具有良好、靈活、不依賴
19、于某一具體計(jì)算機(jī) 或操作系統(tǒng)的性能。 效率:包括時(shí)間和空間的效率。 可使用性:從用戶的角度出發(fā),將可使用性定義為程序方便、實(shí)用及易于使用的程度。,5.2.3 提高可維護(hù)性的方法,軟件的可維護(hù)性對(duì)于延長(zhǎng)軟件的生存期具有決定的意義;因此必須考慮如何才能提高軟件的可維護(hù)性,為此,需從以下幾個(gè)方面考慮: 建立明確的軟件質(zhì)量目標(biāo) 使用提高軟件質(zhì)量的技術(shù)和工具 進(jìn)行明確的質(zhì)量保證審查 選擇可維護(hù)的程序設(shè)計(jì)語(yǔ)言 改進(jìn)程序的文檔,建立明確的軟件質(zhì)量目標(biāo) 一個(gè)可維護(hù)的軟件應(yīng)是可理解的、可靠的、可測(cè)試的、可修改的、可移植的、效率高的、可使用的。但實(shí)現(xiàn)這所有目標(biāo)是很難的,因?yàn)槟承┵|(zhì)量特性是相互促進(jìn)的,某些質(zhì)量特性是
20、相互抵觸的。所以,在提出目標(biāo)的同時(shí)還必須規(guī)定它們的優(yōu)先級(jí),這樣有助于提高軟件的質(zhì)量。 使用提高軟件質(zhì)量的技術(shù)和工具 是軟件開發(fā)過程中提高軟件質(zhì)量,降低成本的有效方法之一。也是提高可維護(hù)性的有效的技術(shù)。常用的技術(shù)有:模塊化、結(jié)構(gòu)化程序設(shè)計(jì),自動(dòng)重建結(jié)構(gòu)和重新格式化的工具等。,進(jìn)行明確的質(zhì)量保證審查 有四種類型的軟件審查:在設(shè)置檢查點(diǎn)進(jìn)行復(fù)審 ,驗(yàn)收檢查,周期性的維護(hù)審查,對(duì)軟件包進(jìn)行檢查。 1、對(duì)設(shè)置檢查點(diǎn)進(jìn)行復(fù)審:在開發(fā)過程每一個(gè)階段的終點(diǎn),設(shè)置檢查點(diǎn)進(jìn)行檢查。目的是要檢查,已開發(fā)的軟件是否符合標(biāo)準(zhǔn),是否滿足規(guī)定的質(zhì)量需求。如圖所示,不同的檢查點(diǎn),檢查的重點(diǎn)不完全相同。,軟件開發(fā)期間各個(gè)檢查點(diǎn)
21、的檢查重點(diǎn),各階段的檢查重點(diǎn)、對(duì)象和方法,2、驗(yàn)收檢查:是對(duì)一個(gè)特殊的檢查點(diǎn)進(jìn)行檢查,也是軟件交付使用前的最后一次檢查。下面是必須遵循的最小驗(yàn)收標(biāo)準(zhǔn): 需求的規(guī)范標(biāo)準(zhǔn):以需求規(guī)格書為標(biāo)準(zhǔn)進(jìn)行檢查,區(qū)分必須的、任選的、將來的需求。包括:對(duì)系統(tǒng)運(yùn)行時(shí)的計(jì)算機(jī)設(shè)備的需求,對(duì)維護(hù)、測(cè)試、操作、維護(hù)人員的需求,對(duì)測(cè)試工具等的需求。 設(shè)計(jì)標(biāo)準(zhǔn):軟件應(yīng)設(shè)計(jì)成分層的模塊結(jié)構(gòu)。每個(gè)模塊應(yīng)完成獨(dú)立的功能,滿足高內(nèi)聚、低耦合的原則。通過一些知道預(yù)期變化的實(shí)例,說明設(shè)計(jì)的可擴(kuò)充性、可縮減性和可適應(yīng)性。 源代碼標(biāo)準(zhǔn):所有的代碼都必須有良好的結(jié)構(gòu),所用的代碼都必須文檔化,在注釋中說明它的輸入、輸出以及便于測(cè)試/再測(cè)試的一
22、些特點(diǎn)與風(fēng)格。 文檔標(biāo)準(zhǔn):文檔中應(yīng)說明程序的輸入/輸出、使用方法/算法、錯(cuò)誤回復(fù)方法、所用參數(shù)的范圍以及缺省條件等。,、周期性的維護(hù)審查:對(duì)已有的軟件系統(tǒng),則應(yīng)當(dāng)進(jìn)行周期性的維護(hù)檢查。 4、對(duì)軟件包進(jìn)行檢查:軟件包的維護(hù)人員首先要仔細(xì)分析、研究開發(fā)者提供的用戶手冊(cè)、操作手冊(cè)、培訓(xùn)教程、新版本說明、計(jì)算機(jī)環(huán)境要求書、未來特性表,以及驗(yàn)收測(cè)試報(bào)告等,在此基礎(chǔ)上,深入了解本單位的希望和要求,編制軟件包的檢驗(yàn)程序。檢驗(yàn)程序是用于檢驗(yàn)軟件包程序所執(zhí)行的功能是否與用戶的要求和條件相一致。,選擇可維護(hù)的程序設(shè)計(jì)語(yǔ)言 程序設(shè)計(jì)語(yǔ)言的選擇,對(duì)程序的可維護(hù)性影響很大。低級(jí)語(yǔ)言,很難理解,很難掌握,因此很難維護(hù)。高
23、級(jí)語(yǔ)言比低級(jí)語(yǔ)言容易理解,具有更好的可維護(hù)性,如圖所示。,改進(jìn)程序的文檔 好的文檔是建立可維護(hù)性的基本條件。它的作用和意義有三點(diǎn): 文檔好的程序比沒有文檔的程序容易操作。 好的文檔意味著簡(jiǎn)潔、風(fēng)格一致、且易于更新。 程序應(yīng)當(dāng)成為其自身的文檔。 另外,在軟件維護(hù)階段,利用歷史文檔,可以大大簡(jiǎn)化維護(hù)工作。,5.3 維護(hù)的活動(dòng),軟件維護(hù)是一件復(fù)雜而困難的事,維護(hù)中可能會(huì)進(jìn)入新的錯(cuò)誤,因此維護(hù)必須在相應(yīng)的技術(shù)指導(dǎo)下,按照一定的步驟有計(jì)劃地進(jìn)行。 首先要建立一個(gè)維護(hù)的組織,建立維護(hù)活動(dòng)的登記、申請(qǐng)制度,及對(duì)維護(hù)方案的審批制度,規(guī)定復(fù)審的評(píng)價(jià)標(biāo)準(zhǔn)。 其次通過軟件維護(hù)組織對(duì)維護(hù)過程進(jìn)行有效的控制,如首先要對(duì)
24、軟件進(jìn)行全面、準(zhǔn)確、迅速地理解,這是決定維護(hù)工作成敗和質(zhì)量好壞的關(guān)鍵。,修改 管理員,維護(hù)申請(qǐng),系統(tǒng)管理員,配置管理員,維護(hù)人員,維護(hù)管理員,維護(hù)組織,維護(hù)管理員負(fù)責(zé)接受維護(hù)申請(qǐng),然后把維護(hù)申請(qǐng)交給某個(gè)系統(tǒng)管理員去評(píng)價(jià)。 系統(tǒng)管理員是一名技術(shù)人員,他必須熟悉軟件產(chǎn)品的某一部分。系統(tǒng)管理員對(duì)維護(hù)申請(qǐng)作出評(píng)價(jià),然后交與修改負(fù)責(zé)人確定如何進(jìn)行修改。,在維護(hù)開始之前明確維護(hù)責(zé)任是十分必要的,目的可以: 減少混亂,改善維護(hù)活動(dòng)的流程,因?yàn)樗械木S護(hù)申請(qǐng)都集中于一個(gè)人或一個(gè)組,而其它渠道都被堵死,這樣可以避免未經(jīng)批準(zhǔn)而隨意修改可能導(dǎo)致的混亂。 至少有一個(gè)人對(duì)產(chǎn)品程序比較熟悉,可以很快對(duì)修改作出評(píng)價(jià)。 有專
25、門的修改控制部門負(fù)責(zé)修改控制,可以避免修改只使一個(gè)用戶受益,而對(duì)更多用戶產(chǎn)生不良影響。,維護(hù)報(bào)告 維護(hù)要求表 軟件維護(hù)人員通常給用戶提供空白的維護(hù)要求表有時(shí)稱為軟件問題報(bào)告表,這個(gè)表格由要求一項(xiàng)維護(hù)活動(dòng)的用戶填寫。如果遇到了一個(gè)錯(cuò)誤,那么必須完整描述導(dǎo)致出現(xiàn)錯(cuò)誤的環(huán)境(包括輸入數(shù)據(jù),全部輸出數(shù)據(jù),以及其他有關(guān)信息)。對(duì)于適應(yīng)性或完善性的維護(hù)要求,應(yīng)該提出一個(gè)簡(jiǎn)短的需求說明書。如前所述,由維護(hù)管理員和系統(tǒng)管理員評(píng)價(jià)用戶提交的維護(hù)要求表。,軟件修改報(bào)告:維護(hù)要求表是一個(gè)外部產(chǎn)生的文件,它是計(jì)劃維護(hù)活動(dòng)的基礎(chǔ)。軟件組織內(nèi)部應(yīng)該制定出一個(gè)軟件修改報(bào)告,它給出下述信息: (1)滿足維護(hù)要求表中提出的要求
26、所需要的工作量; (2)維護(hù)要求的性質(zhì); (3)這項(xiàng)要求的優(yōu)先次序; (4)預(yù)計(jì)修改后的狀況。 軟件修改報(bào)告應(yīng)提交給修改負(fù)責(zé)人進(jìn)行審核批準(zhǔn),以便進(jìn)行下一步工作。,維護(hù)階段的事件流,維護(hù)具體的工作如下: 修改軟件設(shè)計(jì) 設(shè)計(jì)復(fù)審 對(duì)源代碼的必要修改 單元測(cè)試 集成測(cè)試,包括回歸測(cè)試 驗(yàn)收測(cè)試 軟件配置復(fù)審,對(duì)于軟件生命周期的所有階段而言,以前記錄保存都是不充分的,而軟件維護(hù)則根本沒有記錄保存下來。由于這個(gè)原因,我們往往不能估價(jià)維護(hù)技術(shù)的有效性,不能確定一個(gè)產(chǎn)品程序的“優(yōu)良”程度,而且很難確定維護(hù)的實(shí)際代價(jià)是什么。 對(duì)于維護(hù)記錄中的內(nèi)容,Swanson給出了下述的項(xiàng)目表: (1) 程序名稱; (2) 源程序語(yǔ)句條數(shù); (3) 機(jī)器代碼指令條數(shù);,(4) 使用的程序設(shè)計(jì)語(yǔ)言; (5) 程序的安裝日期; (6) 程序安裝后的運(yùn)行次數(shù); (7) 與程序安裝后運(yùn)行次數(shù)有關(guān)的處理故障的次數(shù); (8)程序修改的層次和名稱; (9) 由于程序修改而增加的源程序語(yǔ)句條數(shù); (10)由
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)墻漆購(gòu)銷合同7篇
- 廚師培訓(xùn)服務(wù)合同
- 2025年企業(yè)標(biāo)準(zhǔn)勞動(dòng)合同協(xié)議書
- 房產(chǎn)轉(zhuǎn)讓合同樣本
- 廣州市2025年租車服務(wù)合同范本
- 虛擬主機(jī)采購(gòu)合同
- 跨行業(yè)供應(yīng)鏈協(xié)同合作框架合同
- 技術(shù)咨詢合同正式版5篇
- 2025年租戶權(quán)益優(yōu)先商場(chǎng)租賃合同
- 醫(yī)療器械臨床試驗(yàn)委托合同
- 2025年安徽中醫(yī)藥高等??茖W(xué)校單招職業(yè)適應(yīng)性測(cè)試題庫(kù)有答案
- 北京大學(xué)DeepSeek系列-DeepSeek與AIGC應(yīng)用
- 2025年皖北衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)必考題
- 2025年無錫職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)完整版
- 2025年皖西衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案1套
- 《馬云創(chuàng)業(yè)經(jīng)歷》課件
- 2024年05月安徽農(nóng)商銀行系統(tǒng)社會(huì)招考計(jì)算機(jī)法律專業(yè)員工人員筆試歷年參考題庫(kù)附帶答案詳解
- 騰訊云人工智能工程師認(rèn)證考試題(附答案)
- 班級(jí)管理案例與應(yīng)用知到智慧樹章節(jié)測(cè)試課后答案2024年秋哈爾濱師范大學(xué)
- 建設(shè)單位保證工程安全措施的實(shí)施方案
- 第16課數(shù)據(jù)管理與編碼(教案)四年級(jí)全一冊(cè)信息技術(shù)人教版
評(píng)論
0/150
提交評(píng)論