胡成海 彭 蓉 王幫超
(武漢大學計算機學院軟件工程國家重點實驗室 湖北 武漢 430072)
基于信息檢索的需求跟蹤方法綜述
胡成海 彭 蓉 王幫超
(武漢大學計算機學院軟件工程國家重點實驗室 湖北 武漢 430072)
需求跟蹤作為軟件過程管理中的一個重要環節,在保障系統質量、應對需求變更方面發揮著重要作用。利用需求跟蹤,軟件工程師可以發現制品之間的依賴關系、評估需求覆蓋率和計算需求變更的影響。隨著軟件項目的日益復雜和軟件制品數量的增加,跟蹤關系的自動恢復和維護日益受到業界關注。近年來,人們對于基于信息檢索的需求跟蹤自動化技術做了大量研究。針對基于信息檢索的需求跟蹤技術進行綜述,從技術改進、支撐工具和度量指標三個方面進行了深入分析。在此基礎上,對其發展趨勢和有待深入的研究點進行了展望。
需求跟蹤 信息檢索 系統文獻綜述 研究趨勢
在系統開發的整個生命周期中,遺失或沒有實現的需求常常被遺忘、需求變更的影響常常被忽略,這些細微的疏漏很可能嚴重影響了整個軟件開發的成敗[1]。由于需求跟蹤研究一方面致力于幫助軟件工程師進行跟蹤分析,確定是否所有的低層元素(如設計、源碼等)都有與之對應的需求。另一方面,可以用于完整性分析和測試覆蓋率評估,以明確是否所有的需求都被實現并進行了相應的測試[2],故而成為需求工程中的一個重要研究方向,受到學術界和工業界的廣泛關注。
然而在許多實際系統的開發中,人們往往為了節約成本、加快開發進度,放棄建立需求跟蹤鏈接。這一方面是由于相關人員對于需求跟蹤重要性的認識不足,在人員緊張、資金不足等情形出現時,往往首先放棄與系統交付無直接關系的任務。其次,是由于現有的需求跟蹤方法缺乏強有力的工具支持,往往需要耗費大量的人力、物力實施,而收益卻難以在短時間內獲得且難以度量。再次,由于需求變更難以避免,相關人員容易由于跟蹤鏈接更新不及時而無法發揮作用。為此,如何改進需求跟蹤技術、提高需求跟蹤鏈接恢復的自動化程度、提供工具支持成為學術界和工業界共同追求的目標。
由于包括需求文檔、設計文檔、代碼、測試用例在內的各種軟件制品中存在大量文本信息,使用信息檢索(IR)技術幫助需求工程師自動或半自動的恢復需求跟蹤關系[3-4]是當前需求跟蹤研究的一個主要分支。其一般過程通常包括三個階段:1) 預處理階段,將待建立跟蹤關系的源制品和目標制品均看作文本制品,通過一定的文檔預處理方法去除噪聲信息,生成便于后續階段處理的文檔表示形式;2) 跟蹤鏈接恢復階段,利用各種文檔相似度計算方法計算二者間的相似度,按照相似度的大小進行排序,根據設定的閾值篩選得到候選跟蹤鏈接;3) 跟蹤鏈接精化階段,通過人工或半自動方法對候選跟蹤鏈接進行精化,并最終由分析人員對產生的跟蹤關系進行確認。
在需求跟蹤中使用IR技術的優勢在于,能夠通過文本分析自動地恢復跟蹤關系,對于解決傳統需求跟蹤活動所面臨的人工工作量大、維護困難、容易出錯等問題極有幫助。但是由于不同軟件制品間往往存在遵循的規范不同、使用的術語不一致等問題,直接應用IR技術產生跟蹤鏈接的效果并不十分理想。因此,近年來許多研究致力于通過改進IR技術(比如,引入同義詞典、相關性反饋、聚類等)以提高跟蹤鏈接生成和精化的質量。為了探究IR技術在需求跟蹤中的應用現狀與未來研究方向,我們對近十年有關基于IR的需求跟蹤方法進行了分析和綜述。本文的3個研究問題如下:
RQ1:目前,基于IR的需求跟蹤方法中使用了哪些IR模型?為了得到更好的跟蹤鏈接恢復效果,進行了哪些改進?
RQ2:現有哪些工具支持基于IR的需求跟蹤?它們的自動化程度如何?
RQ3:基于IR的需求跟蹤方法評估中常用的度量指標有哪些?它們的評估效力如何?
在基于IR的需求鏈接恢復中,往往將需求文檔視作查詢條件,通過IR技術自動建立起查詢與文檔之間的跟蹤關系。以下介紹3種基本的IR模型。
向量空間模型(VSM)[5]將文檔表示為文檔空間向量,通過計算向量之間的相似性來度量文檔之間的相似性。因此,在基于VSM的需求跟蹤方法中,往往將源文檔和目標文檔中的特定單元(例如需求文檔中的一條需求或代碼中的類代碼)表示為一個文檔空間向量。從源文檔中取出任意一個源文檔空間向量作為查詢向量,與目標文檔對應的所有目標文檔空間向量集合進行比較,選擇相似度最大的向量作為最接近查詢內容的(候選)跟蹤目標,恢復(候選)跟蹤關系。
隱性語義索引(LSI)模型通過分析文本之間隱含的 “語義相關性”來確定關聯度。該方法改進了向量空間模型,不僅能夠捕捉單個字詞的語義,還能捕捉句子、段落以及整個文獻的語義[6-7]。基于LSI的需求跟蹤方法在檢索中考慮了向量之間的“潛在”語義關系,而不僅僅關注原來字面上的字詞描述。查詢與目標文檔之間的相似度是由它們所采用的全部標引詞及其使用方式決定的,也即取決于它們中所包含的標引詞的意義在多大程度上是一致的。
概率模型(PM)使用文檔與查詢相關的概率來計算文檔與查詢的相似度[8]。在基于PM的需求跟蹤方法中,以查詢中包含的每個檢索單元(檢索詞)為線索,通過統計其在相關文檔、不相關文檔中出現和不出現的概率,計算出各個檢索詞的權重。最終根據每個文檔與查詢中匹配的檢索詞多少和權重計算出文檔的相關性,并據此進行排序。
綜上所述,雖然基于IR的需求跟蹤方法能夠通過信息檢索方法自動對文本進行分析,建立候選跟蹤鏈接,減輕了分析人員的工作量,但由于軟件制品,特別是需求制品中存在大量自然語言描述,準確的詞法、語法、語義及語用分析均面臨著巨大的挑戰,因此,生成的候選鏈接精度難以滿足需要。如何對其進行改進成為研究者關注的焦點。
同義詞典技術、相關性反饋、聚類等是應用較多的幾種策略。除此之外,各種依賴于術語表(如項目術語表、術語分類等)、語法分析、重構、圖剪枝的方法也經常被采用。表1按照這些改進策略使用的信息檢索模型(VSM、LSI、PM),策略應用的階段,適用的軟件制品(需求制品、設計制品、源碼制品、測試制品)和改進策略的基本特征進行了總結。

