何成萬,葉水琴
1.智能機器人湖北省重點實驗室(武漢工程大學),湖北 武漢 430205;2.武漢工程大學計算機科學與工程學院,湖北 武漢 430205
目標模型中目標關系的自動發現
何成萬1,2,葉水琴1,2
1.智能機器人湖北省重點實驗室(武漢工程大學),湖北 武漢 430205;2.武漢工程大學計算機科學與工程學院,湖北 武漢 430205
為了發現需求工程中層次目標模型的目標關系,提出了一種利用XML文件存儲目標模型的目標關系發現方法.首先從軟件系統需求文檔中提取目標,使用AND\OR樹對目標進行分解,根據目標之間的關系建立層次目標模型,將建立好的目標模型存儲為XML文件;然后按照規則文件規范給出目標關系規則文件,使用轉換程序將規則文件自動生成目標關系查詢文件;最后在XML開發工具中運行查詢文件即可得到目標關系查詢結果.通過實例機票預訂管理系統詳細的描述了目標發現方法的過程,在Altova XMLSpy開發環境中給出了父目標和非功能目標的查詢實現.實驗結果表明將層次目標模型保存在XML文件中有利于目標模型中信息的提取,使用XQuery能實現對目標模型XML文件中目標關系的自動發現.
目標模型;規則;目標關系
面向目標的需求分析方法是需求獲取和組織的重要方法之一.在面向目標的需求分析方法中,使用目標來判斷系統需求是否完整[1].如果需求描述能滿足目標,則說明該需求是完整,否則,需求不是完整的.在需求工程領域,有很多面向目標的分析方法.最常見的兩個目標分析方法是KAOS方法[2]和I*框架[3].除了這兩個方法,近年來出現了GONFR[4],Goal Process Requirement Net框架[5],Hierarchical Goal Model[6]等目標方法.這些目標方法首先從需求文檔中提取出初始目標,然后對初始目標進行細化和抽象,最后構建成目標模型.隨著面向目標需求分析方法的發展,面向目標的需求分析方法越來越被重視.為了在需求的后續階段更方便的使用目標模型,如何存儲目標模型和獲取目標模型中的目標關系成為關鍵問題.
EXtensible Markup Language(XML)是一套定義語義標記的規范,可以定義與特定領域有關的結構化標記[7].XML Schema是一種定義和檢驗XML文件格式的模式.XPath和XQuery是標準的XML文件查詢語言[8-9],用來描述選擇XML文檔元素的要求.
針對需求階段的層次目標模型存儲及目標關系發現問題,本文在分析目標模型[6,10]的基礎上,使用XML文件存儲需求階段的目標模型,實現了目標模型中目標關系的自動發現.
文獻[6]提出了一種層次目標模型,并給出了目標模型以及其形式化定義,該目標模型的最大特點是層次性,如圖1所示[6].在該目標模型圖中,功能性目標對應需求中的功能需求,包括業務目標、用戶目標和原子目標.最高層次的目標稱為業務目標,用六邊形表示,最低層的目標稱為原子目標,即不可再分解的目標,用矩形表示,中間層的目標稱為用戶目標,用圓角矩形表示.軟目標對應的是非功能需求,用橢圓形表示.
目標模型呈現出來的是一個層次形狀的目標關系圖,為了方便后面對目標模型的處理,將目標模型存儲為一定形式的文件是有必要的.XML是一套定義語義標記的規范,也是一種元標記語言,可以定義與特定領域有關的結構化標記.目標模型的最大特點是層次性,樹結構的XML文檔也是樹型層次結構,使用XML文件存儲目標模型,目標模型中的層次關系依然清晰可見.XML支持自定義標簽,這一點使得XML文件可以準確的描述目標模型的特性.除此之外,樹結構的XML文檔的查詢使用XPath和XQuery很容易實現,即提取目標模型中的信息很方便.因此,使用XML文件存儲目標模型是一種比較好的方式.

圖1 目標模型Fig.1 Goal model
將目標模型存儲至XML文件中,其映射關系如表1所示.

表1 目標模型到XML文件的映射Table 1 Map goal model to XML file
使用XML文件存儲目標模型,需要先定義目標模型的XML Schema.在XML Schema文件中,定義了目標
目標關系的自動發現方法過程如圖2所示.開發人員首先要為系統需求建立目標模型,然后將建立好的目標模型存儲為XML文件,按照給出目標關系的查詢規則文件使用轉換程序自動生成XQuery查詢程序,通過該查詢文件對XML目標模型進行信息處理,得到目標關系查詢結果,實現目標關系的自動發現.

