軟件工第八章軟件維護(hù)_第1頁(yè)
軟件工第八章軟件維護(hù)_第2頁(yè)
軟件工第八章軟件維護(hù)_第3頁(yè)
軟件工第八章軟件維護(hù)_第4頁(yè)
軟件工第八章軟件維護(hù)_第5頁(yè)
已閱讀5頁(yè),還剩96頁(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、-軟件維護(hù)軟件維護(hù)軟件工程第八章軟件工程第八章編程大師曾說(shuō)過(guò):編程大師曾說(shuō)過(guò):“哪怕程序只有哪怕程序只有三行長(zhǎng),總有一天你也不得不對(duì)它三行長(zhǎng),總有一天你也不得不對(duì)它進(jìn)行維護(hù)進(jìn)行維護(hù)?!?在軟件開(kāi)發(fā)過(guò)程中始終強(qiáng)調(diào)軟件的在軟件開(kāi)發(fā)過(guò)程中始終強(qiáng)調(diào)軟件的可維護(hù)性可維護(hù)性。原因是,一個(gè)應(yīng)用系統(tǒng)由于需求和環(huán)境的變化原因是,一個(gè)應(yīng)用系統(tǒng)由于需求和環(huán)境的變化以及自身暴露的問(wèn)題,在交付用戶使用后,對(duì)以及自身暴露的問(wèn)題,在交付用戶使用后,對(duì)它進(jìn)行維護(hù)是不可避免的,統(tǒng)計(jì)和估測(cè)結(jié)果表它進(jìn)行維護(hù)是不可避免的,統(tǒng)計(jì)和估測(cè)結(jié)果表明,信息技術(shù)中明,信息技術(shù)中硬件費(fèi)用一般占硬件費(fèi)用一般占35%,軟件占,軟件占65%,而軟件,而

2、軟件后期維護(hù)費(fèi)用后期維護(hù)費(fèi)用有時(shí)竟高達(dá)軟件總有時(shí)竟高達(dá)軟件總費(fèi)用的費(fèi)用的80%,所有前期開(kāi)發(fā)費(fèi)用僅占,所有前期開(kāi)發(fā)費(fèi)用僅占20%。 許多大型軟件公司為維護(hù)已有軟件耗費(fèi)大量人許多大型軟件公司為維護(hù)已有軟件耗費(fèi)大量人力、財(cái)力。因此,必須建立一套評(píng)估、控制和力、財(cái)力。因此,必須建立一套評(píng)估、控制和實(shí)施軟件維護(hù)的機(jī)制,這就是本章重點(diǎn)討論的實(shí)施軟件維護(hù)的機(jī)制,這就是本章重點(diǎn)討論的內(nèi)容。內(nèi)容。內(nèi)容提要內(nèi)容提要軟件維護(hù)的定義軟件維護(hù)的定義軟件維護(hù)的類(lèi)型軟件維護(hù)的類(lèi)型結(jié)構(gòu)化維護(hù)結(jié)構(gòu)化維護(hù)vs非結(jié)構(gòu)化維護(hù)非結(jié)構(gòu)化維護(hù)影響軟件維護(hù)工作量的因素影響軟件維護(hù)工作量的因素軟件維護(hù)的過(guò)程軟件維護(hù)的過(guò)程可維護(hù)性可維護(hù)性軟件

3、維護(hù)的管理軟件維護(hù)的管理軟件維護(hù)的定義軟件維護(hù)的定義 軟件維護(hù)軟件維護(hù)是指軟件系統(tǒng)交付使用以后,是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿足新的需要而修改軟為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程。件的過(guò)程。 一般來(lái)說(shuō),要求進(jìn)行維護(hù)的原因大致有一般來(lái)說(shuō),要求進(jìn)行維護(hù)的原因大致有以下幾種:以下幾種:(1)改正程序中的錯(cuò)誤和缺陷。)改正程序中的錯(cuò)誤和缺陷。(2)改進(jìn)設(shè)計(jì)以適應(yīng)新的軟、硬件環(huán)境。)改進(jìn)設(shè)計(jì)以適應(yīng)新的軟、硬件環(huán)境。(3)增加新的應(yīng)用范圍。)增加新的應(yīng)用范圍。軟件維護(hù)的類(lèi)型軟件維護(hù)的類(lèi)型 根據(jù)軟件維護(hù)的不同原因,軟件維護(hù)可根據(jù)軟件維護(hù)的不同原因,軟件維護(hù)可以分成三種類(lèi)型:以分成三種類(lèi)型

4、: 改正性維護(hù)改正性維護(hù) 適應(yīng)性維護(hù)適應(yīng)性維護(hù) 完善性維護(hù)完善性維護(hù) 預(yù)防性維護(hù)預(yù)防性維護(hù)改正性維護(hù)改正性維護(hù) 在軟件交付使用后,在軟件交付使用后,因開(kāi)發(fā)時(shí)測(cè)試的不徹底、因開(kāi)發(fā)時(shí)測(cè)試的不徹底、不完全,必然會(huì)有部分隱藏的錯(cuò)誤遺留到運(yùn)行不完全,必然會(huì)有部分隱藏的錯(cuò)誤遺留到運(yùn)行階段。階段。 這些隱藏下來(lái)的錯(cuò)誤在某些特定的使用環(huán)境下這些隱藏下來(lái)的錯(cuò)誤在某些特定的使用環(huán)境下就會(huì)暴露出來(lái)。就會(huì)暴露出來(lái)。 為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,應(yīng)當(dāng)進(jìn)行的診斷缺陷、排除實(shí)施中的誤使用,應(yīng)當(dāng)進(jìn)行的診斷和改正錯(cuò)誤的過(guò)程就叫做改正性維護(hù)。和改正錯(cuò)誤

5、的過(guò)程就叫做改正性維護(hù)。適應(yīng)性維護(hù)適應(yīng)性維護(hù) 在使用過(guò)程中,在使用過(guò)程中, 外部環(huán)境(新的硬、軟件配置)外部環(huán)境(新的硬、軟件配置) 數(shù)據(jù)環(huán)境(數(shù)據(jù)庫(kù)、數(shù)據(jù)格式、數(shù)據(jù)輸入數(shù)據(jù)環(huán)境(數(shù)據(jù)庫(kù)、數(shù)據(jù)格式、數(shù)據(jù)輸入/輸出方式、數(shù)據(jù)存儲(chǔ)介質(zhì))輸出方式、數(shù)據(jù)存儲(chǔ)介質(zhì))可能發(fā)生變化。可能發(fā)生變化。 為使軟件適應(yīng)這種變化,而去修改軟件為使軟件適應(yīng)這種變化,而去修改軟件的過(guò)程就叫做適應(yīng)性維護(hù)。的過(guò)程就叫做適應(yīng)性維護(hù)。完善性維護(hù)完善性維護(hù) 在軟件的使用過(guò)程中,用戶往往會(huì)對(duì)軟在軟件的使用過(guò)程中,用戶往往會(huì)對(duì)軟件提出新的功能與性能要求。件提出新的功能與性能要求。 為了滿足這些要求,需要修改或再開(kāi)發(fā)為了滿足這些要求,需

