在线观看国产区-在线观看国产欧美-在线观看国产免费高清不卡-在线观看国产久青草-久久国产精品久久久久久-久久国产精品久久久

美章網 資料文庫 程序靜態與動態結構特征定位技術范文

程序靜態與動態結構特征定位技術范文

本站小編為你精心準備了程序靜態與動態結構特征定位技術參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

程序靜態與動態結構特征定位技術

摘要:特征定位技術對于解決維護任務中提出的面向特征的程序理解以具有很強的針對性和應用價值,對提高軟件維護和程序理解的效率和準確性具有重要的意義。本文對基于程序靜態動態結構特征定位技術進行了分析和研究。關鍵詞:特征定位;靜態與動態;基于程序1特征定位技術概述對于確定的維護任務,糾正或完善系統的某個或某些功能,我們把這些系統待維護的功能稱為特征。完成對特征的糾正或完善,往往只需要理解與這些特征所對應的那部分代碼。因此特征定位是實現面向特征程序理解的重要支撐技術。理解一個特征是如何執行的是程序理解中主要的問題。在真正的理解程序運行之前,必須先定位特征代碼的執行位置。找出執行給定特征的源碼通常是不容易的,例如現存的文檔己經過時,或系統的初始設計師已經無法找到了。所以維護工作引入了不連貫的修改,這種改變引發了這個系統結構的退化。任何時候的修改使得對程序的理解更加難了。近年來,很多研究人員認為輔助糾正性、完善性維護任務的程序理解活動的一個關鍵步驟是進行特征定位。它將來自系統問題域的特征映射到系統實現域的相應代碼實體。而完成對當前任務涉及特征的糾正或完善,往往只需要理解與這些特征所對應的那部分代碼。因此特征定位是實現面向特征的程序理解的重要支撐技術。總體來講,需要通過特征定位恢復出的特征與代碼實體間的追蹤關系分為基本追蹤關系和導出追蹤關系兩大類。基本追蹤關系是特征與代碼實體間的相關關系,特征與實現該特征的所有代碼實體間具有相關關系。導出追蹤關系是從特征與代碼實體間的基本追蹤關系推導得出。常見的導出追蹤關系有特定關系和有關系。特征與代碼實體間具有特定關系表明該代碼實體參與實現該特征且不參與實現任何其它特征。特征與代碼實體間具有共有關系表明該實體參與實現該特征且同時參與實現其它特征。獲取一個特征的導出追蹤關系通常還需要其它特征的基本追蹤關系。2基于程序靜態結構的特征定位2.1基于抽象系統依賴圖的方法基于抽象系統依賴圖定位特定系統特征的方法以人對一個特定的系統特征的認識作為特征定位的出發點。在定位的過程中依賴輔助工具分析得到的程序抽象視圖以及輔助工具所提供的對瀏覽、查找、推理程序信息等活動的支持。但具體而言,其在系統抽象、定位過程和工具支持三方面又具有自己的特點。系統抽象。其方法在特征定位過程中利用了抽象系統依賴圖。ASDG建立在系統依賴圖的基礎之上,但忽略了更細粒度的語句信息。針對C語言,抽象系統依賴圖中的節點代表函數和全局變量,節點間的邊代表函數間的調用關系、函數與全局變量之間以及全局變量間的數據流依賴關系。特征定位過程。他們基于抽象系統依賴圖的方法給出了理解人員和輔助工具在特征定位過程中的明確分工和細致的步驟。理解人員的任務是:確定初始節點;選擇下一個要訪問的節點;訪問該節點;判斷該節點是否與所調查的特征相關;檢查是否己經得到了所有相關的節點。工具支持。基于抽象系統依賴圖的方法中,輔助工具的任務是:構造抽象系統依賴圖并可視化展示;根據當前訪問的系統依賴圖中的節點和邊更新查找圖;根據確定下來的與當前特征相關的節點和邊擴展查找圖。他們的工具中提出了一個查找圖的概念,它記錄了當前查找過的節點,因此除了提供抽象系統依賴圖的可視化以外,還支持程序理解過程中理解步驟的回溯、撤銷以及重做。2.2借鑒地圖信息可視化技術的方法該方法的本質仍然是利用工具輔助人的查找和定位,只是它針對那些分散實現在程序全局內的系統特征,尤其針對大型系統,以基于Grep的正規表達式匹配為起點,首先在源代碼中強調顯示出那些查找到的與當前特征相關的所有語句行。其次,借鑒了地圖信息的可視化技術,處理這些大規模空間分散但邏輯相關的語句行信息,為分散實現的系統特征的查找、定位、變更提供了以下輔助:為那些與特定系統特征相關的代碼實體建立索引從而對其進行控制;支持在單一視圖內展示分散實現的系統特征的所有語句行;提供視圖的縮放以支持用戶在不同粒度的程序信息間切換;對實現一個特定系統特征的代碼實體的不同修改狀態進行標記,從而更好地控制分散實現的代碼的變更,并保證代碼的一致性;折疊當前不需要的代碼信息,使得在一個視圖內觀察到更多的有用信息。2.3關注圖方法關注圖的核心結構包括類、方法和屬性,并刻畫它們之間的調用、讀取等關系。其方法中,關注圖是程序模型的壓縮子集,它并沒有包含程序模型中涉及一個關注點的所有節點和邊,那些能夠根據關注圖中已有信息準確地從程序模型中恢復出來的信息將被省略,如一個完全實現關注點的類,它的屬性和方法肯定也是完全實現該關注點的,則關注圖中只包含這個類,它的屬性和方法是省略掉的。關注圖將代碼中分散實現的關注點的信息集中地以圖的形式表示出來,從而輔助支持對其定位以及進一步的變更管理。構造關注圖的過程首先基于關鍵字匹配查找代碼中與關注點相關的一個初始點,進而由人交互地對自動提取的結構化程序模型進行分析,并以計算機輔助的方式構造最終的關注圖,同時一獲取關注圖與源代碼之間的追蹤關系。3基于程序動態結構的特征定位基于動態剖面的特征定位方法依賴對系統的動態執行。它首先為所關注特征設計測試用例。然后通過執行這些測試用例建立特征與代碼之間的關系,獲取對特征的定位。3.1軟件搜索方法軟件搜索方法關注獲取特征與代碼實體間的特定追蹤關系。該方法針對每個需要定位的系統特征設計兩組測試用例,一組測試用例的執行將導致該特征被展示,另外一組測試用例的執行不會涉及這個系統特征。用執行第一組測試用例得到的動態剖面中包含的代碼實體減去執行第二組測試用例得到的代碼實體,即得到特定于該系統特征的代碼部分。3.2基于動態執行切片的方法程序切片(ProgramSlice)技術是一種分析和理解軟件程序的技術。軟件人員在代碼調試和軟件測試過程中,常常會不自覺的應用這種技術。目前,程序切片已經發展成為一種比較成熟的技術,并出現了許多切片準則、切片算法和相應的軟件工具。程序切片是一個可執行程序,是按照一定的準則從源程序中移去零條或多條語句來構造的。隨著切片技術的發展,目前對于程序切片還有另外一種定義方法:由影響程序中某個興趣點處變量值的所有語句和控制謂詞組成的一個程序子集,該子集并不一定是一個可執行的程序段。從以上兩種定義出發,實際上定義了兩種程序切片,即靜態切片和動態切片。切片技術從程序中去除不會影響感興趣的變量語句,形成一個程序的子集,從而簡化了程序,有利于故障的定位。3.3基于形式化概念分析的方法該方法不僅關注特征與代碼實體間的基本追蹤關系,其更為關注獲取系統特征與代碼之間的多種導出追蹤關系。因此,即使只對某一個特征進行定位,此外,由于系統特征與測試用例之間的對應關系并不是簡單的一一對應,依賴測試用例獲取特征與代碼之間的追蹤關系還需要考慮特征與測試用例之間的二元關系。因此,首先對測試用例與代碼實體間的二元關系進行形式化的概念分析,為其建立一個概念格結構并將其可視化。然后,結合測試用例與特征間的二元關系,交互地分析理解第一步建立的概念格結構,從而獲取特征與代碼實體間的多種追蹤關系。由此可見,對于基于程序動態剖面的特征定位方法,同樣需要具有對所要調查的具體特征的先驗認識,否則無法設計恰當的測試用例。即便是在具有現成的測試用例的情況下,依然需要理解人員更進一步的工作。因為,為發現特征的錯誤而設計的測試用例對于定位這個特征可能并不總是完全合適的。而測試用例的自動生成技術通常更多地關注單元測試而不是針對特征的功能測試。可見,這類方法在某種程度上仍然存在對人的依賴,因此理解人員個人的專業水平會影響這類方法定位特征的效果。參考文獻[1]李必信,程序理解研究與進展,計算機科學,1999[2]韓永生,基于程序切片的軟件測試技術初探,無線電工程,2006[3]鄭人杰,實用軟件工程,清華大學出版社,1997

