軟件可維護(hù)性
1.什么是軟件可維護(hù)性
軟件可維護(hù)性是指軟件產(chǎn)品被修改的能力,修改包括糾正、改進(jìn)或軟件對環(huán)境、需求和功能規(guī)格說明變化的適應(yīng)。
在軟件維護(hù)中往往會出現(xiàn)一系列的問題,例如,是否可能開發(fā)出易于維護(hù)的軟件系統(tǒng);在進(jìn)行軟件維護(hù)時(shí),能否仍然保持軟件的完整性;如何才能夠提高軟件維護(hù)的效率等。這些問題實(shí)際上涉及軟件的可維護(hù)性方面。
2.軟件可維護(hù)性的特征
軟件可維護(hù)性的五個(gè)子特性:
?。?)易分析性。軟件產(chǎn)品診斷軟件中的缺陷或失效原因或識別待修改部分的能力。
?。?)易改變性。軟件產(chǎn)品使指定的修改可以被實(shí)現(xiàn)的能力,實(shí)現(xiàn)包括編碼、設(shè)計(jì)和文檔的更改。如果軟件由最終用戶修改,那么易改變性可能會影響易操作性。
?。?)穩(wěn)定性。軟件產(chǎn)品避免由于軟件修改而造成意外結(jié)果的能力。
?。?)易測試性。軟件產(chǎn)品使已修改軟件能被確認(rèn)的能力。
?。?)維護(hù)性的依從性。軟件產(chǎn)品遵循與維護(hù)性相關(guān)的標(biāo)準(zhǔn)或約定的能力。
3.軟件可維護(hù)性的度量
對軟件可維護(hù)性的度量可以從以下幾個(gè)方面進(jìn)行。
1.可理解性
可理解性描述了通過閱讀源代碼和相關(guān)文檔來了解系統(tǒng)功能及其如何運(yùn)行情況的難易程度。一個(gè)可理解性高的軟件系統(tǒng)一般應(yīng)具備以下的特征:模塊化(系統(tǒng)各個(gè)模塊結(jié)構(gòu)良好、功能完整),程序代碼清晰,編程風(fēng)格具有一致性(代碼風(fēng)格及設(shè)計(jì)風(fēng)格的一致性),完整性(對輸人數(shù)據(jù)進(jìn)行完整性檢查),使用有意義的數(shù)據(jù)名和函數(shù)名等。
2.可靠性
可靠性表明一個(gè)軟件系統(tǒng)在給定的一段時(shí)間內(nèi)正確執(zhí)行的概率。度量可靠性的方法,主要有兩類:第一類是根據(jù)程序錯(cuò)誤的統(tǒng)計(jì)數(shù)字來進(jìn)行可靠性預(yù)測。比如用一些可靠性模型,根據(jù)程序測試中發(fā)現(xiàn)并排除的錯(cuò)誤數(shù)來預(yù)測平均失效間隔時(shí)間(Mean Time To Failure,MTTF)。第二類是當(dāng)系統(tǒng)的可靠性與復(fù)雜性有關(guān)時(shí),可以根據(jù)程序的復(fù)雜性來預(yù)測軟件的可靠性。
3.可測試性
可測試性表明能夠用測試的方法來驗(yàn)證程序正確性的難易程度。軟件系統(tǒng)的可測試性取決于系統(tǒng)的可理解性、復(fù)雜性、設(shè)計(jì)合理的測試用例的難易程度等方面的內(nèi)容。
4.可修改性
可修改性描述了程序能夠被正確修改的難易程度。一個(gè)可修改的程序應(yīng)當(dāng)是可理解的、通用的、簡單的、靈活的。通用性是指程序適用于各種功能變化而無需修改。靈活性是指能夠容易地對程序進(jìn)行修改。
5.可移植性
可移植性表明程序從一個(gè)運(yùn)行環(huán)境移植到另一個(gè)新的運(yùn)行環(huán)境的可能性的大小。一個(gè)可移植性好的程序應(yīng)具有結(jié)構(gòu)良好、靈活、不依賴于某一具體計(jì)算機(jī)或操作系統(tǒng)的特性。
可維護(hù)性不但與開發(fā)人員采用的分析設(shè)計(jì)方法和技術(shù)熟練程度有關(guān),更與軟件項(xiàng)目的管理技術(shù)有密切關(guān)系。除了與開發(fā)方法有關(guān)的因素之外,以下因素也會對系統(tǒng)的可維護(hù)性產(chǎn)生重要影響:
(1)開發(fā)人員是否受過嚴(yán)格的規(guī)范化培訓(xùn)。
(2)是否采用標(biāo)準(zhǔn)化的文檔資料結(jié)構(gòu)和文檔形成機(jī)制。
(3)是否采用可維護(hù)的程序設(shè)計(jì)語言。
(4)是否有健全程序的文檔。
(5)是否保存規(guī)范化的測試資料等。