6、要修改或再開(kāi)發(fā)軟件,以擴(kuò)充軟件功能、軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能增強(qiáng)軟件性能、改進(jìn)加工效率改進(jìn)加工效率、提高軟件的可維護(hù)性。、提高軟件的可維護(hù)性。 這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性維護(hù)。維護(hù)。預(yù)防性維護(hù)預(yù)防性維護(hù) 預(yù)防性維護(hù)即預(yù)防性維護(hù)即軟件再工程軟件再工程,是為了提高,是為了提高軟件的可維護(hù)性、可靠性等,為以后進(jìn)軟件的可維護(hù)性、可靠性等,為以后進(jìn)一步改進(jìn)軟件打下良好基礎(chǔ)。一步改進(jìn)軟件打下良好基礎(chǔ)。 采用先進(jìn)的軟件工程方法對(duì)需要維護(hù)的采用先進(jìn)的軟件工程方法對(duì)需要維護(hù)的軟件或軟件中的某一部分(重新)進(jìn)行軟件或軟件中的某一部分(重新)進(jìn)行設(shè)計(jì)、編制和測(cè)試,

7、稱(chēng)為預(yù)防性維護(hù)。設(shè)計(jì)、編制和測(cè)試,稱(chēng)為預(yù)防性維護(hù)。各種維護(hù)類(lèi)型和維護(hù)工作量的比例各種維護(hù)類(lèi)型和維護(hù)工作量的比例其它其它維護(hù)維護(hù)4 %適應(yīng)性適應(yīng)性維維 護(hù)護(hù)18-25%改正性改正性維護(hù)維護(hù)1721%完善性維護(hù)完善性維護(hù)50%66維護(hù)占維護(hù)占70.8%改改正正性維護(hù)占全部維護(hù)性維護(hù)占全部維護(hù)工作工作量的比率已從量的比率已從上世上世紀(jì)紀(jì)8080年代初的年代初的20%20%大幅度下降大幅度下降, , 上世紀(jì)上世紀(jì)9090年代年代初一些公司的產(chǎn)品差錯(cuò)率已接近于零初一些公司的產(chǎn)品差錯(cuò)率已接近于零! !軟件維護(hù)的特點(diǎn)軟件維護(hù)的特點(diǎn) 結(jié)構(gòu)化維護(hù)和非結(jié)構(gòu)化維護(hù)差別巨大結(jié)構(gòu)化維護(hù)和非結(jié)構(gòu)化維護(hù)差別巨大 軟件維護(hù)的

8、代價(jià)高昂軟件維護(hù)的代價(jià)高昂 維護(hù)問(wèn)題多維護(hù)問(wèn)題多軟件維護(hù)事件流軟件維護(hù)事件流結(jié)構(gòu)化維護(hù)結(jié)構(gòu)化維護(hù)vs非結(jié)構(gòu)化維護(hù)非結(jié)構(gòu)化維護(hù) 軟件的開(kāi)發(fā)過(guò)程對(duì)軟件的維護(hù)產(chǎn)生較大的影響。軟件的開(kāi)發(fā)過(guò)程對(duì)軟件的維護(hù)產(chǎn)生較大的影響。 如果采用軟件工程的方法進(jìn)行軟件開(kāi)發(fā),保證每個(gè)如果采用軟件工程的方法進(jìn)行軟件開(kāi)發(fā),保證每個(gè)階段都有完整且詳細(xì)的文檔,這樣維護(hù)會(huì)相對(duì)容易,階段都有完整且詳細(xì)的文檔,這樣維護(hù)會(huì)相對(duì)容易,被稱(chēng)為被稱(chēng)為結(jié)構(gòu)化的維護(hù)結(jié)構(gòu)化的維護(hù)。 反之,如果不采用軟件工程方法開(kāi)發(fā)軟件,軟件只反之,如果不采用軟件工程方法開(kāi)發(fā)軟件,軟件只有程序而欠缺文檔,則維護(hù)工作變得十分困難,被有程序而欠缺文檔,則維護(hù)工作變得十分

9、困難,被成為成為非結(jié)構(gòu)化的維護(hù)非結(jié)構(gòu)化的維護(hù)。結(jié)構(gòu)化維護(hù)結(jié)構(gòu)化維護(hù)非結(jié)構(gòu)化維護(hù)非結(jié)構(gòu)化維護(hù)程序程序文檔文檔結(jié)構(gòu)化維護(hù)結(jié)構(gòu)化維護(hù)vs非結(jié)構(gòu)化維護(hù)非結(jié)構(gòu)化維護(hù)交付使用交付使用分析設(shè)計(jì)分析設(shè)計(jì)制定計(jì)劃制定計(jì)劃修改計(jì)劃修改計(jì)劃編碼編碼復(fù)審?fù)ㄟ^(guò)復(fù)審?fù)ㄟ^(guò)文件有嗎文件有嗎苦讀代碼苦讀代碼找到問(wèn)題找到問(wèn)題編碼編碼復(fù)審?fù)ㄟ^(guò)復(fù)審?fù)ㄟ^(guò)維護(hù)要求維護(hù)要求n ny yy yy yy yn nn nn n結(jié)構(gòu)化維護(hù)結(jié)構(gòu)化維護(hù) 非結(jié)構(gòu)化維護(hù)非結(jié)構(gòu)化維護(hù) 維護(hù)要求維護(hù)要求配置配置評(píng)價(jià)設(shè)計(jì)評(píng)價(jià)設(shè)計(jì)計(jì)劃途徑計(jì)劃途徑修改設(shè)計(jì)修改設(shè)計(jì)重編程序重編程序評(píng)價(jià)代碼評(píng)價(jià)代碼?重編程序重編程序復(fù)查復(fù)查復(fù)查復(fù)查交付使用交付使用軟件軟件代碼代碼結(jié)構(gòu)

10、化維護(hù)結(jié)構(gòu)化維護(hù)非結(jié)構(gòu)化維非結(jié)構(gòu)化維護(hù)護(hù)非結(jié)構(gòu)化維護(hù)非結(jié)構(gòu)化維護(hù) 在非結(jié)構(gòu)化維護(hù)過(guò)程中,開(kāi)發(fā)人員只能通過(guò)閱在非結(jié)構(gòu)化維護(hù)過(guò)程中,開(kāi)發(fā)人員只能通過(guò)閱讀、理解和分析源程序來(lái)了解系統(tǒng)功能、軟件讀、理解和分析源程序來(lái)了解系統(tǒng)功能、軟件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口和設(shè)計(jì)約束等,這結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口和設(shè)計(jì)約束等,這樣做是十分困難的,也容易產(chǎn)生誤解。要弄清樣做是十分困難的,也容易產(chǎn)生誤解。要弄清楚整個(gè)系統(tǒng),勢(shì)必要花費(fèi)大量的人力和物力,楚整個(gè)系統(tǒng),勢(shì)必要花費(fèi)大量的人力和物力,對(duì)源程序修改產(chǎn)生的后果難以估計(jì)。在沒(méi)有文對(duì)源程序修改產(chǎn)生的后果難以估計(jì)。在沒(méi)有文檔的情況下,也不可能進(jìn)行回歸測(cè)試,很難保檔的情況下,也