主站蜘蛛池模板: 中文字幕在线不卡 | 国产精品手机在线播放 | 亚洲精品一二三区-久久 | 在线成人免费视频 | 激情六月天婷婷 | 久久国产精品最新一区 | 在线观看欧美日韩 | 宅男的天堂| 欧美一级艳片视频免费观看 | 国产小视频免费观看 | 性色爽爱性色爽爱网站 | 最新国产美女一区二区三区 | 九九伦理 | 男人天堂app| 亚洲国产成人久久笫一页| 羞羞的网站| 日韩一区二区精品久久高清 | 亚洲国产在 | 亚洲国产欧美在线观看 | 波多野吉衣在线 | 欧美国产成人一区二区三区 | 在线观看网址入口2020国产 | 色免费视频| 自拍偷拍亚洲视频 | 国产一区二区三区精品久久呦 | 九色97| 色天天天天综合男人的天堂 | 丁香激情综合 | 四虎4hu永久在线观看 | 伊人精品视频 | 精品福利在线观看 | 九九电影网站 | 亚洲精品不卡视频 | 迅雷在线观看神马电影 | 国产亚洲欧美成人久久片 | 玖玖玖免费观看视频 | 五月花综合网 | 欧美大片一区二区 | 久久精品久久精品 | 国产免费一级在线观看 | 欧美日韩综合一区 |