第13章軟件維護(hù)與再工程_第1頁
第13章軟件維護(hù)與再工程_第2頁
第13章軟件維護(hù)與再工程_第3頁
第13章軟件維護(hù)與再工程_第4頁
第13章軟件維護(hù)與再工程_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第13章軟件維護(hù)與再工程軟件演化是指軟件在交付以后,對軟件進(jìn)行的一系列活動的總稱。軟件演化:軟件的維護(hù)、軟件再工程。軟件維護(hù)階段覆蓋了從軟件交付使用,到軟件被淘汰為止的整個(gè)時(shí)期。軟件的開發(fā)時(shí)間可能需要一、二年,甚至更短,但它的使用時(shí)間可能要經(jīng)歷幾年或幾十年。再工程的主要目的是為遺留系統(tǒng)轉(zhuǎn)化為可演化系統(tǒng)提供一條現(xiàn)實(shí)可行的途徑,是在軟件生命周期終止后開始的一個(gè)新的階段。軟件維護(hù)與再工程內(nèi)容摘要軟件維護(hù)再工程技術(shù)內(nèi)容摘要軟件維護(hù)再工程技術(shù)軟件維護(hù)的概念什么是軟件維護(hù)

是指軟件系統(tǒng)交付使用以后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程國標(biāo)GB/T11457-95給出如下定義在軟件產(chǎn)品交付使用后對其進(jìn)行修改,以糾正故障;在軟件產(chǎn)品交付使用后對其進(jìn)行修改,以糾正故障、改進(jìn)其性能和其它屬性,或使產(chǎn)品適應(yīng)改變了的環(huán)境軟件維護(hù)的概念-軟件維護(hù)分類兩種錯(cuò)誤認(rèn)識

軟件維護(hù)是一次新的開發(fā)活動軟件維護(hù)就是改錯(cuò)新開發(fā)活動強(qiáng)調(diào)要在一定的約束條件下從頭開始實(shí)施軟件維護(hù)強(qiáng)調(diào)必須在現(xiàn)有系統(tǒng)的限定和約束條件下實(shí)施;根據(jù)起因不同,軟件維護(hù)可以分為糾錯(cuò)性維護(hù)、適應(yīng)性維護(hù)、改善性維護(hù)和預(yù)防性維護(hù)四類軟件維護(hù)的概念-軟件維護(hù)分類糾錯(cuò)性維護(hù):為了改正軟件系統(tǒng)中的錯(cuò)誤,使軟件能夠滿足預(yù)期的正常運(yùn)行狀態(tài)的要求而進(jìn)行的維護(hù)適應(yīng)性維護(hù):為了使軟件適應(yīng)內(nèi)部或外部環(huán)境變化,而去修改軟件的過程改善性維護(hù):滿足使用過程中用戶提出增加新功能或修改已有功能的建議維護(hù)預(yù)防性維護(hù):為了提高軟件的可維護(hù)性、可靠性等,為以后進(jìn)一步改進(jìn)軟件打下良好基礎(chǔ)而修改軟件的活動軟件維護(hù)的概念-維護(hù)問題維護(hù)時(shí):維護(hù)人員從分析需求規(guī)格說明開始,明白軟件功能和性能上的改變,對設(shè)計(jì)說明文檔進(jìn)行修改和復(fù)查,再根據(jù)設(shè)計(jì)修改進(jìn)行程序變動,并用測試文檔中的測試用例進(jìn)行回歸測試,最后將修改后的軟件再次交付使用。軟件維護(hù)的概念-維護(hù)問題和軟件維護(hù)有關(guān)的部分問題:理解別人的代碼通常是非常困難的,而且難度隨著軟件配置成分的缺失而迅速增加需要維護(hù)的軟件往往沒有文檔、或文檔資料嚴(yán)重不足、或軟件的變化未在相應(yīng)的文檔中反映出來當(dāng)軟件要求維護(hù)時(shí),不能指望由原來的開發(fā)人員來完成或提供軟件的解釋。由于維護(hù)持續(xù)時(shí)間很長,因此當(dāng)需要解釋軟件時(shí)候,往往開發(fā)人員已經(jīng)不在附近了絕大多數(shù)軟件在設(shè)計(jì)時(shí)沒有考慮到將來的修改問題軟件維護(hù)這項(xiàng)工作毫無吸引力。一方面是因?yàn)檐浖S護(hù),看不到什么“成果”,但工作量很大,更重要的是維護(hù)工作難度大,軟件維護(hù)人員經(jīng)常遭受挫折。軟件維護(hù)的概念-維護(hù)成本軟件維護(hù)除費(fèi)用外的無形代價(jià)包括維護(hù)活動占用了其他軟件開發(fā)可用的資源,使資源的利用率降低一些修復(fù)或修改請求得不到及時(shí)安排,使得客戶滿意率下降維護(hù)的結(jié)果把一些新的潛在的錯(cuò)誤引入軟件,降低了軟件質(zhì)量將軟件人員抽調(diào)到維護(hù)工作中,使得其它軟件開發(fā)過程受到干擾軟件維護(hù)的概念-維護(hù)成本維護(hù)的工作可劃分成