11、不可能進(jìn)行回歸測(cè)試,很難保證程序的正確性。證程序的正確性。結(jié)構(gòu)化維護(hù)結(jié)構(gòu)化維護(hù) 在結(jié)構(gòu)化維護(hù)的過(guò)程中,所開(kāi)發(fā)的軟件具有各在結(jié)構(gòu)化維護(hù)的過(guò)程中,所開(kāi)發(fā)的軟件具有各個(gè)階段的文檔,它對(duì)于理解和掌握軟件的功能、個(gè)階段的文檔,它對(duì)于理解和掌握軟件的功能、性能、體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口和設(shè)計(jì)性能、體系結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)接口和設(shè)計(jì)約束等有很大的作用。維護(hù)時(shí),開(kāi)發(fā)人員從分約束等有很大的作用。維護(hù)時(shí),開(kāi)發(fā)人員從分析需求規(guī)格說(shuō)明開(kāi)始,明白軟件功能和性能上析需求規(guī)格說(shuō)明開(kāi)始,明白軟件功能和性能上的改變,對(duì)設(shè)計(jì)說(shuō)明文檔進(jìn)行修改和復(fù)查,再的改變,對(duì)設(shè)計(jì)說(shuō)明文檔進(jìn)行修改和復(fù)查,再根據(jù)設(shè)計(jì)修改進(jìn)行程序變動(dòng),并用測(cè)試文

12、檔中根據(jù)設(shè)計(jì)修改進(jìn)行程序變動(dòng),并用測(cè)試文檔中的的測(cè)試用例進(jìn)行回歸測(cè)試測(cè)試用例進(jìn)行回歸測(cè)試,最后將修改后的軟,最后將修改后的軟件再次交付使用。這種維護(hù)有利于減少工作量件再次交付使用。這種維護(hù)有利于減少工作量和降低成本,大大提高軟件的維護(hù)效率。和降低成本,大大提高軟件的維護(hù)效率。軟件維護(hù)的代價(jià)高昂軟件維護(hù)的代價(jià)高昂有形代價(jià)逐年上升:有形代價(jià)逐年上升:19701970年軟件維護(hù)費(fèi)用占總費(fèi)用的年軟件維護(hù)費(fèi)用占總費(fèi)用的35%35%40%40%;19801980年軟件維護(hù)費(fèi)用占總費(fèi)用的年軟件維護(hù)費(fèi)用占總費(fèi)用的40%40%60%60%;19901990年軟件維護(hù)費(fèi)用占總費(fèi)用的年軟件維護(hù)費(fèi)用占總費(fèi)用的70%7

13、0%80%80%。軟件維護(hù)的代價(jià)高昂軟件維護(hù)的代價(jià)高昂 維護(hù)費(fèi)用只不過(guò)是軟件維護(hù)最明顯的代價(jià),其他維護(hù)費(fèi)用只不過(guò)是軟件維護(hù)最明顯的代價(jià),其他一些還不明顯的代價(jià)將來(lái)可能更為人們關(guān)注。其一些還不明顯的代價(jià)將來(lái)可能更為人們關(guān)注。其他無(wú)形的代價(jià)還有:他無(wú)形的代價(jià)還有: 可用的資源被軟件維護(hù)所占用??捎玫馁Y源被軟件維護(hù)所占用。 未能及時(shí)滿足用戶的維護(hù)要求時(shí)引起用戶不滿。未能及時(shí)滿足用戶的維護(hù)要求時(shí)引起用戶不滿。 維護(hù)時(shí)改動(dòng)軟件,引入了潛在故障,降低了軟件質(zhì)量。維護(hù)時(shí)改動(dòng)軟件,引入了潛在故障,降低了軟件質(zhì)量。 抽調(diào)人員從事維護(hù)工作,對(duì)新的開(kāi)發(fā)過(guò)程造成混亂。抽調(diào)人員從事維護(hù)工作,對(duì)新的開(kāi)發(fā)過(guò)程造成混亂。 導(dǎo)

14、致生產(chǎn)率的大幅下降。導(dǎo)致生產(chǎn)率的大幅下降。 軟件維護(hù)的代價(jià)高昂軟件維護(hù)的代價(jià)高昂 用于維護(hù)工作的勞動(dòng)可以劃分成:用于維護(hù)工作的勞動(dòng)可以劃分成: 生產(chǎn)性活動(dòng)生產(chǎn)性活動(dòng)(如,分析評(píng)價(jià)、修改設(shè)計(jì)、編寫(xiě)程序(如,分析評(píng)價(jià)、修改設(shè)計(jì)、編寫(xiě)程序代碼等)代碼等) 非生產(chǎn)性活動(dòng)非生產(chǎn)性活動(dòng)(例如,理解程序代碼功能、解釋數(shù)(例如,理解程序代碼功能、解釋數(shù)據(jù)結(jié)構(gòu)、接口特點(diǎn)、性能限度等)據(jù)結(jié)構(gòu)、接口特點(diǎn)、性能限度等)軟件維護(hù)的代價(jià)高昂軟件維護(hù)的代價(jià)高昂 下述表達(dá)式給出了維護(hù)工作量的一個(gè)模型:下述表達(dá)式給出了維護(hù)工作量的一個(gè)模型:其中,其中,m是維護(hù)的總工作量,是維護(hù)的總工作量,p是生產(chǎn)性工作是生產(chǎn)性工作量,量,k是

15、經(jīng)驗(yàn)常數(shù),是經(jīng)驗(yàn)常數(shù),c是復(fù)雜程度,是復(fù)雜程度,d是維護(hù)人是維護(hù)人員對(duì)軟件的熟悉程度員對(duì)軟件的熟悉程度 上述模型表明,上述模型表明,如果軟件開(kāi)發(fā)沒(méi)有運(yùn)用軟件工如果軟件開(kāi)發(fā)沒(méi)有運(yùn)用軟件工程方法學(xué),而且原來(lái)的開(kāi)發(fā)人員未能夠參與到程方法學(xué),而且原來(lái)的開(kāi)發(fā)人員未能夠參與到維護(hù)工作之中,則維護(hù)工作量和費(fèi)用將指數(shù)增維護(hù)工作之中,則維護(hù)工作量和費(fèi)用將指數(shù)增加。加。()*c dmpke軟件維護(hù)的問(wèn)題軟件維護(hù)的問(wèn)題 與軟件維護(hù)有關(guān)的大多數(shù)問(wèn)題都可歸因于軟件與軟件維護(hù)有關(guān)的大多數(shù)問(wèn)題都可歸因于軟件定義和開(kāi)發(fā)方法上的不足。定義和開(kāi)發(fā)方法上的不足。 軟件開(kāi)發(fā)時(shí)采用急功近利,還是放眼未來(lái)的態(tài)軟件開(kāi)發(fā)時(shí)采用急功近利,還是

16、放眼未來(lái)的態(tài)度,對(duì)軟件維護(hù)影響極大。度,對(duì)軟件維護(hù)影響極大。 一般說(shuō)來(lái),軟件開(kāi)發(fā)若不嚴(yán)格遵循軟件開(kāi)發(fā)標(biāo)一般說(shuō)來(lái),軟件開(kāi)發(fā)若不嚴(yán)格遵循軟件開(kāi)發(fā)標(biāo)準(zhǔn),軟件維護(hù)就會(huì)遇到許多困難。準(zhǔn),軟件維護(hù)就會(huì)遇到許多困難。軟件維護(hù)的問(wèn)題軟件維護(hù)的問(wèn)題 下面列出了和軟件維護(hù)有關(guān)的部分問(wèn)題:下面列出了和軟件維護(hù)有關(guān)的部分問(wèn)題: 理解別人的代碼通常是非常困難的,而且難度隨著理解別人的代碼通常是非常困難的,而且難度隨著軟件配置成分的缺失而迅速增加;軟件配置成分的缺失而迅速增加; 需要維護(hù)的軟件通常往往沒(méi)有合格的文檔,或文檔需要維護(hù)的軟件通常往往沒(méi)有合格的文檔,或文檔資料顯然不足。資料顯然不足。-認(rèn)識(shí)到文檔僅僅是第一步,容

