第l六章 軟件維護(hù).ppt_第1頁(yè)
第l六章 軟件維護(hù).ppt_第2頁(yè)
第l六章 軟件維護(hù).ppt_第3頁(yè)
第l六章 軟件維護(hù).ppt_第4頁(yè)
第l六章 軟件維護(hù).ppt_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一部分傳統(tǒng)的軟件工程方法,第二章 系統(tǒng)分析 第三章 需求分析 第四章 軟件設(shè)計(jì) 第五章 編碼與測(cè)試 第六章 軟件維護(hù)與再工程,第六章 軟件維護(hù)與再工程,61 維護(hù)的基本概念 62 維護(hù)的特點(diǎn) 63 維護(hù)的過(guò)程 64 可維護(hù)性的度量 65 逆向過(guò)程與再工程 66 本章重點(diǎn),61 維護(hù)的基本概念,軟件維護(hù)是軟件生命周期中的最后一個(gè)階段,不屬于系統(tǒng)開發(fā)時(shí)期。 定義:在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程。 目的:通過(guò)必要的維護(hù)工作使得系統(tǒng)持久的滿足用戶的需要。包括四類維護(hù): 1)改正性維護(hù);2)適應(yīng)性維護(hù); 3)完善性維護(hù);4)預(yù)防性維護(hù)。,一、改正性維護(hù),在軟件交付使

2、用后,因開發(fā)時(shí)測(cè)試的不徹底、不完全,必然會(huì)有部分隱藏的錯(cuò)誤遺留到運(yùn)行階段。 這些隱藏下來(lái)的錯(cuò)誤在某些特定的使用環(huán)境下就會(huì)暴露出來(lái)。 為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,應(yīng)當(dāng)進(jìn)行的診斷和改正錯(cuò)誤的過(guò)程就叫做改正性維護(hù)。,二、適應(yīng)性維護(hù),在使用過(guò)程中, 外部環(huán)境(新的硬、軟件配置) 數(shù)據(jù)環(huán)境(數(shù)據(jù)庫(kù)、數(shù)據(jù)格式、數(shù)據(jù)輸入/輸出方式、數(shù)據(jù)存儲(chǔ)介質(zhì)) 可能發(fā)生變化。 為使軟件適應(yīng)這種變化,而去修改軟件的過(guò)程就叫做適應(yīng)性維護(hù)。,三、完善性維護(hù),在軟件的使用過(guò)程中,用戶往往會(huì)對(duì)軟件提出新的功能與性能要求。 為了滿足這些要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改

3、進(jìn)加工效率、提高軟件的可維護(hù)性。 這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性維護(hù)。,三、完善性維護(hù)(續(xù)),實(shí)踐表明,在幾種維護(hù)活動(dòng)中,完善性維護(hù)所占的比重最大。即大部分維護(hù)工作是改變和加強(qiáng)軟件,不是糾錯(cuò)。 完善性維護(hù)不一定是救火式的緊急維修,而可以是有計(jì)劃、有預(yù)謀的一種再開發(fā)活動(dòng)。 事實(shí)證明,來(lái)自用戶要求擴(kuò)充、加強(qiáng)軟件功能、性能的維護(hù)活動(dòng)約占整個(gè)維護(hù)工作的50。,四、預(yù)防性維護(hù),預(yù)防性維護(hù)是為了提高軟件的可維護(hù)性、可靠性等,為以后進(jìn)一步改進(jìn)軟件打下良好基礎(chǔ)。 預(yù)防性維護(hù)定義為:采用先進(jìn)的軟件工程方法對(duì)需要維護(hù)的軟件或軟件中的某一部分(重新)進(jìn)行設(shè)計(jì)、編制和測(cè)試。,四種維護(hù)所占的比例,其它維護(hù) 5 %,

4、適應(yīng)性 維 護(hù) 25%,改正性 維 護(hù) 20%,擴(kuò)充與完 善性維護(hù) 50%,改正性維護(hù)占全部維護(hù)量的比率已從80年代初的20%大幅度下降, 90年代初一些公司的產(chǎn)品差錯(cuò)率已接近于零。,常規(guī)軟件生命周期的估計(jì),各類維護(hù)活動(dòng)的根本目的是: 延長(zhǎng)軟件生存期,其它維護(hù) 4 %,軟件 生存 周期,軟件誕生,計(jì) 劃,分 析,設(shè) 計(jì),編 碼,測(cè) 試,運(yùn)行和維護(hù)(簡(jiǎn)稱維護(hù)),改善期 穩(wěn)定期 陳舊期,1年-10年,2個(gè)月-2年,重構(gòu),軟件工程周期,62 維護(hù)的特點(diǎn),1、結(jié)構(gòu)化維護(hù)與 非結(jié)構(gòu)化維護(hù)的對(duì)比,2、維護(hù)的成本,3、維護(hù)的問(wèn)題,一、結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)對(duì)比,軟件結(jié)構(gòu)、系統(tǒng)接口、 約束條件?,不知道!,

