已閱讀5頁(yè),還剩2頁(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/7基于程序靜態(tài)與動(dòng)態(tài)結(jié)構(gòu)的特征定位技術(shù)探析摘要特征定位技術(shù)對(duì)于解決維護(hù)任務(wù)中提出的面向特征的程序理解以具有很強(qiáng)的針對(duì)性和應(yīng)用價(jià)值,對(duì)提高軟件維護(hù)和程序理解的效率和準(zhǔn)確性具有重要的意義。本文對(duì)基于程序靜態(tài)與動(dòng)態(tài)結(jié)構(gòu)的特征定位技術(shù)進(jìn)行了分析和研究。關(guān)鍵詞特征定位靜態(tài)與動(dòng)態(tài)基于程序1特征定位技術(shù)概述對(duì)于確定的維護(hù)任務(wù),糾正或完善系統(tǒng)的某個(gè)或某些功能,我們把這些系統(tǒng)待維護(hù)的功能稱為特征。完成對(duì)特征的糾正或完善,往往只需要理解與這些特征所對(duì)應(yīng)的那部分代碼。因此特征定位是實(shí)現(xiàn)面向特征程序理解的重要支撐技術(shù)。理解一個(gè)特征是如何執(zhí)行的是程序理解中主要的問(wèn)題。在真正的理解程序運(yùn)行之前,必須先定位特征代碼的執(zhí)行位置。找出執(zhí)行給定特征的源碼通常是不容易的,例如現(xiàn)存的文檔己經(jīng)過(guò)時(shí),或系統(tǒng)的初始設(shè)計(jì)師已經(jīng)無(wú)法找到了。所以維護(hù)工作引入了不連貫的修改,這種改變引發(fā)了這個(gè)系統(tǒng)結(jié)構(gòu)的退化。任何時(shí)候的修改使得對(duì)程序的理解更加難了。近年來(lái),很多研究人員認(rèn)為輔助糾正性、完善性維護(hù)任務(wù)的2/7程序理解活動(dòng)的一個(gè)關(guān)鍵步驟是進(jìn)行特征定位。它將來(lái)自系統(tǒng)問(wèn)題域的特征映射到系統(tǒng)實(shí)現(xiàn)域的相應(yīng)代碼實(shí)體。而完成對(duì)當(dāng)前任務(wù)涉及特征的糾正或完善,往往只需要理解與這些特征所對(duì)應(yīng)的那部分代碼。因此特征定位是實(shí)現(xiàn)面向特征的程序理解的重要支撐技術(shù)。總體來(lái)講,需要通過(guò)特征定位恢復(fù)出的特征與代碼實(shí)體間的追蹤關(guān)系分為基本追蹤關(guān)系和導(dǎo)出追蹤關(guān)系兩大類?;咀粉欔P(guān)系是特征與代碼實(shí)體間的相關(guān)關(guān)系,特征與實(shí)現(xiàn)該特征的所有代碼實(shí)體間具有相關(guān)關(guān)系。LOCALHOST導(dǎo)出追蹤關(guān)系是從特征與代碼實(shí)體間的基本追蹤關(guān)系推導(dǎo)得出。常見的導(dǎo)出追蹤關(guān)系有特定關(guān)系和有關(guān)系。特征與代碼實(shí)體間具有特定關(guān)系表明該代碼實(shí)體參與實(shí)現(xiàn)該特征且不參與實(shí)現(xiàn)任何其它特征。特征與代碼實(shí)體間具有共有關(guān)系表明該實(shí)體參與實(shí)現(xiàn)該特征且同時(shí)參與實(shí)現(xiàn)其它特征。獲取一個(gè)特征的導(dǎo)出追蹤關(guān)系通常還需要其它特征的基本追蹤關(guān)系?;诔绦蜢o態(tài)結(jié)構(gòu)的特征定位1基于抽象系統(tǒng)依賴圖的方法基于抽象系統(tǒng)依賴圖定位特定系統(tǒng)特征的方法以人對(duì)一個(gè)特定的系統(tǒng)特征的認(rèn)識(shí)作為特征定位的出發(fā)點(diǎn)。在定位的過(guò)程中依賴輔助工具分析得到的程序抽象視圖以及輔助工具所提供的對(duì)瀏覽、查找、推理程序信息等活動(dòng)的支持。但具體而言,其在系統(tǒng)抽象、定位過(guò)程和工具支持三方3/7面又具有自己的特點(diǎn)。系統(tǒng)抽象。其方法在特征定位過(guò)程中利用了抽象系統(tǒng)依賴圖。ASDG建立在系統(tǒng)依賴圖的基礎(chǔ)之上,但忽略了更細(xì)粒度的語(yǔ)句信息。針對(duì)C語(yǔ)言,抽象系統(tǒng)依賴圖中的節(jié)點(diǎn)代表函數(shù)和全局變量,節(jié)點(diǎn)間的邊代表函數(shù)間的調(diào)用關(guān)系、函數(shù)與全局變量之間以及全局變量間的數(shù)據(jù)流依賴關(guān)系。特征定位過(guò)程。他們基于抽象系統(tǒng)依賴圖的方法給出了理解人員和輔助工具在特征定位過(guò)程中的明確分工和細(xì)致的步驟。理解人員的任務(wù)是確定初始節(jié)點(diǎn)選擇下一個(gè)要訪問(wèn)的節(jié)點(diǎn)訪問(wèn)該節(jié)點(diǎn)判斷該節(jié)點(diǎn)是否與所調(diào)查的特征相關(guān)檢查是否己經(jīng)得到了所有相關(guān)的節(jié)點(diǎn)。工具支持?;诔橄笙到y(tǒng)依賴圖的方法中,輔助工具的任務(wù)是構(gòu)造抽象系統(tǒng)依賴圖并可視化展示根據(jù)當(dāng)前訪問(wèn)的系統(tǒng)依賴圖中的節(jié)點(diǎn)和邊更新查找圖根據(jù)確定下來(lái)的與當(dāng)前特征相關(guān)的節(jié)點(diǎn)和邊擴(kuò)展查找圖。他們的工具中提出了一個(gè)查找圖的概念,它記錄了當(dāng)前查找過(guò)的節(jié)點(diǎn),因此除了提供抽象系統(tǒng)依賴圖的可視化以外,還支持程序理解過(guò)程中理解步驟的回溯、撤銷以及重做。2借鑒地圖信息可視化技術(shù)的方法該方法的本質(zhì)仍然是利用工具輔助人的查找和定位,只是它針對(duì)那些分散實(shí)現(xiàn)在程序全局內(nèi)的系統(tǒng)特征,尤其針對(duì)4/7大型系統(tǒng),以基于GREP的正規(guī)表達(dá)式匹配為起點(diǎn),首先在源代碼中強(qiáng)調(diào)顯示出那些查找到的與當(dāng)前特征相關(guān)的所有語(yǔ)句行。其次,借鑒了地圖信息的可視化技術(shù),處理這些大規(guī)??臻g分散但邏輯相關(guān)的語(yǔ)句行信息,為分散實(shí)現(xiàn)的系統(tǒng)特征的查找、定位、變更提供了以下輔助為那些與特定系統(tǒng)特征相關(guān)的代碼實(shí)體建立索引從而對(duì)其進(jìn)行控制支持在單一視圖內(nèi)展示分散實(shí)現(xiàn)的系統(tǒng)特征的所有語(yǔ)句行提供視圖的縮放以支持用戶在不同粒度的程序信息間切換對(duì)實(shí)現(xiàn)一個(gè)特定系統(tǒng)特征的代碼實(shí)體的不同修改狀態(tài)進(jìn)行標(biāo)記,從而更好地控制分散實(shí)現(xiàn)的代碼的變更,并保證代碼的一致性折疊當(dāng)前不需要的代碼信息,使得在一個(gè)視圖內(nèi)觀察到更多的有用信息。3關(guān)注圖方法關(guān)注圖的核心結(jié)構(gòu)包括類、方法和屬性,并刻畫它們之間的調(diào)用、讀取等關(guān)系。其方法中,關(guān)注圖是程序模型的壓縮子集,它并沒(méi)有包含程序模型中涉及一個(gè)關(guān)注點(diǎn)的所有節(jié)點(diǎn)和邊,那些能夠根據(jù)關(guān)注圖中已有信息準(zhǔn)確地從程序模型中恢復(fù)出來(lái)的信息將被省略,如一個(gè)完全實(shí)現(xiàn)關(guān)注點(diǎn)的類,它的屬性和方法肯定也是完全實(shí)現(xiàn)該關(guān)注點(diǎn)的,則關(guān)注圖中只包含這個(gè)類,它的屬性和方法是省略掉的。關(guān)注圖將代碼中分散實(shí)現(xiàn)的關(guān)注點(diǎn)的信息集中地以圖的形式表示出來(lái),從而輔助支持對(duì)其定位以及進(jìn)一步的變更5/7管理。構(gòu)造關(guān)注圖的過(guò)程首先基于關(guān)鍵字匹配查找代碼中與關(guān)注點(diǎn)相關(guān)的一個(gè)初始點(diǎn),進(jìn)而由人交互地對(duì)自動(dòng)提取的結(jié)構(gòu)化程序模型進(jìn)行分析,并以計(jì)算機(jī)輔助的方式構(gòu)造最終的關(guān)注圖,同時(shí)一獲取關(guān)注圖與源代碼之間的追蹤關(guān)系?;诔绦騽?dòng)態(tài)結(jié)構(gòu)的特征定位基于動(dòng)態(tài)剖面的特征定位方法依賴對(duì)系統(tǒng)的動(dòng)態(tài)執(zhí)行。它首先為所關(guān)注特征設(shè)計(jì)測(cè)試用例。然后通過(guò)執(zhí)行這些測(cè)試用例建立特征與代碼之間的關(guān)系,獲取對(duì)特征的定位。1軟件搜索方法軟件搜索方法關(guān)注獲取特征與代碼實(shí)體間的特定追蹤關(guān)系。該方法針對(duì)每個(gè)需要定位的系統(tǒng)特征設(shè)計(jì)兩組測(cè)試用例,一組測(cè)試用例的執(zhí)行將導(dǎo)致該特征被展示,另外一組測(cè)試用例的執(zhí)行不會(huì)涉及這個(gè)系統(tǒng)特征。用執(zhí)行第一組測(cè)試用例得到的動(dòng)態(tài)剖面中包含的代碼實(shí)體減去執(zhí)行第二組測(cè)試用例得到的代碼實(shí)體,即得到特定于該系統(tǒng)特征的代碼部分。基于動(dòng)態(tài)執(zhí)行切片的方法程序切片PROGRAMSLICE技術(shù)是一種分析和理解軟件程序的技術(shù)。軟件人員在代碼調(diào)試和軟件測(cè)試過(guò)程中,常常會(huì)不自覺(jué)的應(yīng)用這種技術(shù)。目前,程序切片已經(jīng)發(fā)展成為一6/7種比較成熟的技術(shù),并出現(xiàn)了許多切片準(zhǔn)則、切片算法和相應(yīng)的軟件工具。程序切片是一個(gè)可執(zhí)行程序,是按照一定的準(zhǔn)則從源程序中移去零條或多條語(yǔ)句來(lái)構(gòu)造的。隨著切片技術(shù)的發(fā)展,目前對(duì)于程序切片還有另外一種定義方法由影響程序中某個(gè)興趣點(diǎn)處變量值的所有語(yǔ)句和控制謂詞組成的一個(gè)程序子集,該子集并不一定是一個(gè)可執(zhí)行的程序段。從以上兩種定義出發(fā),實(shí)際上定義了兩種程序切片,即靜態(tài)切片和動(dòng)態(tài)切片。切片技術(shù)從程序中去除不會(huì)影響感興趣的變量語(yǔ)句,形成一個(gè)程序的子集,從而簡(jiǎn)化了程序,有利于故障的定位。3基于形式化概念分析的方法該方法不僅關(guān)注特征與代碼實(shí)體間的基本追蹤關(guān)系,其更為關(guān)注獲取系統(tǒng)特征與代碼之間的多種導(dǎo)出追蹤關(guān)系。因此,即使只對(duì)某一個(gè)特征進(jìn)行定位,此外,由于系統(tǒng)特征與測(cè)試用例之間的對(duì)應(yīng)關(guān)系并不是簡(jiǎn)單的一一對(duì)應(yīng),依賴測(cè)試用例獲取特征與代碼之間的追蹤關(guān)系還需要考慮特征與測(cè)試用例之間的二元關(guān)系。因此,首先對(duì)測(cè)試用例與代碼實(shí)體間的二元關(guān)系進(jìn)行形式化的概念分析,為其建立一個(gè)概念格結(jié)構(gòu)并將其可視化。然后,結(jié)合測(cè)試用例與特征間的二元關(guān)系,交互地分析理解第一步建立的概念格結(jié)構(gòu),從而獲取特征與代碼實(shí)體間的多種追蹤關(guān)系。由此可見,對(duì)于基于程序動(dòng)態(tài)剖面的特征定位方法,同樣需要具有對(duì)所要調(diào)查的具體7/7特征的先驗(yàn)認(rèn)識(shí),否則無(wú)法設(shè)計(jì)恰當(dāng)?shù)臏y(cè)試用例。即便是在具有現(xiàn)成的測(cè)試用例的情況下,依然需要理解人員更進(jìn)一步的工作。因?yàn)?為發(fā)現(xiàn)特征的錯(cuò)誤而設(shè)計(jì)的測(cè)試用例對(duì)于定位這個(gè)特征可能并不總是完全合適的。而測(cè)試用例的自動(dòng)
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026春招:藥明康德面試題及答案
- 賀立平課件教學(xué)課件
- 賀卡介紹課件
- 貨運(yùn)駕駛?cè)税踩嘤?xùn)記錄課件
- 貨運(yùn)安全常識(shí)培訓(xùn)總結(jié)課件
- 醫(yī)療保險(xiǎn)市場(chǎng)潛力與挑戰(zhàn)
- 醫(yī)療器械研發(fā)與知識(shí)產(chǎn)權(quán)保護(hù)
- 醫(yī)院康復(fù)科患者護(hù)理禮儀
- 醫(yī)療護(hù)理技術(shù)操作規(guī)范與考核標(biāo)準(zhǔn)
- 疼痛管理策略與實(shí)踐
- 電梯采購(gòu)與安裝授權(quán)委托書
- 企業(yè)背景調(diào)查報(bào)告模板
- 《炎癥性腸病》課件
- 經(jīng)導(dǎo)管主動(dòng)脈瓣置換術(shù)(TAVR)患者的麻醉管理
- 2023年興業(yè)銀行貴陽(yáng)分行招聘人員筆試上岸歷年典型考題與考點(diǎn)剖析附帶答案詳解
- DZ∕T 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- 加油站百日攻堅(jiān)行動(dòng)實(shí)施方案
- 馬工程版《中國(guó)經(jīng)濟(jì)史》各章思考題答題要點(diǎn)及詳解
- 運(yùn)輸合同糾紛答辯狀
- GB/T 36964-2018軟件工程軟件開發(fā)成本度量規(guī)范
- 1、汽車配線、電子連接器及保護(hù)裝置
評(píng)論
0/150
提交評(píng)論