計(jì)算機(jī)軟件探討論文(2)
計(jì)算機(jī)軟件探討論文
計(jì)算機(jī)軟件探討論文篇二
《淺析計(jì)算機(jī)軟件維護(hù)》
摘要:隨著社會(huì)的發(fā)展,計(jì)算機(jī)在各行各業(yè)都取得了巨大的應(yīng)用,同時(shí),計(jì)算機(jī)軟件的維護(hù)也成了軟件發(fā)展的一大問題,由于軟件維護(hù)涉及的問題較多,所以在維護(hù)的過程中有較多需要我們注意的地方。而對(duì)于計(jì)算機(jī)軟件的維護(hù)不僅關(guān)乎用戶的使用,更與軟件公司的開發(fā)成本息息相關(guān),因此對(duì)于計(jì)算機(jī)軟件維護(hù)的研究具有重要的意義。筆者從事計(jì)算機(jī)軟件工作,對(duì)于其維護(hù)有著一定的經(jīng)驗(yàn)及感觸,本文結(jié)合筆者自身經(jīng)驗(yàn),對(duì)于計(jì)算機(jī)軟件維護(hù)概念、它有怎樣的特點(diǎn)、我們在維護(hù)過程中需要注意哪些問題等等進(jìn)行了分析與探討,旨在對(duì)于計(jì)算機(jī)軟件的維護(hù)起到一定的指導(dǎo)作用。
關(guān)鍵詞:計(jì)算機(jī)軟件;維護(hù)
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 11-0000-02
一、引言
計(jì)算機(jī)軟件的應(yīng)用已經(jīng)融入到我們工作、生活的方方面面。在軟件取得巨大成功的同時(shí),我們的軟件開發(fā)公司也受到了軟件維護(hù)的困擾,如何做好軟件的維護(hù),提高自身競爭力關(guān)系重大。
二、軟件維護(hù)的定義及類型
(1)計(jì)算機(jī)軟件維護(hù)的定義是指在軟件運(yùn)行的時(shí)候或者維護(hù)階段針對(duì)軟件做出的修改,最終提升用戶使用體驗(yàn)的工作。
(2)普遍來說,計(jì)算機(jī)軟件維護(hù)的類型可分為:改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)以及預(yù)防性維護(hù)這四種。
其中,改正性維護(hù)是以對(duì)開發(fā)周期中沒有能發(fā)現(xiàn)的或者遺留錯(cuò)誤進(jìn)行改正為目的,這種維護(hù)在總維護(hù)中占到大概20%。
適應(yīng)性維護(hù)是指針對(duì)軟件的運(yùn)行環(huán)境的對(duì)軟件進(jìn)行改變的維護(hù);適應(yīng)性維護(hù)可以適應(yīng)于由于硬件或者支持軟件改變進(jìn)而帶來的變化、把軟件移植到新機(jī)器上等。
完善性維護(hù)是以提高軟件的性能及軟件的可維護(hù)性為目的對(duì)進(jìn)行的軟件修改過程,這種維護(hù)在總維護(hù)中占主體地位,大概占到了50%。
預(yù)防性維護(hù)是指以提高軟件的可維護(hù)性以及可靠性而對(duì)軟件而進(jìn)行的修改。這種維護(hù)較少,大概只占到4%左右。
三、軟件維護(hù)的特點(diǎn)
(一)結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別巨大
1.非結(jié)構(gòu)化維護(hù)。
如果軟件配置的惟一成分是程序代碼,那么維護(hù)活動(dòng)從艱苦地評(píng)價(jià)程序代碼開始,而且常常由于程序內(nèi)部文檔不足而使評(píng)價(jià)更困難,這就導(dǎo)致了容易對(duì)軟件的結(jié)構(gòu)、系統(tǒng)的結(jié)構(gòu)以及性能涉及約束等產(chǎn)生一定的誤解。
此外,對(duì)程序代碼所做的改動(dòng)的后果也是難于估量的:由于測試方面文檔的缺失,因而我們就不能夠進(jìn)行回歸測試,即為了保證所做的修改沒有在以前可以正常使用的軟件功能中引入錯(cuò)誤而重復(fù)過去做過的測試。非結(jié)構(gòu)化維護(hù)需要付出很大代價(jià)(浪費(fèi)精力并且遭受挫折的打擊),這種維護(hù)方式是沒有使用良好定義的方法開發(fā)出來的軟件的必然結(jié)果。
2.結(jié)構(gòu)化維護(hù)。
相對(duì)于非結(jié)構(gòu)化維護(hù),結(jié)構(gòu)化維護(hù)是指使用軟件工程思想指導(dǎo)軟件每一個(gè)階段文檔的開發(fā)。這種維護(hù)使得理解和掌握軟件的功能、系統(tǒng)的結(jié)構(gòu)以及系統(tǒng)接等更加容易。能夠幫助減少維護(hù)過程的精力、降低花銷、提升維護(hù)效率。
(二)維護(hù)的代價(jià)
從已經(jīng)過去的時(shí)間上來看,花費(fèi)在軟件維護(hù)上的經(jīng)費(fèi)在逐漸增加?;ㄙM(fèi)在維護(hù)已有軟件上的費(fèi)用在1970年用只占到軟件的總預(yù)算35%到40%,到1980年的時(shí)候就已經(jīng)上升到了40%到60%,而到1990年的時(shí)候更加明顯的上升到了70%至90%。
維護(hù)費(fèi)用只不過是軟件維護(hù)的最明顯的代價(jià),在未來,人們會(huì)更加關(guān)心那些其他的、顯現(xiàn)不明顯的一些代價(jià)。由于可用的資源必須供維護(hù)任務(wù)使用的特點(diǎn),這就容易帶來耽誤、嚴(yán)重時(shí)喪失開發(fā)良機(jī)的問題,這種代價(jià)就是一種是軟件維護(hù)的無形代價(jià)。
此外,還有其他無形的代價(jià)還有:對(duì)于看來合理的有關(guān)改錯(cuò)以及修改要求未能夠及時(shí)完成時(shí)會(huì)導(dǎo)致用戶滿意度下降;因?yàn)榫S護(hù)時(shí)進(jìn)行的改動(dòng)而導(dǎo)致的在軟件中出現(xiàn)潛伏錯(cuò)誤,進(jìn)而影響了軟件質(zhì)量;在需要將軟件工程師調(diào)去進(jìn)行維護(hù)工作的時(shí)候,這會(huì)導(dǎo)致在開發(fā)的過程中出現(xiàn)一定的混亂。
軟件維護(hù)的最后一個(gè)代價(jià)是生產(chǎn)率的大幅度下降,這種情況在維護(hù)舊程序時(shí)常常遇到。例如,Gausler在1976年的時(shí)候曾報(bào)道,美國空軍的飛行控制軟件的每條指令的開發(fā)成本只有75美元,相對(duì)而言,而每條指令的維護(hù)成本甚至達(dá)到了4000多美元,這也就是說軟件維護(hù)使得在生產(chǎn)效率中出現(xiàn)50倍的下降。
在維護(hù)工作中,勞動(dòng)可以分為生產(chǎn)性活動(dòng)和非生產(chǎn)性活動(dòng)兩個(gè)方面。
生產(chǎn)性勞動(dòng)包括:對(duì)于軟件的分析評(píng)價(jià);軟件修改的設(shè)計(jì)以及編寫軟件的程序代碼等。
非生產(chǎn)型勞動(dòng)包括:對(duì)于程序代碼功能的理解、對(duì)于數(shù)據(jù)結(jié)構(gòu)的解釋、接口特點(diǎn)和性能限度等
以下這一模型對(duì)于我們理解維護(hù)的工作量有一定的幫助:M=P+Kexp(c—d),可以在一定程度上指導(dǎo)我們的工作。M是指總的工作量,p是維護(hù)時(shí)生產(chǎn)性的工作量,k定義為經(jīng)驗(yàn)指數(shù),c是指工作復(fù)雜的程度,d是指工作者對(duì)軟件熟悉的程度。
四、影響維護(hù)工作量的因素
在軟件的維護(hù)過程中,影響維護(hù)工作量的因素可以分為以下幾個(gè)方面:
(1)首先軟件維護(hù)的過程這就帶來了理解別人寫的程序時(shí)會(huì)出現(xiàn)很多困難,這種困難隨著軟件配置成分的減少會(huì)出現(xiàn)較大的增幅。
(2)維護(hù),這就說明了軟件往往會(huì)出現(xiàn)文檔不全的現(xiàn)象,這也會(huì)增加維護(hù)難度。
(3)在軟件開發(fā)設(shè)計(jì)的時(shí)候?qū)τ诰S護(hù)工作沒有進(jìn)行過多的考慮。
(4)軟件公司的人員流動(dòng)性非常強(qiáng),很容易開發(fā)人員在出現(xiàn)開發(fā)完就不見人的情況。
(5)很難對(duì)軟件的建立過程進(jìn)行追蹤。
五、軟件維護(hù)的副作用
修改軟件是危險(xiǎn)的。在復(fù)雜的邏輯過程中,每一次修改都可能使?jié)撛诘腻e(cuò)誤增加。設(shè)計(jì)文檔和細(xì)心的回歸測試有助于消除錯(cuò)誤,但仍然不可避免地出現(xiàn)維護(hù)的副作用。這種副作用主要體現(xiàn)在以下幾個(gè)方面:
修改代碼的副作用:代碼不能隨意的修改,最為簡單的修改都有可能導(dǎo)致非常嚴(yán)重的后果。雖然不是所有的副作用都有嚴(yán)重的后果,但修改容易招致錯(cuò)誤,而錯(cuò)誤經(jīng)常造成各種問題。在這里我們需要再一次強(qiáng)調(diào)Murphy的法則:如果一個(gè)源語句進(jìn)行一個(gè)修改,它將可能導(dǎo)致新的錯(cuò)誤。
計(jì)算機(jī)軟件探討論文相關(guān)文章: