一種上下文感知的動態(tài)需求跟蹤方法
【專利摘要】本發(fā)明公開了一種上下文感知的動態(tài)需求跟蹤方法,包括以下步驟:監(jiān)控步驟:收集開發(fā)人員的操作;分析步驟:聚合收集到的操作信息,根據(jù)操作信息以及制品間的關(guān)聯(lián)關(guān)系,自動生成擴展規(guī)則,并以此推測開發(fā)人員可能感興趣的制品;推薦步驟:利用擴展規(guī)則從制品集合中自動挖掘開發(fā)人員最有可能感興趣的軟件制品;維護步驟:將推薦的制品類型展現(xiàn)給開發(fā)人員,建立并維護跟蹤歷史記錄,以便進一步提高擴展規(guī)則的有效性和準確性。本發(fā)明通過上下文感知,系統(tǒng)性地整合制品之間多種類型的關(guān)聯(lián)信息、開發(fā)人員的偏好和操作信息,具有更加準確和快捷的特點。
【專利說明】一種上下文感知的動態(tài)需求跟蹤方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件開發(fā)管理【技術(shù)領(lǐng)域】,尤其涉及一種上下文感知的動態(tài)需求跟蹤方法。
【背景技術(shù)】
[0002]軟件需求跟蹤是“一種描述和跟蹤整個需求生命周期(包括前向和后向)的能力”。軟件需求跟蹤可以幫助人們在高層的特征或功能和低層的軟件制品之間建立映射關(guān)系,這將大大地提高開發(fā)人員在維護代碼時的效率。一旦高層的需求發(fā)生變化,開發(fā)人員便可以通過這種映射關(guān)系快速地找到與之相對的一系列軟件制品,從而保證了高層需求與不同軟件制品之間的一致性。
[0003]軟件需求跟蹤輔助軟件開發(fā)生命周期中很多活動的執(zhí)行,它不僅可以作為確認和驗證系統(tǒng)功能的活動的一種方式,挖掘代碼變更背后蘊含的設(shè)計決策,幫助開發(fā)人員對系統(tǒng)組件進行復(fù)用,最后它還可以作為變更管理的重要依據(jù)。AybilkeAurum等學(xué)者提出“若在軟件開發(fā)生命周期中忽略了需求跟蹤,或使用了不完整、不一致的需求跟蹤關(guān)系,將導(dǎo)致系統(tǒng)質(zhì)量的下降和反復(fù)修改,從而提高了系統(tǒng)開發(fā)的時間和成本”。因此,軟件需求跟蹤被認為是一個影響軟件開發(fā)和維護過程中各個階段的重要因素,并影響最終軟件產(chǎn)品的質(zhì)量。
[0004]美國食品和藥物管理局(FDA)聲明,在軟件開發(fā)過程中,必須使用需求跟蹤分析來驗證軟件的所有需求都得到實現(xiàn),而且所有的軟件制品都可以跟蹤到軟件需求。美國聯(lián)邦航空局通過D0-178B認證標準對所有新開發(fā)的航空軟件進行驗證,要求在開發(fā)的每個階段“軟件開發(fā)人員都必須證明設(shè)計與需求之間的可跟蹤性”。此外,越來越多的組織在采用標準化軟件開發(fā)過程(例如CMMI)時,也要求將需求跟蹤實踐納入自身的開發(fā)及管理過程中。
[0005]由于需求跟蹤在軟件開發(fā)和管理過程中的重要性,由美國美國國家航空航天局出資,多位來自美國和歐洲學(xué)術(shù)界、工業(yè)界和政府的著名學(xué)者和研究人員在2006年組建了卓越軟件跟蹤性中心(Center of Excellence for Software Traceability, CoEST),專門解決在實施軟件需求跟蹤時所面臨的挑戰(zhàn)。美國國家科學(xué)基金會特別資助一個討論會來討論需求跟蹤所遇到的一系列重大挑戰(zhàn)(Grand Challenges of Traceability, GCT)。除此之夕卜,美國國家科學(xué)基金會還提供了 300萬美元用于幫助需求跟蹤研究社區(qū)將所研究出的技術(shù)或方法服務(wù)于軟件行業(yè)協(xié)會和政府團隊。
[0006]需求跟蹤方法有靜態(tài)跟蹤和動態(tài)跟蹤兩種。傳統(tǒng)的需求跟蹤大多以靜態(tài)跟蹤為主,主要有需求跟蹤矩陣和需求跟蹤圖等方法。靜態(tài)需求跟蹤需要進行手動設(shè)置,面臨著易于出錯、代價過大等問題。特別是在項目規(guī)模較大且周期較長的時候,跟蹤關(guān)系的維護便成了一個巨大的負擔。
[0007]在2005年的需求工程大會上,Cleland-Huang提出“動態(tài)需求跟蹤(DynamicRequirement Traceability)”。動態(tài)需求跟蹤從手工建立需求跟蹤代價過高且易于出錯的問題入手,以自動化技術(shù)為手段輔助開發(fā)人員建立和維護需求跟蹤關(guān)系,而且在需求發(fā)生變更的時候可以根據(jù)跟蹤關(guān)系自動提出變更提醒。因此,對動態(tài)需求跟蹤的研究是現(xiàn)階段的主要方向。主要的動態(tài)跟蹤方法有基于信息檢索的跟蹤、基于規(guī)則的跟蹤等。
[0008]下面將對幾種主要的需求跟蹤技術(shù)作一概述。
[0009]需求跟蹤矩陣
[0010]需求跟蹤矩陣(Requirements Traceability Matrix, RTM)是表不需求和其他系統(tǒng)元素之間聯(lián)系鏈的最普遍方式。需求跟蹤矩陣可以保持需求和其他軟件制品之間的雙向跟蹤能力。雙向跟蹤能力是正向跟蹤和逆向跟蹤的能力,也就是從需求跟蹤到最終廣品和從最終產(chǎn)品回溯到需求的能力。需求跟蹤矩陣的優(yōu)點是易于創(chuàng)建和維護,可以很容易發(fā)現(xiàn)需求在軟件制品之間的不一致情況,有助于開發(fā)人員及時糾正偏差。其缺點是,當需求或軟件制品發(fā)生變更時,開發(fā)人員要及時更新需求跟蹤矩陣。否則,隨著開發(fā)工作的進行,跟蹤矩陣會變得越來越不準確,并最終導(dǎo)致跟蹤的失敗。
[0011]需求跟蹤圖
[0012]需求跟蹤圖通過軟件人員自已定義的對象和關(guān)系,將需求項與測試用例、設(shè)計文檔和代碼等軟件制品之間的關(guān)系通過圖形方式進行表述。需求跟蹤圖的一大特點是允許對象之間存在多種軟件人員自定義的跟蹤鏈,軟件人員可以根據(jù)需要對它們進行調(diào)整以適應(yīng)不同的環(huán)境。通過數(shù)學(xué)方法,軟件人員可以為彼此之間沒有直接鏈接關(guān)系的對象建立跟蹤。由于需求跟蹤圖中的對象和關(guān)系都是由用戶定義的,它們所表達的意義也就易于被軟件人員所理解。但另一方面,它仍然沒有解決跟蹤關(guān)系難于維護的問題。而且,多種跟蹤鏈的存在會更得跟蹤關(guān)系的維護變得更加困難。
[0013]基于信息檢索的動態(tài)需求跟蹤
[0014]基于信息檢索的動態(tài)需求跟蹤利用文本之間的相似度來確定需求與軟件制品之間的跟蹤關(guān)系。這類方法將文本形式的需求文檔與軟件制品都視為待檢索的文檔,然后計算需求與軟件制品之間的相似度,對于相似度高于一定閾值的需求與軟件制品,就認為它們之間存在關(guān)聯(lián)關(guān)系。基于信息檢索的動態(tài)模式其優(yōu)點在于方法簡單且無需人工干預(yù),通過文本之間的相似度就能夠自動地建立關(guān)聯(lián)。其缺點是這類方式是通過需求與軟件制品中的標引詞(Term)來計算相似度,如果標引詞無法匹配,那么即使兩個標引詞描述的意義相同或者相近,最終計算得出的相似度也會很低,從而無法建立跟蹤關(guān)系。因此基于信息檢索的動態(tài)需求跟蹤技術(shù)需要解決的一個關(guān)鍵問題是對一詞多義和同義多詞的處理。
[0015]基于規(guī)則的動態(tài)需求跟蹤
[0016]Spanoudakis等學(xué)者提出了一種啟發(fā)式需求跟蹤方式,并稱之為基于規(guī)則的動態(tài)需求跟蹤。他們將動態(tài)需求跟蹤分為兩種情況,一種是需求文檔或用例與軟件制品之間的跟蹤關(guān)系,另一種是需求文檔以及用例相互之間的跟蹤關(guān)系,這種關(guān)系是在前一種跟蹤關(guān)系的基礎(chǔ)上建立起來的。Spanoudakis還將跟蹤關(guān)系按其邏輯上的關(guān)聯(lián)分為四大類,軟件開發(fā)人員可通過這些關(guān)聯(lián)了解具有跟蹤關(guān)系的軟件制品之間彼此驅(qū)動的先后順序和邏輯關(guān)系。這類方法的優(yōu)點在于可以建立任何制品之間的跟蹤關(guān)系,缺點在于需要針對不同的制品制定不同的跟蹤關(guān)系匹配規(guī)則。
[0017]最近似的實現(xiàn)方案有兩個,一個是加拿大麥吉爾大學(xué)的Robillard等學(xué)者提出的基于拓撲結(jié)構(gòu)的軟件探索工具Suade,以及美國德拉華大學(xué)的Emily Hill等學(xué)者提出的軟件探索工具Dora。軟件開發(fā)人員可以通過Suade或Dora對代碼進行探索,并在探索的過程中建立不同制品之間的跟蹤關(guān)系。[0018]使用Suade對代碼進行探索時,軟件開發(fā)人員需要通過先驗知識等找出若干個與需求相關(guān)的代碼元素(例如方法,字段等,在此特指代碼中的方法)。之后,Suade會通過語法信息(例如方法調(diào)用,字段訪問等)計算其它代碼元素與需求的相關(guān)度。最后,Suade根據(jù)相關(guān)度對代碼元素進行排序,并向用戶提供排序結(jié)果。用戶得到排序結(jié)果之后,并根據(jù)相關(guān)度建立起軟件制品之間的跟蹤關(guān)系。
[0019]Dora是對Suade的擴展,除了使用語法彳目息之后,他還利用了語義彳目息。使用Dora對代碼進行探索時,開發(fā)人員首先需要構(gòu)造一個用于計算方法相關(guān)度(Method RelevanceScore)的特征查詢(一組關(guān)鍵詞),方法相關(guān)度取決于關(guān)鍵詞在方法體和方法名中出現(xiàn)的次數(shù)。之后,以開發(fā)人員給定的一個與特征相關(guān)的方法為出發(fā)點,Dora計算出所有與該方法存在調(diào)用以及被調(diào)用關(guān)系的所有方法以及它們的方法相關(guān)度,并以方法相關(guān)度作為判斷方法是否與特征相關(guān)的指標。與Suade相同,Dora將根據(jù)相關(guān)度對方法進行排序,并向用戶提供排序結(jié)果。
[0020]現(xiàn)有的技術(shù)存在以下不足:當開發(fā)人員為一個不熟悉的項目建立制品之間的跟蹤關(guān)系時,他們很有可能花費大量的時間去探索與需求并不相關(guān)的軟件制品,或者沿著錯誤的關(guān)聯(lián)關(guān)系對軟件制品進行探索。而現(xiàn)有的技術(shù)往往無法根據(jù)開發(fā)人員的操作提供必要的反饋。類如Suade和Dora所使用的探索技術(shù),他們更多的是提供一步到位的擴展支持,無法根據(jù)開發(fā)人員的操作和上下文動態(tài)地調(diào)整所應(yīng)推薦的代碼元素或軟件制品。
【發(fā)明內(nèi)容】
[0021]本發(fā)明需要解決的技術(shù)問題是如何更好地實現(xiàn)軟件需求跟蹤。
[0022]為了解決以上技術(shù)問題,本發(fā)明通過監(jiān)控用戶的操作推測用戶期望獲取的軟件制品,從而幫助開發(fā)人員建立不同軟件制品之間的跟蹤關(guān)系。該方法包括監(jiān)控、分析、推薦和維護四個部分。監(jiān)控部分收集開發(fā)人員的操作,如瀏覽的軟件制品,設(shè)置的偏好或厭惡制品信息等;分析部分聚合收集到的操作信息,根據(jù)操作信息以及制品間的關(guān)聯(lián)關(guān)系,自動生成擴展規(guī)則,并以此推測開發(fā)人員可能感興趣的制品;推薦部分利用擴展規(guī)則從制品集合中自動挖掘開發(fā)人員最有可能感興趣的軟件制品;維護部份將推薦的制品類型展現(xiàn)給開發(fā)人員,并維護制品間的跟蹤信息,如跟蹤關(guān)系的創(chuàng)建軌跡,歷史變化信息等。
[0023]本發(fā)明通過上下文感知,系統(tǒng)性地整合制品之間多種類型的關(guān)聯(lián)信息、開發(fā)人員的偏好和操作信息,具有更加準確和快捷的特點。
【專利附圖】
【附圖說明】
[0024]當結(jié)合附圖考慮時,通過參照下面的詳細描述,能夠更完整更好地理解本發(fā)明以及容易得知其中許多伴隨的優(yōu)點,但此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定,其中:
[0025]圖1是本發(fā)明實施例一種上下文感知的動態(tài)需求跟蹤系統(tǒng)框圖。
【具體實施方式】
[0026]參照圖1對本發(fā)明的實施例進行說明。[0027]為使上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0028]如圖1所示。感知器(I)可獲取開發(fā)人員在前一個單位時間(例如20分鐘)之內(nèi)操作信息,其中包括操作的制品集合以及操作類型(如打開、編輯等)。另外,開發(fā)人員可以通過偏好設(shè)置(2)或厭惡設(shè)置(3)將他們認為與需求相關(guān)或不相關(guān)的制品提交給系統(tǒng)。得到操作信息、偏好設(shè)置信息和厭惡設(shè)置信息之后,位置相關(guān)性度量模型(5)、語義相關(guān)性度量模型(6)和依賴相關(guān)性度量模型(4)將分別從位置、語義和依賴這三個方面推導(dǎo)出用于查找開發(fā)人員所期望的制品的擴展規(guī)則。通過厭惡設(shè)置得到的不相關(guān)制品信息對擴展規(guī)則(投票機制)(7)進行去噪,然后再通過感知器得到的操作信息對擴展規(guī)則進行加權(quán)(8),從而最大程度地精化擴展規(guī)則。制品匹配器(9)得到擴展規(guī)則后,從制品集合(10)中篩選出所有與規(guī)則匹配的制品,并將制品的偏好一齊發(fā)送到制品推薦器(11)。在得到匹配的制品及其偏好信息后,制品推薦器(11)將生成一個推薦制品列表。推薦列表中詳細記錄了各制品間的跟蹤關(guān)系、跟蹤關(guān)系創(chuàng)建過程以及制品的推薦度。通過這個推薦制品列表,推薦列表管理器(12)將向軟件開發(fā)人員提供一個推薦列表的查看界面,軟件開發(fā)人員可以通過該界面查看所有的推薦列表,并根據(jù)自己的需求對列表進行排序或過濾等操作。跟蹤關(guān)系創(chuàng)建器(13)將保存所有的跟蹤關(guān)系及其歷史變更信息。報表生成器(14)可以生成一個跟蹤關(guān)系的報表,為軟件開發(fā)人員提供一個更為全面的信息。開發(fā)人員在得到推薦列表之后,可以根據(jù)自己的理解,再從推薦列表中選擇一部份加入到偏好設(shè)置或厭惡設(shè)置(15)。當開發(fā)人員對偏好設(shè)置或厭惡設(shè)置做任何操作時,該方法將自動開啟新一輪的迭代,并自動為開發(fā)人員提供新的推薦列表。
[0029]上下文感知的動態(tài)需求跟蹤方法,包括以下步驟:
[0030](I)感知器自動記錄開發(fā)人員在前一`個單位時間的所有操作,例如打開的文件,瀏覽文件花費的時間等。
[0031](2)開發(fā)人員在探索的過程中可以根據(jù)自己的理解,通過偏好設(shè)置將自己認為最有可能與需求相關(guān)的制品加入偏好集合,以及通過厭惡設(shè)置將自己認為不可能與需求相關(guān)的制品加入?yún)拹杭稀?br>
[0032](3)當開發(fā)人員進行了偏好設(shè)置或厭惡設(shè)置時,該方法會自動將所收集到偏好設(shè)置、厭惡設(shè)置和操作記錄發(fā)送到相關(guān)性度量模型。(4)相關(guān)性度量模型會分別從位置相關(guān)、語義相關(guān)和依賴相關(guān)這三個方向去挖掘用戶的偏好,從而創(chuàng)建擴展規(guī)則。
[0033]a)位置相關(guān)度利用制品所在的位置信息(例如所在的目錄)來計算不同制品之間
的相關(guān)性。給定兩個制品ml和m2,可以通過它們的目錄信息來比較從根結(jié)點至最終包含
制品的目錄的路徑差異性來計算相關(guān)性。對于兩個制品節(jié)點nl和n2,path(nl,n2)表示從
nl至n2的最小路徑,而len(nl,n2)則表示路徑path (nl, n2)的長度。對于給定的兩個制
品ml和m2,令cl和c2分別表示制品ml和m2所在的目錄,r表示兩個制品的根目錄,而a
表示Cl和c2的最近公共父目錄。那么可以通過以下的公式來計算ml和m2之間的位置相
關(guān)度如下:
【權(quán)利要求】
1.一種上下文感知的動態(tài)需求跟蹤方法,其特征在于,包括以下步驟: 監(jiān)控步驟:收集開發(fā)人員的操作; 分析步驟:聚合收集到的操作信息,根據(jù)操作信息以及制品間的關(guān)聯(lián)關(guān)系,自動生成擴展規(guī)則,并以此推測開發(fā)人員可能感興趣的制品; 推薦步驟:利用擴展規(guī)則從制品集合中自動挖掘開發(fā)人員最有可能感興趣的軟件制品; 維護步驟:將推薦的制品類型展現(xiàn)給開發(fā)人員,建立并維護跟蹤歷史記錄,以便進一步提高擴展規(guī)則的有效性和準確性。
2.根據(jù)權(quán)利要求1所述上下文感知的動態(tài)需求跟蹤方法,其特征在于,所述收集開發(fā)人員的操作包括:收集瀏覽、編輯的軟件制品以及制品內(nèi)容,在制品之間切換時所依賴的關(guān)聯(lián)息。
3.根據(jù)權(quán)利要求1所述上下文感知的動態(tài)需求跟蹤方法,其特征在于,所述收集開發(fā)人員的操作包括:設(shè)置的偏好或厭惡制品信息。
4.根據(jù)權(quán)利要求1所述上下文感知的動態(tài)需求跟蹤方法,其特征在于,在監(jiān)控步驟和分析步驟之間還包括相關(guān)性度量步驟,確定軟件制品的相關(guān)度。
5.根據(jù)權(quán)利要求1所述上下文感知的動態(tài)需求跟蹤方法,其特征在于,所述相關(guān)性度量步驟具體包括:位置和/或語義和/或依賴相關(guān)性度量。
6.根據(jù)權(quán)利要求3所述上下文感知的動態(tài)需求跟蹤方法,其特征在于,所述維護步驟還包括:開發(fā)人員在推薦列表中選擇他認為與需求相關(guān)的代碼元素,并將其加入到偏好列表;或者開發(fā)人員在推薦列表中選擇他認為與需求無關(guān)的代碼元素,并將其加入到厭惡列表;重復(fù)分析步驟、推薦步驟和維護步驟,直至開發(fā)人員完成跟蹤關(guān)系的建立。
【文檔編號】G06F17/30GK103617190SQ201310548940
【公開日】2014年3月5日 申請日期:2013年11月6日 優(yōu)先權(quán)日:2013年11月6日
【發(fā)明者】王金水, 鄭建生, 楊榮華, 趙釗林, 唐鄭熠, 詹先銀, 黃麗麗, 薛醒思, 魏磊晶 申請人:福建工程學(xué)院