表1 IR模型改進策略匯總
(1) 利用制品文字信息的改進策略
更加充分地利用文檔中的文字信息(同義詞典、文檔標識、短語分析等)直接改進相似度計算模型是提高基于IR的需求跟蹤方法的一個主要著眼點。
同義詞典是常用的一種利用文字信息的改進方法,在三種模型中均有使用。同義詞典法通過在計算標引詞權重和向量相似度時考慮單詞或短語的同義詞或近義詞,能在一定程度上降低算法對于選詞的敏感性,從而提高了算法的魯棒性[9-13]。一個同義詞典是三元組〈ki,kj,αij〉的集合,其中ki和kj是兩個同義詞項,αij是它們之間的相似度。詞典中的詞項可以是單個單詞也可以是短語。經修正的相似度計算模型如下:
sim(d,q)=cos(d,q)=

只在需求文檔中出現的標引詞不會與只在設計文檔中出現的標引詞產生關聯,反之亦然。文獻[14-15]在改進VSM時為標引詞加上來源文檔標識,在向量抽取時只抽取同時具備跟蹤源文檔和目標文檔標識的標引詞,從而減少不相關標引詞的干擾,以更準確地計算有效標引詞的權重,提高算法效率。例如,當恢復需求與設計文檔之間的跟蹤鏈接時,只具有“需求文檔”或只具有“設計文檔”的標引此就會被剔除。
文獻[16]提出基于需求上下文的改進策略,通過在預處理階段引入分析人員將用例需求分為需求意圖和需求上下文兩部分。并將二者均視作查詢條件,利用VSM模型分別計算它們與目標文檔之間的相似度,生成意圖鏈接和上下文鏈接,并最終通過加權求和生成最終的候選跟蹤鏈接集合,從而提高方法的精確率。二者結合方式如下:
sim(cq,iq,d)c=λ×simli(cq,d)n+(1-λ)×
simlj(iq,d)n
其中cq、iq分別為需求上下文和需求意圖,文中研究發現λ為0.3時產生跟蹤鏈接的效果較好。
文獻[17-19]引入了短語分析技術改進PM模型,在計算文檔間存在跟蹤關系的概率時,表示文檔的最小單位不再是單個單詞,而是短語。相對于單個單詞,短語在捕捉制品的特征時更為準確,故可以得到更高精確率的跟蹤鏈接。文獻[17-18]分析了使用的項目術語表來提高生成跟蹤鏈接精確率的條件和能力。
有一些方法專門針對代碼進行處理,文獻[12,20]在需求到代碼的跟蹤關系構建中,將代碼中的標引詞(類名、注釋和一般標識符)分類,計算相似度時,為不同類別的標引詞分配不同的權重,以此提高LSI產生跟蹤鏈接的精度。文獻[18]從代碼評論中抽取關鍵短語,使得VSM模型在代碼類命名不規范或文檔中沒有明確提到類名時仍能恢復正確的跟蹤鏈接。
(2) 利用制品結構信息的改進策略
以上方法均著重于對文檔中文字信息的分析使用,文檔的結構也可以用來改進信息檢索模型。為了進一步提高LSI產生跟蹤鏈接的精度,文獻[12]在計算相似度時不僅引入了同義詞典,還利用了文檔的層次關系重新構造查詢。該方法將所有文檔分成兩類:高層級的概念文檔和低層級的實現文檔。低層級的文檔通常與源代碼相關聯,類名、方法名等多在其中出現。低層級文檔又可以看作是高層級文檔的進一步細化版本,例如,算法的實現、概念的解釋和實現的細節等。所以低層級文檔可以作為源代碼與高層級文檔跟蹤鏈接恢復中的橋梁,利用低層級文檔與源代碼之間正確與錯誤的跟蹤鏈接重新構造查詢向量。修正后的查詢向量如下:
文獻[23]在改進PN模型時也使用了文檔的層次信息。它所基于的一個假設是,如果兩個軟件制品已經建立了跟蹤關系,那么它們的下層制品建立跟蹤關系的可能性就大大提高了??梢岳眠@種層次信息通過增強正確鏈接的概率的方式修正概率模型的計算公式,過濾掉了錯誤鏈接,提高了跟蹤鏈接的正確率。
聚類技術則是利用代碼中類之間的繼承關系或文檔中的層次關系將代碼或文檔聚類,同一聚類中的代碼或文檔通常具有相同的跟蹤關系??梢岳镁垲悓蜻x跟蹤鏈接進行初步篩選,以此來提高跟蹤鏈接精化階段的效率[12,18,20-23]。
(3) 其他改進策略
近年來有諸多改進方法不再局限于對文字和結構信息的分析,而是利用人工的判斷信息或與其他方法(正則表達式匹配、運行時跟蹤等)產生的跟蹤鏈接互相比對、結合,提高其跟蹤鏈接恢復的精確率、召回率,這些改進策略也被證明是可行的。
相關性反饋是較早運用的一個技術。它的思想是在跟蹤鏈接產生后,由分析人員判斷每個跟蹤鏈接正確與否,再根據這些正確和誤報信息對查詢向量中的標引詞權重進行修正,產生新的查詢向量,從而提高方法的精度[10,24-25]。新查詢向量的計算方法如下:
新的查詢向量是由原有查詢向量加上用戶反饋的正確的跟蹤關系集合中的文檔的平均向量,并減去用戶反饋的錯誤的跟蹤關系集合中的文檔的平均向量而得出的。增加正確跟蹤關系的向量提高了查全率,而減去錯誤跟蹤關系的向量則提高了查準率。
此外,還有文獻結合其他技術改進IR模型。文獻[26]針對需求文檔的文本歧義問題,提出用IR結合模型驅動工程(MDE)來實現更準確的跟蹤恢復。文獻[27]基于網絡搜索引擎對原始查詢進行修改使其表意更精準。文獻[28-29]則使用重構方法解決了標引詞丟失、錯置和重復問題。文獻[18]在構建代碼到需求的跟蹤關系時,使用正則表達式在需求文檔中匹配類名產生跟蹤鏈接,并與VSM產生的跟蹤鏈接組合,提高候選跟蹤鏈接的精確率。文獻[30]在構建需求到代碼的跟蹤鏈接時,除使用IR技術產生跟蹤鏈接之外,通過基于執行跟蹤的關注點定位技術建立需求到代碼的跟蹤鏈接,并將兩者加權合成更高精度的跟蹤鏈接。文獻[23,30]使用圖剪枝方法精化跟蹤鏈接。文獻[31]則使用了一種投票機制,將多種方法產生的跟蹤鏈接綜合,提高跟蹤鏈接精化階段正確鏈接的識別率。
基于IR的需求跟蹤具有自動化程度高的特點,因此已有一些相對較成熟的工具出現,其中最常用的有RETRO、FacTrace、TraceLab和TraCter等。我們將自動化工具的功能按照IR方法的執行過程分為文本預處理、跟蹤鏈接恢復(自動或手動)、跟蹤鏈接精化和跟蹤鏈接質量評估四個階段。其中候選鏈接精化中的功能包括跟蹤鏈接聚類、投票機制、反饋機制、跟蹤鏈接可視化和跟蹤鏈接確認。在表2中我們對工具所支持的功能進行了標注。