生產(chǎn)性活動如,分析評價(jià)、修改設(shè)計(jì)、編寫程序代碼等非生產(chǎn)性活動如,程序代碼功能理解、數(shù)據(jù)結(jié)構(gòu)解釋、接口特點(diǎn)和性能界限分析等維護(hù)工作量的模型

M:維護(hù)的總工作量;P:生產(chǎn)性工作量;K:經(jīng)驗(yàn)常數(shù);c:復(fù)雜程度;d:維護(hù)人員對軟件的熟悉程度軟件維護(hù)的概念-維護(hù)成本影響維護(hù)工作量的因素主要有以下六種系統(tǒng)的規(guī)模:系統(tǒng)規(guī)模越大,其功能就越復(fù)雜,軟件維護(hù)的工作量也隨之增大程序設(shè)計(jì)語言:使用強(qiáng)功能的程序設(shè)計(jì)語言可以控制程序的規(guī)模。語言的功能越強(qiáng),生成程序的模塊化和結(jié)構(gòu)化程度越高,所需的指令數(shù)就越少,程序的可讀性也越好系統(tǒng)年齡:老系統(tǒng)比新系統(tǒng)需要更多的維護(hù)工作量。數(shù)據(jù)庫技術(shù)的應(yīng)用:使用數(shù)據(jù)庫,可以簡單而有效地管理和存儲用戶程序中的數(shù)據(jù),還可以減少生成用戶報(bào)表應(yīng)用軟件的維護(hù)工作量先進(jìn)的軟件開發(fā)技術(shù):在軟件開發(fā)過程中,如果采用先進(jìn)的分析設(shè)計(jì)技術(shù)和程序設(shè)計(jì)技術(shù),如面向?qū)ο蠹夹g(shù)、復(fù)用技術(shù)等,可減少大量的維護(hù)工作量其它一些因素:如應(yīng)用的類型、數(shù)學(xué)模型、任務(wù)的難度、IF嵌套深度、索引或下標(biāo)數(shù)等,對維護(hù)工作量也有影響軟件維護(hù)的過程-維護(hù)組織維護(hù)組織結(jié)構(gòu)圖系統(tǒng)監(jiān)督員一般都是對程序(某一部分)特別熟悉的技術(shù)人員。在維護(hù)人員對程序進(jìn)行修改的過程中,由配置管理員嚴(yán)格把關(guān),控制修改的范圍,對軟件配置進(jìn)行審計(jì)。

維護(hù)管理員、系統(tǒng)監(jiān)督員、修改控制決策機(jī)構(gòu)等,均代表維護(hù)工作的某個(gè)職責(zé)范圍。軟件維護(hù)的過程-維護(hù)組織維護(hù)團(tuán)隊(duì)根據(jù)時(shí)間的不同,可以分為短期團(tuán)隊(duì)和長期團(tuán)隊(duì)短期團(tuán)隊(duì)一般是當(dāng)需要執(zhí)行相關(guān)具體任務(wù)時(shí),臨時(shí)組織起來解決手頭的問題