5、評(píng)價(jià)代碼,評(píng)價(jià)設(shè)計(jì)文檔,交付使用,二、維護(hù)的成本,維護(hù)工作的勞動(dòng)包括生產(chǎn)性活動(dòng)(如分析和評(píng)價(jià)、設(shè)計(jì)修改和實(shí)現(xiàn))和非生產(chǎn)性活動(dòng)(如力圖理解代碼在做什么、試圖判明數(shù)據(jù)結(jié)構(gòu)、接口特性、性能界限等)。 有形的軟件維護(hù)成本是花費(fèi)了多少錢,無(wú)形的維護(hù)成本有更大的影響。如 一些合理的修復(fù)或修改請(qǐng)求不能及時(shí)安排,使得客戶不滿意; 變更的結(jié)果引入新的故障,使得軟件整體質(zhì)量下降; 把軟件人員抽調(diào)到維護(hù)工作中,干擾了軟件開發(fā)工作。,二、維護(hù)的成本(續(xù)),其中: M是維護(hù)中消耗的總工作量 p是上面描述的生產(chǎn)性工作量 K是一個(gè)經(jīng)驗(yàn)常數(shù) c是因缺乏好的設(shè)計(jì)和文檔而導(dǎo)致復(fù)雜性的度量 d是對(duì)軟件熟悉程度的度量。,維護(hù)工作量的

6、模型,三、維護(hù)的問(wèn)題,別人的程序很難讀懂,說(shuō)明性文檔不可缺少!,文檔與代碼不一致,那是給誰(shuí)看呢?,開發(fā)人員往往不參加維護(hù),工資不一樣嘛!,大多數(shù)軟件在設(shè)計(jì)時(shí)沒有考慮將來(lái)的修改,所以不 是人人 能發(fā)財(cái),軟件工程的思想至少部分地解決了與維護(hù)有關(guān)的每一個(gè)問(wèn)題。,63 維護(hù)的過(guò)程,維護(hù)過(guò)程本質(zhì)上是修改和壓縮了的軟件定義和開發(fā)過(guò)程。,一、建立維護(hù)組織 除了較大的軟件開發(fā)公司外,通常在軟件維護(hù)工作方面,并不保持一個(gè)正式的組織機(jī)構(gòu)。 在維護(hù)活動(dòng)開始之前就明確維護(hù)責(zé)任是十分必要的,這樣可以大大減少維護(hù)過(guò)程中可能出現(xiàn)的混亂。,軟件維護(hù)的機(jī)構(gòu),維護(hù)申請(qǐng)?zhí)峤唤o維護(hù)管理員,他把申請(qǐng)交給某個(gè)系統(tǒng)監(jiān)督員去評(píng)價(jià)。 一旦做出

7、評(píng)價(jià),由修改負(fù)責(zé)人確定如何進(jìn)行修改。 在修改程序的過(guò)程中,由配置管理員嚴(yán)格把關(guān),控制修改的范圍,對(duì)軟件配置進(jìn)行審計(jì)。 在維護(hù)之前,就把責(zé)任明確下來(lái),可以減少維護(hù)過(guò)程中的混亂。,二、維護(hù)報(bào)告, 維護(hù)申請(qǐng)報(bào)告(Maintenance Request Form) 由用戶填寫的外部文件,提供錯(cuò)誤情況說(shuō)明(輸入數(shù)據(jù),錯(cuò)誤清單等),或修改說(shuō)明書等。 軟件修改報(bào)告(Software Change Report) 與MRF相應(yīng)的內(nèi)部文件,要求說(shuō)明: 所需修改變動(dòng)的性質(zhì); 申請(qǐng)修改的優(yōu)先級(jí); 為滿足某個(gè)維護(hù)申請(qǐng)報(bào)告,所需的工作量; 預(yù)計(jì)修改后的狀況。,改錯(cuò),三、維護(hù)事件流,用戶,類型,維護(hù)要求,估計(jì) 錯(cuò)誤嚴(yán)重

8、程度,計(jì)劃 改正 進(jìn)度,不嚴(yán)重,分析 問(wèn)題,嚴(yán)重,維護(hù) 任務(wù),分配的人員,復(fù)審,修改后的軟件配置,評(píng)價(jià) 優(yōu)先度,開始 分析,完善,適應(yīng),低,高,分配的人員,復(fù)審后供使用的軟件配置,64 可維護(hù)性的度量,許多軟件的維護(hù)十分困難,原因在于這些軟件的文檔不全、質(zhì)量差、開發(fā)過(guò)程不注意采用好的方法,忽視程序設(shè)計(jì)風(fēng)格等。 許多維護(hù)要求并不是因?yàn)槌绦蛑谐鲥e(cuò)而提出的,而是為適應(yīng)環(huán)境變化或需求變化而提出的。,軟件可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯(cuò)誤和缺陷,以及為滿足新的要求進(jìn)行修改、擴(kuò)充或壓縮的容易程度。 可維護(hù)性、可使用性、可靠性是衡量軟件質(zhì)量的主要質(zhì)量特性,也是用戶十分關(guān)心的幾個(gè)方面。,目前廣泛使用的是用如下