表2 基于IR的需求跟蹤中使用的自動化工具
Hayes等開發了RETRO,用于處理非結構化文本制品之間的跟蹤恢復[32]。RETRO使用IR技術和文本挖掘技術構建候選鏈接。目前,該工具已被用于需求文檔、設計文檔和缺陷報告之間的跟蹤鏈接恢復,能夠支持分析人員和維護人員驗證與確認自動生成的跟蹤鏈接。該工具包含多種IR方法和文本挖掘方法,并且有一個前端可供分析師在跟蹤過程中使用。
Ali等開發了FacTrace,可以幫助軟件工程師完成多種任務,如需求獲取、需求分析、軟件制品的跟蹤及跟蹤鏈接的驗證等。FacTrace可以實現多種軟件制品之間的跟蹤,如需求,源碼和CVS/SVN變更日志等。專家也可以使用FacTrace手動建立多種粒度的跟蹤鏈接。FacTrace支持候選鏈接投票機制。五位專家為每一個候選鏈接投票,若一個鏈接被三位或三位以上的專家接受,則該鏈接就被FacTrace標記為有效鏈接。專家可以在任何時間修改投票意見[33]。
Keenan等開發了TraceLab[34]。該工具提供了一個功能完備的實驗環境,研究者可以在該環境中利用已有的組件或自定義組件組織實驗,可以使用公開的數據集從事研究,并可以使用該工具評估實驗的結果。研究者可以自定義組件,然后集成到TraceLab中,以實現軟件制品的導入,自然語言制品的預處理,候選跟蹤鏈接的生成和候選跟蹤鏈接質量評估評估等功能。
Mahmoud等開發的TraCter[35]是一個候選鏈接聚類工具,主要設計意圖是通過設計一個友好的用戶界面提高分析師的瀏覽效率。并在執行跟蹤鏈接的精化時,減少分析師的認知負荷,提高分析師的分析效果和效率。文獻[36]擴展了該工具,加入了LSI和ESA(Explicit Semantic Analysis,一種基于維基百科的語義相關性度量方法)組件,支持候選鏈接的自動生成,并提供了一個跟蹤鏈接質量評估組件,可通過種度量指標評價跟蹤鏈接質量。
信息檢索領域的兩個最基本的度量值是精確率和召回率,用來評價結果的質量。其中精確率是指檢索出的相關文檔數與檢索出的文檔總數的比率,衡量的是檢索系統的查準率;召回率是指檢索出的相關文檔數和文檔庫中所有的相關文檔數的比率,衡量的是檢索系統的查全率。在基于IR的需求跟蹤技術中,這兩個指標也是使用最多的,用于度量生成的跟蹤鏈接的精確率和召回率。由于在追求高精確率和高召回率的過程中往往存在沖突,因此,綜合考慮精確率和召回率的指標F-Measure往往也會同時被評估。F-Measure是Precision和Recall加權調和平均??紤]到精確率和召回率之間的權重取值,有F1-Measure和F2-Measure等不同的選擇。
索得率(Browsability)[36]表征的是特定呈現方式能夠減輕分析人員分析候選跟蹤鏈接工作量的程度。對于一個使用順序表來呈現結果的跟蹤工具或方法來說,不僅要能檢索到正確的鏈接,還要能夠以恰當的方式呈現鏈接,以確保它們能被有效和高效的理解。如圖1所示,兩個跟蹤工具,A和B,產生了兩個結果,都有100%的召回率和50%的精確率。A工具生成的列表中誤報鏈接排在真鏈接之前,B工具生成的列表中則相反。對于精確率和召回率而言,兩個跟蹤工具的效果相同。然而對于分析人員來說,B工具的效果明顯優于A工具。此時,就可以通過若干獨立索得率的指標來度量這種差異性。

