999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于行為規則的程序特征定位方法

2015-07-21 00:01:21宋艷王煒
科技與創新 2015年12期

宋艷++王煒

摘 要:程序特征定位是成功實施動態演化意圖的前提條件,其核心是識別代碼集合與特征之間的映射關系。將程序運行時有規律的消息傳遞模式抽象為規則,通過規則獲取和注釋識別了程序特征與代碼集合之間的映射關系,提出了規則空間用于刻畫程序特征間存在的大小和層次等粒度屬性,并基于此實現了對復雜程序特征的層次化理解,完成了特征定位。通過對Eclipse3.0的45個測試用例(含4822個對象)進行分析,在置信度和支持度設置為75%和30%的情況下,生成了645條規則和規則空間,實現了特征定位。其平均準確率為34.33%,這證明該方法是可行的。

關鍵詞:軟件動態演化;程序特征;行為規則;特征定位

中圖分類號:TP311.5 文獻標識碼:A DOI:10.15913/j.cnki.kjycx.2015.12.001

特征定位(Feature Location)是指構建程序特征與軟件代碼之間映射關系的過程,它將來自系統問題域的特征映射到了系統實現域的代碼實體(Source Code Entities)。IEEE 829認為,程序的特征是“一個軟件項目的顯著特點”,例如功能、可移植性或性能特性。文獻2中指出,在長生命周期軟件系統中,50%~75%的系統成本和相關費用用于軟件維護,其中1/2以上的工作量用于特征定位。

各國研究人員針對特征定位開展了廣泛而深入的研究,提出了靜態、動態和基于文本的特征定位方法。其中,由于動態方法具有比較高的查準率,所以,其被廣泛應用于特征定位領域。1995年,Wilde提出了最早的動態特征定位方法——軟件偵測技術。該方法關注獲取特征與代碼實體之間的特定追蹤關系。對每個需要定位的特征設計兩組測試用例,一組測試用例的執行展示該特征,而另外一組測試用例的執行不會涉及這個系統的特征。兩組測試用例所對應的執行跡之差便是特征所對應的代碼。程序切片技術可以應用于動態特征定位,而程序切片是指影響程序中某個興趣點變量取值的所有語句和控制謂詞組成的一個程序子集。Wong、張迎周、徐寶文等學者基于程序切片技術提出了各自的程序理解方法。Eisenberg基于特征跡(Dynamic Feature Traces)方法進行特征定位研究。該方法賦予了執行跡中的成對調用關系一個權值,利用這個權值確定了該執行跡屬于某個程序特征的程度。此方法在3個Java系統上進行了測試,結果表明,該方法的效率比軟件偵測效率高。Safyallah和Sartipi提出了一種將數據挖掘技術運用到執行跡抽取的方法。Bohnet等人提出了一種將執行信息可視化的技術,依靠該技術可以完成觀察特征的實現。劉奕明結合領域建模方法提出了一種基于本體的動態軟件特征建模方法,并給出了其元模型和基于推理的模型一致性驗證方法。開發者可以對動態軟件系統的業務邏輯共性、運行時業務邏輯的可變性和這些可變性之間的約束關系建模,從而為動態軟件系統提供高層次、抽象的軟件演化業務邏輯視圖。Eisenbarth等人基于概念格(Concept Lattice)進行了特征定位研究。該方法對場景、測試用例與代碼實體間的二元關系進行了形式化的概念分析,為其建立了一個概念格結構,并將其可視化。

雖然各國學者從不同角度提出了動態特征定位方法,但是,當前的研究成果大多都著眼于建立用例與代碼間的映射關系。然而,任何一個用例都是由一個或多個軟件功能組成的,因此,傳統的動態特征定位方法無法實現軟件功能與代碼之間的映射關系。另外,在進行特征定位時,一個測試用例往往對應著大量的執行跡,而現有的方法無法量化表示上述執行跡間的因果關系,所以,后續分析無從下手。

針對上述2個缺陷,本文基于行為規則提出了動態特征定位方法。

1 方法綜述

如圖1所示,本文采用的方法可以分為3個部分:①產生測試用例,并收集程序執行跡;②生成行為規則集;③構造行為規則空間,實現特征定位。

圖1 基于行為規則的軟件特征理解方法流程

1.1 產生測試用例并收集程序執行跡