17、易理認(rèn)識(shí)到文檔僅僅是第一步,容易理解且和程序保持一致的文檔才是真正具有價(jià)值的解且和程序保持一致的文檔才是真正具有價(jià)值的; 當(dāng)軟件要求維護(hù)時(shí),不能指望開(kāi)發(fā)人員給我們仔細(xì)當(dāng)軟件要求維護(hù)時(shí),不能指望開(kāi)發(fā)人員給我們仔細(xì)說(shuō)明軟件。由于維護(hù)持續(xù)時(shí)間很長(zhǎng),因此當(dāng)需要解說(shuō)明軟件。由于維護(hù)持續(xù)時(shí)間很長(zhǎng),因此當(dāng)需要解釋軟件時(shí)候,往往開(kāi)發(fā)人員已經(jīng)不在附近了;釋軟件時(shí)候,往往開(kāi)發(fā)人員已經(jīng)不在附近了; 上述種種問(wèn)題在現(xiàn)有沒(méi)有采用軟件工程思想開(kāi)發(fā)出來(lái)的軟上述種種問(wèn)題在現(xiàn)有沒(méi)有采用軟件工程思想開(kāi)發(fā)出來(lái)的軟件中,都或多或少存在。件中,都或多或少存在。影響軟件維護(hù)工作量的因素影響軟件維護(hù)工作量的因素 在軟件維護(hù)中,影響維護(hù)工作

18、量的因素主要有在軟件維護(hù)中,影響維護(hù)工作量的因素主要有以下六種:以下六種: 系統(tǒng)的大小系統(tǒng)的大小系統(tǒng)規(guī)模越大,其功能就越復(fù)雜,軟件維護(hù)的工作系統(tǒng)規(guī)模越大,其功能就越復(fù)雜,軟件維護(hù)的工作量也隨之增大。量也隨之增大。 程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言使用強(qiáng)功能的程序設(shè)計(jì)語(yǔ)言可以控制程序的規(guī)模。使用強(qiáng)功能的程序設(shè)計(jì)語(yǔ)言可以控制程序的規(guī)模。語(yǔ)言的功能越強(qiáng),生成程序的模塊化和結(jié)構(gòu)化程度語(yǔ)言的功能越強(qiáng),生成程序的模塊化和結(jié)構(gòu)化程度越高,所需的指令數(shù)就越少,程序的可讀性越好。越高,所需的指令數(shù)就越少,程序的可讀性越好。影響軟件維護(hù)工作量的因素影響軟件維護(hù)工作量的因素 系統(tǒng)年齡系統(tǒng)年齡老系統(tǒng)比新系統(tǒng)需要更多的維護(hù)工作

19、量老系統(tǒng)比新系統(tǒng)需要更多的維護(hù)工作量 。因?yàn)?。因?yàn)槎啻蔚男薷目赡茉斐上到y(tǒng)結(jié)構(gòu)變得混亂,由于多次的修改可能造成系統(tǒng)結(jié)構(gòu)變得混亂,由于維護(hù)人員經(jīng)常更換,程序變得越來(lái)越難于理解,維護(hù)人員經(jīng)常更換,程序變得越來(lái)越難于理解,加之系統(tǒng)開(kāi)發(fā)時(shí)文檔不齊全,或在長(zhǎng)期的維護(hù)加之系統(tǒng)開(kāi)發(fā)時(shí)文檔不齊全,或在長(zhǎng)期的維護(hù)過(guò)程中文檔在許多地方與程序?qū)崿F(xiàn)變得不一致,過(guò)程中文檔在許多地方與程序?qū)崿F(xiàn)變得不一致,從而使維護(hù)變得十分困難。從而使維護(hù)變得十分困難。 數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用使用數(shù)據(jù)庫(kù),可以簡(jiǎn)單而有效地管理和存儲(chǔ)用使用數(shù)據(jù)庫(kù),可以簡(jiǎn)單而有效地管理和存儲(chǔ)用戶程序中的數(shù)據(jù),還可以減少生成用戶報(bào)表應(yīng)戶程序中的數(shù)據(jù),還可

20、以減少生成用戶報(bào)表應(yīng)用軟件的維護(hù)工作量。用軟件的維護(hù)工作量。影響軟件維護(hù)工作量的因素影響軟件維護(hù)工作量的因素 先進(jìn)的軟件開(kāi)發(fā)技術(shù)先進(jìn)的軟件開(kāi)發(fā)技術(shù) 在軟件開(kāi)發(fā)過(guò)程中,如果采用先進(jìn)的分析設(shè)計(jì)在軟件開(kāi)發(fā)過(guò)程中,如果采用先進(jìn)的分析設(shè)計(jì)技術(shù)和程序設(shè)計(jì)技術(shù),如面向?qū)ο蠹夹g(shù)、復(fù)用技術(shù)和程序設(shè)計(jì)技術(shù),如面向?qū)ο蠹夹g(shù)、復(fù)用技術(shù)等,可減少大量的維護(hù)工作量。技術(shù)等,可減少大量的維護(hù)工作量。 其它一些因素其它一些因素如應(yīng)用的類(lèi)型、數(shù)學(xué)模型、任務(wù)的難度、開(kāi)關(guān)如應(yīng)用的類(lèi)型、數(shù)學(xué)模型、任務(wù)的難度、開(kāi)關(guān)與標(biāo)記、與標(biāo)記、if嵌套深度、索引或下標(biāo)數(shù)等,對(duì)維嵌套深度、索引或下標(biāo)數(shù)等,對(duì)維護(hù)工作量也有影響。護(hù)工作量也有影響。軟件維

21、護(hù)的過(guò)程軟件維護(hù)的過(guò)程 軟件維護(hù)工作在維護(hù)申請(qǐng)?zhí)岢鲋熬烷_(kāi)始了,軟件維護(hù)工作在維護(hù)申請(qǐng)?zhí)岢鲋熬烷_(kāi)始了,它包括:它包括: 建立維護(hù)組織,強(qiáng)制報(bào)告和評(píng)估的過(guò)程;建立維護(hù)組織,強(qiáng)制報(bào)告和評(píng)估的過(guò)程; 為每個(gè)維護(hù)申請(qǐng)確定標(biāo)準(zhǔn)化的事件序列;為每個(gè)維護(hù)申請(qǐng)確定標(biāo)準(zhǔn)化的事件序列; 制定保存維護(hù)活動(dòng)記錄的制度和有關(guān)復(fù)審制定保存維護(hù)活動(dòng)記錄的制度和有關(guān)復(fù)審及評(píng)估的標(biāo)準(zhǔn)。及評(píng)估的標(biāo)準(zhǔn)。維護(hù)階段的工作事件流維護(hù)階段的工作事件流維護(hù)組織維護(hù)組織維護(hù)決策機(jī)構(gòu)維護(hù)決策機(jī)構(gòu)維護(hù)管理員維護(hù)管理員系統(tǒng)管理員系統(tǒng)管理員維護(hù)人員維護(hù)人員配置管理員配置管理員維護(hù)申請(qǐng)維護(hù)申請(qǐng)每個(gè)維護(hù)申請(qǐng)通過(guò)維護(hù)管理員轉(zhuǎn)告給系統(tǒng)管理員,系每個(gè)維護(hù)申請(qǐng)

