Dissimilarity NWA Algorithm
程式執行時,所拜訪過的程式碼片段,組合而成一個序列,稱之為執行序列(Execution Sequence)。不同執行序列間因可能執行過共同的程式碼片段,而存在著關聯性。執行序列常於測試案例選擇的研究中被探討,類似生物資訊領域中計算序列相似度時,利用一些常見的距離(Distance)或相似度(Similarity)計算公式,探討序列間彼此的差異以提供分類或是選擇的依據。以往執行序列的距離及相似度計算公式,在物件導向的程式執行序列中,並無法分辨出多型(polymorphism)這樣的特性。因此本研究利用生物資訊領域中計算序列相似度的演算法Needleman – Wunsch Algorithm ( NWA ),納入執行序列發生多型行為及程式執行順序等特性為考量,提出計算出執行序列間差異度(Dissimilarity)的方法,以解決目前探討執行序列相似度所存在之問題。
Contents |
Download
原始碼託管於oolab's gitlab,使用git指令下載 (請確認擁有該repository權限)
git@140.115.53.53:oolab/dissimilarity.git
Installation
Dissimilarity專案為Visual Studio 2012,下載原始碼後可以直接透過點擊sln開啟專案。
Program structure
Dissimilarity屬於小型專案,程式碼大約300多行。主體架構分為兩個檔案
- Program.cs - 程式主體,負責讀檔與輸出結果
- NeedlemanWunsch.cs - NWA演算法核心
Tutorial
Dissimilarity主要讀取專案目錄底下 Execution Sequence/ 資料夾,預先放置好trace case。
預設trace case範例以放置於Dissimilarity目錄底下。
本專案不須經由任何設定。啟動Visual Studio開啟本專案直接執行後,即可得到dissimilarity結果。
最後Dissimilarity會在console輸出結果,並一同將結果存於Execution Sequence result.txt。
Improvements and Problems
None