買域名后 怎么做網(wǎng)站長(zhǎng)沙網(wǎng)
軟件維護(hù)需要的工作量很大,大型軟件的維護(hù)成本高達(dá)開發(fā)成本的4倍左右。所以,軟件工程的主要目的就是要提高軟件的可維護(hù)性,減少軟件維護(hù)所需要的工作量,降低軟件系統(tǒng)的總成本。
定義:軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需求而修改軟件的過(guò)程。
維護(hù)活動(dòng):
- 改正性維護(hù):診斷和改正錯(cuò)誤的過(guò)程
- 適應(yīng)性維護(hù):為了和變化了的環(huán)境適當(dāng)?shù)嘏浜隙M(jìn)行地修改軟件地活動(dòng)
- 完善性維護(hù):新增功能或修改已有功能
- 預(yù)防性維護(hù):改進(jìn)未來(lái)的可維護(hù)性或可靠性,或?yàn)榱私o未來(lái)的改進(jìn)奠定更好的基礎(chǔ)而修改軟件
非結(jié)構(gòu)化維護(hù):軟件配置的唯一成分是程序代碼,也就是沒有軟件配套文檔。
結(jié)構(gòu)化維護(hù):維護(hù)工作從評(píng)價(jià)設(shè)計(jì)文檔開始,確定軟件重要的結(jié)構(gòu)特點(diǎn)、性能特點(diǎn)以及接口特點(diǎn);估量要求的改動(dòng)將帶來(lái)的影響,并且計(jì)劃實(shí)施途徑。
維護(hù)工作量模型:
M是維護(hù)用的總工作量,P是生產(chǎn)性工作量,K是經(jīng)驗(yàn)常數(shù),c是復(fù)雜程度(非結(jié)構(gòu)化設(shè)計(jì)或缺少文檔都會(huì)增加軟件的復(fù)雜程度),d是維護(hù)人員對(duì)軟件的熟練程度
——————————————————————————————————
軟件維護(hù)過(guò)程:
- 維護(hù)組織
- 維護(hù)報(bào)告
- 維護(hù)的事件流
- 保存維護(hù)記錄
- 評(píng)價(jià)維護(hù)活動(dòng)
——————————————————————————————————
軟件的可維護(hù)性:
定義:維護(hù)人員理解、改正、改動(dòng)或改進(jìn)這個(gè)軟件的難易程度。
決定軟件可維護(hù)性的因素:
- 可理解性
- 可測(cè)試性
- 可修改性
- 可移植性
- 可重用性
文檔:影響軟件可維護(hù)性的決定因素,由于長(zhǎng)期使用的大型軟件系統(tǒng)在使用過(guò)程中必然會(huì)經(jīng)受多次修改,所以文檔比程序代碼更重要。
- 用戶文檔:描述系統(tǒng)功能和使用方法,并不關(guān)心這些功能是怎樣實(shí)現(xiàn)的
- 系統(tǒng)文檔:描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等各方面的內(nèi)容
——————————————————————————————————
預(yù)防性維護(hù)
- 反復(fù)多次地做修改程序的嘗試,與不可見的設(shè)計(jì)及源代碼“頑強(qiáng)戰(zhàn)斗”,以實(shí)現(xiàn)所要求的修改。
- 通過(guò)仔細(xì)分析程序盡可能多地掌握程序的內(nèi)部工作細(xì)節(jié),以便更有效地修改它。
- 在深入理解原有設(shè)計(jì)的基礎(chǔ)上,用軟件工程方法重新設(shè)計(jì)﹑重新編碼和測(cè)試那些需要變更的軟件部分。
- 以軟件工程方法學(xué)為指導(dǎo),對(duì)程序全部重新設(shè)計(jì).重新編碼和測(cè)試,為此可以使用CASE工具(逆向工程和再工程工具)來(lái)幫助理解原有的設(shè)計(jì)。
——————————————————————————————————
軟件再工程過(guò)程
- 庫(kù)存目錄分析
- 文檔重構(gòu)
- 逆向工程
- 代碼重構(gòu)
- 數(shù)據(jù)重構(gòu)
- 正向工程
——————————————————————————————————
小結(jié):
維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長(zhǎng),代價(jià)最大的一個(gè)階段。軟件工程學(xué)的主要目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價(jià)。
軟件維護(hù)通常包括4類活動(dòng):為了糾正在使用過(guò)程中暴露出來(lái)的錯(cuò)誤而進(jìn)行的改正性維護(hù);為了適應(yīng)外部環(huán)境的變化而進(jìn)行的適應(yīng)性維護(hù);為了改進(jìn)原有的軟件而進(jìn)行的完善性維護(hù);以及為了改進(jìn)將來(lái)的可維護(hù)性和可靠性而進(jìn)行的預(yù)防性維護(hù)。
軟件的可理解性、可測(cè)試性、可修改性,可移植性和可重用性,是決定軟件可維護(hù)性的基本因素,軟件重用技術(shù)是能從根本上提高軟件可維護(hù)性的重要技術(shù),而本書第9章至第12章將要講述的面向?qū)ο蟮能浖夹g(shù)是目前最成功的軟件重用技術(shù)。
軟件生命周期每個(gè)階段的工作都和軟件可維護(hù)性有密切關(guān)系。良好的設(shè)計(jì),完整準(zhǔn)確易讀易理解的文檔資料,以及一系列嚴(yán)格的復(fù)審和測(cè)試,使得一旦發(fā)現(xiàn)錯(cuò)誤時(shí)比較容易診斷和糾正,當(dāng)用戶有新要求或外部環(huán)境變化時(shí)軟件能較容易地適應(yīng)﹐并且能夠減少維護(hù)引人的錯(cuò)誤。因此,在軟件生命周期的每個(gè)階段都必須充分考慮維護(hù)問(wèn)題,并且為軟件維護(hù)預(yù)做準(zhǔn)備。
文檔是影響軟件可維護(hù)性的決定因素,因此,文檔甚至比可執(zhí)行的程序代碼更重要。文檔可分為用戶文檔和系統(tǒng)文檔兩大類。不管是哪一類文檔都必須和程序代碼同時(shí)維護(hù),只有和程序代碼完全一致的文檔才是真正有價(jià)值的文檔。
雖然由于維護(hù)資源有限﹐目前預(yù)防性維護(hù)在全部維護(hù)活動(dòng)中僅占很小比例,但是不應(yīng)該忽視這類維護(hù)活動(dòng),在條件具備時(shí)應(yīng)該主動(dòng)地進(jìn)行預(yù)防性維護(hù)。
預(yù)防性維護(hù)實(shí)質(zhì)上是軟件再工程。典型的軟件再工程過(guò)程模型定義了庫(kù)存目錄分析、文檔重構(gòu)、逆向工程、代碼重構(gòu)﹑數(shù)據(jù)重構(gòu)和正向工程6類活動(dòng)。在某些情況下,以線性順序完成這些活動(dòng),但也并不總是這樣。上述模型是一個(gè)循環(huán)模型,這意味著每項(xiàng)活動(dòng)都可能被重復(fù)﹐而且對(duì)于任意一個(gè)特定的循環(huán)來(lái)說(shuō),再工程過(guò)程可以在完成任意一個(gè)活動(dòng)之后終止。