圖2 目標關系的發現過程Fig.2 The process of discovery of goal relation
其中,查詢規則文件goalquery.rules的格式定義如下:

為了避免重復的編寫目標查詢文件,給出了查詢文件的自動生成算法.根據規則文件生成目標查詢文件,其過程算法描述如下:


本文使用Java語言實現了該算法,通過讀取規則文件中的目標模型和規則信息,和查詢文件框架組合成完整的查詢文件.
表2給出了幾種常見目標關系.

表2 目標關系Table 2 Goal relation
Altova XMLSpy是一個XML編輯工具[11],使用它可以對XML及其相關文件進行編輯、調試和運行.根據規則文件生成的關系查詢文件可以直接在Altova XMLSpy中運行,并得出結果.
通過機票預訂管理系統描述上述方法的應用.該系統通過機票預訂服務商為用戶提供機票查詢和預訂服務[12].功能需求包括:支持客戶查詢機票、訂票與退票;實現客戶積分管理;機票銷售的統計分析報表;自動完成與航空公司及銀行間的清算;軟目標主要包括:審計、安全性、易用性與可靠性.
3.1 目標模型的建立與存儲
Altova XMLSpy是一個英文的XML集成開發工具,為了避免出現字符編碼的問題,使用英文來來描述機票預訂管理系統目標模型.
根據機票預訂管理系統需求描述,提取出初步目標,包括功能性目標與非功能性目標.功能性目標有:機票管理,銀行清算,航空公司清算,退票,積分管理,機票查詢,訂票,銷售報表統計;非功能性目標有:審計,安全性,易用性,可靠性.
然后,對初步目標進行抽象或者分解,確定目標之間的關系,根據目標之間的關系建立機票預訂管理系統目標模型.建立的目標模型如圖3所示[6].
使用XML文件存儲目標模型時,機票管理作為XML文件根元素,依次存儲每個目標.每個目標Goal的信息包括目標名稱,目標層次,分解關系,非功能目標的關聯和子目標.例如銀行清算Bank account settled目標的XML標記描述,從中可以知道銀行清算Bank account settled是一個用戶目標,其分解屬性為AND,子目標有發送銀行請求Request sent to bank、銀行確定支付金額Count settle amount of bank、轉賬Transfer、異常提示Exception prompted和日志記錄Log.同銀行清算Bank account settled目標一樣,其子目標也有完整的信息描述.
3.2 實驗結果
上一節中給出了幾種常見的目標關系,事實上目標之間有很多有意義的關系,如相同語義的目標,這些目標是可以相互替換的.下面介紹父目標和非功能目標關系的自動發現.
(1)父目標
查詢目標模型文件GoalModel.xml中目標Log的所有父目標.其規則文件goal.rules描述如下:

使用規則轉換程序把goal.rules規則文件轉換成goal.xquery文件,生成的代碼如下所示:



圖3 機票預訂管理系統Fig.3 The ticket booking management system
在Altova XMLSpy中運行goal.xquery文件,得到的結果有Bank account settled、Airline company account settled、Unsubscribe和Book.
(2)非功能目標
查詢目標模型文件GoalModel.xml中的所有非功能目標.其規則文件goal.rules描述如下:

使用規則轉換程序把goal.rules規則文件轉換成goal.xquery文件,運行goal.xquery文件,得到的結果有Exception prompted、Log、Login和Query results showed四個.
通過對需求階段的目標模型的存儲和目標之間的關系進行研究和實驗,結果表明:使用XML文件存儲目標模型能體現目標之間的層次關系,存儲為XML文件的目標模型提取信息很方便.使用XQuery能實現目標模型中目標關系的自動發現.
現階段目標模型到XML文件的轉換是人工完成的,如果模型比較復雜,這將很耗費時間.目標模型到XML文件的自動轉換將是以后的研究方向.
致謝
感謝國家自然科學基金委員會、湖北省教育廳對本研究的支持和資助.
[1]王守信,張莉,王帥,等.一種目標可滿足性定性、定量表示與推理方法[J].軟件學報,2011,22(4):593-608.
WANG Shou-xin,Zhang Li,WANG Shui,et al.Quali-tative and quantitative representing and reasoning for goal satisfiability[J].Journal of Software,2011,22(4):593-608
[2]涂成茂,何成萬.一種基于KAOS和XML的橫切關注點識別方法[J].武漢工程大學學報,2011,33(9):101-104.
TU Cheng-mao,HE Cheng-wan.Method based on KAOS and XML for identification of crosscutting concern[J].Journal of Wuhan Institute of technology,2011,33(9):101-104.(in Chinese)
[3]管彪.基于i*的面向目標的需求分析方法的研究[D].合肥:合肥工業大學計算機與信息學院,2005.
GUAN Biao.Research on goal-rriented requirement analysis methodology based ON i*[D].Hefei:Hefei University of Technology,2005.(in Chinese)
[4]鄭麗偉.NFROnto:一種非功能需求本體元模型[J].北京信息科技大學學報,2012,27(6):78-83.
ZHENG Li-wei.NFROnto:An ontology meta model of software non-functional requirement[J].Journal of Beijing Information Science and Technology University,2012,27(6):78-83.(in Chinese)
[5]HE C W,TU C M.GPRN:a hierarchical framework for aspect-oriented requirement modeling[J].International Journal of Digital Content Technology and its Applications,2011,5(2):165-172.
[6]HE C W,TU C M.AspectQuery:a method for identification of crosscutting concerns in the requirement phase[J].The Institute of Electronics,Information and Communication Engineers,2013,E96-d(4):897-905.
[7]何成萬,焦素廷,李健.支持協同工作的加解密系統設計與實現[J].武漢工程大學學報,2009,31(3):74-75.
HE Cheng-wan,JIAO Su-ting,LI Jian.Design and realization of encryption[J].Journal of Wuhan Institute of technology,2009,31(3):74-75.(in Chinese)
[8]ZHANG S Q,LIU S L,GAO B,et al.Research of WebInformationAutomaitcExtractionBasedon XPATH[C]//2011 4th IEEE International Conference on Computer Science and Information Technology, Chengdu:Published by Institute of Electrical and Electronics Engineers Inc,2011:161-164.
[9]JU J J,WEI Y S.An Effective Strategy of XQuery on Relational Database[C]//2011 International Conference on Computer.Electrical,and System Sciences,and Engineering.Wuhan:Published by Institute of Electrical and Electronics Engineers Inc,2011:35-38.
[10]GIL A,ARAUJO J.AspectKAOS:Integrating Early-Aspects into KAOS[C]//Proceedings of the 15th Workshop on Early Aspects,EA'09,Colocated with the 8th International Conference on Aspect-Oriented Software Development.AOSD09Charlottesville:Published by Association for Computing Machinery,2009:31-36.
[11]Altova.XMLSpy[EB/OL].http://www.altova.com/.2015-03-26.(in Chinese)
[12]譚慶平,毛新軍,董威.軟件工程實踐教程[M].北京:高等教育出版社,2009.
TAN Qing-pin,MAO Xin-jun,DONG Wei.Practical tutorial for software engineering[M].Beijing:Higher Education Press,2009.(in Chinese)
Automatic discovery of goal relationship in goal model
HE Cheng-wan1,2,YE Shui-qin1,2
1.Hubei Key Laboratory of Intelligent Robot(Wuhan Institute of Technology),Wuhan 430205,China;2.School of Computer Science and Engineering,Wuhan Institute of Technology,Wuhan 430205,China
To discover the relationship between goals in hierarchical goal model in requirements engineering,a method for discovering goal relationship using XML file to store goal model was proposed.First,the goals were extracted from requirements document of a software system and were decomposed using AND/OR tree;hierarchical goal model was established based on the relation among goals.Second,a rule file of goal relation was given according to the specification of rule file and was transformed into a query file using conversion program.Finally,the query result of goal relation was obtained by running the query file in XML development tool.The process of the proposed method was illustrated by a case study of a ticket booking management system.The query realization of father goal and non-functional was got in Altova XMLSpy development environment.The results indicate that storing goal model into XML file is beneficial to get information in goal model,and using XQuery can realize the discovery of goal relationship in goal model.
goal model;XML;rule file;goal relationship
TP311.5
A
10.3969/j.issn.1674-2869.2015.04.011
1674-2869(2015)04-0051-05
本文編輯:陳小平
2015-03-26
國家自然科學基金項目(61272115,60873024);湖北省教育廳重點研究項目(D20121508);湖北省教育廳優秀中青年團隊項目(T201206)
何成萬(1967-),男,湖北荊門人,教授,博士.研究方向:軟件工程.