動態特征定位的基礎是執行跡。執行跡的獲取有以下4個步驟:①編寫測試用例,測試用例應覆蓋軟件的所有功能點或執行路徑;②在源代碼中,設置檢查點(Check Point),用來觀察程序運行時的狀態信息,并編譯帶有檢查點的代碼,從而形成可執行文件;③執行測試用例,觀測并收集與測試用例相關的數據;④建立執行跡與測試用例之間的映射關系。

實現特征定位首先要生成測試用例。

定義1:有限非空集合U={u1,u2,…,un},n∈N為一個測試用例集合。二元組ui=(IDi,BDi)是一個測試用例,其中,IDi定義為該測試用例的標示符,有限非空集合BDi包含了對該測試用例的描述。

通過對含有檢查點的可執行文件執行測試用例,可以獲取對應的執行跡。執行跡不僅是刻畫程序運行時代碼實體間消息傳遞關系的載體,同時,它還反映了程序功能單元的實現過程。

定義2:有限非空集合T={t1,t2,…,tn},n∈N是程序的執行跡集合。其中,ti是與測試用例ui相對應的執行跡。

定義3:執行跡可以描述為一個三元組,即ti=(Oi,

當前,有多種工具可以完成對執行跡的獲取,例如Flat3 等。表1給出使用Flat31獲取的一個執行跡片段示例。

表1 執行跡片段示例

0:0:46:26 mouseEntered -- org.gjt.sp.jedit.textarea.Gutter$MouseHandler

0:0:46:26 mouseExited -- org.gjt.sp.jedit.textarea.Gutter$MouseHandler

主站蜘蛛池模板: 激情综合网激情综合| 日本欧美一二三区色视频| 亚洲成人动漫在线观看| 成人精品免费视频| 国产精品亚欧美一区二区| 欧美色视频网站| 欧美成人看片一区二区三区 | 91麻豆久久久| 国产欧美精品午夜在线播放| 喷潮白浆直流在线播放| 全部免费特黄特色大片视频| 国产va在线| 亚洲swag精品自拍一区| 中文无码日韩精品| 成人av专区精品无码国产| 丁香六月激情综合| 成人午夜免费观看| 久久这里只精品国产99热8| 91视频青青草| 欧美曰批视频免费播放免费| 中文国产成人精品久久一| 黄色网址免费在线| 国产亚洲男人的天堂在线观看| 996免费视频国产在线播放| 欧美日韩中文国产va另类| 久久人人爽人人爽人人片aV东京热 | 四虎永久在线视频| 日韩第九页| 美美女高清毛片视频免费观看| 中文字幕丝袜一区二区| 在线观看免费人成视频色快速| 一区二区日韩国产精久久| 亚洲视频二| 一级不卡毛片| 这里只有精品免费视频| 中文字幕久久波多野结衣| 亚洲男人的天堂在线| 日韩黄色精品| 国产高清国内精品福利| 国产一区二区免费播放| 国产91av在线| 日韩久草视频| 少妇精品网站| 国产一级无码不卡视频| 一个色综合久久| 成人毛片免费观看| 亚洲欧洲免费视频| AV老司机AV天堂| 国产00高中生在线播放| 亚洲天堂精品视频| 一本大道无码高清| 97久久精品人人| 毛片在线看网站| 国产精品一老牛影视频| 久久天天躁狠狠躁夜夜躁| 日韩在线第三页| 成人免费视频一区二区三区 | 91无码人妻精品一区二区蜜桃| 欧美无遮挡国产欧美另类| 日韩精品中文字幕一区三区| 色AV色 综合网站| 国产一区二区三区精品久久呦| 国产精品美女网站| 午夜天堂视频| 国产系列在线| 亚洲欧洲综合| 乱人伦中文视频在线观看免费| 亚洲欧洲国产成人综合不卡| 国产成熟女人性满足视频| 欧美色图久久| 国内精自线i品一区202| 日韩精品无码一级毛片免费| 亚洲v日韩v欧美在线观看| 99国产精品免费观看视频| 国产办公室秘书无码精品| 欧美成人怡春院在线激情| 一级毛片不卡片免费观看| 国产99视频免费精品是看6| 九色视频一区| 91在线国内在线播放老师| 伊人激情久久综合中文字幕| 国产高清免费午夜在线视频|