長期團(tuán)隊(duì)則更正式,能夠?qū)I(yè)化創(chuàng)建溝通渠道,可以管理軟件系統(tǒng)整個(gè)生存期的成功演化無論是短期團(tuán)隊(duì)還是長期團(tuán)隊(duì),都要把有經(jīng)驗(yàn)的員工和新員工混合起來。軟件維護(hù)的過程-維護(hù)過程非糾錯(cuò)性維護(hù),則首先判斷維護(hù)類型,對適應(yīng)性維護(hù),按照評估后得到的優(yōu)先級放入隊(duì)列改善性維護(hù),則還要考慮是否采取行動,如果接受申請,則同樣按照評估后得到的優(yōu)先級放入隊(duì)列,如果拒絕申請,則通知請求者,并說明原因工作安排隊(duì)列中的任務(wù),由修改負(fù)責(zé)人依次從隊(duì)列中取出任務(wù),按照軟件工程方法學(xué)規(guī)劃、組織、實(shí)施工程。軟件維護(hù)的過程-維護(hù)過程維護(hù)請求類型類型嚴(yán)重性評估后按優(yōu)先級在隊(duì)列排隊(duì)救火行動,當(dāng)排在隊(duì)列之首評估后分類評估后按優(yōu)先級在隊(duì)列排隊(duì)采取的行動通知請求者并說明原因按優(yōu)先級在隊(duì)列中排隊(duì)從維護(hù)請求隊(duì)列之首取出一任務(wù)按SE方法學(xué)規(guī)劃、組織、實(shí)施工程隊(duì)列中還有維護(hù)請求嗎?資源用于開發(fā)新的軟件。yn糾錯(cuò)性維護(hù)其他改善性維護(hù)適應(yīng)性維護(hù)拒絕接受并不嚴(yán)重非常嚴(yán)重維護(hù)過程圖軟件維護(hù)的過程-維護(hù)過程維護(hù)工作最后一步是復(fù)審依照當(dāng)前狀態(tài),在設(shè)計(jì)、編碼和測試的哪些方面還能用其他方法進(jìn)行?哪些維護(hù)資源可用但未用?這次維護(hù)活動中主要(或次要)的障礙有哪些?在維護(hù)請求中有預(yù)防性維護(hù)嗎?軟件維護(hù)的過程-維護(hù)記錄維護(hù)人員對程序進(jìn)行修改前要著重做好兩個(gè)記錄維護(hù)申請報(bào)告軟件修改報(bào)告維護(hù)請求表(報(bào)告)即軟件問題報(bào)告該報(bào)告(表)由要求維護(hù)活動的用戶填寫。對改正性維護(hù),用戶需要將錯(cuò)誤出現(xiàn)的現(xiàn)場信息詳細(xì)描述出來,包括輸入數(shù)據(jù)、錯(cuò)誤清單以及其它有關(guān)材料。對適應(yīng)性維護(hù)或改善性維護(hù),應(yīng)該給出簡短的需求規(guī)格說明書。維護(hù)申請被批準(zhǔn)后,維護(hù)申請報(bào)告就成為外部文檔,作為本次維護(hù)的依據(jù)軟件維護(hù)的過程-維護(hù)評價(jià)如果已經(jīng)開始保存維護(hù)記錄,可以對維護(hù)工作做一些定量度量,至少可以從如下7方面進(jìn)行評價(jià):每次程序運(yùn)行平均失敗的次數(shù);用于每一類維護(hù)活動的總?cè)藭r(shí)數(shù);平均每個(gè)程序、每種語言、每種維護(hù)類型所必需的程序變動數(shù);維護(hù)過程中增加或刪除源語句平均花費(fèi)的人時(shí)數(shù);維護(hù)每種語言平均花費(fèi)的人時(shí)數(shù);一張維護(hù)請求表的平均周轉(zhuǎn)時(shí)間;不同維護(hù)類型所占的比例;軟件可維護(hù)性可維護(hù)性(maintainability)指理解、改正、調(diào)整和改進(jìn)軟件的難易程度。對軟件可維護(hù)性影響的主要因素有:可理解性(understandability)、可測試性(testability)、可修改性、modifiability)可移植性(portability)軟件可維護(hù)性-主要影響因素可理解性:指理解軟件的結(jié)構(gòu)、接口、功能和內(nèi)部過程的難易程度。提高軟件可理解性的措施有:采用模塊化的程序結(jié)構(gòu);書寫詳細(xì)正確的文檔;采用結(jié)構(gòu)化程序設(shè)計(jì);書寫源程序的內(nèi)部文檔;使用良好的編程語言;具有良好的程序設(shè)計(jì)風(fēng)格等軟件可維護(hù)性-主要影響因素可測試性:指測試和診斷軟件(主要指程序)中錯(cuò)誤的難易程度。提高軟件可測試性的措施有:采用良好的程序結(jié)構(gòu);書寫詳細(xì)正確的文檔;使用測試工具和調(diào)試工具;保存以前的測試過程和測試用例等軟件可維護(hù)性-主要影響因素可修改性:指修改軟件(主要指程序)的難易程度。在修改軟件時(shí)經(jīng)常會發(fā)生這樣的情況:修改了程序中某個(gè)錯(cuò)誤的同時(shí)又產(chǎn)生新的錯(cuò)誤(由程序的修改引起的);或者在程序中增加了某個(gè)功能后,導(dǎo)致原先的某些功能不能正常執(zhí)行。軟件可維護(hù)性-主要影響因素可移植性:指程序轉(zhuǎn)移到一個(gè)新的計(jì)算環(huán)境的難易程度。影響軟件可移植性的因素有:信息隱蔽原則;模塊獨(dú)立;模塊化;高內(nèi)聚低耦合;良好的程序結(jié)構(gòu);不用標(biāo)準(zhǔn)文本以外的語句等一個(gè)可移植的程序應(yīng)具有結(jié)構(gòu)良好、靈活、不依賴于某一具體計(jì)算機(jī)或操作系統(tǒng)的性能軟件可維護(hù)性-主要影響因素通常對于軟件可移植性的度量考慮如下因素是否是用高級的獨(dú)立于機(jī)器的語言來編寫程序?是否采用廣泛使用的標(biāo)準(zhǔn)化的程序設(shè)計(jì)語言來編寫程序?是否僅使用了這種語言的標(biāo)準(zhǔn)版本和特性?程序中是否使用了標(biāo)準(zhǔn)的普遍使用的庫功能和子程序?程序中是否極少使用或根本不使用操作系統(tǒng)的功能?軟件可維護(hù)性-主要影響因素程序在執(zhí)行之前是否初始化內(nèi)存?程序在執(zhí)行之前是否測定當(dāng)前的輸入/輸出設(shè)備?程序是否把與機(jī)器相關(guān)的語句分離了出來,集中放在了一些單獨(dú)的程序模塊中,并有說明文件?程序是否結(jié)構(gòu)化?并允許在小一些的計(jì)算機(jī)上分段(覆蓋)運(yùn)行?程序中是否避免了依賴于字母數(shù)字或特殊字符的內(nèi)部位表示?軟件可維護(hù)性-軟件可維護(hù)性評審在進(jìn)行設(shè)計(jì)評審時(shí),要從易于維護(hù)和提高設(shè)計(jì)總體質(zhì)量的角度全面評審:數(shù)據(jù)設(shè)計(jì)總體結(jié)構(gòu)設(shè)計(jì)過程設(shè)計(jì)界面設(shè)計(jì)在進(jìn)行代碼評審時(shí),要強(qiáng)調(diào)編程風(fēng)格和內(nèi)部文檔在進(jìn)行測試時(shí)應(yīng)指出軟件正式交付前應(yīng)進(jìn)行的預(yù)防性維護(hù)在維護(hù)活動完成后也要進(jìn)行評審。