22、通過(guò)維護(hù)管理員轉(zhuǎn)告給系統(tǒng)管理員,系統(tǒng)管理員一般都是對(duì)程序統(tǒng)管理員一般都是對(duì)程序( (某一部分某一部分) )特別熟悉的技術(shù)特別熟悉的技術(shù)人員,他們對(duì)維護(hù)申請(qǐng)及可能引起的軟件修改進(jìn)行評(píng)人員,他們對(duì)維護(hù)申請(qǐng)及可能引起的軟件修改進(jìn)行評(píng)估,并向修改控制決策機(jī)構(gòu)估,并向修改控制決策機(jī)構(gòu)( (一個(gè)或一組管理者一個(gè)或一組管理者) )報(bào)告,報(bào)告,由它最后確定是否采取行動(dòng)。由它最后確定是否采取行動(dòng)。在在維護(hù)活動(dòng)開(kāi)始之前維護(hù)活動(dòng)開(kāi)始之前就就明確維護(hù)責(zé)任明確維護(hù)責(zé)任是十分必要的,可以大是十分必要的,可以大大地減少維護(hù)過(guò)程中可能出現(xiàn)的混亂。大地減少維護(hù)過(guò)程中可能出現(xiàn)的混亂。維護(hù)團(tuán)隊(duì)組織維護(hù)團(tuán)隊(duì)組織維護(hù)報(bào)告維護(hù)報(bào)告mrf

23、 應(yīng)該用標(biāo)準(zhǔn)的格式來(lái)表達(dá)維護(hù)要求。軟件維護(hù)人應(yīng)該用標(biāo)準(zhǔn)的格式來(lái)表達(dá)維護(hù)要求。軟件維護(hù)人員通常提供給用戶空白的維護(hù)請(qǐng)求表(報(bào)告)即員通常提供給用戶空白的維護(hù)請(qǐng)求表(報(bào)告)即軟件問(wèn)題報(bào)告,該報(bào)告(表)由要求一項(xiàng)維護(hù)活軟件問(wèn)題報(bào)告,該報(bào)告(表)由要求一項(xiàng)維護(hù)活動(dòng)的用戶填寫(xiě)。動(dòng)的用戶填寫(xiě)。 如遇到什么錯(cuò)誤,用戶需要詳細(xì)描述錯(cuò)誤出現(xiàn)的現(xiàn)場(chǎng)如遇到什么錯(cuò)誤,用戶需要詳細(xì)描述錯(cuò)誤出現(xiàn)的現(xiàn)場(chǎng)信息信息(包括輸入數(shù)據(jù)、列表文件和其他有關(guān)信息包括輸入數(shù)據(jù)、列表文件和其他有關(guān)信息); 對(duì)適應(yīng)性維護(hù)、完善性維護(hù)應(yīng)該給出一個(gè)簡(jiǎn)短的需求對(duì)適應(yīng)性維護(hù)、完善性維護(hù)應(yīng)該給出一個(gè)簡(jiǎn)短的需求規(guī)格說(shuō)明書(shū)。最終由維護(hù)管理員和系統(tǒng)管理員評(píng)價(jià)

24、用規(guī)格說(shuō)明書(shū)。最終由維護(hù)管理員和系統(tǒng)管理員評(píng)價(jià)用戶用戶提出的維護(hù)請(qǐng)求表。戶用戶提出的維護(hù)請(qǐng)求表。一個(gè)維護(hù)申請(qǐng)被核準(zhǔn)后,維護(hù)請(qǐng)求表就成為外部文檔,視一個(gè)維護(hù)申請(qǐng)被核準(zhǔn)后,維護(hù)請(qǐng)求表就成為外部文檔,視作規(guī)劃本次維護(hù)任務(wù)的依據(jù)。作規(guī)劃本次維護(hù)任務(wù)的依據(jù)。軟件維護(hù)請(qǐng)求報(bào)告評(píng)價(jià)負(fù)責(zé)人:*申請(qǐng)?jiān)u價(jià)結(jié)果:修正錯(cuò)誤批準(zhǔn) 拒絕申請(qǐng)人:*環(huán)境 自 *年*月*日 至 *年*月*日 共計(jì) 0.5 人月維護(hù)時(shí)間維護(hù)要求及優(yōu)先級(jí):在測(cè)評(píng)之前必須修正,否則會(huì)造成測(cè)評(píng)結(jié)果的不準(zhǔn)確軟件:糾錯(cuò)維護(hù) 適應(yīng)維護(hù) 完善維護(hù)硬件: 系統(tǒng)設(shè)備 外部設(shè)備維護(hù)類(lèi)型遠(yuǎn)程維護(hù)現(xiàn)場(chǎng)維護(hù)維護(hù)安排預(yù)計(jì)維護(hù)的結(jié)果:修正程序中的人員權(quán)限,使得每種類(lèi)型的人員

25、只能進(jìn)行自身類(lèi)型的測(cè)評(píng)。問(wèn)題說(shuō)明:(數(shù)據(jù)輸入、錯(cuò)誤現(xiàn)象)不同類(lèi)型的人員可以進(jìn)行交叉測(cè)評(píng)。按需求:各類(lèi)人員只進(jìn)行自身類(lèi)型的測(cè)評(píng),如管理人員只能對(duì)管理人員進(jìn)行測(cè)評(píng),教師只能測(cè)評(píng)教師。項(xiàng)目編號(hào)網(wǎng)絡(luò)測(cè)評(píng)系統(tǒng)項(xiàng)目名稱(chēng)軟件修改報(bào)告軟件修改報(bào)告(scr) 依據(jù)維護(hù)請(qǐng)求表,軟件組織內(nèi)部應(yīng)該制定出一依據(jù)維護(hù)請(qǐng)求表,軟件組織內(nèi)部應(yīng)該制定出一個(gè)軟件修改報(bào)告,它給出下述信息:個(gè)軟件修改報(bào)告,它給出下述信息: 滿足維護(hù)請(qǐng)求表中提出的要求所需的工作量;滿足維護(hù)請(qǐng)求表中提出的要求所需的工作量; 維護(hù)要求的性質(zhì);維護(hù)要求的性質(zhì); 維護(hù)要求的優(yōu)先次序;維護(hù)要求的優(yōu)先次序; 與修改有關(guān)的背景數(shù)據(jù)。與修改有關(guān)的背景數(shù)據(jù)。 在擬定進(jìn)