圖1 索得率舉例
假設h和d分別屬于兩個軟件制品集合H和D,L={(d,h)|sim(d,h)}是候選鏈接集。則可以通過以下的度量指標來度量索得率:
MAP(Mean Average Precision):用于度量推薦鏈接列表平均精度的均值。
其中,|H|表示作為“查詢”的制品集合的長度,mj表示的所有相關文檔的個數。截取推薦鏈接列表的前項子列表,表示該子列表的精確度。MAP值越高說明方法或工具的效果越好。
DiffAR:用于度量一個順序表中真鏈接和誤報鏈接平均相似度間的差異。DiffAR值越高的列表真鏈接和誤報鏈接之間的區分度越大。

其中,Lt、Lf分別表示列表中的真鏈接、誤報鏈接集合,sim(d,h)和sim(d′,h′)分別表示任一真假鏈接制品間的相似度,|Lt|、|Lf|分別表示真鏈接、誤報鏈接集合的長度。
Lag:描述的是候選鏈接列表中排在真鏈接之前的誤報鏈接的平均數。

其中,表示候選鏈接列表中排在真鏈接前的誤報鏈接的數量,|L|表示候選鏈接列表的長度。
MAP、DiffAR和Lag在評估推薦鏈接列表時能夠反映鏈接推薦順序所帶來的差異,對于評估候選鏈接確認時所需的人工篩選工作量有著重要意義,值得廣泛采納。
此外,Sundaram等[10]在研究中使用了選擇率(Selectivity)作為評估指標。選擇率度量的是自動化方法相對于人工能夠節省工作量的程度。假設軟件制品集合H和D中分別有m和n個制品,則最多會產生m×n個跟蹤鏈接。選擇率定義為:

