软件的可维护性2
? ? ? ? 可以把軟件的可維護(hù)性定性地定義為:維護(hù)人員理解、改正、改動(dòng)或改進(jìn)這個(gè)軟件的難易程度。在前面的章節(jié)中曾經(jīng)多次強(qiáng)調(diào),提高可維護(hù)性是支配軟件工程方法學(xué)所有步驟的關(guān)鍵目標(biāo)。
? ? ? ? 8.4.1 決定軟件可維護(hù)性的因素
? ? ? ? 維護(hù)就是在軟件交付使用后進(jìn)行的修改,修改之前必須理解待修改的對(duì)象,修改之后應(yīng)該進(jìn)行必要的測(cè)試,以保證所做的修改是正確的。如果是改正性維護(hù),還必須預(yù)先進(jìn)行調(diào)試以確定錯(cuò)誤的具體位置。因此,決定軟件可維護(hù)性的因素主要有下述5個(gè)。
1.可理解性
? ? ? ? 軟件可理解性表現(xiàn)為外來(lái)讀者理解軟件的結(jié)構(gòu)、功能、接口和內(nèi)部處理過(guò)程的難易程度,模塊化(模塊結(jié)構(gòu)良好,高內(nèi)聚,松耦合)、詳細(xì)的設(shè)計(jì)文檔、結(jié)構(gòu)化設(shè)計(jì)、程序內(nèi)部的文檔和良好的高級(jí)程序設(shè)計(jì)語(yǔ)言等,都對(duì)提高軟件的可理解性有重要貢獻(xiàn)
2,可測(cè)試性
? ? ? ? 診斷和測(cè)試的容易程度取決于軟件容易理解的程度。良好的文檔對(duì)診新和測(cè)試是至關(guān)重要的,此外,軟件結(jié)構(gòu)、可用的測(cè)試工具和調(diào)試工具,以及以前設(shè)計(jì)的測(cè)試過(guò)程也都是非常重要的。維護(hù)人員應(yīng)該能夠得到在開(kāi)發(fā)階段用過(guò)的測(cè)試方案,以便進(jìn)行回歸測(cè)試。在設(shè)計(jì)階段應(yīng)該盡力把軟件設(shè)計(jì)成容易測(cè)試和容易診斷的。
? ? ? ? 對(duì)于程序模塊來(lái)說(shuō),可以用程序復(fù)雜度來(lái)度量它的可測(cè)試性,模塊的環(huán)形復(fù)雜度越大,可執(zhí)行的路徑就越多,因此,全面測(cè)試它的難度就高。
3.可修改性
? ? ? ? 軟件容易修改的程度和本書(shū)第5章講過(guò)的設(shè)計(jì)原理和啟發(fā)規(guī)劃直接有關(guān)。耦合、內(nèi)聚、信息穩(wěn)藏,局部化、控制域與作用域的關(guān)系等,都影響軟件的可修改性
4.可移植性
? ? ? ? 軟件可移植性指的是,把程序從一種計(jì)算環(huán)境(硬件配置和操作系統(tǒng))轉(zhuǎn)移到另一種計(jì)算環(huán)境的難易程度,把與硬件,操作系以及其他外部設(shè)備有關(guān)的程序代碼集中放到特定的程序模塊中,可以把因環(huán)境變化而必須修改的程序局限在少數(shù)程序模塊中,從而降低修改的難度
5.可重用性
? ? ? ? 所謂重用( reuse)是指同一事物不做修改或稍加改動(dòng)就在不同環(huán)境中多次重復(fù)使用。大量使用可重用的軟件構(gòu)件來(lái)開(kāi)發(fā)軟件,可以從下述兩個(gè)方面提高款件的可維護(hù)性:
(1)通常,可重用的軟件構(gòu)件在開(kāi)發(fā)時(shí)都經(jīng)過(guò)很?chē)?yán)格的測(cè)試,可靠性比較高,且在每次重用過(guò)程中都會(huì)發(fā)現(xiàn)并清除一些錯(cuò)誤,隨著時(shí)間推移,這樣的構(gòu)件將變成實(shí)質(zhì)上無(wú)誤的,因此,軟件中使用的可重用構(gòu)件越多,軟件的可靠性越高,改正性維護(hù)需求就越少
(2)很容易修改可重用的軟件構(gòu)件使之再次應(yīng)用在新環(huán)境中,因此,軟件中使用的可重用構(gòu)件越多,適應(yīng)性和完善性維護(hù)也就越容易。
8.4.2 文檔
? ? ? ? 文檔是影響軟作可維護(hù)性的決定因素,由于長(zhǎng)期使用的大型軟件系統(tǒng)在使用過(guò)程中必然會(huì)經(jīng)受多次修改,所以文檔比程序代碼更重要。軟件系統(tǒng)的文檔可以分為用戶(hù)文檔和系統(tǒng)文檔兩類(lèi)。用戶(hù)文檔主要描述系統(tǒng)功能和使用方法,并不關(guān)心這些功能是怎樣實(shí)現(xiàn)的;系統(tǒng)文檔描述系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試等各方面的內(nèi)容。總地說(shuō)來(lái),軟件文檔應(yīng)該滿足下述要求
(1)必須描述如何使用這個(gè)系統(tǒng),沒(méi)有這種描述時(shí)即使是最簡(jiǎn)單的系統(tǒng)也無(wú)法使用
(2)必須描述怎樣安裝和管理這個(gè)系統(tǒng)。
(3)必須描述系統(tǒng)需求和設(shè)計(jì)
(4)必須描述系統(tǒng)的實(shí)現(xiàn)和測(cè)試,以便使系統(tǒng)成為可維護(hù)的
下面分別討論用戶(hù)文檔和系統(tǒng)文檔
1.用戶(hù)文檔
? ? ? ? 用戶(hù)文檔是用戶(hù)了解系統(tǒng)的第一步,它應(yīng)該能使用戶(hù)獲得對(duì)系統(tǒng)的準(zhǔn)確的初步印象。文檔的結(jié)構(gòu)方式應(yīng)該使用戶(hù)能夠方便地根據(jù)需要閱讀有關(guān)的內(nèi)容。用戶(hù)文檔至少應(yīng)該包括下述5方面的內(nèi)容
(1)功能描述,說(shuō)明系統(tǒng)能做什么。
(2)安裝文檔,說(shuō)明怎樣安裝這個(gè)系統(tǒng)以及怎樣使系統(tǒng)適應(yīng)特定的硬件配置
(3)使用手冊(cè),簡(jiǎn)要說(shuō)明如何著手使用這個(gè)系統(tǒng)(應(yīng)該通過(guò)豐富例子說(shuō)明怎樣使用常用的系統(tǒng)功能,還應(yīng)該說(shuō)明用戶(hù)操作錯(cuò)誤時(shí)怎樣恢復(fù)和重新啟動(dòng))
(4)參考手冊(cè),詳盡描述用戶(hù)可以使用的所有系統(tǒng)設(shè)施以及它們的使用方法,還應(yīng)該解釋系統(tǒng)可能產(chǎn)生的各種出錯(cuò)信息的含義(對(duì)參考手冊(cè)最主要的要求是完整,因此通常使用形式化的描述技術(shù))
(5)操作員指南(如果需要有系統(tǒng)操作員的話),說(shuō)明操作員應(yīng)該如何處理使用中出現(xiàn)的各種情況
? ? ? ? 上述內(nèi)容可以分別作為獨(dú)立的文檔,也可以作為一個(gè)文檔的不同分冊(cè),具體做法應(yīng)該由系統(tǒng)規(guī)模決定
2.系統(tǒng)文檔
? ? ? ? 所謂系統(tǒng)文檔指從問(wèn)題定義、需求說(shuō)明到驗(yàn)收測(cè)試計(jì)劃這樣一系列和系統(tǒng)實(shí)現(xiàn)有關(guān)的文檔。描述系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)和測(cè)試的文檔對(duì)于理解程序和維護(hù)程序來(lái)說(shuō)是極端重要的。和用戶(hù)文檔類(lèi)似,系統(tǒng)文檔的結(jié)構(gòu)也應(yīng)該能把讀者從對(duì)系統(tǒng)概貌的了解,引導(dǎo)到對(duì)系統(tǒng)每個(gè)方面每個(gè)特點(diǎn)的更形式化更具體的認(rèn)識(shí)。本系列前面各章已經(jīng)較詳細(xì)地介紹了各個(gè)階段應(yīng)該產(chǎn)生的文檔,此處不再重復(fù)
總結(jié)
- 上一篇: [css] 如果css文件过大时,如何
- 下一篇: [css] css的user-sele