26、一步維護(hù)計(jì)劃前,把軟件修改報(bào)告提在擬定進(jìn)一步維護(hù)計(jì)劃前,把軟件修改報(bào)告提交控制決策機(jī)構(gòu)審查批準(zhǔn)。交控制決策機(jī)構(gòu)審查批準(zhǔn)。修改完成日期維護(hù)人修改開(kāi)始日期相關(guān)文檔修改注釋修改修改代碼行數(shù)刪除代碼行數(shù)增加代碼行數(shù)相關(guān)文檔列表備份程序名稱(chēng)源程序名稱(chēng)軟件名稱(chēng)特別說(shuō)明修改原因修改內(nèi)容日期維護(hù)描述:軟件修改報(bào)告軟件修改報(bào)告(scr)維護(hù)請(qǐng)求維護(hù)請(qǐng)求類(lèi)型類(lèi)型類(lèi)型類(lèi)型嚴(yán)重性嚴(yán)重性評(píng)估后按優(yōu)先評(píng)估后按優(yōu)先級(jí)在隊(duì)列排隊(duì)級(jí)在隊(duì)列排隊(duì)“救火行動(dòng)救火行動(dòng)”, ,當(dāng)當(dāng)排在隊(duì)列之首排在隊(duì)列之首評(píng)估后分類(lèi)評(píng)估后分類(lèi)評(píng)估后按優(yōu)先評(píng)估后按優(yōu)先級(jí)在隊(duì)列排隊(duì)級(jí)在隊(duì)列排隊(duì)采取的行動(dòng)采取的行動(dòng)通知請(qǐng)求者通知請(qǐng)求者并說(shuō)明原因并說(shuō)明原因按優(yōu)先

27、級(jí)在按優(yōu)先級(jí)在隊(duì)列中排隊(duì)隊(duì)列中排隊(duì)從維護(hù)請(qǐng)求隊(duì)列之首取出一任務(wù)從維護(hù)請(qǐng)求隊(duì)列之首取出一任務(wù)按按sese方法學(xué)規(guī)劃、組織、實(shí)施工程方法學(xué)規(guī)劃、組織、實(shí)施工程隊(duì)列中還有維護(hù)請(qǐng)求嗎?隊(duì)列中還有維護(hù)請(qǐng)求嗎?資源用于開(kāi)發(fā)新的軟件。資源用于開(kāi)發(fā)新的軟件。y yn n改正性改正性其他其他完善性完善性適應(yīng)性適應(yīng)性拒絕拒絕接受接受并不嚴(yán)重并不嚴(yán)重非常嚴(yán)重非常嚴(yán)重軟軟件件維維護(hù)護(hù)的的工工作作流流軟件維護(hù)工作流軟件維護(hù)工作流 雖然每種維護(hù)請(qǐng)求類(lèi)型著眼點(diǎn)不同,但總的維雖然每種維護(hù)請(qǐng)求類(lèi)型著眼點(diǎn)不同,但總的維護(hù)方法是相同的。護(hù)方法是相同的。 維護(hù)工作最后一步是復(fù)審,主要審查修改過(guò)的維護(hù)工作最后一步是復(fù)審,主要審查修改過(guò)

28、的軟件配置,以驗(yàn)證軟件結(jié)構(gòu)中的所有成分的功軟件配置,以驗(yàn)證軟件結(jié)構(gòu)中的所有成分的功能,保證滿足維護(hù)請(qǐng)求表中的要求。能,保證滿足維護(hù)請(qǐng)求表中的要求。情況復(fù)審情況復(fù)審 當(dāng)一項(xiàng)軟件維護(hù)任務(wù)完成之后,進(jìn)行一次情況當(dāng)一項(xiàng)軟件維護(hù)任務(wù)完成之后,進(jìn)行一次情況復(fù)審不無(wú)裨益。情況復(fù)審主要考慮下列問(wèn)題復(fù)審不無(wú)裨益。情況復(fù)審主要考慮下列問(wèn)題: 依照當(dāng)前狀態(tài),在設(shè)計(jì)、編碼和測(cè)試的哪些方面還依照當(dāng)前狀態(tài),在設(shè)計(jì)、編碼和測(cè)試的哪些方面還能用其他方法進(jìn)行能用其他方法進(jìn)行? 哪些維護(hù)資源可用但未用?哪些維護(hù)資源可用但未用? 這次維護(hù)活動(dòng)中主要這次維護(hù)活動(dòng)中主要(或次要或次要)的障礙有哪些的障礙有哪些? 在維護(hù)請(qǐng)求中有預(yù)防性維

29、護(hù)嗎在維護(hù)請(qǐng)求中有預(yù)防性維護(hù)嗎? 情況復(fù)審的目的在于促進(jìn)未來(lái)的維護(hù)工作情況復(fù)審的目的在于促進(jìn)未來(lái)的維護(hù)工作,同時(shí)同時(shí)也為有效管理軟件組織提供重要的反饋信息。也為有效管理軟件組織提供重要的反饋信息。軟件維護(hù)記錄的保存軟件維護(hù)記錄的保存 有效的保存維護(hù)記錄是極端重要的。有效的保存維護(hù)記錄是極端重要的。 保存維護(hù)記錄的第一個(gè)問(wèn)題就是那些數(shù)據(jù)值得保存?保存維護(hù)記錄的第一個(gè)問(wèn)題就是那些數(shù)據(jù)值得保存? swanson為我們指出了下述內(nèi)容:程序標(biāo)識(shí)、源語(yǔ)為我們指出了下述內(nèi)容:程序標(biāo)識(shí)、源語(yǔ)句數(shù)、機(jī)器指令數(shù)、使用的程序設(shè)計(jì)語(yǔ)言、軟件安句數(shù)、機(jī)器指令數(shù)、使用的程序設(shè)計(jì)語(yǔ)言、軟件安裝的日期、自安裝以來(lái)軟件運(yùn)行的次

30、數(shù)、自安裝以裝的日期、自安裝以來(lái)軟件運(yùn)行的次數(shù)、自安裝以來(lái)軟件失敗的次數(shù)、程序變動(dòng)的層次和標(biāo)識(shí)、因程來(lái)軟件失敗的次數(shù)、程序變動(dòng)的層次和標(biāo)識(shí)、因程序變動(dòng)而增加的源語(yǔ)句數(shù)、因程序變動(dòng)而刪除的源序變動(dòng)而增加的源語(yǔ)句數(shù)、因程序變動(dòng)而刪除的源語(yǔ)句數(shù)、每個(gè)改動(dòng)消耗的人時(shí)數(shù)、程序改動(dòng)的日期、語(yǔ)句數(shù)、每個(gè)改動(dòng)消耗的人時(shí)數(shù)、程序改動(dòng)的日期、軟件工程師的名稱(chēng)、維護(hù)要求的標(biāo)識(shí)、維護(hù)類(lèi)型、軟件工程師的名稱(chēng)、維護(hù)要求的標(biāo)識(shí)、維護(hù)類(lèi)型、維護(hù)開(kāi)始和完成的時(shí)間、用于維護(hù)的累計(jì)人時(shí)數(shù)、維護(hù)開(kāi)始和完成的時(shí)間、用于維護(hù)的累計(jì)人時(shí)數(shù)、與完成的維護(hù)相關(guān)聯(lián)的純收益。與完成的維護(hù)相關(guān)聯(lián)的純收益。 應(yīng)該為每項(xiàng)維護(hù)工作都收集上述數(shù)據(jù)??梢岳?/p>