Sundaram等[36-37]將這些指標分為基本度量(Primary Measures)和輔助度量(Secondary measures)(如表3所示)。其中,輔助度量指標可以度量候選跟蹤鏈接列表的內部結構。

表3 度量指標分類
目前,度量一個工具或方法的效果時最常用的度量指標是精確率和召回率,即度量其查準率和查全率。然而在分析人員分析候選鏈接時,候選鏈接列表內部的排列方式對分析人員的效率也會產生影響。好的工具或方法能夠通過合理呈現候選鏈接,以提高分析人員的效率。此時則需要使用上文提到的輔助度量指標。
從我們的研究中可以看出輔助度量指標較少被使用,這也從一個側面說明目前對基于IR的需求跟蹤技術的改進多集中理論層面,即關注于精確率、召回率的提高,而對于其實際使用效能的關注較少,即對于其結果多大程度能夠減少分析人員工作量的研究較少,說明本項技術離實用還存在一定距離。另一方面索得率的提高也對跟蹤鏈接的生成提出了更高的要求,即不僅要區分一個候選鏈接是否正確,還要能夠準確地估算出其正確的可能性,因此,這也將成為該類研究的一個重要的研究方向。
本文從結構效度和結論效度兩個方面分析本文的效度。
(1) 結構效度
本研究中結構效度面臨的問題涉及到能否找到與本研究相關的所有文獻。本文采用了以下方法規避這種威脅:① 通過構造測試集對使用的搜索字符串的篩選能力進行驗證,并且檢索文獻時我們使用了5個主要的文獻檢索數據庫(EI、Elsevier ScienceDirect、IEEE、Springer和ACM)。② 通過滾雪球的方式發現可能遺漏的文獻,進一步提升了文獻的覆蓋率。
(2) 結論效度
本研究中的結論效度主要關注其他研究者基于選擇的文獻能否得出相同的結論。本文采取的方法則是由兩名研究者同步進行數據抽取工作,之后對兩人抽取的數據和形成的結論進行比對,對于不一致的數據由兩位研究者同第三位研究者共同修正。在研究中我們用量化數據呈現了許多分析結果,其他研究者可以通過本研究中公開的文獻驗證本文結論。
在需求跟蹤中應用IR技術可以自動或半自動地恢復跟蹤鏈接,減少跟蹤鏈接建立和維護人員的工作量,因而得到學術界和工業界的廣泛關注。針對鏈接生成時精確度不高、鏈接精化時人工工作量大等問題,近年來各種基于IR的需求跟蹤方法采取了多種策略進行改進,具體如圖2所示。

