版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9章
軟件維護(hù)1第9章軟件維護(hù)1軟件維護(hù)軟件維護(hù)是軟件生命周期的最后一個(gè)階段,它處于系統(tǒng)投入生產(chǎn)性運(yùn)行以后的時(shí)期中,因此不屬于系統(tǒng)開(kāi)發(fā)過(guò)程。軟件維護(hù)需要的工作量非常大,雖然在不同應(yīng)用領(lǐng)域維護(hù)成本差別很大,但是,平均說(shuō)來(lái),大型軟件的維護(hù)成本高達(dá)開(kāi)發(fā)成本的四倍左右。目前國(guó)外許多軟件開(kāi)發(fā)組織把60%以上的人力用于維護(hù)已有的軟件,而且隨著軟件數(shù)量增多和使用壽命延長(zhǎng),這個(gè)百分比還在持續(xù)上升。將來(lái)維護(hù)工作甚至可能會(huì)束縛住軟件開(kāi)發(fā)組織的手腳,使他們沒(méi)有余力開(kāi)發(fā)新的軟件。本書(shū)前面各章講述的軟件工程方法學(xué)的主要目的就是要提高軟件的可維護(hù)性,減少軟件維護(hù)所需要的工作量,降低軟件系統(tǒng)的總成本。2軟件維護(hù)軟件維護(hù)是軟件生命周期的最后一個(gè)階段,它處于系統(tǒng)投入9.1軟件維護(hù)的定義
33軟件維護(hù)的定義所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程。我們可以通過(guò)描述軟件交付使用后可能進(jìn)行的四項(xiàng)活動(dòng),具體地定義軟件維護(hù)。因?yàn)檐浖y(cè)試不可能暴露出一個(gè)大型軟件系統(tǒng)中所有潛藏的錯(cuò)誤,所以必然會(huì)有第一項(xiàng)維護(hù)活動(dòng):在任何大型程序的使用期間,用戶必然會(huì)發(fā)現(xiàn)程序錯(cuò)誤,并且把他們遇到的問(wèn)題報(bào)告給維護(hù)人員。我們把診斷和改正錯(cuò)誤的過(guò)程稱(chēng)為改正性維護(hù)。計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域的各個(gè)方面都在迅速進(jìn)步,大約每過(guò)若干個(gè)月就有新一代的硬件宣告出現(xiàn),經(jīng)常推出新操作系統(tǒng)或舊系統(tǒng)的修改版本,時(shí)常增加或修改外部設(shè)備和其他系統(tǒng)部件;另一方面,應(yīng)用軟件的使用壽命卻很容易超過(guò)十年,遠(yuǎn)遠(yuǎn)長(zhǎng)于最初開(kāi)發(fā)這個(gè)軟件時(shí)的運(yùn)行環(huán)境的壽命。因此,適應(yīng)性維護(hù),也就是為了和變化了的環(huán)境適當(dāng)?shù)嘏浜隙M(jìn)行的修改軟件的活動(dòng),是既必要又經(jīng)常的維護(hù)活動(dòng)。4軟件維護(hù)的定義所謂軟件維護(hù)就是在軟件已經(jīng)交付使用之后,為了改軟件維護(hù)的定義當(dāng)一個(gè)軟件系統(tǒng)順利地運(yùn)行時(shí),常常出現(xiàn)第三項(xiàng)維護(hù)活動(dòng):在使用軟件的過(guò)程中用戶往往提出增加新功能或修改已有功能的建議,還可能提出一般性的改進(jìn)意見(jiàn)。為了滿足這類(lèi)要求,需要進(jìn)行完善性維護(hù)。這項(xiàng)維護(hù)活動(dòng)通常占軟件維護(hù)工作的大部分。當(dāng)為了改進(jìn)未來(lái)的可維護(hù)性或可靠性,或?yàn)榱私o未來(lái)的改進(jìn)奠定更好的基礎(chǔ)而修改軟件時(shí),出現(xiàn)了第四項(xiàng)維護(hù)活動(dòng)。這項(xiàng)維護(hù)活動(dòng)通常稱(chēng)為預(yù)防性維護(hù),目前這項(xiàng)維護(hù)活動(dòng)相對(duì)說(shuō)比較稀少。從上述關(guān)于軟件維護(hù)的定義不難看出,軟件維護(hù)絕不僅限于糾正使用中發(fā)現(xiàn)的錯(cuò)誤,事實(shí)上在全部維護(hù)活動(dòng)中一半以上是完善性維護(hù)。國(guó)外的統(tǒng)計(jì)數(shù)字表明,完善性維護(hù)占全部維護(hù)活動(dòng)的50%~66%,改正性維護(hù)占17%~21%,適應(yīng)性維護(hù)占18%~25%,其他維護(hù)活動(dòng)只占4%左右。5軟件維護(hù)的定義當(dāng)一個(gè)軟件系統(tǒng)順利地運(yùn)行時(shí),常常出現(xiàn)第三項(xiàng)維護(hù)9.2維護(hù)的特點(diǎn)669.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)的對(duì)比如果軟件配置的唯一成分是程序代碼,那么維護(hù)活動(dòng)從艱苦地評(píng)價(jià)程序代碼開(kāi)始,而且常常由于程序內(nèi)部文檔不足而使評(píng)價(jià)更困難。諸如軟件結(jié)構(gòu)、全程數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口、性能和(或)設(shè)計(jì)約束等微妙的特點(diǎn)是難于搞清的,而且常常誤解了這一類(lèi)特點(diǎn)。最終對(duì)程序代碼所做的改動(dòng)的后果是難于估量的:因?yàn)闆](méi)有測(cè)試方面的文檔,所以不可能進(jìn)行回歸測(cè)試(即為了保證所做的修改沒(méi)有在以前可以正常使用的軟件功能中引入故障而重復(fù)過(guò)去做過(guò)的測(cè)試)??上В覀冋谶M(jìn)行非結(jié)構(gòu)化維護(hù),并且正在為此而付出代價(jià)(浪費(fèi)精力和受挫折),這種維護(hù)方式是沒(méi)有使用良好定義的方法論開(kāi)發(fā)出來(lái)的軟件的必然結(jié)果。79.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)的對(duì)比如果軟件配置9.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)的對(duì)比如果有一個(gè)完整的軟件配置存在,那么維護(hù)工作從評(píng)價(jià)設(shè)計(jì)文檔開(kāi)始,確定軟件重要的結(jié)構(gòu)特點(diǎn)、性能特點(diǎn)以及接口特點(diǎn);估量要求的改動(dòng)將帶來(lái)的影響,并且計(jì)劃實(shí)施途徑。然后首先修改設(shè)計(jì)并且對(duì)所做的修改進(jìn)行仔細(xì)復(fù)查。接下來(lái)編寫(xiě)相應(yīng)的源程序代碼;使用在測(cè)試說(shuō)明書(shū)中包含的信息進(jìn)行回歸測(cè)試;最后,把修改后的軟件再次交付使用。剛才描述的事件構(gòu)成結(jié)構(gòu)化維護(hù),它是在軟件開(kāi)發(fā)的早期應(yīng)用軟件工程方法論的結(jié)果。雖然有了軟件的完整配置并不能保證維護(hù)中沒(méi)有問(wèn)題,但是確實(shí)能減少精力的浪費(fèi)并且能提高維護(hù)的總體質(zhì)量。89.2.1結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)的對(duì)比如果有一個(gè)完整的9.2.2維護(hù)的代價(jià)在過(guò)去的幾十年中,軟件維護(hù)的費(fèi)用穩(wěn)步上升。1970年用于維護(hù)已有軟件的費(fèi)用只占軟件總預(yù)算的35%~40%,1980年上升為40%~60%,1990年上升為70%~80%。維護(hù)費(fèi)用只不過(guò)是軟件維護(hù)的最明顯的代價(jià),其他一些現(xiàn)在還不明顯的代價(jià)將來(lái)可能更為人們所關(guān)注。因?yàn)榭捎玫馁Y源必須供維護(hù)任務(wù)使用,以致耽誤甚至喪失了開(kāi)發(fā)的良機(jī),這是軟件維護(hù)的一個(gè)無(wú)形的代價(jià)。其他無(wú)形的代價(jià)還有:①當(dāng)看來(lái)合理的有關(guān)改錯(cuò)或修改的要求不能及時(shí)滿足時(shí)將引起用戶不滿;②由于維護(hù)時(shí)的改動(dòng),在軟件中引入了潛伏的故障,從而降低了軟件的質(zhì)量;③當(dāng)必須把軟件工程師調(diào)去從事維護(hù)工作時(shí),將在開(kāi)發(fā)過(guò)程中造成混亂。99.2.2維護(hù)的代價(jià)在過(guò)去的幾十年中,軟件維護(hù)的費(fèi)用穩(wěn)9.2.2維護(hù)的代價(jià)軟件維護(hù)的最后一個(gè)代價(jià)是生產(chǎn)率的大幅度下降,這種情況在維護(hù)舊程序時(shí)常常遇到。例如,據(jù)Gausler在1976年的報(bào)道,美國(guó)空軍的飛行控制軟件每條指令的開(kāi)發(fā)成本是75美元,然而維護(hù)成本大約是每條指令4000美元,也就是說(shuō),生產(chǎn)率下降了50倍以上。用于維護(hù)工作的勞動(dòng)可以分成生產(chǎn)性活動(dòng)(例如,分析評(píng)價(jià),修改設(shè)計(jì)和編寫(xiě)程序代碼等)和非生產(chǎn)性活動(dòng)(例如,理解程序代碼的功能,解釋數(shù)據(jù)結(jié)構(gòu)、接口特點(diǎn)和性能限度等)。下述表達(dá)式給以維護(hù)工作量的一個(gè)模型:M=P十K*exp(c-d)其中M是維護(hù)用的總工作量,P是生產(chǎn)性工作量,K是經(jīng)驗(yàn)常數(shù),c是復(fù)雜程度(非結(jié)構(gòu)化設(shè)計(jì)和缺少文檔都會(huì)增加軟件的復(fù)雜程度),d是維護(hù)人員對(duì)軟件的熟悉程度。上面的模型表明,如果軟件的開(kāi)發(fā)途徑不好(即,沒(méi)有使用軟件工程方法論),而且原來(lái)的開(kāi)發(fā)人員不能參加維護(hù)工作,那么維護(hù)工作量(和費(fèi)用)將指數(shù)地增加。109.2.2維護(hù)的代價(jià)軟件維護(hù)的最后一個(gè)代價(jià)是生產(chǎn)率的大9.2.3維護(hù)的問(wèn)題與軟件維護(hù)有關(guān)的絕大多數(shù)問(wèn)題,都可歸因于軟件定義和軟件開(kāi)發(fā)的方法有缺點(diǎn)。在軟件生命周期的頭兩個(gè)時(shí)期沒(méi)有嚴(yán)格而又科學(xué)的管理和規(guī)劃,幾乎必然會(huì)導(dǎo)致在最后階段出現(xiàn)問(wèn)題。下面列出和軟件維護(hù)有關(guān)的部分問(wèn)題:①理解別人寫(xiě)的程序通常非常困難,而且困難程度隨著軟件配置成分的減少而迅速增加。如果僅有程序代碼沒(méi)有說(shuō)明文檔,則會(huì)出現(xiàn)嚴(yán)重的問(wèn)題。②需要維護(hù)的軟件往往沒(méi)有合格的文檔,或者文檔資料顯著不足。認(rèn)識(shí)到軟件必須有文檔僅僅是第一步,容易理解的并且和程序代碼完全一致的文檔才真正有價(jià)值。③當(dāng)要求對(duì)軟件進(jìn)行維護(hù)時(shí),不能指望由開(kāi)發(fā)人員給我們仔細(xì)說(shuō)明軟件。由于維護(hù)階段持續(xù)的時(shí)間很長(zhǎng),因此,當(dāng)需要解釋軟件時(shí),往往原來(lái)寫(xiě)程序的人已經(jīng)不在附近了。④絕大多數(shù)軟件在設(shè)計(jì)時(shí)沒(méi)有考慮將來(lái)的修改。除非使用強(qiáng)調(diào)模塊獨(dú)立原理的設(shè)計(jì)方法論,否則修改軟件既困難又容易發(fā)生差錯(cuò)。⑤軟件維護(hù)不是一項(xiàng)吸引入的工作。形成這種觀念很大程度上是因?yàn)榫S護(hù)工作經(jīng)常遭受挫折。119.2.3維護(hù)的問(wèn)題與軟件維護(hù)有關(guān)的絕大多數(shù)問(wèn)題,都可9.3維護(hù)過(guò)程
1212維護(hù)過(guò)程維護(hù)過(guò)程本質(zhì)上是修改和壓縮了的軟件定義和開(kāi)發(fā)過(guò)程,而且事實(shí)上遠(yuǎn)在提出一項(xiàng)維護(hù)要求之前,與軟件維護(hù)有關(guān)的工作已經(jīng)開(kāi)始了。首先必須建立一個(gè)維護(hù)組織,隨后必須確定報(bào)告和評(píng)價(jià)的過(guò)程,而且必須為每個(gè)維護(hù)要求規(guī)定一個(gè)標(biāo)準(zhǔn)化的事件序列。此外,還應(yīng)該建立一個(gè)適用于維護(hù)活動(dòng)的記錄保管過(guò)程,并且規(guī)定復(fù)審標(biāo)準(zhǔn)。13維護(hù)過(guò)程維護(hù)過(guò)程本質(zhì)上是修改和壓縮了的軟件定義和開(kāi)發(fā)過(guò)程,而9.3.1維護(hù)組織雖然通常并不需要建立正式的維護(hù)組織,但是,即使對(duì)于一個(gè)小的軟件開(kāi)發(fā)團(tuán)體而言,非正式地委托責(zé)任也是絕對(duì)必要的。每個(gè)維護(hù)要求都通過(guò)維護(hù)管理員轉(zhuǎn)交給相應(yīng)的系統(tǒng)管理員去評(píng)價(jià)。系統(tǒng)管理員是被指定去熟悉一小部分產(chǎn)品程序的技術(shù)人員。系統(tǒng)管理員對(duì)維護(hù)任務(wù)做出評(píng)價(jià)之后,由變化授權(quán)人決定應(yīng)該進(jìn)行的活動(dòng)。149.3.1維護(hù)組織雖然通常并不需要建立正式的維護(hù)組織,15159.3.2軟件維護(hù)申請(qǐng)報(bào)告應(yīng)該用標(biāo)準(zhǔn)化的格式表達(dá)所有軟件維護(hù)要求。軟件維護(hù)人員通常給用戶提供空白的維護(hù)要求表——有時(shí)稱(chēng)為軟件問(wèn)題報(bào)告表,這個(gè)表格由要求一項(xiàng)維護(hù)活動(dòng)的用戶填寫(xiě)。如果遇到了一個(gè)錯(cuò)誤,那么必須完整描述導(dǎo)致出現(xiàn)錯(cuò)誤的環(huán)境(包括輸入數(shù)據(jù),全部輸出數(shù)據(jù),以及其他有關(guān)信息)。對(duì)于適應(yīng)性或完善性的維護(hù)要求,應(yīng)該提出一個(gè)簡(jiǎn)短的需求說(shuō)明書(shū)。如前所述,由維護(hù)管理員和系統(tǒng)管理員評(píng)價(jià)用戶提交的維護(hù)要求表。維護(hù)要求表是一個(gè)外部產(chǎn)生的文件,它是計(jì)劃維護(hù)活動(dòng)的基礎(chǔ)。軟件組織內(nèi)部應(yīng)該制定出一個(gè)軟件修改報(bào)告,它給出下述信息:⑴滿足維護(hù)要求表中提出的要求所需要的工作量;⑵維護(hù)要求的性質(zhì);⑶這項(xiàng)要求的優(yōu)先次序;⑷與修改有關(guān)的事后數(shù)據(jù)。169.3.2軟件維護(hù)申請(qǐng)報(bào)告應(yīng)該用標(biāo)準(zhǔn)化的格式表達(dá)9.3.3維護(hù)工作流程軟件維護(hù)工作流程如下圖所示。第一步是確認(rèn)維護(hù)要求。這需要維護(hù)人員與用戶反復(fù)協(xié)商,弄清錯(cuò)誤概況以及對(duì)業(yè)務(wù)的影響大小,以及用戶希望做什么樣的修改,并把這些情況存入故障數(shù)據(jù)庫(kù)。然后由維護(hù)組織管理員確認(rèn)維護(hù)類(lèi)型。179.3.3維護(hù)工作流程軟件維護(hù)工作流程如下圖所示。第一9.3.3維護(hù)工作流程189.3.3維護(hù)工作流程189.3.3維護(hù)工作流程在完成軟件維護(hù)任務(wù)之后,進(jìn)行復(fù)查常常是有好處的。一般說(shuō)來(lái),這種復(fù)查試圖回答下述問(wèn)題:①在當(dāng)前處境下設(shè)計(jì)、編碼或測(cè)試的哪些方面能用不同方法進(jìn)行?②哪些維護(hù)資源是應(yīng)該有而事實(shí)上卻沒(méi)有的?③對(duì)于這項(xiàng)維護(hù)工作什么是主要的(以及次要的)障礙?④要求的維護(hù)類(lèi)型中有預(yù)防性維護(hù)嗎?復(fù)查對(duì)將來(lái)維護(hù)工作的進(jìn)行有重要影響,而且所提供的反饋信息對(duì)有效地管理軟件組織十分重要。199.3.3維護(hù)工作流程在完成軟件維護(hù)任務(wù)之后,進(jìn)8.3.4保存維護(hù)記錄對(duì)于軟件生命周期的所有階段而言,以前記錄保存都是不充分的,而軟件維護(hù)則根本沒(méi)有記錄保存下來(lái)。由于這個(gè)原因,我們往往不能估價(jià)維護(hù)技術(shù)的有效性,不能確定一個(gè)產(chǎn)品程序的“優(yōu)良”程度,而且很難確定維護(hù)的實(shí)際代價(jià)是什么。208.3.4保存維護(hù)記錄對(duì)于軟件生命周期的所有階段而言8.3.4保存維護(hù)記錄Swanson提出了下述內(nèi)容:⑴程序標(biāo)識(shí);⑵源語(yǔ)句數(shù);⑶機(jī)器指令條數(shù);⑷使用的程序設(shè)計(jì)語(yǔ)言;⑸程序安裝的日期;⑹自從安裝以來(lái)程序運(yùn)行的次數(shù);⑺自從安裝以來(lái)程序失效的次數(shù);⑻程序變動(dòng)的層次和標(biāo)識(shí);⑼因程序變動(dòng)而增加的源語(yǔ)句數(shù);⑽每個(gè)改動(dòng)耗費(fèi)的人時(shí)數(shù);⑾因程序變動(dòng)而刪除的源語(yǔ)句數(shù);⑿程序改動(dòng)的日期;⒀軟件工程師的名字;⒁維護(hù)要求表的標(biāo)識(shí);⒂維護(hù)類(lèi)型;⒃維護(hù)開(kāi)始和完成的日期;.⒄累計(jì)用于維護(hù)的人時(shí)數(shù);⒅與完成的維護(hù)相聯(lián)系的純效益。218.3.4保存維護(hù)記錄Swanson提出了下述內(nèi)容8.3.5評(píng)價(jià)維護(hù)活動(dòng)缺乏有效的數(shù)據(jù)就無(wú)法評(píng)價(jià)維護(hù)活動(dòng)。如果已經(jīng)開(kāi)始保存維護(hù)記錄了,則可以對(duì)維護(hù)工作做一些定量度量。至少可以從下述七個(gè)方面度量維護(hù)工作:⑴每次程序運(yùn)行平均失效的次數(shù);⑵用于每一類(lèi)維護(hù)活動(dòng)的總?cè)藭r(shí)數(shù);⑶平均每個(gè)程序、每種語(yǔ)言、每種維護(hù)類(lèi)型所做的程序變動(dòng)數(shù);⑷維護(hù)過(guò)程中增加或刪除一個(gè)源語(yǔ)句平均花費(fèi)的人時(shí)數(shù);⑸維護(hù)每種語(yǔ)言平均花費(fèi)的人時(shí)數(shù);⑹一張維護(hù)要求表的平均周轉(zhuǎn)時(shí)間;⑺不同維護(hù)類(lèi)型所占的百分比。根據(jù)對(duì)維護(hù)工作定量度量的結(jié)果,可以做出關(guān)于開(kāi)發(fā)技術(shù)、語(yǔ)言選擇、維護(hù)工作量規(guī)劃、資源分配及其他許多方面的決定,而且可以利用這樣的數(shù)據(jù)去分析評(píng)價(jià)維護(hù)任務(wù)。228.3.5評(píng)價(jià)維護(hù)活動(dòng)缺乏有效的數(shù)據(jù)就無(wú)法9.4程序修改的步驟及修改的副作用23239.4.1分析和理解程序經(jīng)過(guò)分析,全面、準(zhǔn)確、迅速地理解程序是決定維護(hù)成敗和質(zhì)量好壞的關(guān)鍵。因此,軟件的可理解性和文檔的質(zhì)量非常重要。為了容易地理解程序,要求自頂向下地理解現(xiàn)有源程序的程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),可采用以下方法⑴分析程序結(jié)構(gòu)圖⑵數(shù)據(jù)跟蹤⑶控制跟蹤⑷在分析過(guò)程中,充分閱讀和使用程序清單和文檔,分析文檔的合理性。⑸充分使用由編譯或匯編程序提供的交叉引用表、符號(hào)表及其他有用信息。⑹如有可能,積極參加開(kāi)發(fā)工作。249.4.1分析和理解程序經(jīng)過(guò)分析,全面、準(zhǔn)確、迅速地理解9.4.2修改程序?qū)Τ绦虻男薷?必須事先做出計(jì)劃,有預(yù)謀、周密有效地實(shí)施修改。⑴設(shè)計(jì)程序的修改計(jì)劃⑵修改代碼,以適應(yīng)變化⑶修改程序的副作用①修改代碼的副作用②修改數(shù)據(jù)的副作用③修改文檔的副作用為控制因修改而引起的副作用,要做到:①按模塊把修改分組;②自頂向下地安排所修改模塊的順序;③每次修改一個(gè)模塊;④對(duì)于每個(gè)修改了的模塊,在安排修改下一個(gè)模塊之前,要確定這個(gè)修改的副作用。259.4.2修改程序?qū)Τ绦虻男薷?必須事先做出計(jì)劃,有預(yù)謀9.4.3重新驗(yàn)證程序?qū)⑿薷暮蟮某绦蚪桓队脩糁埃枰靡韵碌姆椒ㄟM(jìn)行充分的確認(rèn)和測(cè)試,以保證整個(gè)修改后的程序的正確性。⑴靜態(tài)確認(rèn)⑵計(jì)算機(jī)確認(rèn)269.4.3重新驗(yàn)證程序?qū)⑿薷暮蟮某绦蚪桓队脩糁?,需要?.5可維護(hù)性27279.5.1決定軟件可維護(hù)性的因素1.可理解性軟件可理解性表現(xiàn)為外來(lái)讀者理解軟件的結(jié)構(gòu)、接口、功能和內(nèi)部過(guò)程的難易程度。模塊化、詳細(xì)的設(shè)計(jì)文檔、結(jié)構(gòu)化設(shè)計(jì)、源代碼內(nèi)部的文檔和良好的高級(jí)程序設(shè)計(jì)語(yǔ)言等等,都對(duì)改進(jìn)軟件的可理解性有重要貢獻(xiàn)。2.可靠性可靠性表明一個(gè)程序按照用戶的要求和設(shè)計(jì)目標(biāo),在給定的一段時(shí)間內(nèi)正確執(zhí)行的概率。3.可測(cè)試性診斷和測(cè)試的難易程度主要取決于軟件容易理解的程度。良好的文檔對(duì)診斷和測(cè)試是至關(guān)重要的。此外,軟件結(jié)構(gòu)、可用的測(cè)試工具和調(diào)試工具,以及以前設(shè)計(jì)的測(cè)試過(guò)程也都是非常重要的。維護(hù)人員應(yīng)該能夠得到在開(kāi)發(fā)階段用過(guò)的測(cè)試方案,以便進(jìn)行回歸測(cè)試。在設(shè)計(jì)階段應(yīng)該盡力把軟件設(shè)計(jì)成容易測(cè)試和容易診斷的。289.5.1決定軟件可維護(hù)性的因素1.可理解性29.5.1決定軟件可維護(hù)性的因素4.可修改性軟件容易修改的程度和本書(shū)第四章講述的設(shè)計(jì)原理和規(guī)則直接有關(guān)。耦合、內(nèi)聚、局部化、控制域與作用域的關(guān)系等等,都影響軟件的可修改性。5.可移植性可移植性表明程序轉(zhuǎn)移到一個(gè)新的計(jì)算環(huán)境的可能性大小?;蛘咚砻鞒绦蚩梢匀菀椎?、有效地在各種各樣的計(jì)算環(huán)境中運(yùn)行的容易程度。6.效率效率表明一個(gè)程序執(zhí)行預(yù)定功能而又不浪費(fèi)機(jī)器資源的程度。7.可使用性從用戶觀點(diǎn)出發(fā),把可使用性定義為程序方便、實(shí)用、及易于使用的程度。8.其他間接定量度量可維護(hù)性方法299.5.1決定軟件可維護(hù)性的因素4.可修改性299.5.2文檔文檔是影響軟件可維護(hù)性的決定因素。由于長(zhǎng)期使用的大型軟件系統(tǒng)在使用過(guò)程中必然會(huì)經(jīng)受多次修改,所以文檔比程序代碼更重要。軟件系統(tǒng)的文檔可以分為用戶文檔和系統(tǒng)文檔兩類(lèi)。用戶文檔主要描述系統(tǒng)功能和使用方法,并不關(guān)心這些功能是怎樣實(shí)現(xiàn)的;系統(tǒng)文檔描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等各方面的內(nèi)容??偟恼f(shuō)來(lái),軟件文檔應(yīng)該滿足下述要求:⑴必須描述如何使用這個(gè)系統(tǒng),沒(méi)有這種描述即使是最簡(jiǎn)單的系統(tǒng)也無(wú)法使用;⑵必須描述怎樣安裝和管理這個(gè)系統(tǒng);⑶必須描述系統(tǒng)需求和設(shè)計(jì);⑷必須描述系統(tǒng)的實(shí)現(xiàn)和測(cè)試,以便使系統(tǒng)成為可維護(hù)的。309.5.2文檔文檔是影響軟件可維護(hù)性的決定因用戶文檔用戶文檔是用戶了解系統(tǒng)的第一步,它應(yīng)該能使用戶獲得對(duì)系統(tǒng)的準(zhǔn)確的初步印象。文檔的結(jié)構(gòu)方式應(yīng)該使用戶能夠方便地根據(jù)需要閱讀有關(guān)的內(nèi)容。用戶文檔至少應(yīng)該包括下述五方面的內(nèi)容:⑴功能描述——說(shuō)明系統(tǒng)能做什么;⑵安裝文檔——說(shuō)明怎樣安裝這個(gè)系統(tǒng)以及怎樣使系統(tǒng)適應(yīng)特定的硬件配置;⑶使用手冊(cè)——簡(jiǎn)要說(shuō)明如何著手使用這個(gè)系統(tǒng)(應(yīng)該通過(guò)豐富例子說(shuō)明怎樣使用常用的系統(tǒng)功能,還應(yīng)該說(shuō)明用戶操作錯(cuò)誤時(shí)怎樣恢復(fù)相重新啟動(dòng));⑷參考手冊(cè)——詳盡描述用戶可以使用的所有系統(tǒng)設(shè)施以及它們的使用方法,還應(yīng)該解釋系統(tǒng)可能產(chǎn)生的各種出錯(cuò)信息的含義(對(duì)參考手冊(cè)最主要的要求是完整,因此通常使用形式化的描述技術(shù));⑸操作員指南(如果需要有系統(tǒng)操作員的話)——說(shuō)明操作員應(yīng)該如何處理使用中出現(xiàn)的各種情況。31用戶文檔用戶文檔是用戶了解系統(tǒng)的第一步,它應(yīng)該能使系統(tǒng)文檔所謂系統(tǒng)文檔指從問(wèn)題定義、需求說(shuō)明到驗(yàn)收測(cè)試計(jì)劃這樣一系列和系統(tǒng)實(shí)現(xiàn)有關(guān)的文檔。描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試的文檔對(duì)于理解程序和維護(hù)程序來(lái)說(shuō)是極端重要的。和用戶文檔類(lèi)似,系統(tǒng)文檔的結(jié)構(gòu)也應(yīng)該能把讀者從對(duì)系統(tǒng)概貌的了解,引導(dǎo)到對(duì)系統(tǒng)每個(gè)方面每個(gè)特點(diǎn)的更形式化更具體的認(rèn)識(shí)。32系統(tǒng)文檔所謂系統(tǒng)文檔指從問(wèn)題定義、需求說(shuō)明到驗(yàn)收測(cè)試計(jì)劃這9.5.3可維護(hù)性復(fù)審可維護(hù)性是所有軟件都應(yīng)該具備的基本特點(diǎn),必須在開(kāi)發(fā)階段保證軟件具有前面所提到的那些可維護(hù)因素。在軟件工程過(guò)程的每一個(gè)階段都應(yīng)該考慮并努力提高軟件的可維護(hù)性,在每個(gè)階段結(jié)束前的技術(shù)審查和管理復(fù)審中,應(yīng)該著重對(duì)可維護(hù)性進(jìn)行復(fù)審。339.5.3可維護(hù)性復(fù)審可維護(hù)性是
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年全日制碩士研究生入學(xué)考試專(zhuān)業(yè)科目深度題庫(kù)
- 2026年媒體融合與新聞傳播創(chuàng)新專(zhuān)業(yè)晉級(jí)題集
- 2026年鴻蒙系統(tǒng)架構(gòu)師進(jìn)階題庫(kù)系統(tǒng)設(shè)計(jì)與性能優(yōu)化
- 2026年教育心理學(xué)教育方法教育策略與心理分析題庫(kù)
- 地下空間垃圾清理工程專(zhuān)項(xiàng)施工方案
- 變頻器更換施工技術(shù)方案
- 2025年浙江金華科貿(mào)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)帶答案解析
- 2025年鶴壁汽車(chē)工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)帶答案解析
- 2025年西平縣招教考試備考題庫(kù)含答案解析(奪冠)
- 2025年中國(guó)消防救援學(xué)院馬克思主義基本原理概論期末考試模擬題帶答案解析
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)鮮雞肉行業(yè)市場(chǎng)深度研究及投資規(guī)劃建議報(bào)告
- 診所相關(guān)衛(wèi)生管理制度
- 2024-2025學(xué)年廣東深圳實(shí)驗(yàn)學(xué)校初中部八年級(jí)(上)期中英語(yǔ)試題及答案
- 牛津版八年級(jí)英語(yǔ)知識(shí)點(diǎn)總結(jié)
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)及完整答案詳解
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)含答案詳解
- 國(guó)際話語(yǔ)體系構(gòu)建與策略分析課題申報(bào)書(shū)
- 戶外領(lǐng)隊(duì)培訓(xùn)課件
- 2026年深圳市離婚協(xié)議書(shū)規(guī)范范本
- CTD申報(bào)資料撰寫(xiě)模板:模塊三之3.2.S.4原料藥的質(zhì)量控制
- 2024屆新高考物理沖刺復(fù)習(xí):“正則動(dòng)量”解決帶電粒子在磁場(chǎng)中的運(yùn)動(dòng)問(wèn)題
評(píng)論
0/150
提交評(píng)論