軟件可維護(hù)性-提高可維護(hù)性的方法提高可維護(hù)性通常采用的方法有確定質(zhì)量管理目標(biāo)和優(yōu)先級規(guī)范化程序設(shè)計(jì)風(fēng)格選擇可維護(hù)性高的程序設(shè)計(jì)語言改進(jìn)程序文檔保證軟件質(zhì)量審查方法軟件可維護(hù)性-提高可維護(hù)性的方法確定質(zhì)量管理目標(biāo)和優(yōu)先級一個(gè)可維護(hù)的程序應(yīng)該是可理解的可修改的可測試的有些維護(hù)屬性之間是相互促進(jìn)的,另外一些屬性之間則是相互抵觸的。在程序的開發(fā)階段就應(yīng)保證軟件具有可理解性、可修改性和可測試性。在軟件開發(fā)的每一個(gè)階段都應(yīng)盡力考慮軟件的可維護(hù)性。軟件可維護(hù)性-提高可維護(hù)性的方法使用提高軟件質(zhì)量的技術(shù)與工具在進(jìn)行軟件設(shè)計(jì)時(shí),采用:模塊化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)在軟件開發(fā)過程中,采用:結(jié)構(gòu)化小組,建立主程序小組實(shí)現(xiàn)嚴(yán)格的組織化管理,職能分工規(guī)范標(biāo)準(zhǔn)在對程序的質(zhì)量進(jìn)行檢測時(shí),采用:分工合作的方法這些方法會有效地提高軟件質(zhì)量和檢測效率,進(jìn)而提高軟件的可維護(hù)性。軟件可維護(hù)性-提高可維護(hù)性的方法選擇可維護(hù)性高的程序設(shè)計(jì)語言選擇較好的程序設(shè)計(jì)語言對軟件維護(hù)有很大的影響。低級語言(如:機(jī)器代碼或匯編語言)程序是一般人很難掌握和理解的,因而很難維護(hù)。高級語言比低級語言容易理解,具有更好的可維護(hù)性。在高級語言中,一些語言可能比另外一些語言更容易理解。例如,cobol語言比fortran語言更容易理解,因?yàn)閏obol的變量接近英語;軟件可維護(hù)性-提高可維護(hù)性的方法改進(jìn)程序文檔程序文檔對提高程序的可理解性有著重要的作用。即使是一個(gè)相對簡單的程序,要想有效地、迅速對它進(jìn)行維護(hù),也需要編制文檔,對它的目的和任務(wù)進(jìn)行解釋。對于程序的維護(hù)人員來說,要想對程序編制人員的意圖進(jìn)行重新修改,并對今后可能出現(xiàn)的變化估計(jì),缺少文檔的幫助也將很難實(shí)現(xiàn)。另一方面,對于程序文檔一定要能及時(shí)反映程序的變化,否則將對后續(xù)維護(hù)人員產(chǎn)生誤導(dǎo)。軟件可維護(hù)性-提高可維護(hù)性的方法進(jìn)行質(zhì)量保證審查審查可以用來檢測在開發(fā)和維護(hù)階段內(nèi)發(fā)生的質(zhì)量變化。一旦發(fā)現(xiàn)問題,就可以采取措施來糾正,以控制不斷增長的軟件維護(hù)成本,延長軟件系統(tǒng)的有效生命期。為了保證軟件的可維護(hù)性,有四種類型的軟件審查:在檢查點(diǎn)進(jìn)行復(fù)審驗(yàn)收檢查周期性地維護(hù)審查對軟件包進(jìn)行檢查。內(nèi)容摘要軟件維護(hù)再工程技術(shù)再工程的概念逆向工程(reverseengineering):指在軟件生存周期中,將軟件的某種形式描述轉(zhuǎn)換成更抽象形式的活動重構(gòu)(restructuring):指在同一抽象級別上轉(zhuǎn)換系統(tǒng)的描述形式。如把C++程序轉(zhuǎn)換成Java程序設(shè)計(jì)恢復(fù)(designrecovery):指借助工具從已有程序中抽象出有關(guān)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、總體結(jié)構(gòu)設(shè)計(jì)和過程設(shè)計(jì)的信息。再工程的概念再工程(reengineering):指在逆向工程所獲信息的基礎(chǔ)上修改或重構(gòu)已有的系統(tǒng),產(chǎn)生系統(tǒng)的一個(gè)新版本再工程的主要目的:為遺留系統(tǒng)轉(zhuǎn)化為可演化系統(tǒng)提供一條現(xiàn)實(shí)可行的途徑再工程是一個(gè)工程過程,它將逆向工程、重構(gòu)和正向工程組合起來,將現(xiàn)存系統(tǒng)重新構(gòu)造為新的形式。當(dāng)實(shí)施軟件的再工程時(shí),軟件理解是再工程的基礎(chǔ)和前提。再工程的概念為什么要進(jìn)行再工程維護(hù)一行源代碼的代價(jià)可能是最初開發(fā)該行源代碼代價(jià)的14-20倍;同時(shí)重新設(shè)計(jì)軟件體系結(jié)構(gòu)時(shí)使用了現(xiàn)代設(shè)計(jì)概念,它對將來的維護(hù)會有很大的幫助;現(xiàn)有的程序版本可以作為軟件原型使用,開發(fā)生產(chǎn)率可以大大高于平均水平;用戶具有較多使用該軟件的經(jīng)驗(yàn),因此,能夠很容易地搞清新的變更需求和變更的范圍;另外,利用逆向工程和再工程的工具,可以使一部分工作自動化;在完成預(yù)防性維護(hù)的過程中還可以建立起完整的軟件配置。