圖2 改進的基于IR的需求跟蹤過程
在預處理階段,在構造文檔表示時,除了采用的分詞、取詞根、詞性標注等常用手段外,還常常使用文檔標識、關鍵標引詞和上下文環境分析等手段,使從文本文檔中抽取的特征更具有代表性,提高檢索的效能,降低算法復雜度。
在鏈接恢復階段,除了根據制品特征選擇最佳IR模型外,當前研究還注重利用同義詞典、項目詞匯表和標引詞分類等技術,提高鏈接恢復的精確率與召回率。
在鏈接精化階段,常采用的增強策略是相關性反饋和聚類等。因為這些技術是在候選跟蹤鏈接列表的基礎上所做的改進,所以針對不同的IR模型、不同的軟件制品都可以使用。
還有另一類改進方案著重利用非IR技術生成跟蹤鏈接,然后與使用IR技術產生的跟蹤鏈接相比對,通過投票或加權的方式產生最終跟蹤鏈接,以提高其精確率。
在上述階段中,為了獲得更好的效果,常常采用輕量級的人工輔助。如在預處理階段,利用分析人員標示出標引詞的來源文檔[14]。在鏈接恢復階段,利用分析人員區分需求文檔的需求意圖和需求上下文[16]。在鏈接精化階段,利用分析人員分辨出真假跟蹤鏈接,以提高模型的分辨能力[24]。
通常,文獻中提出的改進方法會在不同階段使用上述的多種增強策略,以取得更好的鏈接恢復效果。
雖然近年來基于IR的需求跟蹤技術研究取得了長足的進步,但仍然在以下方面存在不足:
(1) 往往忽略了跟蹤關系的性質。根據性質不同,可以將跟蹤關系分為精化關系、目標-方法關系或者需求-測試關系等。跟蹤關系性質不同的軟件制品間術語的關系也存在較大差異。缺乏針對跟蹤關系性質的設計,將影響基于IR的需求跟蹤技術的實施效果。
(2) 往往忽略了不同類型的制品使用的語言可能不同。例如,高層需求中使用市場行銷術語,而設計文檔中使用技術術語。在這種情況下,僅僅依靠語義相似度并不能產生令人滿意的結果。
(3) 對已有的跟蹤鏈接利用不足。一般而言,基于IR的需求跟蹤技術往往將每一個新的制品當作一個全新的“查詢”,利用IR技術生成新的候選鏈接,從零開始構建跟蹤關系。如果能夠對已有跟蹤鏈接進行有效利用,一定能夠提升方法的效能。
綜上所述,基于IR的需求跟蹤方法可以從以下方面開展研究:
(1) 新的IR技術的應用。目前需求跟蹤恢復所使用的主流IR模型仍然是VSM、LSI和PM等經典模型,其鏈接恢復的效果往往受到模型本身檢索能力的限制。近年來,IR技術取得了長足進展,產生了諸如專門針對短文本檢索的LDA模型[38],能處理更多更復雜的特征向量的基于排序學習的IR模型[39]等。如果能夠針對需求跟蹤鏈接恢復涉及的軟件制品的特征,選擇最佳檢索模型,有望取得更好的效果。例如,雖然需求文檔往往描述相對完整,但圖形類制品、代碼注釋類制品等往往具備典型的短文本特征,如何利用適合于短文本分析等的各類新型IR檢索模型提高跟蹤鏈接恢復的效能值得研究。
(2) IR技術與其他技術的結合。需求跟蹤鏈接往往涉及到不同軟件開發階段產生的軟件制品。不同類別的軟件制品由于涉眾知識背景不同、制品描述重點不同,往往會出現使用不同層次、不同粒度的術語描述同一對象,造成生成的跟蹤鏈接效果不佳的問題。本體技術、機器學習技術、自然語言處理技術都能為基于IR的需求跟蹤方法應對這類挑戰提供有力支撐。
(3) 注重發揮規范的作用。由于各類軟件制品在產生過程中勢必要遵循某種規范,如國際標準、國家標準、行業標準、公司規章等。這些規范從文檔結構到命名規則都有相應的限定。在恢復跟蹤鏈接時合理利用這些規則配合IR模型,將能起到事半功倍的作用。
(4) 注重建立完善的評價體系并發揮評估指標的指導性作用。基于IR的需求跟蹤技術優劣很大程度是依據各種度量指標進行定性、定量評估而得出的。目前,對基于IR的需求跟蹤技術的改進多關注于精確率、召回率的提高,對于其對于分析人員使用的便利程度等方面的度量指標還很少。而健全的評價體系不僅能夠評估當前方法的優劣,而且還能為方法的改進指出方向。因此,進一步從實用角度出發,從借鑒信息檢索等相關領域評價指標和發展適應需求跟蹤領域自身需要的評價指標兩個方面同時開展研究,將大大促進基于IR的需求跟蹤技術的發展。
(5) 提高工具的靈活性、集成度和自動化程度。基于IR的需求跟蹤技術的自動化程度較高,具有廣闊的應用前景,但只有強大的支撐工具支持,才能真正受到工業界的青睞。由于需求跟蹤涉及到的制品種類繁多、樣式各異、遵循的規范各有不同,目前的需求跟蹤工具難以滿足不同企業的實際需要。因此,提供具有開放架構的需求跟蹤工具,允許不同的第三方開發人員將其需求跟蹤技術集成于其中,并提供統一的質量評估,才能滿足工業界的實際需要。因此,研發一個綜合能夠支持第三方擴展、支持多種軟件制品分析、支持多種分析模型和多種改進策略的高效自動化需求跟蹤恢復平臺,將會具有重要的實用價值。
[1] Jarke M.Requirements Tracing[J].Communications of the Acm,1998,41(12):32-36.
[2] Hayes J H,Dekhtyar A,Sundaram S K.Improving after-the-fact tracing and mapping:Supporting software quality predictions[J].Software,IEEE,2005,22(6):30-37.
[3] Antoniol G,Caprile B,Potrich A,et al.Design-code traceability for object-oriented systems[J].Annals of Software Engineering,2000,9(1):35-58.
[4] Antoniol G,Canfora G,Casazza G,et al.Recovering Traceability Links between Code and Documentation[J].IEEE Transactions on Software Engineering,2002,28(10):970-983.
[5] Kitchenham B,Charters S.Guidelines for performing Systematic Literature Reviews in software engineering[J].Engineering,2007,45(4):1051-1052.
[6] Burstein R,Yarnitsky D,Gooraryeh I,et al.Modern Information Retrieval[M].Addison Wesley,2011:26-28.
[7] Deerwester S.Indexing by latent semantic analysis[J].Journal of the Association for Information Science and Technology,1990,41(6):391-407.
[8] Landauer T K,Foltz P W,Laham D.An Introduction to Latent Semantic Analysis[J].Discourse Processes,1998,25(2):259-284.
[9] Di F,Zhang M.An Improving Approach for Recovering Requirements-to-Design Traceability Links[C]//Computational Intelligence and Software Engineering,2009.International Conference on.IEEE,2009:1-6.
[10] Sundaram S K,Hayes J H,Dekhtyar A.Baselines in requirements tracing[J].Acm Sigsoft Software Engineering Notes,2005,30(4):1-6.
[11] Kong W K,Hayes J H.Proximity-based traceability:an empirical validation using ranked retrieval and set-based measures[C]//Empirical Requirements Engineering (EmpiRE),2011 First International Workshop on.IEEE,2011:45-52.
[12] Wang X,Lai G,Liu C.Recovering Relationships between Documentation and Source Code based on the Characteristics of Software Engineering[J].Electronic Notes in Theoretical Computer Science,2009,243:121-137.
[13] Leuser J,Ott D.Tackling semi-automatic trace recovery for large specifications[M]//Requirements engineering: foundation for software quality.Springer Berlin Heidelberg,2010:203-217.
[14] Udagawa Y.An Augmented Vector Space Information Retrieval for Recovering Requirements Traceability[C]//Data Mining Workshops (ICDMW),2011 IEEE 11th International Conference on,Vancouver,BC,Canada,December 11,2011.2011:771-778.
[15] Udagawa Y.Enhancing information retrieval to automatically trace requirements and design artifacts[C]//Proceedings of the 13th International Conference on Information Integration and Web-based Applications and Services.ACM,2011:292-295.
[16] Zhou J,Lu Y,Lundqvist K.A Context-based Information Retrieval Technique for Recovering Use-Case-to-Source-Code Trace Links in Embedded Software Systems[C]//Software Engineering and Advanced Applications (SEAA),2013 39th EUROMICRO Conference on.IEEE,2013:252-259.
[17] Zou X,Settimi R,Cleland-Huang J.Evaluating the Use of Project Glossaries in Automated Trace Retrieval[C]//Software Engineering Research and Practice,2008:157-163.
[18] Chen X,Grundy J.Improving automated documentation to code traceability by combining retrieval techniques[C]//Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering.IEEE Computer Society,2011:223-232.
[19] Zou X,Settimi R,Cleland-Huang J.Phrasing in dynamic requirements traceretrieva[C]//Computer Software and Applications Conference,2006.COMPSAC’06.30th Annual International.IEEE,2006,1:265-272.
[20] Shao J,Wu W,Geng P.An Improved Approach to the Recovery of Traceability Links between Requirement Documents and Source Codes Based on Latent Semantic Indexing[M]//Computational Science and Its Applications-ICCSA 2013.Springer Berlin Heidelberg,2013:547-557.
[21] Niu N,Mahmoud A.Enhancing candidate link generation for requirements tracing:the cluster hypothesis revisited[C]//Requirements Engineering Conference (RE),2012 20th IEEE International.IEEE,2012:81-90.
[22] Rempel P,Mader P,Kuschke T.Towards feature-aware retrieval of refinement traces[C]//Traceability in Emerging Forms of Software Engineering (TEFSE),2013 International Workshop on.IEEE,2013:100-104.
[23] Cleland-Huang J,Settimi R,Duan C,et al.Utilizing supporting evidence to improve dynamic requirements traceability[C]//Requirements Engineering,2005.Proceedings.13th IEEE International Conference on.IEEE,2005:135-144.
[24] Kong L,Li J,Li Y,et al.A Requirement Traceability Refinement Method Based on Relevance Feedback[C]//Software Engineering and Knowledge Engineering,2009:37-42.
[25] Yadla S,Hayes J H,Dekhtyar A.Tracing requirements to defect reports: an application of information retrieval techniques[J].Innovations in Systems and Software Engineering,2005,1(2):116-124.
[26] Sannier N,Baudry B.Toward multilevel textual requirements traceability using model-driven engineering and information retrieval[C]//Model-Driven Requirements Engineering Workshop (MoDRE),2012 IEEE.IEEE,2012:29-38.
[27] Gibiec M,Czauderna A,Cleland-Huang J.Towards mining replacement queries for hard-to-retrieve traces[C]//Proceedings of the IEEE/ACM international conference on Automated software engineering.ACM,2010:245-254.
[28] Mahmoud A,Niu N.Supporting requirements to code traceability through refactoring[J].Requirements Engineering,2014,19(3):309-329.
[29] Mahmoud A,Niu N.Supporting requirements traceability through refactoring[C]//Requirements Engineering Conference (RE),2013 21st IEEE International.IEEE,2013:32-41.
[30] Eaddy M,Aho A V,Antoniol G,et al.Cerberus:Tracing requirements to source code using information retrieval,dynamic analysis,and program analysis[C]//Program Comprehension,2008.ICPC 2008.The 16th IEEE International Conference on.IEEE,2008:53-62.
[31] Ali N,Guéhéneuc Y G,Antoniol G.Requirements traceability for object oriented systems by partitioning source code[C]//Reverse Engineering (WCRE),2011 18th Working Conference on.IEEE,2011:45-54.
[32] Hayes J H,Dekhtyar A,Sundaram S K,et al.REquirementsTRacing On target (RETRO):Improving software maintenance through traceability recovery[J].Innovations in Systems & Software Engineering,2007,3(3):193-202.
[33] Ali N,Guéhéneuc Y G,Antoniol G.Trust-based requirements traceability[C]//Program Comprehension (ICPC),2011 IEEE 19th International Conference on.IEEE,2011:111-120.
[34] Keenan E,Czauderna A,Leach G,et al.TraceLab: An experimental workbench for equipping researchers to innovate,synthesize,and comparatively evaluate traceability solutions[C]//International Conference on Software Engineering.IEEE,2012:1375-1378.
[35] Mahmoud A,Niu N.TraCter:A tool for candidate traceability link clustering[C]//Proceedings of the 2011 IEEE 19th International Requirements Engineering Conference.IEEE Computer Society,2011:335-336.
[36] Mahmoud A,Niu N,Xu S.A semantic relatedness approach for traceability link recovery[C]//Program Comprehension (ICPC),2012 IEEE 20th International Conference on.IEEE,2012:183-192.
[37] Sundaram S K,Hayes J H,Dekhtyar A,et al.Assessing traceability of software engineering artifacts[J].Requirements Engineering,2010,15(3):313-335.
[38] Lu Y,Mei Q,Zhai C X.Investigating task performance of probabilistic topic models:an empirical study of PLSA and LDA[J].Information Retrieval,2011,14(2):178-203.
[39] Li H.Learning to Rank for Information Retrieval and Natural Language Processing[J].Synthesis Lectures on Human Language Technologies,2011,4(1):113.
ASURVEYOFREQUIREMENTTRACKINGMETHODBASEDONINFORMATIONRETRIEVAL
Hu Chenghai Peng Rong Wang Bangchao
(StateKeyLaboratoryofSoftwareEngineering,SchoolofComputer,WuhanUniversity,Wuhan430072,Hubei,China)
Requirement tracking, as an important part of software process management, plays an important role in ensuring system quality and responding to requirement change. Using requirement tracking, software engineers can find dependencies among products, assessing demand coverage, and calculating the impact of changes in requirements. With the increasing complexity of software projects and the increase in the number of software products, the automatic recovery and maintenance of tracking relations has attracted more and more attention. In recent years, people have done a lot of research on requirement tracking automation technology based on information retrieval. We summarize the requirement tracking technology based on information retrieval, and carry out in-depth analysis from three aspects: technical improvement, support tools and metrics. On this basis, we look forward to its development trend and further research.
Requirement tracking Information retrieval Systematic literature review Research trend
TP311
A
10.3969/j.issn.1000-386x.2017.10.004
2016-12-02。國家自然科學基金項目(61170026)。胡成海,碩士生,主研領域:需求工程,軟件工程。彭蓉,教授。王幫超,博士生。