資源描述:
《第八章維護(hù)ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、軟件維護(hù)的定義軟件維護(hù)的特點(diǎn)軟件維護(hù)過程可維護(hù)性第八章維護(hù)8.1軟件維護(hù)的定義在軟件運(yùn)行/維護(hù)階段對(duì)軟件產(chǎn)品進(jìn)行的修改就是所謂的維護(hù)。維護(hù)的類型四種:改正性維護(hù)適應(yīng)性維護(hù)完善性維護(hù)預(yù)防性維護(hù)1.改正性維護(hù)在軟件交付使用后,因開發(fā)時(shí)測(cè)試的不徹底、不完全,必然會(huì)有部分隱藏的錯(cuò)誤遺留到運(yùn)行階段。這些隱藏下來的錯(cuò)誤在某些特定的使用環(huán)境下就會(huì)暴露出來。為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,應(yīng)當(dāng)進(jìn)行的診斷和改正錯(cuò)誤的過程就叫做改正性維護(hù)。2.適應(yīng)性維護(hù)在使用過程中,外部環(huán)境(新的硬、軟件配置)數(shù)據(jù)環(huán)境(數(shù)據(jù)庫、數(shù)據(jù)格式、數(shù)
2、據(jù)輸入/輸出方式、數(shù)據(jù)存儲(chǔ)介質(zhì))可能發(fā)生變化。為使軟件適應(yīng)這種變化,而去修改軟件的過程就叫做適應(yīng)性維護(hù)。3.完善性維護(hù)在軟件的使用過程中,用戶往往會(huì)對(duì)軟件提出新的功能與性能要求。為了滿足這些要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性維護(hù)。實(shí)踐表明,在幾種維護(hù)活動(dòng)中,完善性維護(hù)所占的比重最大。即大部分維護(hù)工作是改變和加強(qiáng)軟件,而不是糾錯(cuò)。完善性維護(hù)不一定是救火式的緊急維修,而可以是有計(jì)劃、有預(yù)謀的一種再開發(fā)活動(dòng)。事實(shí)證明,來自用戶要求擴(kuò)充、加強(qiáng)軟件功能、性能
3、的維護(hù)活動(dòng)約占整個(gè)維護(hù)工作的50%。4.預(yù)防性維護(hù)預(yù)防性維護(hù)是為了提高軟件的可維護(hù)性、可靠性等,為以后進(jìn)一步改進(jìn)軟件打下良好基礎(chǔ)。預(yù)防性維護(hù)定義為:采用先進(jìn)的軟件工程方法對(duì)需要維護(hù)的軟件或軟件中的某一部分(重新)進(jìn)行設(shè)計(jì)、編制和測(cè)試。在整個(gè)軟件維護(hù)階段所花費(fèi)的全部工作量中,完善性維護(hù)占了幾乎一半的工作量。軟件維護(hù)活動(dòng)所花費(fèi)的工作占整個(gè)生存期工作量的70%以上,這是由于在漫長的軟件運(yùn)行過程中需要不斷對(duì)軟件進(jìn)行修改,以改正新發(fā)現(xiàn)的錯(cuò)誤、適應(yīng)新的環(huán)境和用戶新的要求,這些修改需要花費(fèi)很多精力和時(shí)間,而且有時(shí)會(huì)引入新的錯(cuò)誤。維護(hù)在軟件生三類維護(hù)占
4、存期所占比例總維護(hù)比例8.2軟件維護(hù)的特點(diǎn)在軟件的維護(hù)過程中,需要花費(fèi)大量的工作量,從而直接影響了軟件維護(hù)的成本。應(yīng)當(dāng)考慮有哪些因素影響軟件維護(hù)的工作量,相應(yīng)應(yīng)該采取什么維護(hù)策略,才能有效地維護(hù)軟件并控制維護(hù)的成本。1.影響維護(hù)工作量的因素系統(tǒng)大小:系統(tǒng)越大,理解掌握起來越困難。系統(tǒng)越大,所執(zhí)行功能越復(fù)雜。因而需要更多的維護(hù)工作量。程序設(shè)計(jì)語言:使用強(qiáng)功能的程序設(shè)計(jì)語言可以控制程序的規(guī)模。語言的功能越強(qiáng),生成程序的模塊化和結(jié)構(gòu)化程度越高,所需的指令數(shù)就越少,程序的可讀性越好。系統(tǒng)年齡:老系統(tǒng)隨著不斷的修改,結(jié)構(gòu)越來越亂;維護(hù)人員經(jīng)常更換,
5、程序又變得越來越難于理解。許多老系統(tǒng)在當(dāng)初并未按照軟件工程的要求進(jìn)行開發(fā),因而沒有文檔,或文檔太少。在長期的維護(hù)過程中文檔在許多地方與程序?qū)崿F(xiàn)變得不一致,在維護(hù)時(shí)就會(huì)遇到很大困難。數(shù)據(jù)庫技術(shù)的應(yīng)用:使用數(shù)據(jù)庫,可以簡單而有效地管理和存儲(chǔ)用戶程序中的數(shù)據(jù),還可以減少生成用戶報(bào)表應(yīng)用軟件的維護(hù)工作量。先進(jìn)的軟件開發(fā)技術(shù):在軟件開發(fā)時(shí),若使用能使軟件結(jié)構(gòu)比較穩(wěn)定的分析與設(shè)計(jì)技術(shù),及程序設(shè)計(jì)技術(shù),如面向?qū)ο蠹夹g(shù)、復(fù)用技術(shù)等,可減少大量的工作量。其它:應(yīng)用的類型數(shù)學(xué)模型任務(wù)的難度開關(guān)與標(biāo)記、IF嵌套深度、索引或下標(biāo)數(shù)等對(duì)維護(hù)工作量都有影響。許多軟件
6、在開發(fā)時(shí)并未考慮將來的修改,為軟件的維護(hù)帶來許多問題。2.軟件維護(hù)的策略改正性維護(hù)通常要生成100%可靠的軟件并不一定合算,成本太高。但通過使用新技術(shù),可大大減少進(jìn)行改正性維護(hù)的需要。這些技術(shù)包括:數(shù)據(jù)庫管理系統(tǒng)、軟件開發(fā)環(huán)境、程序自動(dòng)生成系統(tǒng)、較高級(jí)(第四代)的語言。以及新的開發(fā)方法、軟件復(fù)用、防錯(cuò)程序設(shè)計(jì)及周期性維護(hù)審查等。適應(yīng)性維護(hù)這一類維護(hù)不可避免,可以控制。(1)在配置管理時(shí),把硬件、操作系統(tǒng)和其它相關(guān)環(huán)境因素的可能變化考慮在內(nèi)。(2)把與硬件、操作系統(tǒng),以及其它外圍設(shè)備有關(guān)的程序歸到特定的程序模塊中。(3)使用內(nèi)部程序列表、外
7、部文件,以及處理的例行程序包,可為維護(hù)時(shí)修改程序提供方便。完善性維護(hù)利用前兩類維護(hù)中列舉的方法,也可以減少這一類維護(hù)。特別是數(shù)據(jù)庫管理系統(tǒng)、程序生成器、應(yīng)用軟件包,可減少維護(hù)工作量。此外,建立軟件系統(tǒng)的原型,把它在實(shí)際系統(tǒng)開發(fā)之前提供給用戶。用戶通過研究原型,進(jìn)一步完善他們的功能要求,就可以減少以后完善性維護(hù)的需要。3.維護(hù)成本有形的軟件維護(hù)成本是花費(fèi)了多少錢,無形的維護(hù)成本有更大的影響。一些合理的修復(fù)或修改請(qǐng)求不能及時(shí)安排,使得客戶不滿意;變更的結(jié)果引入新的故障,使得軟件整體質(zhì)量下降;把軟件人員抽調(diào)到維護(hù)工作中,干擾了軟件開發(fā)工作。軟
8、件維護(hù)的代價(jià)是降低了生產(chǎn)率,在做老程序的維護(hù)時(shí)非常明顯。例如,開發(fā)每一行源代碼耗資25美元,維護(hù)每一行源代碼需要耗資1000美元。維護(hù)工作量包括生產(chǎn)性活動(dòng)(如分析和評(píng)價(jià)、設(shè)計(jì)修改和實(shí)現(xiàn))和“輪