31、這應(yīng)該為每項(xiàng)維護(hù)工作都收集上述數(shù)據(jù)??梢岳眠@些數(shù)據(jù)構(gòu)成一個(gè)維護(hù)數(shù)據(jù)庫(kù)。些數(shù)據(jù)構(gòu)成一個(gè)維護(hù)數(shù)據(jù)庫(kù)。軟件維護(hù)記錄軟件維護(hù)記錄維護(hù)結(jié)果:經(jīng)過(guò)對(duì)需求的進(jìn)一步確認(rèn),對(duì)指定編號(hào)的模塊進(jìn)行了修改,糾正了源維護(hù)結(jié)果:經(jīng)過(guò)對(duì)需求的進(jìn)一步確認(rèn),對(duì)指定編號(hào)的模塊進(jìn)行了修改,糾正了源程序中出現(xiàn)的錯(cuò)誤。程序中出現(xiàn)的錯(cuò)誤。維護(hù)人員:維護(hù)人員:*0.2個(gè)人月個(gè)人月修改部分源程序修改部分源程序查錯(cuò),確定錯(cuò)誤位置查錯(cuò),確定錯(cuò)誤位置*月月*日日維護(hù)人員維護(hù)人員工作量工作量增增/刪刪/改改維護(hù)內(nèi)容維護(hù)內(nèi)容日期日期編號(hào):編號(hào):evalobject_01機(jī)器指令長(zhǎng)度:機(jī)器指令長(zhǎng)度:25kb程序安裝日期:程序安裝日期:*年年*月月*日

32、日程序運(yùn)行時(shí)間:程序運(yùn)行時(shí)間:模塊名稱(chēng):測(cè)評(píng)控制管理模塊名稱(chēng):測(cè)評(píng)控制管理源程序行數(shù):源程序行數(shù):210編程語(yǔ)言:編程語(yǔ)言:php失效次數(shù):失效次數(shù):3初始狀態(tài)描述:不同類(lèi)型的人員可以進(jìn)行交叉測(cè)評(píng)。按需求:各類(lèi)人員只進(jìn)行自初始狀態(tài)描述:不同類(lèi)型的人員可以進(jìn)行交叉測(cè)評(píng)。按需求:各類(lèi)人員只進(jìn)行自身類(lèi)型的測(cè)測(cè)評(píng),如管理人員只能對(duì)管理人員進(jìn)行測(cè)評(píng),教師只能測(cè)評(píng)教師。身類(lèi)型的測(cè)測(cè)評(píng),如管理人員只能對(duì)管理人員進(jìn)行測(cè)評(píng),教師只能測(cè)評(píng)教師。項(xiàng)目名稱(chēng):網(wǎng)絡(luò)測(cè)評(píng)系統(tǒng)項(xiàng)目名稱(chēng):網(wǎng)絡(luò)測(cè)評(píng)系統(tǒng)計(jì)劃編號(hào):計(jì)劃編號(hào):eval_wh_012日期:日期:*年年*月月*日日記錄編號(hào):記錄編號(hào):eval_wh_012 評(píng)價(jià)維護(hù)活動(dòng)

33、評(píng)價(jià)維護(hù)活動(dòng) 缺乏有效的數(shù)據(jù)就無(wú)法評(píng)價(jià)軟件維護(hù)活動(dòng)。缺乏有效的數(shù)據(jù)就無(wú)法評(píng)價(jià)軟件維護(hù)活動(dòng)。 如果已經(jīng)開(kāi)始保存維護(hù)記錄,則可以對(duì)維護(hù)工作做一如果已經(jīng)開(kāi)始保存維護(hù)記錄,則可以對(duì)維護(hù)工作做一些定量度量,至少可以從如下些定量度量,至少可以從如下7方面進(jìn)行評(píng)價(jià):方面進(jìn)行評(píng)價(jià): 每次程序運(yùn)行平均失敗的次數(shù);每次程序運(yùn)行平均失敗的次數(shù); 用于每一類(lèi)維護(hù)活動(dòng)的總?cè)藭r(shí)數(shù);用于每一類(lèi)維護(hù)活動(dòng)的總?cè)藭r(shí)數(shù); 平均每個(gè)程序、每種語(yǔ)言、每種維護(hù)類(lèi)型所必需的平均每個(gè)程序、每種語(yǔ)言、每種維護(hù)類(lèi)型所必需的程序變動(dòng)數(shù);程序變動(dòng)數(shù); 維護(hù)過(guò)程中增加或刪除源語(yǔ)句平均花費(fèi)的人時(shí)數(shù);維護(hù)過(guò)程中增加或刪除源語(yǔ)句平均花費(fèi)的人時(shí)數(shù); 維護(hù)每種

34、語(yǔ)言平均花費(fèi)的人時(shí)數(shù);維護(hù)每種語(yǔ)言平均花費(fèi)的人時(shí)數(shù); 一張維護(hù)要求表的平均周轉(zhuǎn)時(shí)間;一張維護(hù)要求表的平均周轉(zhuǎn)時(shí)間; 不同維護(hù)類(lèi)型所占的比例;不同維護(hù)類(lèi)型所占的比例;根據(jù)這些統(tǒng)計(jì)量可對(duì)開(kāi)發(fā)技術(shù)、編程語(yǔ)言,以及對(duì)維護(hù)根據(jù)這些統(tǒng)計(jì)量可對(duì)開(kāi)發(fā)技術(shù)、編程語(yǔ)言,以及對(duì)維護(hù)工作量的預(yù)測(cè)與資源分配等諸多方面的決策進(jìn)行評(píng)價(jià)。工作量的預(yù)測(cè)與資源分配等諸多方面的決策進(jìn)行評(píng)價(jià)。軟件可維護(hù)性軟件可維護(hù)性 軟件可維護(hù)性即軟件被理解、改正、調(diào)軟件可維護(hù)性即軟件被理解、改正、調(diào)整和改進(jìn)的難易程度。整和改進(jìn)的難易程度。 可維護(hù)性是指導(dǎo)軟件工程各個(gè)階段工作可維護(hù)性是指導(dǎo)軟件工程各個(gè)階段工作的一條基本原則,也是軟件工程追求的的一條

35、基本原則,也是軟件工程追求的目標(biāo)之一。目標(biāo)之一。影響軟件可維護(hù)性的因素影響軟件可維護(hù)性的因素 軟件的可維護(hù)性受各種因素的影響:設(shè)計(jì)、編碼和測(cè)試時(shí)軟件的可維護(hù)性受各種因素的影響:設(shè)計(jì)、編碼和測(cè)試時(shí)漫不經(jīng)心,軟件配置不全,都會(huì)給維護(hù)帶來(lái)困難。除了與漫不經(jīng)心,軟件配置不全,都會(huì)給維護(hù)帶來(lái)困難。除了與開(kāi)發(fā)方法有關(guān)的因素外,還有下列與開(kāi)發(fā)環(huán)境有關(guān)的因素開(kāi)發(fā)方法有關(guān)的因素外,還有下列與開(kāi)發(fā)環(huán)境有關(guān)的因素: 是否擁有一組訓(xùn)練有素的軟件人員是否擁有一組訓(xùn)練有素的軟件人員; 系統(tǒng)結(jié)構(gòu)是否可理解系統(tǒng)結(jié)構(gòu)是否可理解; 是否使用標(biāo)準(zhǔn)的程序設(shè)計(jì)語(yǔ)言是否使用標(biāo)準(zhǔn)的程序設(shè)計(jì)語(yǔ)言; 是否使用標(biāo)準(zhǔn)的操作系統(tǒng)是否使用標(biāo)準(zhǔn)的操作系

