一種在需求模型中識別橫切關(guān)注點的方法
【專利摘要】本發(fā)明公開了一種在需求模型中識別橫切關(guān)注點的方法,包括以下步驟:1)從需求文檔中提取目標(biāo);2)對目標(biāo)進(jìn)行抽象和細(xì)化,根據(jù)目標(biāo)之間的關(guān)系建立層次目標(biāo)模型;3)將目標(biāo)模型映射存儲為XML文件;4)通過XQuery編寫查詢文件對XML文件中的目標(biāo)信息進(jìn)行處理,根據(jù)目標(biāo)的中心度值和分散度值來確定橫切關(guān)注點,實現(xiàn)XML文件中目標(biāo)模型的橫切關(guān)注點識別與組合。本發(fā)明主要用于解決面向方面需求工程的橫切關(guān)注點識別問題,需求階段的橫切關(guān)注點識別方法研究有利于軟件的后續(xù)開發(fā)活動的過渡,可以提高面向方面軟件開發(fā)質(zhì)量與效率。
【專利說明】一種在需求模型中識別橫切關(guān)注點的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及面向方面需求工程,尤其涉及一種在需求模型中識別橫切關(guān)注點的方法。
【背景技術(shù)】
[0002]面向方面編程AOP (Aspect — Oriented Programming)可以被認(rèn)為是對面向?qū)ο蠹夹g(shù)的一種補充和完善,它彌補了面向?qū)ο蟪绦蛟O(shè)計方法在跨越多個模塊行為上的不足。AOP通過引進(jìn)Aspect將影響多個類的行為(橫切關(guān)注點)封裝到一個可重用模塊中,從而消除了 OOP引起的代碼混亂和分散問題,降低了類與類之間的耦合度,使軟件更易于操作、維護(hù)、復(fù)用和擴(kuò)展。AOP語言發(fā)展較快,實現(xiàn)層中的相關(guān)方法和技術(shù)(如Aspect的重用、切入點的定義、重構(gòu)等)受到了大多數(shù)研究人員的關(guān)注。AOP作為一種編程技術(shù),它僅僅局限于軟件開發(fā)的實現(xiàn)階段處理橫切關(guān)注點。然而,在實現(xiàn)階段處理橫切關(guān)注點往往是不夠的。首先,一些重要的橫切關(guān)注點需要在實現(xiàn)階段之前識別出來。比如,在設(shè)計初期階段如體系結(jié)構(gòu)設(shè)計階段就需要密切考慮性能和安全性等橫切關(guān)注點。事實上,開發(fā)初期的活動往往起著決定性作用并對整個系統(tǒng)有著巨大的影響。其次,現(xiàn)代軟件系統(tǒng)通常運行在不穩(wěn)定的環(huán)境中,其業(yè)務(wù)規(guī)則經(jīng)常改變,因此軟件系統(tǒng)必須做到較方便的去適應(yīng)與演化。而如果處理不恰當(dāng),橫切關(guān)注點便會影響軟件系統(tǒng)的適應(yīng)性和演化。
[0003]橫切關(guān)注點的處理不應(yīng)局限于實現(xiàn)階段,而應(yīng)該在軟件開發(fā)初期,比如,需求工程階段、體系結(jié)構(gòu)設(shè)計階段或整個軟件生命周期中,系統(tǒng)地研究橫切關(guān)注點。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題在于針對現(xiàn)有技術(shù)中的缺陷,提供一種在需求模型中識別橫切關(guān)注點的方法。
[0005]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種在需求模型中識別橫切關(guān)注點的方法,包括以下步驟:
1)從需求文檔中提取目標(biāo),根據(jù)需求模型生成目標(biāo)模型;
2)對目標(biāo)模型進(jìn)行抽象和細(xì)化,根據(jù)目標(biāo)之間的關(guān)系建立層次目標(biāo)模型,即目標(biāo)分解模型;
3)將目標(biāo)分解模型映射存儲為XML文件;
4)根據(jù)XML文件和橫切關(guān)注點的識別規(guī)則,通過XQuery編寫查詢文件對XML文件中的目標(biāo)信息進(jìn)行處理,根據(jù)識別規(guī)則分別實現(xiàn)XML文件中目標(biāo)模型的橫切關(guān)注點識別與組合;所述識別規(guī)則為:
在目標(biāo)分解模型中,利用該目標(biāo)的分散度值m和中心度值η來判定目標(biāo)是否為橫切關(guān)注點;其中,一個目標(biāo)的分散度值等于它的所有父節(jié)點的中心度之和,一個目標(biāo)的中心度值等于它的所有子節(jié)點的分散度之和;分散度是指一個目標(biāo)被其它目標(biāo)直接引用的次數(shù),中心度指的是一個目標(biāo)直接引用其它目標(biāo)的個數(shù); 若分散度值與中心度值的差值大于給定閥值a,則認(rèn)為該目標(biāo)是橫切關(guān)注點。
[0006]按上述方案,所述閥值a的范圍為7至10。
[0007]按上述方案,所述XML文件的格式定義為XML Schema文件。
[0008]按上述方案,由目標(biāo)分解模型映射為XML文件的實現(xiàn)步驟為:
(3.1)采用深度優(yōu)先遍歷目標(biāo)分解模型,先存儲目標(biāo)屬性信息;
(3.2)存儲目標(biāo)名稱信息;
(3.3)遞歸存儲子目標(biāo)的名稱信息和屬性信息。
[0009]按上述方案,利用XQuery根據(jù)識別規(guī)則識別分別實現(xiàn)XML文件中目標(biāo)模型的橫切關(guān)注點識別與組合過程為:
(4.1)讀取XML目標(biāo)文件;
(4.2)根據(jù)識別規(guī)則查找出相應(yīng)的目標(biāo)信息;
(4.3)輸出顯示識別出的橫切關(guān)注點及其與基本關(guān)注點的組合結(jié)果。
[0010]本發(fā)明產(chǎn)生的有益效果是:
本發(fā)明在目標(biāo)模型的基礎(chǔ)上,分析各種目標(biāo)分解模型情形下橫切關(guān)注點的表現(xiàn)形式并總結(jié)橫切關(guān)注點在目標(biāo)模型中的識別規(guī)則,研究目標(biāo)模型與XML Schema文件的映射以及XML文件中的目標(biāo)模型存儲過程,利用XQuery根據(jù)識別規(guī)則分別實現(xiàn)XML文件中目標(biāo)模型的橫切關(guān)注點識別和組合過程。需求階段的橫切關(guān)注點識別方法研究有利于軟件開發(fā)的系統(tǒng)架構(gòu)及設(shè)計等后續(xù)階段的進(jìn)行,為構(gòu)建面向方面軟件提供理論支持。
[0011]
【專利附圖】
【附圖說明】
[0012]下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明,附圖中:
圖1是本發(fā)明實施例的方法流程圖。
【具體實施方式】
[0013]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0014]如圖1所示,一種在需求模型中識別橫切關(guān)注點的方法,包括以下步驟:
1)根據(jù)需求模型生成目標(biāo)模型;
2)對目標(biāo)模型進(jìn)行分解,分解成基本目標(biāo)的組合;
3)將目標(biāo)分解模型映射存儲為XML文件;XML文件的格式定義為XMLSchema文件,由目標(biāo)分解模型映射為XML文件的實現(xiàn)步驟為:
(3.1)采用深度優(yōu)先遍歷目標(biāo)分解模型,先存儲目標(biāo)屬性信息;
(3.2)存儲目標(biāo)名稱信息;
(3.3)遞歸存儲子目標(biāo)的名稱信息和屬性信息。
[0015]4)根據(jù)XML文件和橫切關(guān)注點的識別規(guī)則,利用XQuery根據(jù)識別規(guī)則識別分別實現(xiàn)XML文件中目標(biāo)模型的橫切關(guān)注點識別與組合過程;
識別規(guī)則為:在目標(biāo)模型中,目標(biāo)被充分分解和細(xì)化,目標(biāo)模型進(jìn)行被充分分解和細(xì)化后可為以下狀態(tài):目標(biāo)分解模型中存在與軟目標(biāo)相鏈接的目標(biāo);目標(biāo)分解模型中僅存在AND分解;目標(biāo)分解模型中存在OR分解;除以上狀態(tài)的其他情況。如果待開發(fā)系統(tǒng)中存在橫切關(guān)注點,則在充分分解和細(xì)化的目標(biāo)模型中,橫切關(guān)注點的分散和糾纏特性便會顯現(xiàn)出來,然后根據(jù)目標(biāo)的分散度和中心度來識別橫切關(guān)注點。所謂分散度是指一個目標(biāo)被其它目標(biāo)直接引用的次數(shù),中心度指的是一個目標(biāo)直接引用其它目標(biāo)的個數(shù)。很多時候,目標(biāo)的分散和糾纏關(guān)系通過簡單的分散度和中心度不能確定出來。這時候我們就應(yīng)該深入分析目標(biāo)之間的關(guān)系。
[0016]我們發(fā)現(xiàn)目標(biāo)之間的分散和糾纏特性不僅跟當(dāng)前目標(biāo)的分散度和中心度有關(guān)系,還跟目標(biāo)的父目標(biāo)以及目標(biāo)的子目標(biāo)的分散度和中心度有關(guān)系。我們給目標(biāo)定義兩個相互影響的狀態(tài)值,一個是分散度值m,另一個是中心度值η。一個目標(biāo)的分散度值等于它的所有父節(jié)點的中心度之和,一個目標(biāo)的中心度值等于它的所有子節(jié)點的分散度之和。一個具有分散度值的目標(biāo)被認(rèn)為是一個實現(xiàn)目標(biāo),這個目標(biāo)很有可能是橫切關(guān)注點。反之,一個具有較高中心度值的目標(biāo)被認(rèn)為是一個整合目標(biāo),這種高中心度的目標(biāo)不太可能是橫切關(guān)注點。擴(kuò)散度(Dispersity)是指分散度值與中心度值的差值,它可以作為橫切關(guān)注點的判定因子。取一個合適的閥值a,如果目標(biāo)的擴(kuò)散度大于給定閥值,那么該目標(biāo)被認(rèn)為是橫切關(guān)注點,反之則不是。在實際試驗中,我們?nèi)¢y值a的范圍為7至10,獲得較好的效果。
[0017]進(jìn)一步的,在分析目標(biāo)模型的基礎(chǔ)上,因為軟目標(biāo)是典型的橫切關(guān)注點,它一般橫跨多個基本關(guān)注點,所以與軟目標(biāo)相鏈接的目標(biāo)被判定為橫切關(guān)注點;
而且,如果一個目標(biāo)為橫切關(guān)注點,它有子目標(biāo),那么,它的子目標(biāo)也被判定為橫切關(guān)注點。
[0018]利用XQuery根據(jù)識別規(guī)則識別分別實現(xiàn)XML文件中目標(biāo)模型的橫切關(guān)注點識別與組合過程為:
(4.1)讀取XML目標(biāo)文件;
(4.2)根據(jù)識別規(guī)則查找出相應(yīng)的目標(biāo)信息;
(4.3)輸出顯示識別出的橫切關(guān)注點及其與基本關(guān)注點的組合結(jié)果。
[0019]應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種在需求模型中識別橫切關(guān)注點的方法,其特征在于,包括以下步驟: 1)從需求文檔中提取目標(biāo),根據(jù)需求模型生成目標(biāo)模型; 2)對目標(biāo)模型進(jìn)行抽象和細(xì)化,根據(jù)目標(biāo)之間的關(guān)系建立層次目標(biāo)模型,即目標(biāo)分解模型; 3)將目標(biāo)分解模型映射存儲為XML文件; 4)根據(jù)XML文件和橫切關(guān)注點的識別規(guī)則,利用XQuery根據(jù)識別規(guī)則分別實現(xiàn)XML文件中目標(biāo)模型的橫切關(guān)注點識別與組合;所述識別規(guī)則為: 在目標(biāo)分解模型中,利用該目標(biāo)的分散度值m和中心度值η來判定目標(biāo)是否為橫切關(guān)注點;其中,一個目標(biāo)的分散度值等于它的所有父節(jié)點的中心度之和,一個目標(biāo)的中心度值等于它的所有子節(jié)點的分散度之和;分散度是指一個目標(biāo)被其它目標(biāo)直接引用的次數(shù),中心度指的是一個目標(biāo)直接引用其它目標(biāo)的個數(shù); 若分散度值與中心度值的差值大于給定閥值a,則認(rèn)為該目標(biāo)是橫切關(guān)注點。
2.根據(jù)權(quán)利要求1所述的識別橫切關(guān)注點的方法,其特征在于,所述閥值a的范圍為7至10。
3.根據(jù)權(quán)利要求1所述的識別橫切關(guān)注點的方法,其特征在于,所述XML文件的格式定義為XML Schema文件。
4.根據(jù)權(quán)利要求1所述的識別橫切關(guān)注點的方法,其特征在于,由目標(biāo)分解模型映射為XML文件的實現(xiàn)步驟為: (3.1)采用深度優(yōu)先遍歷目標(biāo)分解模型,先存儲目標(biāo)屬性信息; (3.2)存儲目標(biāo)名稱信息; (3.3)遞歸存儲子目標(biāo)的名稱信息和屬性信息。
5.根據(jù)權(quán)利要求1所述的識別橫切關(guān)注點的方法,其特征在于,利用XQuery根據(jù)識別規(guī)則識別分別實現(xiàn)XML文件中目標(biāo)模型的橫切關(guān)注點識別與組合過程為: (4.1)讀取XML目標(biāo)文件; (4.2)根據(jù)識別規(guī)則查找出相應(yīng)的目標(biāo)信息; (4.3)輸出顯示識別出的橫切關(guān)注點及其與基本關(guān)注點的組合結(jié)果。
【文檔編號】G06F9/45GK104407908SQ201410703363
【公開日】2015年3月11日 申請日期:2014年11月26日 優(yōu)先權(quán)日:2014年11月26日
【發(fā)明者】葉水琴, 何成萬 申請人:武漢工程大學(xué)