軟件工第八章軟件維護_第1頁
軟件工第八章軟件維護_第2頁
軟件工第八章軟件維護_第3頁
軟件工第八章軟件維護_第4頁
軟件工第八章軟件維護_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-軟件維護軟件維護軟件工程第八章軟件工程第八章編程大師曾說過:編程大師曾說過:“哪怕程序只有哪怕程序只有三行長,總有一天你也不得不對它三行長,總有一天你也不得不對它進行維護進行維護?!?在軟件開發(fā)過程中始終強調(diào)軟件的在軟件開發(fā)過程中始終強調(diào)軟件的可維護性可維護性。原因是,一個應(yīng)用系統(tǒng)由于需求和環(huán)境的變化原因是,一個應(yīng)用系統(tǒng)由于需求和環(huán)境的變化以及自身暴露的問題,在交付用戶使用后,對以及自身暴露的問題,在交付用戶使用后,對它進行維護是不可避免的,統(tǒng)計和估測結(jié)果表它進行維護是不可避免的,統(tǒng)計和估測結(jié)果表明,信息技術(shù)中明,信息技術(shù)中硬件費用一般占硬件費用一般占35%,軟件占,軟件占65%,而軟件,而

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

23、 應(yīng)該用標準的格式來表達維護要求。軟件維護人應(yīng)該用標準的格式來表達維護要求。軟件維護人員通常提供給用戶空白的維護請求表(報告)即員通常提供給用戶空白的維護請求表(報告)即軟件問題報告,該報告(表)由要求一項維護活軟件問題報告,該報告(表)由要求一項維護活動的用戶填寫。動的用戶填寫。 如遇到什么錯誤,用戶需要詳細描述錯誤出現(xiàn)的現(xiàn)場如遇到什么錯誤,用戶需要詳細描述錯誤出現(xiàn)的現(xiàn)場信息信息(包括輸入數(shù)據(jù)、列表文件和其他有關(guān)信息包括輸入數(shù)據(jù)、列表文件和其他有關(guān)信息); 對適應(yīng)性維護、完善性維護應(yīng)該給出一個簡短的需求對適應(yīng)性維護、完善性維護應(yīng)該給出一個簡短的需求規(guī)格說明書。最終由維護管理員和系統(tǒng)管理員評價

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

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

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

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

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

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

30、數(shù)、自安裝以裝的日期、自安裝以來軟件運行的次數(shù)、自安裝以來軟件失敗的次數(shù)、程序變動的層次和標識、因程來軟件失敗的次數(shù)、程序變動的層次和標識、因程序變動而增加的源語句數(shù)、因程序變動而刪除的源序變動而增加的源語句數(shù)、因程序變動而刪除的源語句數(shù)、每個改動消耗的人時數(shù)、程序改動的日期、語句數(shù)、每個改動消耗的人時數(shù)、程序改動的日期、軟件工程師的名稱、維護要求的標識、維護類型、軟件工程師的名稱、維護要求的標識、維護類型、維護開始和完成的時間、用于維護的累計人時數(shù)、維護開始和完成的時間、用于維護的累計人時數(shù)、與完成的維護相關(guān)聯(lián)的純收益。與完成的維護相關(guān)聯(lián)的純收益。 應(yīng)該為每項維護工作都收集上述數(shù)據(jù)。可以利用

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論