9、的七個(gè)特性來(lái)衡量程序的可維護(hù)性。 可理解性可使用性 可測(cè)試性可移植性 可修改性效率 可靠性 而且對(duì)于不同類型的維護(hù),這七種特性的側(cè)重點(diǎn)也不相同。,一、衡量可維護(hù)性的軟件特性,在各類維護(hù)中的側(cè)重點(diǎn),可理解性表明人們通過(guò)閱讀源代碼和相關(guān)文檔,了解程序功能及其如何運(yùn)行的容易程度。 一個(gè)可理解的程序應(yīng)具備以下一些特性:模塊化,風(fēng)格一致性,不使用令人捉摸不定或含糊不清的代碼,使用有意義的數(shù)據(jù)名和過(guò)程名,結(jié)構(gòu)化,完整性等。,1. 可理解性,可靠性表明一個(gè)程序按照用戶的要求和設(shè)計(jì)目標(biāo),在給定的一段時(shí)間內(nèi)正確執(zhí)行的概率。 關(guān)于可靠性,度量的標(biāo)準(zhǔn)主要有: 平均失效間隔時(shí)間MTTF 平均修復(fù)時(shí)間MTTR 有效性A

10、 = MTBD/(MTBD+MDT),2. 可靠性,可測(cè)試性表明論證程序正確性的容易程度。程序越簡(jiǎn)單,證明其正確性就越容易。而且設(shè)計(jì)合用的測(cè)試用例,取決于對(duì)程序的全面理解。 一個(gè)可測(cè)試的程序應(yīng)當(dāng)是可理解的,可靠的,簡(jiǎn)單的。,3. 可測(cè)試性,可修改性表明程序容易修改的程度。一個(gè)可修改的程序應(yīng)當(dāng)是可理解的、通用的、靈活的、簡(jiǎn)單的: 通用性是指程序適用于各種功能變化而無(wú)需修改。 靈活性是指能夠容易地對(duì)程序進(jìn)行修改。,4. 可修改性,可移植性表明程序轉(zhuǎn)移到一個(gè)新的計(jì)算環(huán)境的可能性的大小?;蛘咚砻鞒绦蚩梢匀菀椎?、有效地在各種各樣的計(jì)算環(huán)境中運(yùn)行的容易程度。 一個(gè)可移植的程序應(yīng)具有結(jié)構(gòu)良好、靈活、不依賴

11、于某一具體計(jì)算機(jī)或操作系統(tǒng)的性能。,5. 可移植性,效率表明一個(gè)程序能執(zhí)行預(yù)定功能而又不浪費(fèi)機(jī)器資源的程度。 這些機(jī)器資源包括內(nèi)存容量、外存容量、通道容量和執(zhí)行時(shí)間。,6. 效率,從用戶觀點(diǎn)出發(fā),可使用性定義為程序方便、實(shí)用、及易于使用的程度。一個(gè)可使用的程序應(yīng)是易于使用的、能允許用戶出錯(cuò)和改變,并盡可能不使用戶陷入混亂狀態(tài)的程序。,7. 可使用性,二、文檔 可維護(hù)性的決定因素,安裝文檔 說(shuō)明安裝系統(tǒng)的方法及適應(yīng)特定的硬件配置的方法;,使用手冊(cè) 說(shuō)明使用方法以及錯(cuò)誤挽救方法;,參考手冊(cè) 詳盡描述用戶可使用的所有系統(tǒng)設(shè)施以及它們的使用方法;給出錯(cuò)誤信息注解表;,操作員指南(如果需要有系統(tǒng)操作員的

12、話) 說(shuō)明操作員處理使用中出現(xiàn)的各種情況的方法。,系統(tǒng)文檔:即軟件生產(chǎn)過(guò)程中每一步產(chǎn)生的文檔。, 用戶文檔: 功能描述 說(shuō)明系統(tǒng)能做什么;,65 逆向過(guò)程與再工程,逆向工程與再工程是目前預(yù)防性維護(hù)采用主要的主要技術(shù)。 逆向工程是指分析已有的程序,尋求比源代碼更高一級(jí)的抽象形式。 再生工程,也稱為修復(fù)和改造工程,它是在逆向工程所獲信息的基礎(chǔ)上修改或再生已有的系統(tǒng),產(chǎn)生系統(tǒng)的一個(gè)新版本。 相關(guān)概念: 設(shè)計(jì)恢復(fù)指借助工具從已有的程序中抽象出有關(guān)數(shù)據(jù)設(shè)計(jì)、總體結(jié)構(gòu)設(shè)計(jì)和過(guò)程設(shè)計(jì)的信息。,一、逆向工程恢復(fù)信息的級(jí)別,(1)實(shí)現(xiàn)級(jí):程序的抽象語(yǔ)法 樹、符號(hào)表等信息 (2)結(jié)構(gòu)級(jí):如調(diào)用圖、結(jié)構(gòu)圖 (3)功能級(jí):反映程序段功能和 段間關(guān)系的信息 (4)領(lǐng)域級(jí):反映程序分量與應(yīng) 用領(lǐng)域概念間對(duì)應(yīng) 關(guān)系的信息。,抽 象 級(jí) 別,低,高,信息的抽 象級(jí)別

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論