網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng)的制作方法
【專利摘要】網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng),為客戶端服務(wù)器架構(gòu),客戶端包括:圖形化軟件體系結(jié)構(gòu)建模模塊、體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊;服務(wù)器包括:文件同步管理模塊、Web?Services演化接口模塊。用戶通過協(xié)同開發(fā)對業(yè)務(wù)層的圖像化建模后,通過該系統(tǒng)的代碼工程框架生成模塊生成代碼框架,從而消除了業(yè)務(wù)層到代碼實現(xiàn)層的隔閡。通過把CCO模型思想引入并改造SCA,是整個SCA具有動態(tài)演化性,把這個動態(tài)演化機制封裝成接口提供給第三方感知驅(qū)動演化系統(tǒng),使整個代碼框架具有了演化功能。本發(fā)明實現(xiàn)了為網(wǎng)構(gòu)化大型復(fù)雜軟件系統(tǒng)的研制提供頂層設(shè)計,為網(wǎng)構(gòu)軟件開發(fā)提供了代碼生成技術(shù),為網(wǎng)構(gòu)軟件的動態(tài)演化提供支持的總體開發(fā)目標(biāo)。
【專利說明】網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種網(wǎng)構(gòu)軟件全生命周期建模實現(xiàn)系統(tǒng),屬于計算機軟件開發(fā)技術(shù)和軟件體系結(jié)構(gòu)演化領(lǐng)域。
【背景技術(shù)】
[0002]網(wǎng)構(gòu)軟件的環(huán)境是動態(tài)多變的,隨時都可能產(chǎn)生情境元素的變化。當(dāng)服務(wù)提供者的相應(yīng)情境變化(如該服務(wù)實體退出網(wǎng)構(gòu)軟件體系,或被用服務(wù)狀態(tài)改為不可用,或者其QoS屬性發(fā)生變化)發(fā)布時,主服務(wù)實體就在第一時間感知到這一變化。當(dāng)服務(wù)實體得到情境感知變化后,會根據(jù)自己的需求來篩選信息,并根據(jù)自己感興趣的情境進(jìn)行自適應(yīng)調(diào)整或啟動新的聚合過程,從而實現(xiàn)動態(tài)的演化,服務(wù)實體會將自己的動態(tài)演化邏輯定義為規(guī)貝U,用于感知到新的情境變化時激發(fā)。對于上層用戶而言,情境感知和動態(tài)演化的過程是透明的。服務(wù)聚合、情境感知以及動態(tài)演化,是服務(wù)實體運行中的三種行為,服務(wù)聚合帶來情境感知,情境感知引起動態(tài)演化,而動態(tài)演化又可能發(fā)起新的情境感知和服務(wù)聚合過程,三者彼此關(guān)聯(lián),共同作用,保證網(wǎng)構(gòu)軟件體系中的服務(wù)實體運行在一個良好的狀態(tài)上。
[0003]隨著互聯(lián)網(wǎng)行業(yè)的迅猛發(fā)展,越來越多的在線商業(yè)解決方案被提出。然而任何一個服務(wù)都只能滿足相對單一的客戶需求。服務(wù)提供商們迫切希望現(xiàn)有的服務(wù)能夠被方便地組合成功能更加強大的增值服務(wù),用來滿足更為多樣化的需求,所以人們提出了 Web服務(wù)組合的概念。在大量的Web服務(wù)中,有相當(dāng)一部分服務(wù)能夠?qū)崿F(xiàn)相同功能,但是卻擁有不同的非功能屬性,如價格、響應(yīng)時間和可靠性等。這些非功能屬性被統(tǒng)稱為QoS (Quality ofService)。
[0004]網(wǎng)構(gòu)軟件環(huán)境中的上下文信息主要包括了與運行于Internet平臺之上的服務(wù)實體相關(guān)的所有上下文信息以及服務(wù)實體為了相互聚合、協(xié)同工作從而形成網(wǎng)構(gòu)軟件所需的上下文信息。通過這些上下文信息,服務(wù)實體就能夠感知到其他服務(wù)實體的狀態(tài)和運行時信息,從而能夠為了共同的應(yīng)用需求聚合到一起形成網(wǎng)構(gòu)軟件。同時,在網(wǎng)構(gòu)軟件的運行過程中,這些上下文信息還能夠幫助構(gòu)成網(wǎng)構(gòu)軟件的服務(wù)實體根據(jù)Internet環(huán)境的變化以及其他服務(wù)實體的狀態(tài)變化作出自適應(yīng)的調(diào)整,從而帶動整個網(wǎng)構(gòu)軟件呈現(xiàn)出動態(tài)自適應(yīng)和自演化的特性。然而,由于網(wǎng)構(gòu)軟件運行于Internet平臺之上,因此由網(wǎng)構(gòu)軟件所構(gòu)成的應(yīng)用與普適計算中上下文感知領(lǐng)域的應(yīng)用存在一定的差別。
[0005]軟件演化是指在軟件系統(tǒng)的生命周期內(nèi)軟件維護和軟件更新的動態(tài)行為。在現(xiàn)代軟件系統(tǒng)的生命周期內(nèi),演化是一項貫穿始終的活動,系統(tǒng)需求的改變,功能實現(xiàn)的增強,新功能的加入,軟件體系結(jié)構(gòu)的改變,軟件缺陷的修復(fù),運行環(huán)境的改變無不要求軟件系統(tǒng)具有較強的演化能力,能夠快速適應(yīng)改變,減少軟件維護的代價。
[0006]另外,在網(wǎng)構(gòu)軟件中,大型復(fù)雜軟件需要由龐大的構(gòu)件組成,構(gòu)件由連接件建立連接依賴關(guān)系組成軟件,連接件建立的不只是兩個構(gòu)件之間的二元關(guān)系,也可以是多個構(gòu)件之間的依賴關(guān)系。如果使用普通圖來表示由縱橫交錯的構(gòu)件組成的體系結(jié)構(gòu),生成時開銷很大,且體系圖龐大不易處理。[0007]當(dāng)前基于軟件體系結(jié)構(gòu)的研究都主要集中在描述系統(tǒng)的靜態(tài)表現(xiàn)形式上,系統(tǒng)的架構(gòu)被認(rèn)為是比較穩(wěn)定的,在系統(tǒng)的整個生命周期中不易發(fā)生變化,系統(tǒng)的演化主要集中在構(gòu)件的演化上"。相應(yīng)的建模模型也都是靜態(tài)的模型。沒有一個支持動態(tài)體系結(jié)構(gòu)演化的模型。設(shè)計一個支持動態(tài)演化的體系結(jié)構(gòu)模型具有重要意義。
【發(fā)明內(nèi)容】
[0008]本發(fā)明技術(shù)解決問題:為了解決上述難點問題,提供一種網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng),消除了從高層業(yè)務(wù)描述到可運行網(wǎng)構(gòu)軟件層的隔閡,支持多人協(xié)同開發(fā)保證大規(guī)模復(fù)雜軟件系統(tǒng)的構(gòu)件開發(fā),同時支持軟件運行期軟件體系結(jié)構(gòu)演化。
[0009]本發(fā)明技術(shù)解決方案包括:網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng),所述系統(tǒng)為客戶端服務(wù)器架構(gòu);客戶端包括:圖形化軟件體系結(jié)構(gòu)建模模塊、體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊;服務(wù)器端包括:文件同步管理模塊、Web Services演化接口模塊;
[0010]圖形化軟件體系結(jié)構(gòu)建模模塊,米用MVC (Model-View-Controller)的模式,把視圖、模型、控制相分離,形成了繪圖區(qū)、圖元數(shù)據(jù)模型和控制中心三個子功能模塊;用戶通過拖拽圖元即體系結(jié)構(gòu)中的構(gòu)件、連接件,在繪圖區(qū)中構(gòu)建整個應(yīng)用程序的體系結(jié)構(gòu)框架,此時應(yīng)用程序體系結(jié)構(gòu)框架包含多個圖元,每個圖元對應(yīng)一個圖元數(shù)據(jù)模型,用戶單擊每個圖元來對圖元數(shù)據(jù)模型添加屬性和對應(yīng)數(shù)據(jù);然后控制中心通過分析繪圖區(qū)的圖元和每個圖元的圖元數(shù)據(jù)模型,以及各圖元之間的數(shù)據(jù)流程關(guān)系,得到應(yīng)用程序的體系結(jié)構(gòu)數(shù)據(jù)框架,分別供體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊調(diào)用;
[0011]體系結(jié)構(gòu)圖像模型文件生成模塊,通過對圖形化軟件體系結(jié)構(gòu)建模模塊中用戶在繪圖區(qū)繪制各個圖元的讀取,確定各個圖元的坐標(biāo)位置,從而將繪圖區(qū)的各圖元位置信息以及圖元的屬性數(shù)據(jù)保存于XML描述文件,實現(xiàn)文件還原圖像;系統(tǒng)默認(rèn)將該文件發(fā)送到服務(wù)器端的圖像文件同步管理模塊,多個客戶端能夠同步下載此文件,實現(xiàn)多用戶協(xié)同可視化建模;
[0012]軟件應(yīng)用代碼工程框架生成模塊,通過圖形化軟件體系結(jié)構(gòu)建模模塊中的控制中心得到繪圖區(qū)的構(gòu)件,以及各構(gòu)件之間的關(guān)系邏輯,進(jìn)而得出個構(gòu)件的業(yè)務(wù)關(guān)系生成java代碼框架;圖形化軟件體系結(jié)構(gòu)建模模塊中繪圖區(qū)各個構(gòu)件的業(yè)務(wù)關(guān)系生成java代碼框架,java代碼框架采用服務(wù)構(gòu)件架構(gòu)(SCA),生成直接導(dǎo)入IDE即eclipse開發(fā)平臺進(jìn)行二次開發(fā)的工程代碼文件;自動把生成的java代碼框架的SCA的配置文件存入服務(wù)器端的文件同步管理模塊,在服務(wù)器端Web Services演化接口模塊對此SCA配置文件更改;
[0013]文件同步管理模塊,負(fù)責(zé)維護不同用戶保存的圖像文件,這些圖像文件分別對應(yīng)多個用戶組,在同一用戶組的用戶共享組內(nèi)文件,實現(xiàn)同步開發(fā);該模塊提供文件的增加、刪除、修改三個基本功能,供體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊調(diào)用,完成圖像文件的保存和更新功能;同時該模塊聯(lián)合Web Services演化接口模塊提供對軟件應(yīng)用代碼工程框架生成模塊生成的java工程框架的演化功能;文件同步管理模塊為整個服務(wù)器與客戶端交互的樞紐,同時也是實現(xiàn)程序框架演化功能的關(guān)鍵所在;
[0014]Web Services演化接口模塊,基于CCO模型思想,使SOA具有演化功能;服務(wù)器端向外界即第三方程序提供兩類接口:圖像文件操作接口和SCA配置文件演化接口,其中圖像文件操作接口功能包括構(gòu)件和連接件的增加、刪除、修改,文件的保存和更新功能,實現(xiàn)多客戶端的并行開發(fā);SCA配置文件演化接口通過調(diào)用文件同步模塊的功能為第三方系統(tǒng)提供接口,這些接口將對應(yīng)的SCA配置文件更改,實現(xiàn)java代碼架構(gòu)的更改,進(jìn)而實現(xiàn)應(yīng)用系統(tǒng)的演化。
[0015]所述圖形化軟件體系結(jié)構(gòu)建模模塊實現(xiàn)過程采用MVC (Model-View-Controller)的模式,實現(xiàn)如下:
[0016](I)使用java包中的Draw2d API對圖元進(jìn)行繪制,圖元包括體系結(jié)構(gòu)中的構(gòu)件、連接件,這些圖元均可以添加屬性和對應(yīng)的屬性值,用戶通過鼠標(biāo)拖拽圖元在視圖區(qū)建立應(yīng)用程序的體系結(jié)構(gòu)模型;此外在視圖區(qū)支持鼠標(biāo)響應(yīng)事件、鼠標(biāo)右鍵彈出菜單顯示,用戶能夠可視化的處理元素的復(fù)制、粘貼、刪除控制圖元屬性和對應(yīng)的屬性值;
[0017](2)在步驟(I)中,用戶對圖元基本屬性和圖元屬性的數(shù)據(jù)進(jìn)行輸入,這些數(shù)據(jù)保存于圖元數(shù)據(jù)模型中,每個圖元都對應(yīng)一個圖元數(shù)據(jù)模型,圖元數(shù)據(jù)模型包含完成應(yīng)用程序體系結(jié)構(gòu)的所有的行為和數(shù)據(jù);圖元數(shù)據(jù)模型可以通過有狀態(tài)的對象記錄必要的信息,當(dāng)圖元數(shù)據(jù)模型的數(shù)據(jù)狀態(tài)改變時,圖元數(shù)據(jù)模型將會自動刷新與之相關(guān)的視圖區(qū);
[0018](3)控制中心(即多個ControlIer控制器)是視圖區(qū)和可視化圖元模型之間的橋梁,通過分析步驟(I)中用戶在繪圖區(qū)構(gòu)件的應(yīng)用程序體系結(jié)構(gòu)模型,以及分析步驟(2)中的各個圖元數(shù)據(jù)模型的行為和數(shù)據(jù)將視圖的圖元和對應(yīng)的數(shù)據(jù)相互聯(lián)系,形成映射,得到應(yīng)用程序的體系結(jié)構(gòu)數(shù)據(jù)框架,供體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊完成相應(yīng)功能;此外控制器處理用戶的輸入,每個界面有一個控制器監(jiān)聽元素,它負(fù)責(zé)相應(yīng)視圖區(qū)的事件,修改模型數(shù)據(jù);控制器的功能在于監(jiān)控可視化圖元模型的狀態(tài)實時更新視圖區(qū)的圖元。
[0019]所述體系結(jié)構(gòu)圖像模型文件生成模塊實現(xiàn)過程如下:
[0020](I)根據(jù)組裝描述規(guī)范的XML Schema文檔格式定義好構(gòu)件組裝XML描述模板文檔,包括每個圖元的名稱、坐標(biāo)信息,其中圖元中的構(gòu)件為矩形,連接件為箭頭,坐標(biāo)分別為左上角頂點坐標(biāo)和長寬,箭頭為起點和終點的坐標(biāo)值;
[0021](2)遍歷繪圖區(qū)各個建模圖元,遵循自左向右、自上向下的遍歷規(guī)則,確定各個圖元的坐標(biāo)位置,利用步驟(I)中定義的XML描述模板文檔把圖元位置信息轉(zhuǎn)化生成java中的DOM文檔;
[0022](3 )遍歷步驟(2 )生成的DOM文檔,根據(jù)圖元組裝結(jié)構(gòu),向DOM文檔中添加圖元相關(guān)組裝信息;完成的DOM文檔轉(zhuǎn)化為組裝XML描述文件,實現(xiàn)文件還原圖像;
[0023](4)系統(tǒng)默認(rèn)將步驟(3)生成的XML描述文件發(fā)送到服務(wù)器端的圖像文件同步管理模塊多個客戶端能夠同步下載此文件,實現(xiàn)多用戶協(xié)同可視化建模。
[0024]所述軟件應(yīng)用代碼工程框架生成模塊中直接導(dǎo)入IDE的具體實現(xiàn)過程如下:
[0025](I)根據(jù)用戶保存的項目工程名,生成eclipse工程下的“.project”文件,該文件用于eclipse開發(fā)環(huán)境識別項目;
[0026](2)生成classpath”文件,該文件用于指出項目用哪個版本的jdk,以及源文件的所在目錄;
[0027](3)遍歷圖形化軟件體系結(jié)構(gòu)建模模塊中繪圖區(qū)的圖元,采用服務(wù)構(gòu)件架構(gòu)(SCA)將各個構(gòu)件實體映射成一個接口與一個具體的存在的web服務(wù)關(guān)聯(lián),同時根據(jù)各個實體之間的關(guān)系寫入SCA配置文件;
[0028](4)把上述3個步驟中生成的文件組成java語言程序框架,直接導(dǎo)入IDE,即eclipse開發(fā)平臺進(jìn)行二次開發(fā)。
[0029]所述文件同步管理模塊具體實現(xiàn)過程如下:
[0030](I)定義文件的命名規(guī)則:文件名_用戶組ID_版本號_時間戳,由此來定義每個圖像文件與SCA配置文件,文件擴展名確定具體為哪類文件,圖像文件的擴展名為“cco”,SCA配置文件的擴展名為“component” ;
[0031](2)分別定義文件的結(jié)構(gòu),采用XML Scheme的形式定義,包括構(gòu)件和連接件的結(jié)構(gòu)定義,每個構(gòu)件和連接件都有唯一 id和坐標(biāo),這樣就能唯一標(biāo)示視圖區(qū)的一個圖元;
[0032](3)根據(jù)步驟(2)中定義的格式,每個服務(wù)實體在文件中都有唯一標(biāo)識,根據(jù)這一個標(biāo)識進(jìn)行操作,這些操作包括服務(wù)實體的刪除、替換和新增。
[0033]所述Web Services演化接口模塊實現(xiàn)多客戶端的并行開發(fā)以及應(yīng)用系統(tǒng)的演化,具體實現(xiàn)過程如下:
[0034](I)選取開源Services框架CXF,來創(chuàng)建web services接口,定義了針對兩類文件的兩類接口:圖像文件操作接口和SCA配置文件演化接口 ;
[0035](2)步驟(I)中的圖像文件操作接口分為版本控制,文件更新、刪除操作,利用服務(wù)器推送技術(shù)完成與客戶端交互,調(diào)用文件同步管理模塊中的類實現(xiàn)相應(yīng)功能,實現(xiàn)多人并發(fā)操作的實現(xiàn)技術(shù)主要通過文件共享文件來完成;
[0036](3)步驟(I)中的SCA配置文件接口主要完成對構(gòu)件,即web服務(wù)的替換、新增、刪除操作,第三方系統(tǒng)調(diào)用這些接口,將對應(yīng)軟件應(yīng)用的SCA配置文件更改,然后通過服務(wù)器推送(comet)把更新的SCA配置文件發(fā)送到客戶端,客戶端重新組合web服務(wù),進(jìn)而實現(xiàn)java代碼架構(gòu)的更改,完成整個軟件應(yīng)用體系結(jié)構(gòu)的演化。
[0037]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點和積極效果如下:
[0038](I)本發(fā)明整體設(shè)計遵循“緊內(nèi)聚,松耦合”的原則,把過程的模型與顯示分離開來。在權(quán)利要求書2中,過程的顯示由視圖類實現(xiàn),支持元素的復(fù)制、刪除、拖動和屬性設(shè)置。支持構(gòu)件的屬性添加。模型是整個架構(gòu)的基礎(chǔ),它可以通過有狀態(tài)的對象記錄必要的信息,當(dāng)模型的狀態(tài)改變時,模型將會自動刷新與之相關(guān)的視圖??刂破魇莢iew和model之間的橋梁,將模型映射到界面中。通過這三層模型架構(gòu),相比于同類系統(tǒng),該系統(tǒng)易于擴展,業(yè)務(wù)流程清晰。
[0039](2)本發(fā)明通過采用客戶端服務(wù)器架構(gòu),在權(quán)利要求書3中,采用XML Scheme定義了完整視圖文件圖形文件,通過權(quán)利要求書5中的功能把視圖文件保存于服務(wù)器并共享于同一個開發(fā)組,服務(wù)器采用服務(wù)器推技術(shù)(comet),將文件推送到客戶端,實現(xiàn)多客戶端協(xié)同開發(fā)的功能,為大規(guī)模網(wǎng)構(gòu)軟件建設(shè)提供了操作實現(xiàn)平臺。
[0040](3)本發(fā)明采用SOA中的實現(xiàn)框架SCA,在權(quán)利要求書4中的軟件應(yīng)用代碼工程框架生成模塊,將高層業(yè)務(wù)流程映射到具體的構(gòu)件服務(wù),通過弓I入Tuscany java SCA架構(gòu),將抽象的業(yè)務(wù)流程組合構(gòu)建成具體的java應(yīng)用框架,從而消除了業(yè)務(wù)層到代碼實現(xiàn)層的隔閡。
[0041](4)本發(fā)明在權(quán)利要求書6中基于軟件體系結(jié)構(gòu)的基礎(chǔ)上建立了 CCO模型(構(gòu)件、連接件、操作),包括構(gòu)件、連接件的定義,對構(gòu)件和連接件的操作,對元模型的操作,并將這一理論與SCA框架融合,使SCA框架支持運行期演化,并通過web services演化接口將演化機制提供給第三方感知演化工具調(diào)用,實現(xiàn)了框架運行期的演化功能,這一技術(shù)在同類系統(tǒng)中是首創(chuàng)。
[0042](5)總結(jié)權(quán)利要求書,本發(fā)明實現(xiàn)了為網(wǎng)構(gòu)化大型復(fù)雜軟件系統(tǒng)的研制提供頂層設(shè)計,為網(wǎng)構(gòu)軟件開發(fā)提供了代碼生成技術(shù),為網(wǎng)構(gòu)軟件的動態(tài)演化提供支持的總體開發(fā)目標(biāo)。
【專利附圖】
【附圖說明】
[0043]圖1為本發(fā)明實現(xiàn)系統(tǒng)的組成框圖;
[0044]圖2為圖1中圖形化軟件體系結(jié)構(gòu)建模模塊實現(xiàn)用例圖;
[0045]圖3為圖1中體系結(jié)構(gòu)圖像模型文件生成模塊流程圖;
[0046]圖4為圖1中軟件應(yīng)用代碼工程框架生成模塊流程圖;
[0047]圖5為圖1中文件同步管理模塊流程圖;
[0048]圖6為圖1中Web Services接口模塊架構(gòu)圖。
【具體實施方式】
[0049]下面結(jié)合說明書附圖,對本發(fā)明的【具體實施方式】做詳細(xì)描述。
[0050]如圖1所示,本發(fā)明為客戶端服務(wù)器架構(gòu),客戶端主要包括:圖形化軟件體系結(jié)構(gòu)建模模塊、體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊;服務(wù)器主要包括:多用戶管理模塊、文件同步管理模塊、Web Services接口模塊。
[0051]如圖2所示,圖形化軟件體系結(jié)構(gòu)建模模塊實現(xiàn)過程采用MVC(Model-View-Controller)的模式,具體實現(xiàn)如下:
[0052](I)使用java包中的Draw2d API對圖元進(jìn)行繪制,圖元包括體系結(jié)構(gòu)中的構(gòu)件、連接件,這些圖元均可以添加屬性和屬性值,用戶通過鼠標(biāo)拖拽圖元在視圖區(qū)建立應(yīng)用程序的體系結(jié)構(gòu)模型;此外在視圖區(qū)支持鼠標(biāo)響應(yīng)事件、鼠標(biāo)右鍵彈出菜單顯示,用戶能夠可視化的處理元素的復(fù)制、粘貼、刪除控制圖元屬性和屬性值。
[0053](2)在步驟(I)中,用戶對圖元基本屬性和圖元屬性的數(shù)據(jù)進(jìn)行輸入,這些數(shù)據(jù)保存于圖元數(shù)據(jù)模型中,每個圖元都對應(yīng)一個圖元數(shù)據(jù)模型,圖元數(shù)據(jù)模型包含完成應(yīng)用程序體系結(jié)構(gòu)的所有的行為和數(shù)據(jù);圖元數(shù)據(jù)模型可以通過有狀態(tài)的對象記錄必要的信息,當(dāng)圖元數(shù)據(jù)模型的數(shù)據(jù)狀態(tài)改變時,圖元數(shù)據(jù)模型將會自動刷新與之相關(guān)的視圖區(qū)。
[0054](3)控制中心(即多個Controller控制器)是視圖區(qū)和可視化圖元模型之間的橋梁,通過分析步驟(I)中用戶在繪圖區(qū)構(gòu)件的應(yīng)用程序體系結(jié)構(gòu)模型,以及分析步驟(2)中的各個圖元數(shù)據(jù)模型的行為和數(shù)據(jù)將視圖的圖元和對應(yīng)的數(shù)據(jù)相互聯(lián)系,形成映射,得到應(yīng)用程序的體系結(jié)構(gòu)數(shù)據(jù)框架,供體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊完成相應(yīng)功能;此外控制器處理用戶的輸入,每個界面有一個控制器監(jiān)聽元素,它負(fù)責(zé)相應(yīng)視圖區(qū)的事件,修改模型數(shù)據(jù);控制器的功能在于監(jiān)控可視化圖元模型的狀態(tài)實時更新視圖區(qū)的圖元。
[0055]如圖3所示,體系結(jié)構(gòu)圖像模型文件生成模塊具體實現(xiàn)過程如下:
[0056](I)根據(jù)組裝描述規(guī)范的XML Schema文檔格式定義好構(gòu)件組裝XML描述視圖模板文檔。描述格式如下:
【權(quán)利要求】
1.網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng),其特征在于所述系統(tǒng)為客戶端服務(wù)器架構(gòu);客戶端包括:圖形化軟件體系結(jié)構(gòu)建模模塊、體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊;服務(wù)器端包括:文件同步管理模塊、Web Services演化接口模塊; 圖形化軟件體系結(jié)構(gòu)建模模塊,采用MVC (Model-View-Controller)的模式,把視圖、模型、控制相分離,形成了繪圖區(qū)、圖元數(shù)據(jù)模型和控制中心三個子功能模塊;用戶通過拖拽圖元即體系結(jié)構(gòu)中的構(gòu)件、連接件,在繪圖區(qū)中構(gòu)建整個應(yīng)用程序的體系結(jié)構(gòu)框架,此時應(yīng)用程序體系結(jié)構(gòu)框架包含多個圖元,每個圖元對應(yīng)一個圖元數(shù)據(jù)模型,用戶單擊每個圖元來對圖元數(shù)據(jù)模型添加屬性和對應(yīng)數(shù)據(jù);然后控制中心通過分析繪圖區(qū)的圖元和每個圖元的圖元數(shù)據(jù)模型,以及各圖元之間的數(shù)據(jù)流程關(guān)系,得到應(yīng)用程序的體系結(jié)構(gòu)數(shù)據(jù)框架,分別供體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊調(diào)用; 體系結(jié)構(gòu)圖像模型文件生成模塊,通過對圖形化軟件體系結(jié)構(gòu)建模模塊中用戶在繪圖區(qū)繪制各個圖元的讀取,確定各個圖元的坐標(biāo)位置,從而將繪圖區(qū)的各圖元位置信息以及圖元的屬性數(shù)據(jù)保存于XML描述文件,實現(xiàn)文件還原圖像;系統(tǒng)默認(rèn)將該文件發(fā)送到服務(wù)器端的圖像文件同步管理模塊,多個客戶端能夠同步下載此文件,實現(xiàn)多用戶協(xié)同可視化建模; 軟件應(yīng)用代碼工程框架生成模塊,通過圖形化軟件體系結(jié)構(gòu)建模模塊中的控制中心得到繪圖區(qū)的構(gòu)件,以及各構(gòu)件之間的關(guān)系邏輯,進(jìn)而得出個構(gòu)件的業(yè)務(wù)關(guān)系生成java代碼框架;圖形化軟件體系結(jié)構(gòu)建模模塊中繪圖區(qū)各個構(gòu)件的業(yè)務(wù)關(guān)系生成java代碼框架,java代碼框架采用服務(wù)構(gòu)件架構(gòu)(SCA),生成直接導(dǎo)入IDE即eclipse開發(fā)平臺進(jìn)行二次開發(fā)的工程代碼文件;自動 把生成的java代碼框架的SCA的配置文件存入服務(wù)器端的文件同步管理模塊,在服務(wù)器端Web Services演化接口模塊對此SCA配置文件更改; 文件同步管理模塊,負(fù)責(zé)維護不同用戶保存的圖像文件,這些圖像文件分別對應(yīng)多個用戶組,在同一用戶組的用戶共享組內(nèi)文件,實現(xiàn)同步開發(fā);該模塊提供文件的增加、刪除、修改三個基本功能,供體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊調(diào)用,完成圖像文件的保存和更新功能;同時該模塊聯(lián)合Web Services演化接口模塊提供對軟件應(yīng)用代碼工程框架生成模塊生成的java工程框架的演化功能; Web Services演化接口模塊,基于CCO模型思想,使SOA具有演化功能;服務(wù)器端向外界即第三方程序提供兩類接口:圖像文件操作接口和SCA配置文件演化接口,其中圖像文件操作接口功能包括構(gòu)件和連接件的增加、刪除、修改,文件的保存和更新功能,實現(xiàn)多客戶端的并行開發(fā);SCA配置文件演化接口通過調(diào)用文件同步模塊的功能為第三方系統(tǒng)提供接口,這些接口將對應(yīng)的SCA配置文件更改,實現(xiàn)java代碼架構(gòu)的更改,進(jìn)而實現(xiàn)應(yīng)用系統(tǒng)的演化。
2.根據(jù)權(quán)利要求1所述的網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng),其特征在于:所述圖形化軟件體系結(jié)構(gòu)建模模塊實現(xiàn)過程采用MVC (Model-View-Controller)的模式,實現(xiàn)如下: Cl)使用java包中的Draw2d API對圖元進(jìn)行繪制,圖元包括體系結(jié)構(gòu)中的構(gòu)件、連接件,這些圖元均可以添加屬性和對應(yīng)的屬性值,用戶通過鼠標(biāo)拖拽圖元在視圖區(qū)建立應(yīng)用程序的體系結(jié)構(gòu)模型;此外在視圖區(qū)支持鼠標(biāo)響應(yīng)事件、鼠標(biāo)右鍵彈出菜單顯示,用戶能夠可視化的處理元素的復(fù)制、粘貼、刪除控制圖元屬性和對應(yīng)的屬性值; (2)在步驟(1)中,用戶對圖元基本屬性和圖元屬性的數(shù)據(jù)進(jìn)行輸入,這些數(shù)據(jù)保存于圖元數(shù)據(jù)模型中,每個圖元都對應(yīng)一個圖元數(shù)據(jù)模型,圖元數(shù)據(jù)模型包含完成應(yīng)用程序體系結(jié)構(gòu)的所有的行為和數(shù)據(jù);圖元數(shù)據(jù)模型可以通過有狀態(tài)的對象記錄必要的信息,當(dāng)圖元數(shù)據(jù)模型的數(shù)據(jù)狀態(tài)改變時,圖元數(shù)據(jù)模型將會自動刷新與之相關(guān)的視圖區(qū); (3)控制中心即多個ContiOller控制器是視圖區(qū)和可視化圖元模型之間的橋梁,通過分析步驟(1)中用戶在繪圖區(qū)構(gòu)件的應(yīng)用程序體系結(jié)構(gòu)模型,以及分析步驟(2)中的各個圖元數(shù)據(jù)模型的行為和數(shù)據(jù)將視圖的圖元和對應(yīng)的數(shù)據(jù)相互聯(lián)系,形成映射,得到應(yīng)用程序的體系結(jié)構(gòu)數(shù)據(jù)框架,供體系結(jié)構(gòu)圖像模型文件生成模塊、軟件應(yīng)用代碼工程框架生成模塊完成相應(yīng)功能;此外控制器處理用戶的輸入,每個界面有一個控制器監(jiān)聽元素,它負(fù)責(zé)相應(yīng)視圖區(qū)的事件,修改模型數(shù)據(jù);控制器的功能在于監(jiān)控可視化圖元模型的狀態(tài)實時更新視圖區(qū)的圖元。
3.根據(jù)權(quán)利要求1所述的網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng),其特征在于:所述體系結(jié)構(gòu)圖像模型文件生成模塊實現(xiàn)過程如下: (1)根據(jù)組裝描述規(guī)范的XMLSchema文檔格式定義好構(gòu)件組裝XML描述模板文檔,包括每個圖元的名稱、坐標(biāo)信息,其中圖元中的構(gòu)件為矩形,連接件為箭頭,坐標(biāo)分別為左上角頂點坐標(biāo)和長寬,箭頭為起點和終點的坐標(biāo)值; (2)遍歷繪圖區(qū)各個建模圖元,遵循自左向右、自上向下的遍歷規(guī)則,確定各個圖元的坐標(biāo)位置,利用步驟(1)中定義的XML描述模板文檔把圖元位置信息轉(zhuǎn)化生成java中的DOM文檔; (3)遍歷步驟(2)生成的DOM文檔,根據(jù)圖元組裝結(jié)構(gòu),向DOM文檔中添加圖元相關(guān)組裝信息;完成的DOM文檔轉(zhuǎn)化為組裝XML描述文件,實現(xiàn)文件還原圖像; (4)系統(tǒng)默認(rèn)將步驟(3)生成的XML描述文件發(fā)送到服務(wù)器端的圖像文件同步管理模塊多個客戶端能夠同步下載此文件,實現(xiàn)多用戶協(xié)同可視化建模。
4.根據(jù)權(quán)利要求1所述的網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng),其特征在于:所述軟件應(yīng)用代碼工程框架生成模塊中直接導(dǎo)入IDE的具體實現(xiàn)過程如下: (1)根據(jù)用戶保存的項目工程名,生成eclipse工程下的project”文件,該文件用于eclipse開發(fā)環(huán)境識別項目; (2)生成classpath”文件,該文件用于指出項目用哪個版本的jdk,以及源文件的所在目錄; (3)遍歷圖形化軟件體系結(jié)構(gòu)建模模塊中繪圖區(qū)的圖元,采用服務(wù)構(gòu)件架構(gòu)(SCA)將各個構(gòu)件實體映射成一個接口與一個具體的存在的web服務(wù)關(guān)聯(lián),同時根據(jù)各個實體之間的關(guān)系寫入SCA配置文件; (4)把上述3個步驟中生成的文件組成java語言程序框架,直接導(dǎo)入IDE,即eclipse開發(fā)平臺進(jìn)行二次開發(fā)。
5.根據(jù)權(quán)利要求1所述的網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng),其特征在于:所述文件同步管理模塊具體實現(xiàn)過程如下: (1)定義文件的命名規(guī)則:文件名_用戶組ID_版本號_時間戳,由此來定義每個圖像文件與SCA配置文件,文件擴展名確定具體為哪類文件,圖像文件的擴展名為“cco”,SCA配置文件的擴展名為“component” ; (2)分別定義文件的結(jié)構(gòu),采用XMLScheme的形式定義,包括構(gòu)件和連接件的結(jié)構(gòu)定義,每個構(gòu)件和連接件都有唯一 id和坐標(biāo),這樣就能唯一標(biāo)示視圖區(qū)的一個圖元; (3)根據(jù)步驟(2)中定義的格式,每個服務(wù)實體在文件中都有唯一標(biāo)識,根據(jù)這一個標(biāo)識進(jìn)行操作,這些操作包括服務(wù)實體的刪除、替換和新增。
6.根據(jù)權(quán)利要求1所述的網(wǎng)構(gòu)軟件全生命周期開發(fā)實現(xiàn)系統(tǒng),其特征在于:所述WebServices演化接口模塊實現(xiàn)多客戶端的并行開發(fā)以及應(yīng)用系統(tǒng)的演化,具體實現(xiàn)過程如下: (1)選取開源Services框架CXF,來創(chuàng)建webservices接口,定義了針對兩類文件的兩類接口:圖像文件操作接口和SCA配置文件演化接口 ; (2)步驟(1)中的圖像文件操作接口分為版本控制,文件更新、刪除操作,利用服務(wù)器推送技術(shù)完成與客戶端交互,調(diào)用文件同步管理模塊中的類實現(xiàn)相應(yīng)功能,實現(xiàn)多人并發(fā)操作的實現(xiàn)技術(shù)主要通過文件共享文件來完成; (3)步驟(1) 中的SCA配置文件接口主要完成對構(gòu)件,即web服務(wù)的替換、新增、刪除操作,第三方系統(tǒng)調(diào)用這些接口,將對應(yīng)軟件應(yīng)用的SCA配置文件更改,然后通過服務(wù)器推送(comet)把更新的SCA配置文件發(fā)送到客戶端,客戶端重新組合web服務(wù),進(jìn)而實現(xiàn)java代碼架構(gòu)的更改,完成整個軟件應(yīng)用體系結(jié)構(gòu)的演化。
【文檔編號】G06F9/44GK103645908SQ201310741873
【公開日】2014年3月19日 申請日期:2013年12月29日 優(yōu)先權(quán)日:2013年12月29日
【發(fā)明者】胡曉惠, 王健, 彭啟民 申請人:中國科學(xué)院軟件研究所