一種基于用戶反饋的需求跟蹤系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于信息追蹤領(lǐng)域,具體地,本發(fā)明涉及一種基于用戶反饋的需求跟蹤系 統(tǒng)及方法。
【背景技術(shù)】
[0002] 術(shù)語解釋:
[0003] 軟件制品/制品:軟件生命周期內(nèi)出現(xiàn)的各種軟件產(chǎn)品稱為軟件制品或制品,其中 包括設(shè)計(jì)文檔,代碼,測試用例等。
[0004] 需求跟蹤:一種描述和跟蹤整個(gè)需求生命周期(包括前向和后向)的能力。
[0005] 偏好集合(Preference Set,PS):在任務(wù)執(zhí)行過程中,開發(fā)人員可以將自己認(rèn)為與 任務(wù)相關(guān)的軟件制品加入該集合,從而能夠根據(jù)集合中制品的共性獲取用戶偏好信息,進(jìn) 而推薦更多與該集合相似的軟件制品。
[0006] 厭惡集合(Aversion Set,AS):在任務(wù)執(zhí)行過程中,開發(fā)人員可以將自己認(rèn)為與任 務(wù)不相關(guān)的軟件制品加入該集合,從而能夠根據(jù)集合中制品的共性獲取用戶厭惡信息,進(jìn) 而推薦更多與該集合不相似的軟件制品。
[0007] TF_IDF(term frequency-inverse document frequency)是一種用于信息檢索與 數(shù)據(jù)挖掘的常用加權(quán)技術(shù),用以評(píng)估一字詞對(duì)于一個(gè)文件集或一個(gè)語料庫中的其中一份文 件的重要程度。
[0008] 需求追蹤是一個(gè)影響軟件開發(fā)和維護(hù),以及最終軟件產(chǎn)品質(zhì)量的重要因素。若在 軟件開發(fā)生命周期中忽略了需求跟蹤,或使用了不完整、不一致的需求跟蹤關(guān)系,將導(dǎo)致系 統(tǒng)質(zhì)量的下降和反復(fù)修改,從而提高了系統(tǒng)開發(fā)的時(shí)間和成本。此外,為了確保交通系統(tǒng)、 航天航空系統(tǒng)等安全攸關(guān)系統(tǒng)中軟件的可靠性,許多管理機(jī)構(gòu)都強(qiáng)制要求軟件機(jī)構(gòu)在軟件 開發(fā)過程中建立需求跟蹤關(guān)系。道路車輛-功能安全標(biāo)準(zhǔn)ISO 26262:2011用一個(gè)章節(jié)描述 了需求管理和狀態(tài),其中提到,"不同層次的安全性需求之間必須可以相互追溯"。美國聯(lián)邦 航空局的D0-178C標(biāo)準(zhǔn)規(guī)范要求,在開發(fā)過程中的每個(gè)階段,"軟件開發(fā)人員都必須證明設(shè) 計(jì)與需求之間的可跟蹤性"。
[0009] 為了完成需求跟蹤任務(wù),開發(fā)人員首先需要對(duì)各種軟件制品進(jìn)行分析。然而,軟件 制品之間存在大量錯(cuò)綜復(fù)雜的依賴(例如調(diào)用,訪問和繼承)和相關(guān)(例如內(nèi)容相關(guān)和位置 相關(guān))等關(guān)聯(lián)關(guān)系。如果沒有良好的工具支持,開發(fā)人員往往不得不只關(guān)注少數(shù)關(guān)聯(lián)關(guān)系, 并且僅探索少量他認(rèn)為最可能與需求相關(guān)的制品。即使成功地找到一部份與需求相關(guān)的制 品,開發(fā)人員也很可能沿著錯(cuò)誤的關(guān)聯(lián)關(guān)系去分析大量不相關(guān)的制品。雖然,類似JQuery、 Ferry和Suade等程序探索工具可以提高開發(fā)人員分析制品的效率。但是,他們無法處理除 代碼之外的其他大量軟件制品。
[0010] 目前常用的跟蹤方法有:
[0011] 1)基于彳目息檢索的需求跟蹤方法
[0012] 基于信息檢索的需求跟蹤方法利用文本之間的相似度來確定需求與軟件制品之 間的跟蹤關(guān)系。此類方法將需求文檔與軟件制品都視為待檢索的文檔,然后計(jì)算不同軟件 制品之間的相似度,對(duì)于相似度高于一定閾值的文檔,就認(rèn)為它們之間存在關(guān)聯(lián)關(guān)系?;?信息檢索的動(dòng)態(tài)模式其優(yōu)點(diǎn)在于方法簡單且無需人工干預(yù),通過文本之間的相似度就能夠 自動(dòng)地建立關(guān)聯(lián)。其缺點(diǎn)是這類方式是通過需求與軟件制品中的標(biāo)引詞(Term)來計(jì)算相似 度,如果標(biāo)引詞無法匹配,那么即使兩個(gè)標(biāo)引詞描述的意義相同或者相近,最終計(jì)算得出的 相似度也會(huì)很低,從而無法建立跟蹤關(guān)系。
[0013] 2)基于動(dòng)態(tài)分析的需求跟蹤方法
[0014] 基于動(dòng)態(tài)分析的需求跟蹤方法通過捕獲并分析系統(tǒng)的執(zhí)行軌跡,識(shí)別不同模塊與 系統(tǒng)實(shí)現(xiàn)(如代碼)之間的依賴關(guān)系,然后利用這些依賴關(guān)系生成跟蹤關(guān)系。通常而言,開發(fā) 人員需要事先設(shè)計(jì)多個(gè)與指定需求相關(guān)的場景,然后執(zhí)行場景并收集執(zhí)行軌跡信息。這種 需求跟蹤方法的優(yōu)點(diǎn)在于可以快速排除大量與指定需求無關(guān)的系統(tǒng)實(shí)現(xiàn)模塊(如代碼中的 類或方法)。其缺點(diǎn)是方法的有效性嚴(yán)重依賴于場景設(shè)計(jì)的優(yōu)劣,并且在現(xiàn)實(shí)應(yīng)用中很難設(shè) 計(jì)出僅與某個(gè)需求相關(guān)的場景。
[0015] 基于信息檢索的需求跟蹤方法利用文本之間的相似度來確定需求與軟件制品之 間的跟蹤關(guān)系。此類方法將需求文檔與軟件制品都視為待檢索的文檔,然后計(jì)算不同軟件 制品之間的相似度,對(duì)于相似度高于一定閾值的文檔,就認(rèn)為它們之間存在關(guān)聯(lián)關(guān)系。基于 信息檢索的動(dòng)態(tài)模式其優(yōu)點(diǎn)在于方法簡單且無需人工干預(yù),通過文本之間的相似度就能夠 自動(dòng)地建立關(guān)聯(lián)。其缺點(diǎn)是這類方式是通過需求與軟件制品中的標(biāo)引詞(Term)來計(jì)算相似 度,如果標(biāo)引詞無法匹配,那么即使兩個(gè)標(biāo)引詞描述的意義相同或者相近,最終計(jì)算得出的 相似度也會(huì)很低,從而無法建立跟蹤關(guān)系。
[0016] 3)基于動(dòng)態(tài)分析的需求跟蹤方法
[0017] 基于動(dòng)態(tài)分析的需求跟蹤方法通過捕獲并分析系統(tǒng)的執(zhí)行軌跡,識(shí)別不同模塊與 系統(tǒng)實(shí)現(xiàn)(如代碼)之間的依賴關(guān)系,然后利用這些依賴關(guān)系生成跟蹤關(guān)系。通常而言,開發(fā) 人員需要事先設(shè)計(jì)多個(gè)與指定需求相關(guān)的場景,然后執(zhí)行場景并收集執(zhí)行軌跡信息。這種 需求跟蹤方法的優(yōu)點(diǎn)在于可以快速排除大量與指定需求無關(guān)的系統(tǒng)實(shí)現(xiàn)模塊(如代碼中的 類或方法)。其缺點(diǎn)是方法的有效性嚴(yán)重依賴于場景設(shè)計(jì)的優(yōu)劣,并且在現(xiàn)實(shí)應(yīng)用中很難設(shè) 計(jì)出僅與某個(gè)需求相關(guān)的場景。
[0018] 上述現(xiàn)有的技術(shù)存在以下幾點(diǎn)不足:
[0019] 1.現(xiàn)有技術(shù)大多提供一步到位的需求跟蹤方式。開發(fā)人員輸入關(guān)鍵詞或選擇某個(gè) 與需求相關(guān)的制品之后,現(xiàn)有技術(shù)便根據(jù)各種相似度計(jì)算公式直接返回最終的需求跟蹤關(guān) 系。在此過程中,開發(fā)人員無法介入需求跟蹤關(guān)系的生成過程,更無法修正在生成過程中可 能出現(xiàn)的錯(cuò)誤(如遺漏正確的跟蹤關(guān)系或包含錯(cuò)誤的跟蹤關(guān)系)。
[0020] 2.開發(fā)人員往往需要經(jīng)過多次的探索嘗試才能加深對(duì)系統(tǒng)的了解,并提高探索的 有效性,進(jìn)而建立更為準(zhǔn)確的制品間的跟蹤關(guān)系。現(xiàn)有的大多數(shù)技術(shù)并不提供這種迭代式 探索支持,從而無法充分發(fā)揮開發(fā)人員的作用。
[0021] 3.開發(fā)人員在探索的過程中,可能難于準(zhǔn)確地定位與需求相關(guān)的軟件制品,但是 他們可以較為輕松且準(zhǔn)確地識(shí)別出與需求不相關(guān)的軟件制品。而現(xiàn)有的技術(shù)并沒有考慮開 發(fā)人員提供的這種負(fù)反饋信息,進(jìn)而影響了需求跟蹤工具的有效性。
[0022] 針對(duì)手工創(chuàng)建需求跟蹤矩陣時(shí)所面臨的乏味、耗時(shí)且易于出錯(cuò)等問題,研究人員 提出了大量自動(dòng)化需求跟蹤方法。但遺憾的是,至今為止并不存在能夠創(chuàng)建出足夠準(zhǔn)確的 需求跟蹤矩陣的自動(dòng)化需求跟蹤方法。而且,對(duì)于安全攸關(guān)的項(xiàng)目而言,無論是否使用自動(dòng) 化需求跟蹤方法,開發(fā)人員都必須手工地檢查最終跟蹤矩陣的正確性。因此提出一種能夠 充分利用開發(fā)人員反饋信息的需求跟蹤方法具有非常重要的實(shí)用價(jià)值和現(xiàn)實(shí)意義。
【發(fā)明內(nèi)容】
[0023] 為解決上述問題,本發(fā)明提供了一種基于用戶反饋的需求跟蹤系統(tǒng)及方法。本發(fā) 明所使用的制品相關(guān)信息更加全面,不僅有語法、語義還有位置關(guān)聯(lián);加入了正負(fù)反饋機(jī) 制,從而提高了最終推薦列表的準(zhǔn)確性;使用迭代式的探索過程,開發(fā)人員可以逐步改進(jìn)他 們的探索實(shí)踐。
[0024] 為達(dá)到上述技術(shù)效果,本發(fā)明的技術(shù)方案是:
[0025] -種基于用戶反饋的需求跟蹤系統(tǒng),包括設(shè)置監(jiān)控模塊、分析模塊、推薦模塊和維 護(hù)模塊;其中,監(jiān)控模塊用于接收輸入的與需求跟蹤任務(wù)相關(guān)的軟件制品,以及接收跟蹤任 務(wù)進(jìn)行時(shí)用戶提供的反饋信息,所述反饋信息包括偏好集合和厭惡集合;偏好集合指與需 求跟蹤任務(wù)相關(guān)的軟件制品形成的集合,厭惡集合指與需求跟蹤任務(wù)不相關(guān)的軟件制品形 成的集合;分析模塊用于對(duì)反饋信息和監(jiān)控模塊接收到的軟件制品進(jìn)行分析,得出用戶關(guān) 注的候選跟蹤關(guān)系特征;推薦模塊用于根據(jù)候選跟蹤關(guān)系特征計(jì)算候選軟件制品與偏好集 合及厭惡集合的相似度,推薦模塊選擇出與偏好集合相似且與厭惡集合不相似的候選軟件 制品推薦給用戶;維護(hù)模塊用于保存用戶的操作歷史記錄以及設(shè)置的偏好集合和厭惡集 合。
[0026] 一種基于用戶反饋的需求跟蹤方法,包括如下步驟:
[0027] 步驟10)向監(jiān)控模塊輸入軟件制品,向監(jiān)控模塊輸入軟件制品的方法為直接輸入 軟件制品和/或輸入軟件制品的URI,軟件制品和軟件制品的URI為一個(gè)或多個(gè);監(jiān)控模塊保 存輸入的軟件制品,分析模塊根據(jù)候選軟件制品與輸入的軟件制品之間的相似度,向用戶 推薦候選需求跟蹤關(guān)系;
[0028] 步驟20)監(jiān)控模塊收集用戶的反饋信息并將反饋信息發(fā)送給分析模塊;分析模塊 根據(jù)反饋信息計(jì)算候選軟件制品與偏好集合及厭惡集合的相似度,從而使監(jiān)控模塊推薦更 滿足期望的跟蹤關(guān)系;重復(fù)步驟20)直至完成需求跟蹤任務(wù);
[0029]步驟30)完成需求跟蹤任務(wù)后,維護(hù)模塊自動(dòng)保存用戶的反饋信息。
[0030] 進(jìn)一步的改進(jìn),其特征在于,所述步驟10)包括如下步驟:
[0031] 步驟11)通過系統(tǒng)提供的用戶界面,選擇軟件制品的輸入方式為讀取軟件制品的 URI或直接輸入軟件制品的文本;若選讀取軟件制品的URI,系統(tǒng)提供URI輸入窗口,完成輸 入操作后,系統(tǒng)自動(dòng)讀取URI對(duì)應(yīng)的軟件制品,獲取輸入的軟件制品;若選擇直接輸入軟件 制品,系統(tǒng)提供內(nèi)容輸入窗口并獲取輸入的軟件制品;
[0032] 步驟12)監(jiān)控模塊和維護(hù)模塊讀取并保存輸入的軟件制品,當(dāng)用戶直接輸入軟件 制品且沒有輸入文件名時(shí),維護(hù)模塊根據(jù)事先定義的命名規(guī)則生成文件名;
[0033] 步驟13)完成軟件制品的輸入之后,監(jiān)控模塊保存輸入的軟件制品并將輸入的軟 件制品發(fā)送到分析模塊;
[0034]