胡成海 彭 蓉 王幫超
(武漢大學(xué)計(jì)算機(jī)學(xué)院軟件工程國(guó)家重點(diǎn)實(shí)驗(yàn)室 湖北 武漢 430072)
基于信息檢索的需求跟蹤方法綜述
胡成海 彭 蓉 王幫超
(武漢大學(xué)計(jì)算機(jī)學(xué)院軟件工程國(guó)家重點(diǎn)實(shí)驗(yàn)室 湖北 武漢 430072)
需求跟蹤作為軟件過程管理中的一個(gè)重要環(huán)節(jié),在保障系統(tǒng)質(zhì)量、應(yīng)對(duì)需求變更方面發(fā)揮著重要作用。利用需求跟蹤,軟件工程師可以發(fā)現(xiàn)制品之間的依賴關(guān)系、評(píng)估需求覆蓋率和計(jì)算需求變更的影響。隨著軟件項(xiàng)目的日益復(fù)雜和軟件制品數(shù)量的增加,跟蹤關(guān)系的自動(dòng)恢復(fù)和維護(hù)日益受到業(yè)界關(guān)注。近年來(lái),人們對(duì)于基于信息檢索的需求跟蹤自動(dòng)化技術(shù)做了大量研究。針對(duì)基于信息檢索的需求跟蹤技術(shù)進(jìn)行綜述,從技術(shù)改進(jìn)、支撐工具和度量指標(biāo)三個(gè)方面進(jìn)行了深入分析。在此基礎(chǔ)上,對(duì)其發(fā)展趨勢(shì)和有待深入的研究點(diǎn)進(jìn)行了展望。
需求跟蹤 信息檢索 系統(tǒng)文獻(xiàn)綜述 研究趨勢(shì)
在系統(tǒng)開發(fā)的整個(gè)生命周期中,遺失或沒有實(shí)現(xiàn)的需求常常被遺忘、需求變更的影響常常被忽略,這些細(xì)微的疏漏很可能嚴(yán)重影響了整個(gè)軟件開發(fā)的成敗[1]。由于需求跟蹤研究一方面致力于幫助軟件工程師進(jìn)行跟蹤分析,確定是否所有的低層元素(如設(shè)計(jì)、源碼等)都有與之對(duì)應(yīng)的需求。另一方面,可以用于完整性分析和測(cè)試覆蓋率評(píng)估,以明確是否所有的需求都被實(shí)現(xiàn)并進(jìn)行了相應(yīng)的測(cè)試[2],故而成為需求工程中的一個(gè)重要研究方向,受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。
然而在許多實(shí)際系統(tǒng)的開發(fā)中,人們往往為了節(jié)約成本、加快開發(fā)進(jìn)度,放棄建立需求跟蹤鏈接。這一方面是由于相關(guān)人員對(duì)于需求跟蹤重要性的認(rèn)識(shí)不足,在人員緊張、資金不足等情形出現(xiàn)時(shí),往往首先放棄與系統(tǒng)交付無(wú)直接關(guān)系的任務(wù)。其次,是由于現(xiàn)有的需求跟蹤方法缺乏強(qiáng)有力的工具支持,往往需要耗費(fèi)大量的人力、物力實(shí)施,而收益卻難以在短時(shí)間內(nèi)獲得且難以度量。再次,由于需求變更難以避免,相關(guān)人員容易由于跟蹤鏈接更新不及時(shí)而無(wú)法發(fā)揮作用。為此,如何改進(jìn)需求跟蹤技術(shù)、提高需求跟蹤鏈接恢復(fù)的自動(dòng)化程度、提供工具支持成為學(xué)術(shù)界和工業(yè)界共同追求的目標(biāo)。
由于包括需求文檔、設(shè)計(jì)文檔、代碼、測(cè)試用例在內(nèi)的各種軟件制品中存在大量文本信息,使用信息檢索(IR)技術(shù)幫助需求工程師自動(dòng)或半自動(dòng)的恢復(fù)需求跟蹤關(guān)系[3-4]是當(dāng)前需求跟蹤研究的一個(gè)主要分支。其一般過程通常包括三個(gè)階段:1) 預(yù)處理階段,將待建立跟蹤關(guān)系的源制品和目標(biāo)制品均看作文本制品,通過一定的文檔預(yù)處理方法去除噪聲信息,生成便于后續(xù)階段處理的文檔表示形式;2) 跟蹤鏈接恢復(fù)階段,利用各種文檔相似度計(jì)算方法計(jì)算二者間的相似度,按照相似度的大小進(jìn)行排序,根據(jù)設(shè)定的閾值篩選得到候選跟蹤鏈接;3) 跟蹤鏈接精化階段,通過人工或半自動(dòng)方法對(duì)候選跟蹤鏈接進(jìn)行精化,并最終由分析人員對(duì)產(chǎn)生的跟蹤關(guān)系進(jìn)行確認(rèn)。
在需求跟蹤中使用IR技術(shù)的優(yōu)勢(shì)在于,能夠通過文本分析自動(dòng)地恢復(fù)跟蹤關(guān)系,對(duì)于解決傳統(tǒng)需求跟蹤活動(dòng)所面臨的人工工作量大、維護(hù)困難、容易出錯(cuò)等問題極有幫助。但是由于不同軟件制品間往往存在遵循的規(guī)范不同、使用的術(shù)語(yǔ)不一致等問題,直接應(yīng)用IR技術(shù)產(chǎn)生跟蹤鏈接的效果并不十分理想。因此,近年來(lái)許多研究致力于通過改進(jìn)IR技術(shù)(比如,引入同義詞典、相關(guān)性反饋、聚類等)以提高跟蹤鏈接生成和精化的質(zhì)量。為了探究IR技術(shù)在需求跟蹤中的應(yīng)用現(xiàn)狀與未來(lái)研究方向,我們對(duì)近十年有關(guān)基于IR的需求跟蹤方法進(jìn)行了分析和綜述。本文的3個(gè)研究問題如下:
RQ1:目前,基于IR的需求跟蹤方法中使用了哪些IR模型?為了得到更好的跟蹤鏈接恢復(fù)效果,進(jìn)行了哪些改進(jìn)?
RQ2:現(xiàn)有哪些工具支持基于IR的需求跟蹤?它們的自動(dòng)化程度如何?
RQ3:基于IR的需求跟蹤方法評(píng)估中常用的度量指標(biāo)有哪些?它們的評(píng)估效力如何?
在基于IR的需求鏈接恢復(fù)中,往往將需求文檔視作查詢條件,通過IR技術(shù)自動(dòng)建立起查詢與文檔之間的跟蹤關(guān)系。以下介紹3種基本的IR模型。
向量空間模型(VSM)[5]將文檔表示為文檔空間向量,通過計(jì)算向量之間的相似性來(lái)度量文檔之間的相似性。因此,在基于VSM的需求跟蹤方法中,往往將源文檔和目標(biāo)文檔中的特定單元(例如需求文檔中的一條需求或代碼中的類代碼)表示為一個(gè)文檔空間向量。從源文檔中取出任意一個(gè)源文檔空間向量作為查詢向量,與目標(biāo)文檔對(duì)應(yīng)的所有目標(biāo)文檔空間向量集合進(jìn)行比較,選擇相似度最大的向量作為最接近查詢內(nèi)容的(候選)跟蹤目標(biāo),恢復(fù)(候選)跟蹤關(guān)系。
隱性語(yǔ)義索引(LSI)模型通過分析文本之間隱含的 “語(yǔ)義相關(guān)性”來(lái)確定關(guān)聯(lián)度。該方法改進(jìn)了向量空間模型,不僅能夠捕捉單個(gè)字詞的語(yǔ)義,還能捕捉句子、段落以及整個(gè)文獻(xiàn)的語(yǔ)義[6-7]?;贚SI的需求跟蹤方法在檢索中考慮了向量之間的“潛在”語(yǔ)義關(guān)系,而不僅僅關(guān)注原來(lái)字面上的字詞描述。查詢與目標(biāo)文檔之間的相似度是由它們所采用的全部標(biāo)引詞及其使用方式?jīng)Q定的,也即取決于它們中所包含的標(biāo)引詞的意義在多大程度上是一致的。
概率模型(PM)使用文檔與查詢相關(guān)的概率來(lái)計(jì)算文檔與查詢的相似度[8]。在基于PM的需求跟蹤方法中,以查詢中包含的每個(gè)檢索單元(檢索詞)為線索,通過統(tǒng)計(jì)其在相關(guān)文檔、不相關(guān)文檔中出現(xiàn)和不出現(xiàn)的概率,計(jì)算出各個(gè)檢索詞的權(quán)重。最終根據(jù)每個(gè)文檔與查詢中匹配的檢索詞多少和權(quán)重計(jì)算出文檔的相關(guān)性,并據(jù)此進(jìn)行排序。
綜上所述,雖然基于IR的需求跟蹤方法能夠通過信息檢索方法自動(dòng)對(duì)文本進(jìn)行分析,建立候選跟蹤鏈接,減輕了分析人員的工作量,但由于軟件制品,特別是需求制品中存在大量自然語(yǔ)言描述,準(zhǔn)確的詞法、語(yǔ)法、語(yǔ)義及語(yǔ)用分析均面臨著巨大的挑戰(zhàn),因此,生成的候選鏈接精度難以滿足需要。如何對(duì)其進(jìn)行改進(jìn)成為研究者關(guān)注的焦點(diǎn)。
同義詞典技術(shù)、相關(guān)性反饋、聚類等是應(yīng)用較多的幾種策略。除此之外,各種依賴于術(shù)語(yǔ)表(如項(xiàng)目術(shù)語(yǔ)表、術(shù)語(yǔ)分類等)、語(yǔ)法分析、重構(gòu)、圖剪枝的方法也經(jīng)常被采用。表1按照這些改進(jìn)策略使用的信息檢索模型(VSM、LSI、PM),策略應(yīng)用的階段,適用的軟件制品(需求制品、設(shè)計(jì)制品、源碼制品、測(cè)試制品)和改進(jìn)策略的基本特征進(jìn)行了總結(jié)。
表1 IR模型改進(jìn)策略匯總
(1) 利用制品文字信息的改進(jìn)策略
更加充分地利用文檔中的文字信息(同義詞典、文檔標(biāo)識(shí)、短語(yǔ)分析等)直接改進(jìn)相似度計(jì)算模型是提高基于IR的需求跟蹤方法的一個(gè)主要著眼點(diǎn)。
同義詞典是常用的一種利用文字信息的改進(jìn)方法,在三種模型中均有使用。同義詞典法通過在計(jì)算標(biāo)引詞權(quán)重和向量相似度時(shí)考慮單詞或短語(yǔ)的同義詞或近義詞,能在一定程度上降低算法對(duì)于選詞的敏感性,從而提高了算法的魯棒性[9-13]。一個(gè)同義詞典是三元組〈ki,kj,αij〉的集合,其中ki和kj是兩個(gè)同義詞項(xiàng),αij是它們之間的相似度。詞典中的詞項(xiàng)可以是單個(gè)單詞也可以是短語(yǔ)。經(jīng)修正的相似度計(jì)算模型如下:
sim(d,q)=cos(d,q)=
只在需求文檔中出現(xiàn)的標(biāo)引詞不會(huì)與只在設(shè)計(jì)文檔中出現(xiàn)的標(biāo)引詞產(chǎn)生關(guān)聯(lián),反之亦然。文獻(xiàn)[14-15]在改進(jìn)VSM時(shí)為標(biāo)引詞加上來(lái)源文檔標(biāo)識(shí),在向量抽取時(shí)只抽取同時(shí)具備跟蹤源文檔和目標(biāo)文檔標(biāo)識(shí)的標(biāo)引詞,從而減少不相關(guān)標(biāo)引詞的干擾,以更準(zhǔn)確地計(jì)算有效標(biāo)引詞的權(quán)重,提高算法效率。例如,當(dāng)恢復(fù)需求與設(shè)計(jì)文檔之間的跟蹤鏈接時(shí),只具有“需求文檔”或只具有“設(shè)計(jì)文檔”的標(biāo)引此就會(huì)被剔除。
文獻(xiàn)[16]提出基于需求上下文的改進(jìn)策略,通過在預(yù)處理階段引入分析人員將用例需求分為需求意圖和需求上下文兩部分。并將二者均視作查詢條件,利用VSM模型分別計(jì)算它們與目標(biāo)文檔之間的相似度,生成意圖鏈接和上下文鏈接,并最終通過加權(quán)求和生成最終的候選跟蹤鏈接集合,從而提高方法的精確率。二者結(jié)合方式如下:
sim(cq,iq,d)c=λ×simli(cq,d)n+(1-λ)×
simlj(iq,d)n
其中cq、iq分別為需求上下文和需求意圖,文中研究發(fā)現(xiàn)λ為0.3時(shí)產(chǎn)生跟蹤鏈接的效果較好。
文獻(xiàn)[17-19]引入了短語(yǔ)分析技術(shù)改進(jìn)PM模型,在計(jì)算文檔間存在跟蹤關(guān)系的概率時(shí),表示文檔的最小單位不再是單個(gè)單詞,而是短語(yǔ)。相對(duì)于單個(gè)單詞,短語(yǔ)在捕捉制品的特征時(shí)更為準(zhǔn)確,故可以得到更高精確率的跟蹤鏈接。文獻(xiàn)[17-18]分析了使用的項(xiàng)目術(shù)語(yǔ)表來(lái)提高生成跟蹤鏈接精確率的條件和能力。
有一些方法專門針對(duì)代碼進(jìn)行處理,文獻(xiàn)[12,20]在需求到代碼的跟蹤關(guān)系構(gòu)建中,將代碼中的標(biāo)引詞(類名、注釋和一般標(biāo)識(shí)符)分類,計(jì)算相似度時(shí),為不同類別的標(biāo)引詞分配不同的權(quán)重,以此提高LSI產(chǎn)生跟蹤鏈接的精度。文獻(xiàn)[18]從代碼評(píng)論中抽取關(guān)鍵短語(yǔ),使得VSM模型在代碼類命名不規(guī)范或文檔中沒有明確提到類名時(shí)仍能恢復(fù)正確的跟蹤鏈接。
(2) 利用制品結(jié)構(gòu)信息的改進(jìn)策略
以上方法均著重于對(duì)文檔中文字信息的分析使用,文檔的結(jié)構(gòu)也可以用來(lái)改進(jìn)信息檢索模型。為了進(jìn)一步提高LSI產(chǎn)生跟蹤鏈接的精度,文獻(xiàn)[12]在計(jì)算相似度時(shí)不僅引入了同義詞典,還利用了文檔的層次關(guān)系重新構(gòu)造查詢。該方法將所有文檔分成兩類:高層級(jí)的概念文檔和低層級(jí)的實(shí)現(xiàn)文檔。低層級(jí)的文檔通常與源代碼相關(guān)聯(lián),類名、方法名等多在其中出現(xiàn)。低層級(jí)文檔又可以看作是高層級(jí)文檔的進(jìn)一步細(xì)化版本,例如,算法的實(shí)現(xiàn)、概念的解釋和實(shí)現(xiàn)的細(xì)節(jié)等。所以低層級(jí)文檔可以作為源代碼與高層級(jí)文檔跟蹤鏈接恢復(fù)中的橋梁,利用低層級(jí)文檔與源代碼之間正確與錯(cuò)誤的跟蹤鏈接重新構(gòu)造查詢向量。修正后的查詢向量如下:
文獻(xiàn)[23]在改進(jìn)PN模型時(shí)也使用了文檔的層次信息。它所基于的一個(gè)假設(shè)是,如果兩個(gè)軟件制品已經(jīng)建立了跟蹤關(guān)系,那么它們的下層制品建立跟蹤關(guān)系的可能性就大大提高了??梢岳眠@種層次信息通過增強(qiáng)正確鏈接的概率的方式修正概率模型的計(jì)算公式,過濾掉了錯(cuò)誤鏈接,提高了跟蹤鏈接的正確率。
聚類技術(shù)則是利用代碼中類之間的繼承關(guān)系或文檔中的層次關(guān)系將代碼或文檔聚類,同一聚類中的代碼或文檔通常具有相同的跟蹤關(guān)系。可以利用聚類對(duì)候選跟蹤鏈接進(jìn)行初步篩選,以此來(lái)提高跟蹤鏈接精化階段的效率[12,18,20-23]。
(3) 其他改進(jìn)策略
近年來(lái)有諸多改進(jìn)方法不再局限于對(duì)文字和結(jié)構(gòu)信息的分析,而是利用人工的判斷信息或與其他方法(正則表達(dá)式匹配、運(yùn)行時(shí)跟蹤等)產(chǎn)生的跟蹤鏈接互相比對(duì)、結(jié)合,提高其跟蹤鏈接恢復(fù)的精確率、召回率,這些改進(jìn)策略也被證明是可行的。
相關(guān)性反饋是較早運(yùn)用的一個(gè)技術(shù)。它的思想是在跟蹤鏈接產(chǎn)生后,由分析人員判斷每個(gè)跟蹤鏈接正確與否,再根據(jù)這些正確和誤報(bào)信息對(duì)查詢向量中的標(biāo)引詞權(quán)重進(jìn)行修正,產(chǎn)生新的查詢向量,從而提高方法的精度[10,24-25]。新查詢向量的計(jì)算方法如下:
新的查詢向量是由原有查詢向量加上用戶反饋的正確的跟蹤關(guān)系集合中的文檔的平均向量,并減去用戶反饋的錯(cuò)誤的跟蹤關(guān)系集合中的文檔的平均向量而得出的。增加正確跟蹤關(guān)系的向量提高了查全率,而減去錯(cuò)誤跟蹤關(guān)系的向量則提高了查準(zhǔn)率。
此外,還有文獻(xiàn)結(jié)合其他技術(shù)改進(jìn)IR模型。文獻(xiàn)[26]針對(duì)需求文檔的文本歧義問題,提出用IR結(jié)合模型驅(qū)動(dòng)工程(MDE)來(lái)實(shí)現(xiàn)更準(zhǔn)確的跟蹤恢復(fù)。文獻(xiàn)[27]基于網(wǎng)絡(luò)搜索引擎對(duì)原始查詢進(jìn)行修改使其表意更精準(zhǔn)。文獻(xiàn)[28-29]則使用重構(gòu)方法解決了標(biāo)引詞丟失、錯(cuò)置和重復(fù)問題。文獻(xiàn)[18]在構(gòu)建代碼到需求的跟蹤關(guān)系時(shí),使用正則表達(dá)式在需求文檔中匹配類名產(chǎn)生跟蹤鏈接,并與VSM產(chǎn)生的跟蹤鏈接組合,提高候選跟蹤鏈接的精確率。文獻(xiàn)[30]在構(gòu)建需求到代碼的跟蹤鏈接時(shí),除使用IR技術(shù)產(chǎn)生跟蹤鏈接之外,通過基于執(zhí)行跟蹤的關(guān)注點(diǎn)定位技術(shù)建立需求到代碼的跟蹤鏈接,并將兩者加權(quán)合成更高精度的跟蹤鏈接。文獻(xiàn)[23,30]使用圖剪枝方法精化跟蹤鏈接。文獻(xiàn)[31]則使用了一種投票機(jī)制,將多種方法產(chǎn)生的跟蹤鏈接綜合,提高跟蹤鏈接精化階段正確鏈接的識(shí)別率。
基于IR的需求跟蹤具有自動(dòng)化程度高的特點(diǎn),因此已有一些相對(duì)較成熟的工具出現(xiàn),其中最常用的有RETRO、FacTrace、TraceLab和TraCter等。我們將自動(dòng)化工具的功能按照IR方法的執(zhí)行過程分為文本預(yù)處理、跟蹤鏈接恢復(fù)(自動(dòng)或手動(dòng))、跟蹤鏈接精化和跟蹤鏈接質(zhì)量評(píng)估四個(gè)階段。其中候選鏈接精化中的功能包括跟蹤鏈接聚類、投票機(jī)制、反饋機(jī)制、跟蹤鏈接可視化和跟蹤鏈接確認(rèn)。在表2中我們對(duì)工具所支持的功能進(jìn)行了標(biāo)注。
表2 基于IR的需求跟蹤中使用的自動(dòng)化工具
Hayes等開發(fā)了RETRO,用于處理非結(jié)構(gòu)化文本制品之間的跟蹤恢復(fù)[32]。RETRO使用IR技術(shù)和文本挖掘技術(shù)構(gòu)建候選鏈接。目前,該工具已被用于需求文檔、設(shè)計(jì)文檔和缺陷報(bào)告之間的跟蹤鏈接恢復(fù),能夠支持分析人員和維護(hù)人員驗(yàn)證與確認(rèn)自動(dòng)生成的跟蹤鏈接。該工具包含多種IR方法和文本挖掘方法,并且有一個(gè)前端可供分析師在跟蹤過程中使用。
Ali等開發(fā)了FacTrace,可以幫助軟件工程師完成多種任務(wù),如需求獲取、需求分析、軟件制品的跟蹤及跟蹤鏈接的驗(yàn)證等。FacTrace可以實(shí)現(xiàn)多種軟件制品之間的跟蹤,如需求,源碼和CVS/SVN變更日志等。專家也可以使用FacTrace手動(dòng)建立多種粒度的跟蹤鏈接。FacTrace支持候選鏈接投票機(jī)制。五位專家為每一個(gè)候選鏈接投票,若一個(gè)鏈接被三位或三位以上的專家接受,則該鏈接就被FacTrace標(biāo)記為有效鏈接。專家可以在任何時(shí)間修改投票意見[33]。
Keenan等開發(fā)了TraceLab[34]。該工具提供了一個(gè)功能完備的實(shí)驗(yàn)環(huán)境,研究者可以在該環(huán)境中利用已有的組件或自定義組件組織實(shí)驗(yàn),可以使用公開的數(shù)據(jù)集從事研究,并可以使用該工具評(píng)估實(shí)驗(yàn)的結(jié)果。研究者可以自定義組件,然后集成到TraceLab中,以實(shí)現(xiàn)軟件制品的導(dǎo)入,自然語(yǔ)言制品的預(yù)處理,候選跟蹤鏈接的生成和候選跟蹤鏈接質(zhì)量評(píng)估評(píng)估等功能。
Mahmoud等開發(fā)的TraCter[35]是一個(gè)候選鏈接聚類工具,主要設(shè)計(jì)意圖是通過設(shè)計(jì)一個(gè)友好的用戶界面提高分析師的瀏覽效率。并在執(zhí)行跟蹤鏈接的精化時(shí),減少分析師的認(rèn)知負(fù)荷,提高分析師的分析效果和效率。文獻(xiàn)[36]擴(kuò)展了該工具,加入了LSI和ESA(Explicit Semantic Analysis,一種基于維基百科的語(yǔ)義相關(guān)性度量方法)組件,支持候選鏈接的自動(dòng)生成,并提供了一個(gè)跟蹤鏈接質(zhì)量評(píng)估組件,可通過種度量指標(biāo)評(píng)價(jià)跟蹤鏈接質(zhì)量。
信息檢索領(lǐng)域的兩個(gè)最基本的度量值是精確率和召回率,用來(lái)評(píng)價(jià)結(jié)果的質(zhì)量。其中精確率是指檢索出的相關(guān)文檔數(shù)與檢索出的文檔總數(shù)的比率,衡量的是檢索系統(tǒng)的查準(zhǔn)率;召回率是指檢索出的相關(guān)文檔數(shù)和文檔庫(kù)中所有的相關(guān)文檔數(shù)的比率,衡量的是檢索系統(tǒng)的查全率。在基于IR的需求跟蹤技術(shù)中,這兩個(gè)指標(biāo)也是使用最多的,用于度量生成的跟蹤鏈接的精確率和召回率。由于在追求高精確率和高召回率的過程中往往存在沖突,因此,綜合考慮精確率和召回率的指標(biāo)F-Measure往往也會(huì)同時(shí)被評(píng)估。F-Measure是Precision和Recall加權(quán)調(diào)和平均??紤]到精確率和召回率之間的權(quán)重取值,有F1-Measure和F2-Measure等不同的選擇。
索得率(Browsability)[36]表征的是特定呈現(xiàn)方式能夠減輕分析人員分析候選跟蹤鏈接工作量的程度。對(duì)于一個(gè)使用順序表來(lái)呈現(xiàn)結(jié)果的跟蹤工具或方法來(lái)說(shuō),不僅要能檢索到正確的鏈接,還要能夠以恰當(dāng)?shù)姆绞匠尸F(xiàn)鏈接,以確保它們能被有效和高效的理解。如圖1所示,兩個(gè)跟蹤工具,A和B,產(chǎn)生了兩個(gè)結(jié)果,都有100%的召回率和50%的精確率。A工具生成的列表中誤報(bào)鏈接排在真鏈接之前,B工具生成的列表中則相反。對(duì)于精確率和召回率而言,兩個(gè)跟蹤工具的效果相同。然而對(duì)于分析人員來(lái)說(shuō),B工具的效果明顯優(yōu)于A工具。此時(shí),就可以通過若干獨(dú)立索得率的指標(biāo)來(lái)度量這種差異性。
圖1 索得率舉例
假設(shè)h和d分別屬于兩個(gè)軟件制品集合H和D,L={(d,h)|sim(d,h)}是候選鏈接集。則可以通過以下的度量指標(biāo)來(lái)度量索得率:
MAP(Mean Average Precision):用于度量推薦鏈接列表平均精度的均值。
其中,|H|表示作為“查詢”的制品集合的長(zhǎng)度,mj表示的所有相關(guān)文檔的個(gè)數(shù)。截取推薦鏈接列表的前項(xiàng)子列表,表示該子列表的精確度。MAP值越高說(shuō)明方法或工具的效果越好。
DiffAR:用于度量一個(gè)順序表中真鏈接和誤報(bào)鏈接平均相似度間的差異。DiffAR值越高的列表真鏈接和誤報(bào)鏈接之間的區(qū)分度越大。
其中,Lt、Lf分別表示列表中的真鏈接、誤報(bào)鏈接集合,sim(d,h)和sim(d′,h′)分別表示任一真假鏈接制品間的相似度,|Lt|、|Lf|分別表示真鏈接、誤報(bào)鏈接集合的長(zhǎng)度。
Lag:描述的是候選鏈接列表中排在真鏈接之前的誤報(bào)鏈接的平均數(shù)。
其中,表示候選鏈接列表中排在真鏈接前的誤報(bào)鏈接的數(shù)量,|L|表示候選鏈接列表的長(zhǎng)度。
MAP、DiffAR和Lag在評(píng)估推薦鏈接列表時(shí)能夠反映鏈接推薦順序所帶來(lái)的差異,對(duì)于評(píng)估候選鏈接確認(rèn)時(shí)所需的人工篩選工作量有著重要意義,值得廣泛采納。
此外,Sundaram等[10]在研究中使用了選擇率(Selectivity)作為評(píng)估指標(biāo)。選擇率度量的是自動(dòng)化方法相對(duì)于人工能夠節(jié)省工作量的程度。假設(shè)軟件制品集合H和D中分別有m和n個(gè)制品,則最多會(huì)產(chǎn)生m×n個(gè)跟蹤鏈接。選擇率定義為:
Sundaram等[36-37]將這些指標(biāo)分為基本度量(Primary Measures)和輔助度量(Secondary measures)(如表3所示)。其中,輔助度量指標(biāo)可以度量候選跟蹤鏈接列表的內(nèi)部結(jié)構(gòu)。
表3 度量指標(biāo)分類
目前,度量一個(gè)工具或方法的效果時(shí)最常用的度量指標(biāo)是精確率和召回率,即度量其查準(zhǔn)率和查全率。然而在分析人員分析候選鏈接時(shí),候選鏈接列表內(nèi)部的排列方式對(duì)分析人員的效率也會(huì)產(chǎn)生影響。好的工具或方法能夠通過合理呈現(xiàn)候選鏈接,以提高分析人員的效率。此時(shí)則需要使用上文提到的輔助度量指標(biāo)。
從我們的研究中可以看出輔助度量指標(biāo)較少被使用,這也從一個(gè)側(cè)面說(shuō)明目前對(duì)基于IR的需求跟蹤技術(shù)的改進(jìn)多集中理論層面,即關(guān)注于精確率、召回率的提高,而對(duì)于其實(shí)際使用效能的關(guān)注較少,即對(duì)于其結(jié)果多大程度能夠減少分析人員工作量的研究較少,說(shuō)明本項(xiàng)技術(shù)離實(shí)用還存在一定距離。另一方面索得率的提高也對(duì)跟蹤鏈接的生成提出了更高的要求,即不僅要區(qū)分一個(gè)候選鏈接是否正確,還要能夠準(zhǔn)確地估算出其正確的可能性,因此,這也將成為該類研究的一個(gè)重要的研究方向。
本文從結(jié)構(gòu)效度和結(jié)論效度兩個(gè)方面分析本文的效度。
(1) 結(jié)構(gòu)效度
本研究中結(jié)構(gòu)效度面臨的問題涉及到能否找到與本研究相關(guān)的所有文獻(xiàn)。本文采用了以下方法規(guī)避這種威脅:① 通過構(gòu)造測(cè)試集對(duì)使用的搜索字符串的篩選能力進(jìn)行驗(yàn)證,并且檢索文獻(xiàn)時(shí)我們使用了5個(gè)主要的文獻(xiàn)檢索數(shù)據(jù)庫(kù)(EI、Elsevier ScienceDirect、IEEE、Springer和ACM)。② 通過滾雪球的方式發(fā)現(xiàn)可能遺漏的文獻(xiàn),進(jìn)一步提升了文獻(xiàn)的覆蓋率。
(2) 結(jié)論效度
本研究中的結(jié)論效度主要關(guān)注其他研究者基于選擇的文獻(xiàn)能否得出相同的結(jié)論。本文采取的方法則是由兩名研究者同步進(jìn)行數(shù)據(jù)抽取工作,之后對(duì)兩人抽取的數(shù)據(jù)和形成的結(jié)論進(jìn)行比對(duì),對(duì)于不一致的數(shù)據(jù)由兩位研究者同第三位研究者共同修正。在研究中我們用量化數(shù)據(jù)呈現(xiàn)了許多分析結(jié)果,其他研究者可以通過本研究中公開的文獻(xiàn)驗(yàn)證本文結(jié)論。
在需求跟蹤中應(yīng)用IR技術(shù)可以自動(dòng)或半自動(dòng)地恢復(fù)跟蹤鏈接,減少跟蹤鏈接建立和維護(hù)人員的工作量,因而得到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。針對(duì)鏈接生成時(shí)精確度不高、鏈接精化時(shí)人工工作量大等問題,近年來(lái)各種基于IR的需求跟蹤方法采取了多種策略進(jìn)行改進(jìn),具體如圖2所示。
圖2 改進(jìn)的基于IR的需求跟蹤過程
在預(yù)處理階段,在構(gòu)造文檔表示時(shí),除了采用的分詞、取詞根、詞性標(biāo)注等常用手段外,還常常使用文檔標(biāo)識(shí)、關(guān)鍵標(biāo)引詞和上下文環(huán)境分析等手段,使從文本文檔中抽取的特征更具有代表性,提高檢索的效能,降低算法復(fù)雜度。
在鏈接恢復(fù)階段,除了根據(jù)制品特征選擇最佳IR模型外,當(dāng)前研究還注重利用同義詞典、項(xiàng)目詞匯表和標(biāo)引詞分類等技術(shù),提高鏈接恢復(fù)的精確率與召回率。
在鏈接精化階段,常采用的增強(qiáng)策略是相關(guān)性反饋和聚類等。因?yàn)檫@些技術(shù)是在候選跟蹤鏈接列表的基礎(chǔ)上所做的改進(jìn),所以針對(duì)不同的IR模型、不同的軟件制品都可以使用。
還有另一類改進(jìn)方案著重利用非IR技術(shù)生成跟蹤鏈接,然后與使用IR技術(shù)產(chǎn)生的跟蹤鏈接相比對(duì),通過投票或加權(quán)的方式產(chǎn)生最終跟蹤鏈接,以提高其精確率。
在上述階段中,為了獲得更好的效果,常常采用輕量級(jí)的人工輔助。如在預(yù)處理階段,利用分析人員標(biāo)示出標(biāo)引詞的來(lái)源文檔[14]。在鏈接恢復(fù)階段,利用分析人員區(qū)分需求文檔的需求意圖和需求上下文[16]。在鏈接精化階段,利用分析人員分辨出真假跟蹤鏈接,以提高模型的分辨能力[24]。
通常,文獻(xiàn)中提出的改進(jìn)方法會(huì)在不同階段使用上述的多種增強(qiáng)策略,以取得更好的鏈接恢復(fù)效果。
雖然近年來(lái)基于IR的需求跟蹤技術(shù)研究取得了長(zhǎng)足的進(jìn)步,但仍然在以下方面存在不足:
(1) 往往忽略了跟蹤關(guān)系的性質(zhì)。根據(jù)性質(zhì)不同,可以將跟蹤關(guān)系分為精化關(guān)系、目標(biāo)-方法關(guān)系或者需求-測(cè)試關(guān)系等。跟蹤關(guān)系性質(zhì)不同的軟件制品間術(shù)語(yǔ)的關(guān)系也存在較大差異。缺乏針對(duì)跟蹤關(guān)系性質(zhì)的設(shè)計(jì),將影響基于IR的需求跟蹤技術(shù)的實(shí)施效果。
(2) 往往忽略了不同類型的制品使用的語(yǔ)言可能不同。例如,高層需求中使用市場(chǎng)行銷術(shù)語(yǔ),而設(shè)計(jì)文檔中使用技術(shù)術(shù)語(yǔ)。在這種情況下,僅僅依靠語(yǔ)義相似度并不能產(chǎn)生令人滿意的結(jié)果。
(3) 對(duì)已有的跟蹤鏈接利用不足。一般而言,基于IR的需求跟蹤技術(shù)往往將每一個(gè)新的制品當(dāng)作一個(gè)全新的“查詢”,利用IR技術(shù)生成新的候選鏈接,從零開始構(gòu)建跟蹤關(guān)系。如果能夠?qū)σ延懈欐溄舆M(jìn)行有效利用,一定能夠提升方法的效能。
綜上所述,基于IR的需求跟蹤方法可以從以下方面開展研究:
(1) 新的IR技術(shù)的應(yīng)用。目前需求跟蹤恢復(fù)所使用的主流IR模型仍然是VSM、LSI和PM等經(jīng)典模型,其鏈接恢復(fù)的效果往往受到模型本身檢索能力的限制。近年來(lái),IR技術(shù)取得了長(zhǎng)足進(jìn)展,產(chǎn)生了諸如專門針對(duì)短文本檢索的LDA模型[38],能處理更多更復(fù)雜的特征向量的基于排序?qū)W習(xí)的IR模型[39]等。如果能夠針對(duì)需求跟蹤鏈接恢復(fù)涉及的軟件制品的特征,選擇最佳檢索模型,有望取得更好的效果。例如,雖然需求文檔往往描述相對(duì)完整,但圖形類制品、代碼注釋類制品等往往具備典型的短文本特征,如何利用適合于短文本分析等的各類新型IR檢索模型提高跟蹤鏈接恢復(fù)的效能值得研究。
(2) IR技術(shù)與其他技術(shù)的結(jié)合。需求跟蹤鏈接往往涉及到不同軟件開發(fā)階段產(chǎn)生的軟件制品。不同類別的軟件制品由于涉眾知識(shí)背景不同、制品描述重點(diǎn)不同,往往會(huì)出現(xiàn)使用不同層次、不同粒度的術(shù)語(yǔ)描述同一對(duì)象,造成生成的跟蹤鏈接效果不佳的問題。本體技術(shù)、機(jī)器學(xué)習(xí)技術(shù)、自然語(yǔ)言處理技術(shù)都能為基于IR的需求跟蹤方法應(yīng)對(duì)這類挑戰(zhàn)提供有力支撐。
(3) 注重發(fā)揮規(guī)范的作用。由于各類軟件制品在產(chǎn)生過程中勢(shì)必要遵循某種規(guī)范,如國(guó)際標(biāo)準(zhǔn)、國(guó)家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、公司規(guī)章等。這些規(guī)范從文檔結(jié)構(gòu)到命名規(guī)則都有相應(yīng)的限定。在恢復(fù)跟蹤鏈接時(shí)合理利用這些規(guī)則配合IR模型,將能起到事半功倍的作用。
(4) 注重建立完善的評(píng)價(jià)體系并發(fā)揮評(píng)估指標(biāo)的指導(dǎo)性作用。基于IR的需求跟蹤技術(shù)優(yōu)劣很大程度是依據(jù)各種度量指標(biāo)進(jìn)行定性、定量評(píng)估而得出的。目前,對(duì)基于IR的需求跟蹤技術(shù)的改進(jìn)多關(guān)注于精確率、召回率的提高,對(duì)于其對(duì)于分析人員使用的便利程度等方面的度量指標(biāo)還很少。而健全的評(píng)價(jià)體系不僅能夠評(píng)估當(dāng)前方法的優(yōu)劣,而且還能為方法的改進(jìn)指出方向。因此,進(jìn)一步從實(shí)用角度出發(fā),從借鑒信息檢索等相關(guān)領(lǐng)域評(píng)價(jià)指標(biāo)和發(fā)展適應(yīng)需求跟蹤領(lǐng)域自身需要的評(píng)價(jià)指標(biāo)兩個(gè)方面同時(shí)開展研究,將大大促進(jìn)基于IR的需求跟蹤技術(shù)的發(fā)展。
(5) 提高工具的靈活性、集成度和自動(dòng)化程度?;贗R的需求跟蹤技術(shù)的自動(dòng)化程度較高,具有廣闊的應(yīng)用前景,但只有強(qiáng)大的支撐工具支持,才能真正受到工業(yè)界的青睞。由于需求跟蹤涉及到的制品種類繁多、樣式各異、遵循的規(guī)范各有不同,目前的需求跟蹤工具難以滿足不同企業(yè)的實(shí)際需要。因此,提供具有開放架構(gòu)的需求跟蹤工具,允許不同的第三方開發(fā)人員將其需求跟蹤技術(shù)集成于其中,并提供統(tǒng)一的質(zhì)量評(píng)估,才能滿足工業(yè)界的實(shí)際需要。因此,研發(fā)一個(gè)綜合能夠支持第三方擴(kuò)展、支持多種軟件制品分析、支持多種分析模型和多種改進(jìn)策略的高效自動(dòng)化需求跟蹤恢復(fù)平臺(tái),將會(huì)具有重要的實(shí)用價(jià)值。
[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。國(guó)家自然科學(xué)基金項(xiàng)目(61170026)。胡成海,碩士生,主研領(lǐng)域:需求工程,軟件工程。彭蓉,教授。王幫超,博士生。