再工程的概念通常再工程包含:業(yè)務(wù)過程再工程、軟件再工程業(yè)務(wù)過程再工程(BPR——BusinessProcessRe-engineering,也稱業(yè)務(wù)過程重組)定義業(yè)務(wù)目標(biāo)標(biāo)示并評估現(xiàn)有的業(yè)務(wù)過程修訂業(yè)務(wù)過程以更好滿足業(yè)務(wù)目標(biāo)軟件再工程包含:庫存目錄分析文檔重構(gòu)逆向工程程序和數(shù)據(jù)重構(gòu)正向工程業(yè)務(wù)過程再工程業(yè)務(wù)過程是一組“邏輯相關(guān)的任務(wù),它們被執(zhí)行以達(dá)到符合預(yù)定義的業(yè)務(wù)結(jié)果”。

每個(gè)系統(tǒng)都是由不同的子系統(tǒng)構(gòu)成,而子系統(tǒng)還可以再細(xì)分為更細(xì)的子系統(tǒng),從而整個(gè)業(yè)務(wù)呈現(xiàn)一種層次結(jié)構(gòu)業(yè)務(wù)業(yè)務(wù)系統(tǒng) 業(yè)務(wù)過程 業(yè)務(wù)子過程業(yè)務(wù)層次

業(yè)務(wù)過程再工程業(yè)務(wù)過程再工程是迭代的,不斷演化的。整個(gè)業(yè)務(wù)過程再工程模型可用下圖表示業(yè)務(wù)定義過程標(biāo)識過程評估過程規(guī)約和設(shè)計(jì)原型實(shí)現(xiàn)求精和實(shí)例化軟件再工程過程在業(yè)務(wù)過程被分析清楚后,可以對軟件實(shí)施再工程,整個(gè)軟件再工程過程模型如下圖軟件再工程過程庫存目錄分析包含關(guān)于每個(gè)應(yīng)用系統(tǒng)的基本信息應(yīng)用系統(tǒng)的名字最初構(gòu)建它的日期已做過的實(shí)質(zhì)性修改次數(shù)過去18個(gè)月報(bào)告的錯(cuò)誤用戶數(shù)量安裝它的機(jī)器數(shù)量它的復(fù)雜程度文檔質(zhì)量整體可維護(hù)性等級預(yù)期壽命在未來36個(gè)月內(nèi)的預(yù)期修改次數(shù)業(yè)務(wù)重要程度等軟件再工程過程文檔重構(gòu)建立文檔非常耗費(fèi)時(shí)間,不可能為數(shù)百個(gè)程序都重新建立文檔。如果一個(gè)程序是相對穩(wěn)定的,而且可能不會再經(jīng)歷什么變化,那么,讓它保持現(xiàn)狀。為了便于今后的維護(hù),必須更新文檔,但只針對系統(tǒng)中當(dāng)前正在修改的那些部分建立完整文檔。如果某應(yīng)用系統(tǒng)是完成業(yè)務(wù)工作的關(guān)鍵,而且必須重構(gòu)全部文檔,則仍然應(yīng)該設(shè)法把文檔工作減少到必需的最小量。

