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