摘要:在對服務組裝需求分析的研究過程中,提出一種新的基于XML的從軟件模型到程序流程的映射機制#65377;利用XML(schema)對服務組裝規約進行形式化描述,采用數據綁定技術對XML文檔描述的軟件模型進行解析,最后通過映射生成程序流程#65377;實例證明了該技術的可行性#65377;
關鍵詞:需求分析; 服務組裝; 可擴展標記語言; 軟件模型; 程序流程; 數據綁定
中圖分類號:TP311.5
文獻標志碼:A
文章編號:1001-3695(2007)10-0211-02
隨著軟件工業的成熟和網絡技術#65380;信息技術的飛速發展,因特網上涌現出大量可以重用的服務,怎樣有效利用網上的資源#65380;縮短軟件開發的周期和提供多種服務成為研究熱點#65377;服務公開的一些方法提供了可被其他應用程序使用的功能,而且這些功能的使用與應用程序的編程語言#65380;操作系統和硬件平臺無關#65377;需求分析工具的研究是異構服務組裝平臺重要的組成部分#65377;如何科學地設計需求分析工具#65380;幫助用戶高效快速地進行應用軟件開發一直是這個領域研究的焦點#65377;
目前,開發者采用的需求分析方法基本上均是通過結構化的分析方法對軟件系統建模#65377;但是這種方法存在一定的局限性,而且使用起來比較復雜,從需求分析到程序流程的生成過程自動化程度很低#65377;筆者研究和設計了一種基于異構服務的應用軟件需求分析器,對異構服務需求分析器的設計原理進行了介紹,并著重對從軟件模型到程序流程的映射過程進行了基于XML的形式化描述#65377;
1異構服務組裝平臺結構和需求分析器設計原理
服務組裝平臺總體流程如圖1所示,主要包括需求分析#65380;服務組裝和工作流驅動三部分#65377;從圖中可以看出,需求分析是服務組裝中的重要組成部分,其自動化程度直接關系到軟件系統性能的好壞#65377;
需求分析器上建立了搜索引擎和服務庫,可以搜索和展示服務庫中的服務,反饋服務的參數信息#65377;針對給定任務,用戶通過人機界面與平臺交互,分行業領域查詢服務庫中已注冊的服務,對服務庫進行總體了解#65377;
結合需求分析器提供的功能分解界面,參考服務庫中的服務,用戶采用樹型結構對任務進行功能分解#65377;一般分為四層:a)根節點為所要組裝的軟件;b)中間節點為服務功能(對應大粒度的服務);c)中間節點為集合功能(對應中粒度的服務);d)葉子節點為子功能(對應小粒度的服務或者原子服務)#65377;
一般將小粒度功能模塊之間的關系規范成五種關系,即順序#65380;循環#65380;分支#65380;并行和選擇#65377;在面向對象和面向過程的軟件設計中,這五種關系能夠表達任何復雜的結構和流程#65377;
產生的樹型結構軟件模型如圖2所示,利用系統提供的一套映射機制將軟件模型自動轉換為程序流程#65377;
本文利用統一的XML文檔為后續的異構服務組裝及工作流驅動兩部分進行交互,程序流程生成后,將相關的信息保存到XML文檔中,交付服務組裝模塊使用#65377;
2樹型軟件結構到程序流程映射的形式化描述
2.1服務的XSD規范
本文利用BNF范式給出服務#65380;綜合服務#65380;連接子組裝規約的形式化描述定義#65377;
1)服務
2)綜合服務
3)連接子
2.2從軟件模型到程序流程映射描述
2.2.1描述規約
建立UseCase#65380;Connection#65380;Requirement#65380;Step#65380;OptionConnection五個類,用于記錄需求分析工程中的信息#65377;用XML描述語言給出它們的規約描述#65377;
Step類標志樹型結構中功能模塊;Requirement類標志一個獨立的功能模塊;Connection類標志獨立的功能模塊與子功能模塊之間的歸屬關系#65377;因此,Requirement標志的功能模塊其實并不獨立,它通過Connection類與它所歸屬于的功能模塊建立聯系;OptionConnection類標志非獨立的子功能模塊之間的關系;UseCase類則是整個需求分析過程的描述,記錄了需求分析中的所有信息#65377;
2.2.2映射原理和過程
在映射過程中,根據上述得到完整的樹型軟件模型的XML文檔(*XML),采用數據綁定技術對XML文檔進行解組——就是將XML文檔轉換成Java類;經編譯后,形成應用軟件實體#65377;通過軟件測試后,若發現不能滿足用戶需求,又可以通過編組將Java文件轉換成XML文檔,經過調試處理后再重復上述過程,變成比較完善的#65380;能滿足用戶需求的Java實體#65377;XML數據綁定(data binding)是一種處理XML文件的技術,它可以從應用程序讀取XML文件的內容,甚至新增#65380;修改#65380;刪除XML文件內某筆數據#65377;這樣一來,XML文件可以作為不同應用系統之間交換數據的媒介#65377;數據綁定技術是通過marshalling技術來處理XML文件內容的#65377;Marshalling技術分為兩部分,其中,marshalling將Java類的內容轉換成XML;unmarshalling將XML文件內容轉換成Java類#65377;由此可以提高映射的靈活性和效率#65377;
2.2.3實例研究
本文以成績查詢系統中查找平均成績和總成績的子程序為例(圖3)來具體看看如何將它映射成程序流程#65377;假設并列功能模塊之間默認關系為從左至右#65377;
對給定任務,首先建立一個UseCase類的對象case1,用于保存需求分解的所有信息#65377;為成績查詢系統建立Requirement類的對象require1,標志軟件系統;為每一個服務功能依次建立Step類的對象step1#65380;step2#65380;step3,分別標志數據庫入口#65380;數據庫操作和打印三個服務功能#65377;對于服務功能2,建立Requirement類的第二個對象require2來標志其細化;建立Step類的兩個對象step4#65380;step5細分功能,分別標志成績求和及求平均成績兩個子功能#65377;為step4建立Requirement類的對象require3標志其細化,require3包含step6#65380;step7兩個對象,分別標志科求和及總體求和兩個子功能#65377;其中step2#65380;require2以及step4#65380;require3分別采用Connection類的對象connection1#65380;connection2來標志#65377;另外,(step1#65380;step2#65380;step3)和(step4#65380;step5)以及(step6#65380;step7)這三類兄弟節點則采用OptionConnection類的四個對象(optionconn1#65380;optionconn2),optionconn3,optionconn4標志#65377;
建立一個Requirement類的數組ReqArr,包含require1#65380;require2#65380;require3三個元素;建立三個Step類的數組StepArr1#65380;StepArr2#65380;StepArr3,分別包含step1#65380;step2#65380;step3和step4#65380;step5以及step6#65380;step7三組元素;建立一個Connection類數組ConnArr,包含connecion1#65380;connection2兩個元素;建立OptionConnection類數組OptionConnArr,包含optionconn1#65380;optionconn2#65380;optionconn3和optionconn4四個元素#65377;其形式化描述如下:
從上面可以看出,功能模塊到所建立的對象之間其實是一種簡單的一一映射關系#65377;調用Java的paint函數就可以將case1中對象保存的信息用圖的方式畫出,如圖4所示#65377;
3結束語
基于異構服務的軟件開發方法(service based software development)有利于在軟件開發中減輕重復勞動,提高軟件的開發效率#65380;質量和可維護性#65377;本文提出的基于XML和Java的服務組裝需求分析的解決方案,將軟件模型到程序流程的映射過程描述進一步完善,為服務組裝提供更好的支持,提高了軟件的開發效率,增強了系統的靈活性#65380;可擴展性和易維護性#65377;改善和開發新的服務組裝技術規范具有重要的理論和應用意義#65377;
參考文獻:
[1]竇郁宏,陳松喬. 程序挖掘中需求描述的研究[J]. 計算機工程與應用, 2002,38(10):5356.
[2]普元公司網站[EB/OL].(2005).http://www.primeton.com.
[3]互聯網實驗室網站[EB/OL].(2004).http://www.chinalabs.com.
[4]中國科學院軟件研究所網站[EB/OL].(2003).http://www.ios.ac.cn.
[5]SHENG Jinfang, CHENT Songqiao, WANG Bin. COTS evaluation and selection based on requirement decomposition[J]. Chinese Journal of Electronics, 2005,14(1):6267.
[6] WU H H. Using grey theory in quality function deployment to analyse dynamic customer requirements[J]. International Journal of Advanced Manufacturing Technology, 2005, 11(3):12411247.
[7]AUGUSZTINOVICZ F. Derivation of train track isolation requirement for a steel road bridge based on vibroacoustic analyses[J]. Journal of Sound and Vibration, 2006,3(6) :953964.
[8]徐賽華.軟件需求分析研究[J].吉林師范大學學報:自然科學版,2006,27(1):104105,110.
第10期謝陸寧,等:
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”