軟件再工程過程逆向工程軟件的逆向工程是分析程序,以便在比源代碼更高的抽象層次上,創(chuàng)建出程序的某種表示的過程;逆向工程工具從現(xiàn)存的程序代碼中抽取有關(guān)數(shù)據(jù)、體系結(jié)構(gòu)和處理過程的設(shè)計(jì)信息。軟件再工程過程代碼重構(gòu)某些老程序具有比較完整、合理的體系結(jié)構(gòu),但是,個(gè)體模塊的編碼方式卻是難于理解、測試和維護(hù)的。在這種情況下,可以重構(gòu)可疑模塊的代碼。為了完成代碼重構(gòu)活動:首先用重構(gòu)工具分析源代碼,標(biāo)注出和結(jié)構(gòu)化程序設(shè)計(jì)概念相違背的部分。然后重構(gòu)有問題的代碼(此項(xiàng)工作可自動進(jìn)行)。最后復(fù)審和測試生成的重構(gòu)代碼(以保證沒有引入異常)并更新代碼文檔。軟件再工程過程數(shù)據(jù)重構(gòu)數(shù)據(jù)重構(gòu)發(fā)生在相當(dāng)?shù)偷某橄髮哟紊?,它是一種全范圍的再工程活動。在大多數(shù)情況下,數(shù)據(jù)重構(gòu)始于逆向工程活動,分解當(dāng)前使用的數(shù)據(jù)體系結(jié)構(gòu),必要時(shí)定義數(shù)據(jù)模型,標(biāo)識數(shù)據(jù)對象和屬性,并從軟件質(zhì)量的角度復(fù)審現(xiàn)存的數(shù)據(jù)結(jié)構(gòu)。軟件再工程過程正向工程正向工程過程應(yīng)用軟件工程的原理、概念、技術(shù)和方法來重新開發(fā)某個(gè)現(xiàn)有的應(yīng)用系統(tǒng)。在大多數(shù)情況下,被再工程的軟件不僅重新實(shí)現(xiàn)現(xiàn)有系統(tǒng)的功能,而且加入了新功能和提高了整體性

溫馨提示

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

評論

0/150

提交評論