36、統(tǒng); 文檔的結(jié)構(gòu)是否標(biāo)準(zhǔn)化文檔的結(jié)構(gòu)是否標(biāo)準(zhǔn)化; 測(cè)試用例是否合適測(cè)試用例是否合適; 是否已有嵌入系統(tǒng)的調(diào)試工具是否已有嵌入系統(tǒng)的調(diào)試工具; 是否有一臺(tái)計(jì)算機(jī)可用于維護(hù)。是否有一臺(tái)計(jì)算機(jī)可用于維護(hù)。 除此之外,軟件開(kāi)發(fā)時(shí)的原班人馬是否能參加維護(hù)也是一除此之外,軟件開(kāi)發(fā)時(shí)的原班人馬是否能參加維護(hù)也是一個(gè)值得考慮的因素。個(gè)值得考慮的因素。軟件可維護(hù)性的度量軟件可維護(hù)性的度量 軟件可維護(hù)性與軟件質(zhì)量和可靠性一樣是難于軟件可維護(hù)性與軟件質(zhì)量和可靠性一樣是難于量化的概念,然而借助維護(hù)活動(dòng)中可以定量估量化的概念,然而借助維護(hù)活動(dòng)中可以定量估算的屬性,能間接地度量可維護(hù)性算的屬性,能間接地度量可維護(hù)性: 察

37、覺(jué)到問(wèn)題所耗的時(shí)間察覺(jué)到問(wèn)題所耗的時(shí)間; 收集維護(hù)工具所用的時(shí)間收集維護(hù)工具所用的時(shí)間; 分析問(wèn)題所需時(shí)間分析問(wèn)題所需時(shí)間; 形成修改說(shuō)明書(shū)所需時(shí)間;形成修改說(shuō)明書(shū)所需時(shí)間; 糾錯(cuò)糾錯(cuò)(或修改或修改)所用時(shí)間所用時(shí)間; 局部測(cè)試所用時(shí)間局部測(cè)試所用時(shí)間; 整體測(cè)試所用時(shí)間整體測(cè)試所用時(shí)間; 維護(hù)復(fù)審所用時(shí)間維護(hù)復(fù)審所用時(shí)間; 完全恢復(fù)所用時(shí)間。完全恢復(fù)所用時(shí)間。提高軟件可維護(hù)性的方法提高軟件可維護(hù)性的方法 建立明確的軟件質(zhì)量目標(biāo)和優(yōu)先級(jí)建立明確的軟件質(zhì)量目標(biāo)和優(yōu)先級(jí) 使用提高軟件質(zhì)量的技術(shù)和工具使用提高軟件質(zhì)量的技術(shù)和工具 進(jìn)行明確的質(zhì)量保證審查進(jìn)行明確的質(zhì)量保證審查 選擇可維護(hù)的程序設(shè)計(jì)語(yǔ)言

38、選擇可維護(hù)的程序設(shè)計(jì)語(yǔ)言 改進(jìn)程序的文檔改進(jìn)程序的文檔 開(kāi)發(fā)軟件時(shí)考慮到維護(hù)開(kāi)發(fā)軟件時(shí)考慮到維護(hù)軟件維護(hù)的副作用軟件維護(hù)的副作用 軟件修改是一項(xiàng)很危險(xiǎn)的工作軟件修改是一項(xiàng)很危險(xiǎn)的工作,對(duì)一個(gè)復(fù)雜的邏對(duì)一個(gè)復(fù)雜的邏輯過(guò)程輯過(guò)程,那怕做一項(xiàng)微小的改動(dòng)那怕做一項(xiàng)微小的改動(dòng),都可能引入潛都可能引入潛在的錯(cuò)誤在的錯(cuò)誤,雖然設(shè)計(jì)文檔化和細(xì)致的回歸測(cè)試有雖然設(shè)計(jì)文檔化和細(xì)致的回歸測(cè)試有助于排除錯(cuò)誤助于排除錯(cuò)誤,但是維護(hù)仍然會(huì)產(chǎn)生副作用。但是維護(hù)仍然會(huì)產(chǎn)生副作用。 軟件維護(hù)的副作用指,由于維護(hù)或在維護(hù)過(guò)程軟件維護(hù)的副作用指,由于維護(hù)或在維護(hù)過(guò)程中其他一些不期望的行為引入的錯(cuò)誤中其他一些不期望的行為引入的錯(cuò)誤,

39、副作用大副作用大致可分為三類(lèi)致可分為三類(lèi): 代碼副作用代碼副作用 數(shù)據(jù)副作用數(shù)據(jù)副作用 文檔副作用文檔副作用代碼的副作用代碼的副作用 修改或刪除子程序修改或刪除子程序; 修改或刪除語(yǔ)句標(biāo)號(hào)修改或刪除語(yǔ)句標(biāo)號(hào); 修改或刪除標(biāo)識(shí)符修改或刪除標(biāo)識(shí)符; 為提高執(zhí)行效率而做的修改為提高執(zhí)行效率而做的修改; 修改文件的修改文件的open、close操作操作; 修改邏輯操作符修改邏輯操作符; 由設(shè)計(jì)變動(dòng)引起的代碼修改由設(shè)計(jì)變動(dòng)引起的代碼修改; 修改對(duì)邊界條件的測(cè)試。修改對(duì)邊界條件的測(cè)試。數(shù)據(jù)的副作用數(shù)據(jù)的副作用 局部和全局常量的再定義局部和全局常量的再定義; 記錄或文件格式的再定義記錄或文件格式的再定義;

40、增減數(shù)據(jù)或其他復(fù)雜數(shù)據(jù)結(jié)構(gòu)的體積增減數(shù)據(jù)或其他復(fù)雜數(shù)據(jù)結(jié)構(gòu)的體積; 修改全局?jǐn)?shù)據(jù)修改全局?jǐn)?shù)據(jù); 重新初始化控制標(biāo)志和指針重新初始化控制標(biāo)志和指針; 重新排列重新排列i/o表或子程序參數(shù)表。表或子程序參數(shù)表。文檔的副作用文檔的副作用 維護(hù)應(yīng)維護(hù)應(yīng)統(tǒng)一考慮整個(gè)軟件配置統(tǒng)一考慮整個(gè)軟件配置,而不僅僅是源代碼。否而不僅僅是源代碼。否則則,由于在設(shè)計(jì)文檔和用戶手冊(cè)中未能準(zhǔn)確反映修改情由于在設(shè)計(jì)文檔和用戶手冊(cè)中未能準(zhǔn)確反映修改情況而引起文檔副作用。況而引起文檔副作用。 對(duì)軟件的對(duì)軟件的任何修改都應(yīng)在相應(yīng)的技術(shù)文檔中反映出來(lái)任何修改都應(yīng)在相應(yīng)的技術(shù)文檔中反映出來(lái),如果設(shè)計(jì)文檔不能與軟件當(dāng)前的狀況對(duì)應(yīng)則比沒(méi)有文如果

溫馨提示

  • 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)論