胡建強,李涓子,謝 勇,吳克壽,朱順痣
(1.廈門理工學(xué)院計算機與信息工程學(xué)院,福建 廈門361024;2.清華大學(xué)計算機科學(xué)與技術(shù)系,北京100084)
互聯(lián)網(wǎng)快速發(fā)展和面向按需服務(wù)的架構(gòu)、群體軟件工程[1]驅(qū)動網(wǎng)絡(luò)化軟件正逐步成為互聯(lián)網(wǎng)上軟件開發(fā)的主流.網(wǎng)絡(luò)化軟件的生產(chǎn)方式是實現(xiàn)個性化與多樣化的涉眾需求的軟件服務(wù)規(guī)?;ㄖ疲疵嫦蝾I(lǐng)域的群體用戶的共性需求和個性化需求,在元級上整合成服務(wù)需求的元描述,以面向按需服務(wù)的軟件規(guī)?;ㄖ菩问綄崿F(xiàn)大眾需求,具有“面向領(lǐng)域,用戶需求主導(dǎo)”特性[2].
針對網(wǎng)絡(luò)化軟件,北京大學(xué)提出本體制導(dǎo)、面向問題框架需求建模,并應(yīng)用到商業(yè)模型、保險業(yè)和電子商務(wù)等領(lǐng)域[3].武漢大學(xué)面向具體領(lǐng)域問題,對該問題相關(guān)的用戶角色、目標(biāo)、流程和服務(wù)建模[4].武漢大學(xué)、清華大學(xué)等院校加入ISO/IEC JTC1SC32 WG2,制定網(wǎng)絡(luò)化軟件的互操作性元模型框架國際標(biāo)準(zhǔn)ISO/IEC19763-Metamodel Framework for Interoperability(MFI)[5],其中需求元描述國際標(biāo)準(zhǔn) RGPS(Role-Goal-Process-Service)用來指導(dǎo)網(wǎng)絡(luò)化軟件的需求建模.RGPS包括角色層、目標(biāo)層、過程層和服務(wù)層4個層次,各層次關(guān)聯(lián)并整體協(xié)同:角色承擔(dān)相應(yīng)的角色目標(biāo),參與者提出個性化目標(biāo);過程可以完成功能目標(biāo),并可以促進(jìn)非功能目標(biāo)的實現(xiàn);軟件服務(wù)可以實現(xiàn)過程.基于R/G/P/S各層元模型之間的互操作和相互關(guān)聯(lián),從分析用戶個性化需求開始,通過角色層,目標(biāo)層,過程層和服務(wù)層之間的映射和轉(zhuǎn)換,分析和誘導(dǎo)出完整的網(wǎng)絡(luò)化軟件需求[6],從而實現(xiàn)面向按需服務(wù)的軟件規(guī)?;ㄖ?根據(jù)網(wǎng)絡(luò)化需求變更和網(wǎng)絡(luò)資源的動態(tài)變化,網(wǎng)絡(luò)化軟件規(guī)?;ㄖ浦С诌m應(yīng)性調(diào)整和演化.
需求管理是軟件需求過程的重要基礎(chǔ).傳統(tǒng)軟件需求管理系統(tǒng)[7-9]存在計算機自動化程度低,管理粒度較粗以及對需求獲取,需求分析,需求演化和需求變更等需求活動支持有限等問題.
相對地,網(wǎng)絡(luò)化軟件的需求管理面對新的挑戰(zhàn):存在基于本體的網(wǎng)絡(luò)化軟件需求的元描述標(biāo)準(zhǔn)RGPS,要求計算機對需求文檔實現(xiàn)語義內(nèi)容管理;基于關(guān)鍵字檢索未必充分,因為需要確保需求查詢的粒度和精度;傳統(tǒng)采用信息檢索技術(shù)不適用于構(gòu)建需求跟蹤關(guān)系,需要智能發(fā)現(xiàn)需求內(nèi)在關(guān)聯(lián),同時保證粒度和可跟蹤性;需要為需求分析,需求演化和需求驗證等活動提供支撐服務(wù).
針對上述挑戰(zhàn),融合本體圖數(shù)據(jù)管理,語義數(shù)據(jù)索引以及語義數(shù)據(jù)可視化等語義Web前沿技術(shù),提出一種基于RGPS的網(wǎng)絡(luò)化軟件的需求內(nèi)容管理的層次結(jié)構(gòu),包括網(wǎng)絡(luò)化軟件需求的語義內(nèi)容存儲、語義內(nèi)容細(xì)粒度索引、語義內(nèi)容分類與組織、層次化語義檢索和結(jié)果輸出與顯示5個層次.圍繞以上5個層次,重點解決基于關(guān)鍵字的倒排索引算法,基于條件隨機場算法的需求實例分類和啟發(fā)式實例關(guān)聯(lián)查找算法等關(guān)鍵技術(shù)問題.最后,實現(xiàn)了基于RGPS的網(wǎng)絡(luò)化軟件需求內(nèi)容管理原型工具RGPS-RM,結(jié)合面向交通領(lǐng)域的按需回答案例,可視化展示功能.
圖1給出基于RGPS的網(wǎng)絡(luò)化軟件的需求內(nèi)容管理的層次結(jié)構(gòu),各層之間的依賴關(guān)系是下層為上一層提供服務(wù)和支持.
圖1 網(wǎng)絡(luò)化軟件的需求內(nèi)容管理的層次結(jié)構(gòu)Fig.1 Ahierarchical architecture for semantic requirements management of networked software
網(wǎng)絡(luò)化軟件的需求內(nèi)容管理的各個層次功能具體如下:
1)語義內(nèi)容存儲:遵循需求元描述標(biāo)準(zhǔn)RGPS,在領(lǐng)域本體和領(lǐng)域模型的支持下,個性化需求借助誘導(dǎo)和轉(zhuǎn)換等需求分析技術(shù)生成網(wǎng)絡(luò)化軟件需求的實例.本質(zhì)上,網(wǎng)絡(luò)化軟件需求的數(shù)據(jù)模型是本體圖,其數(shù)據(jù)存儲模式直接影響到數(shù)據(jù)訪問和檢索效率.原生式存儲模式[10]符合本體圖數(shù)據(jù)模型特點,可以避免基于內(nèi)存的存儲模式、基于關(guān)系或?qū)ο髷?shù)據(jù)庫存儲模式存在的弱點.
2)語義內(nèi)容細(xì)粒度索引:細(xì)粒度索引是實現(xiàn)任意片斷、任意粒度檢索網(wǎng)絡(luò)化軟件需求的語義內(nèi)容的重要基礎(chǔ).通過細(xì)粒度索引并形成語義索引庫,為層次化語義內(nèi)容檢索支持.大多數(shù)系統(tǒng)使用大量索引,如Oracle RDF(resource description framework,資源描述框架)提取模式描述信息并建立規(guī)則索引;文獻(xiàn)[11]在關(guān)系存儲基礎(chǔ)上建立主索引和二級索引.本文采用基于關(guān)鍵字的倒排索引算法,可以克服網(wǎng)絡(luò)化需求實例的檢索性能瓶頸.
3)語義內(nèi)容分類與組織:由于網(wǎng)絡(luò)化軟件的需求文檔的復(fù)雜性和可成長性,存在查詢返回的結(jié)果日漸龐大.結(jié)合領(lǐng)域模型和領(lǐng)域本體,通過基于線型條件隨機場 CRFs(linear conditional random fields)分類算法,綜合利用需求元描述標(biāo)準(zhǔn)RGPS定義的上下文概念關(guān)系,實現(xiàn)有效組織和自動歸類,提高層次化語義檢索的效率,以及結(jié)果輸出與顯示的性能.
4)層次化語義檢索:由于需求活動要求的多樣性,以及網(wǎng)絡(luò)化軟件需求內(nèi)容共享的靈活性,需要解決傳統(tǒng)語義檢索系統(tǒng)中存在的檢索形式單一,結(jié)果返回單一以及關(guān)聯(lián)檢索關(guān)注度不夠等問題.按照涉眾關(guān)注精細(xì)度不同,可以構(gòu)造概念,屬性和實例索引并實現(xiàn)復(fù)合檢索;利用需求元描述標(biāo)準(zhǔn)RGPS中概念層次的關(guān)系指導(dǎo)節(jié)點擴展,挖掘需求實例關(guān)聯(lián)檢索.
5)結(jié)果輸出與顯示層:根據(jù)統(tǒng)一輸入應(yīng)用程序接口(application programming interface,API)接收需求活動的請求,經(jīng)層次化語義檢索層獲得需要的結(jié)果,再按照一定的過濾規(guī)則,以本體有向超圖方式展示結(jié)果或統(tǒng)一輸出API反饋文本形式結(jié)果.一方面,達(dá)到需求活動對網(wǎng)絡(luò)化軟件需求的細(xì)粒度透明訪問;另一方面,通過定制API為需求跟蹤,需求變更管理和需求版本管理等需求活動按需接收文本結(jié)果,方便調(diào)用和集成.
由于需求元描述標(biāo)準(zhǔn)RGPS,因此廣泛采用的網(wǎng)絡(luò)化軟件需求的描述語言是 OWL(web ontology language)本體描述語言,其數(shù)據(jù)模型是本體圖,具體定義:
定義1(本體圖)本體圖記為G=(V,E,lV,lE),其中V是構(gòu)成該本體的全體概念集合,稱為本體圖的結(jié)點;E是概念到概念之間的關(guān)系集合,稱為本體圖的有向邊,有向邊的起點表示關(guān)系中實施作用的概念,終點表示關(guān)系中被作用的概念;lV,lE是本體圖結(jié)點和邊上的標(biāo)記函數(shù)[10].
根據(jù)本體圖模型,解決網(wǎng)絡(luò)化軟件需求存儲的關(guān)鍵是V中結(jié)點元素(起點vs和終點vo)和E中邊元素的表示問題.E集合中有向邊元素視為一個結(jié)點元素vp.網(wǎng)絡(luò)化軟件需求的存儲問題本質(zhì)上是三元組(vs,vp,vo)的存儲問題.采用原生方式存儲網(wǎng)絡(luò)化軟件需求文檔能適應(yīng)本體圖特點,克服基于內(nèi)存的存儲模式和基于傳統(tǒng)數(shù)據(jù)庫的存儲模式(三元組表、垂直分割和屬性表)存在的不足,擺脫傳統(tǒng)數(shù)據(jù)庫普通存在的阻抗失配問題,減少數(shù)據(jù)加載和更新時間[11].
完全索引是一種較有影響力的設(shè)計方法,通過建立6個索引,來包含三元組中3個元素所有可能的排序方式.例如(YARS)對三元組及其上下文信息建立了6個B+樹索引;Kowari則利用(AVL)和B樹來代替B+樹建立索引[12].如果能按關(guān)鍵字建立網(wǎng)絡(luò)化軟件需求文檔的索引,就可以根據(jù)關(guān)鍵字快速地檢索網(wǎng)絡(luò)化軟件需求文檔的內(nèi)容.通常情況下,這種倒排索引結(jié)構(gòu)由詞典(lexicon)和置入表兩部分組成.詞典用于存儲關(guān)鍵字(keywords),每個關(guān)鍵字和一個置入表(postings)相關(guān)聯(lián),該表中的每個指針指向與該關(guān)鍵字相關(guān)的某個文檔.為實現(xiàn)細(xì)粒度查詢,將置入表設(shè)計為二維指針鏈表:一維中每一指針指向該關(guān)鍵字相關(guān)的網(wǎng)絡(luò)化軟件需求文檔;另一維中每一指針都指向同一需求文檔中包含該關(guān)鍵字的一個三元組,并且包括該關(guān)鍵字在三元組中的統(tǒng)計信息.下面給出基于關(guān)鍵字的倒排索引算法[10].
利用基于關(guān)鍵字的倒排索引算法經(jīng)由置入表中第一維指針很容易得到與該關(guān)鍵字相關(guān)的網(wǎng)絡(luò)化軟件需求文檔,并且通過置入表第二維指針信息可以進(jìn)一步明確該關(guān)鍵字位置.在獲得關(guān)鍵字在本體圖中位置信息的同時,索引還同時返回相關(guān)的統(tǒng)計信息,因而能確保需求檢索的細(xì)粒度和精確度.
從全局管理和本體概念角度,結(jié)合領(lǐng)域模型和領(lǐng)域本體,采用分類算法(如線型條件隨機場CRF,支持向量機(support vector machine,SVM)等)實現(xiàn)對網(wǎng)絡(luò)化軟件需求有效組織和自動歸類,及層次化語義內(nèi)容檢索結(jié)果有序緩存,同時有利于提高檢索效率.
傳統(tǒng)的SVM分類利用關(guān)鍵字構(gòu)造特征向量,然后利用關(guān)鍵字向量之間余弦計算相似度是否大于閾值[13],從而實現(xiàn)簡單分類.其缺點是完全沒有考慮元描述RGPS和領(lǐng)域模型中定義各種的上下文關(guān)系.為此,采用線性條件隨機場算法CRF[14].由于輸入線性CRF分類算法的特征向量包括邊向量和數(shù)值屬性向量.首先,利用網(wǎng)絡(luò)化軟件需求元模型RGPS定義的概念上下文關(guān)系生成線性邊向量,算法過程如下:
設(shè)對于某個屬于概念C的實例i,輸入線性CRF的數(shù)值屬性向量所對應(yīng)的屬性p和屬性p的取值v,數(shù)值屬性向量(pd1,vd1),(pd2,vd2),…,(pdn,vdn);由網(wǎng)絡(luò)化軟件需求實例的線性邊向量生成算法得到邊屬性向量(pe1,ve1),(pe2,ve2),…,(pen,ven)作為線性條件隨機場算法CRF的輸入向量.線性條件隨機場算法CRF表示為如下形式:
其中,Z(x)對所有可能狀態(tài)的歸一化分配函數(shù),使得所在狀態(tài)序列的概率和為1,Z(x)的計算公式如下:
其中,y|ve和y|vd分別對應(yīng)邊屬性向量(pe1,ve1),(pe2,ve2),…,(pen,ven)和屬性向量(pd1,vd1),(pd2,vd2),…,(pdn,vdn),參數(shù)tk和sj表示邊和數(shù)值屬性的特征函數(shù),λk和uj分別表示邊特征和屬性特征的權(quán)重.根據(jù)最大熵原理和條件概率最大的狀態(tài)序列來確定需求實例分類.根據(jù)最大熵原理和條件概率最大的狀態(tài)序列來確定數(shù)據(jù)的類別[15].
為解決傳統(tǒng)語義檢索系統(tǒng)中存在的檢索形式單一,結(jié)果返回單一以及關(guān)聯(lián)檢索關(guān)注度不夠等問題,需要由淺入深挖掘潛在的語義信息.由于網(wǎng)絡(luò)化軟件遵循需求元描述標(biāo)準(zhǔn)RGPS,因此利用R/G/P/S本體概念層次間的關(guān)系,挖掘?qū)嵗c實例之間的關(guān)聯(lián),為動態(tài)需求跟蹤服務(wù)和需求變更分析創(chuàng)造條件.
定義2(關(guān)聯(lián)關(guān)系)網(wǎng)絡(luò)化軟件需求存在以下關(guān)聯(lián)關(guān)系:Rdirect(c1,c2)=r(c1,c2)表示存在從概念c1指向概念c2的直接關(guān)系;Rdirect(i1,i2)=r (i1,i2)表示存在實例i1指向?qū)嵗齣2的直接關(guān)系;Rindirect(c1,c2)=r(c1,ck)r(ck,ca)…r(cb,c2)表示概念c1和概念c2存在間接關(guān)系;Rindirect(i1,i2)=r(i1,ik)r (ik,ia)…r (ib,i2)表示實例i1指向?qū)嵗齣2存在間接關(guān)系.
根據(jù)定義2,可以以啟發(fā)式寬度優(yōu)先策略,利用需求元模型標(biāo)準(zhǔn)指導(dǎo)節(jié)點的擴展方式查找一條實例之間的間接關(guān)聯(lián).但由于需要對元模型標(biāo)準(zhǔn)RGPS依賴性較強,同時在子類嵌套層次較多的本體中會產(chǎn)生大量需要擴展的結(jié)點,影響查找效率,具體算法如下:
以武漢城市旅游出行規(guī)劃為例:美籍華人王教授按照天氣條件,賓館與景點距離和出行路況選擇交通工具等約束確定游玩路線.遵循需求元描述標(biāo)準(zhǔn)RGPS,基于改進(jìn)的SORL[15]經(jīng)過角色層模型、目標(biāo)層模型和過程層模型逐層分析和誘導(dǎo),得到服務(wù)層模型,最終基于互聯(lián)網(wǎng)動態(tài)挖掘軟件服務(wù),并實現(xiàn)按需服務(wù)的軟件規(guī)?;ㄖ?,從而構(gòu)造面向交通領(lǐng)域的按需回答平臺,以多媒體展示出行路線規(guī)劃推薦給最終用戶.圖2展示用戶輸入“武漢大學(xué)”到“江漢路”得到最佳出行路線規(guī)劃,以及天氣、交通和信息系統(tǒng)等綜合集成效果.
由于RGPS各層次模型相對比較復(fù)雜,只給出客戶角色王教授的出行路線目標(biāo)描述、出行路線過程描述、出行路線服務(wù)的部分描述示例如圖3所示.
遵循網(wǎng)絡(luò)化軟件需求RGPS元描述,采用基于RGPS的需求語義內(nèi)容管理的層次結(jié)構(gòu)初步實現(xiàn)原型工具RGPS-GM.其中,數(shù)據(jù)庫采用開源軟件Berkeley DB v4.7.25保證可靠和高性能;界面采用SUN公司的圖形類庫Java Swing和Sourceforge JUNG v2.0.1圖形化框架.
圖4給出RGPS-GM工具的總體視圖,包括工具欄,需求快速導(dǎo)航,網(wǎng)絡(luò)化軟件需求屬性(優(yōu)先級,穩(wěn)定性,版本號等),需求有向視圖窗口和查詢窗口等.用戶能對結(jié)果中的某個實例進(jìn)行觀察和導(dǎo)航.需求有向視圖窗口展示面向交通領(lǐng)域的按需回答平臺的完整需求描述,并以不同顏色(紅/黃/淺藍(lán)/綠)的圓點分別表示R/G/P/S的概念層次關(guān)系.查詢窗口支持簡單查詢(simple query),關(guān)聯(lián)查詢(relation query),層次查詢 (hierarchy query)和 高級查詢 (advanced query),實現(xiàn)任意粒度的查詢,具有很高的靈活性.
圖2 面向交通領(lǐng)域的按需回答平臺Fig.2 An on-demand Q/A Case in transport domain
圖3 部分基于RGPS的網(wǎng)絡(luò)化軟件需求Fig.3 Apart of RGPS-based requirement for networked software
RGPS-GM工具支持網(wǎng)絡(luò)化軟件需求任意實例的關(guān)聯(lián)查詢.根據(jù)用戶輸入的需求文檔中資源的URI,運用啟發(fā)式實例關(guān)聯(lián)查找算法能動態(tài)挖掘數(shù)據(jù)庫中相關(guān)聯(lián)的其它資源,圖5展示直接或間接關(guān)聯(lián)的R/G/P/S各層次資源關(guān)聯(lián)關(guān)系.
圖4 RGPS-GM界面Fig.4 An overview of RGPS-GM
圖5 RGPS-GM中關(guān)聯(lián)挖掘結(jié)果Fig.5 Association mining of RGPS-GM
語義Web與需求工程領(lǐng)域的結(jié)合尚屬較新探索領(lǐng)域.目前僅限于兩類情況:一是建立特定領(lǐng)域的本體為多個目標(biāo)應(yīng)用系統(tǒng)的需求提供共享知識庫,如基于本體的軟件需求恢復(fù)[16];二是基于本體的領(lǐng)域模型為相應(yīng)領(lǐng)域內(nèi)應(yīng)用系統(tǒng)的需求規(guī)范提供基礎(chǔ),實現(xiàn)知識重用,如基于本體的需求演化管理框架[17]等.
網(wǎng)絡(luò)化軟件的需求元描述RGPS決定網(wǎng)絡(luò)化軟件需求的數(shù)據(jù)模型是本體圖,其特殊性對傳統(tǒng)的需求管理技術(shù)提出很大挑戰(zhàn).本文提出了基于RGPS的網(wǎng)絡(luò)化軟件需求內(nèi)容管理的層次化結(jié)構(gòu),重點突破以下關(guān)鍵技術(shù):采用關(guān)鍵字的倒排索引算法保證支持對網(wǎng)絡(luò)化軟件需求的任意粒度檢索,以方便需求活動能共享需求內(nèi)容;采用基于線性條件隨機算法的需求實例分類算法實現(xiàn)自動組織和分類,提高管理系統(tǒng)的總體性能;提出基于啟發(fā)式實例關(guān)聯(lián)查找算法挖掘?qū)嵗兓蛢?nèi)在關(guān)聯(lián),為需求跟蹤和變更數(shù)據(jù)奠定基礎(chǔ).
下一步將重點圍繞進(jìn)一步研究需求跟蹤和需求變更,解決動態(tài)RGPS數(shù)據(jù)集的查詢優(yōu)化等問題;對需求分析,需求演化和需求驗證等活動的支撐服務(wù);完善原型系統(tǒng)RGPS-RM的功能,增強交互式瀏覽查詢,并在云計算和大數(shù)據(jù)等領(lǐng)域展開應(yīng)用研究.
致謝 感謝清華大學(xué)周立柱教授和唐杰副教授,武漢大學(xué)何克清教授,李兵教授和彭蓉教授,北京航空航天大學(xué)張莉教授,東北大學(xué)吳剛副教授的指導(dǎo)和幫助!
[1]李未.云計算和群體軟件工程[EB/OL].[2013-04-22].http:∥ ocow.copu.org.cn/zhutiyanjiang/201304/P020130422484782941399.pdf.
[2]馬于濤,何克清,李兵,等.網(wǎng)絡(luò)化軟件的復(fù)雜網(wǎng)絡(luò)特性實證[J].軟件學(xué)報,2011,22(3):381-407.
[3]陳小紅,尹斌,金芝.基于問題框架的需求建模:一種本體制導(dǎo)的方法[J].軟件學(xué)報,2011,22(2):177-194.
[4]劉建曉,何克清,王健,等.RGPS制導(dǎo)的按需服務(wù)組織與推薦方法[J].2013,36(2):238-251.
[5]ISO/IEC JTC1SC32WG2.ISO/IEC 19763-3,information technology-metamodel framework for interoperability[EB/OL].[2014-06-11].http:∥metadata-stds.org/19763/.
[6]王建.網(wǎng)絡(luò)式軟件的需求元建??蚣芗瓣P(guān)鍵技術(shù)研究[D].武漢,武漢大學(xué),2008.
[7]Borland.Borland CaliberRM [EB/OL].[2013-03-29].http:∥www.borland.com/us/products/caliber/index.html.
[8]IBM.DOORS(dynamic object oriented requirements system)[EB/OL].[2014-12-03].http://www.telelogic.com/index.cfm.
[9]IBM.Rational RequisitePro[EB/OL].[2014-06-06].ht-tp:∥www-306.ibm.com/software/awdtools/reqpro/.
[10]Wu Gang,Li Juanzi,Hu Jianqiang,et al.System Pi:a native RDF repository based on the hypergraph representation for RDF data model[J].Journal of Computer Science Technology,2009,24(4):652-664.
[11]Lu J,Ma L,Zhang L,et al.SOR:apractical system for ontology storage,reasoning and search[C]∥Proc of the 33rd Int′l Conf on Very Large Data Bases (VLDB 2007).Austria:ACM Press,2007:1402-1405.
[12]Gugnani S,Roul R K.Triple indexing:an efficient technique for fast phrase query evaluation[J].International Journal of Computer Applications,2014,87(13):9-13.
[13]Cristianini N,Shawe-Taylor J.An introduction to support vector machines[M].Cambridge,UK:Cambridge University Press,2000.
[14]李艷麗,周忠,吳威.一種雙層條件隨機場的場景解析方法[J].計算機學(xué)報,2013,36(9):1898-1907.
[15]Liu Wei,He Keqing.Requirements dynamic elicitation and analysis:heavyweight semantic inducement solution[J].Special Issue on Software Engineering and Complex Networks:DCDIS Series B,2007,14(S6):238-245.
[16]Elviawaty M,Eko K B,Heru S.Requirements recovery using ontology model for capturing end-to-end interaction of proven application software[J].International Journal of Software Engineering and Its Applications,2013,7(6):425-434.
[17]He Hongye,Wang Zhixue,Zhang Ying,et al.An ontologybased framework of requirements evolvement management[J].Journal of Software,2012,7(9):2018-2025.