|
I要:針對應(yīng)用軟件需求的快速變更和系統(tǒng)開發(fā)的慢速響應(yīng)之間的矛盾,提出一種全新的系統(tǒng)開發(fā)方法,利用元數(shù)據(jù)和構(gòu)件方法,采用SOA的思想,將業(yè)務(wù)邏輯封裝到構(gòu)件內(nèi)部,以工作流技術(shù)控制流程,實(shí)現(xiàn)軟件系統(tǒng)的快速開發(fā)平臺。測試結(jié)果表明,采用該快速開發(fā)平臺,可加快應(yīng)用軟件的開發(fā)速度,提高軟件的質(zhì)量,并可以在多種行業(yè)使用。關(guān)健訶:元數(shù)據(jù);構(gòu)件;工作流;面向服務(wù);快速開發(fā) 1概述 隨著網(wǎng)絡(luò)技術(shù)和電腦的普及應(yīng)用,各個(gè)行業(yè)都在推廣信息管理系統(tǒng),無論是物料管理系統(tǒng)(MRP)、客戶管理系統(tǒng)(CRM)、還是企業(yè)管理系統(tǒng)(ERP),都是由專業(yè)軟件工程師通過某種固定的語言開發(fā),交付給企業(yè)管理者使用。由于軟件工程師一般缺乏企業(yè)管理的專業(yè)知識,使得開發(fā)和使用者之間有一道難以溝通的鴻溝,開發(fā)出來的產(chǎn)品往往似是而非,不能全面滿足客戶需求。并且這些系統(tǒng)都是由上萬、甚至上十萬、百萬行代碼完成的,開發(fā)工作量巨大,系統(tǒng)很復(fù)雜,一旦完成就很難修改,往往牽一發(fā)而動(dòng)傘身,導(dǎo)致客戶難以更新。針對上述問題,利用元數(shù)據(jù)和組件技術(shù)結(jié)合,開發(fā)出了一套快速開發(fā)乎臺,構(gòu)建過程完全圖形化、可視化。平臺可根據(jù)用戶管理需求任意構(gòu)建應(yīng)用管理系統(tǒng),也呵隨意以B/S,C/S混合結(jié)構(gòu)方式構(gòu)建應(yīng)用系統(tǒng),同時(shí)也可運(yùn)行多種語言管理窗n。針對數(shù)據(jù)的增、刪、改、查,在組件內(nèi)部即可解決¨j。使用者變成開發(fā)者,從而快速解決業(yè)務(wù)和技術(shù)難以溝通的問題 市面上快速開發(fā)平臺不少,包括基于Java的FastUnit、CHARISMA、基于.Net的極致軟件等,在下面3個(gè)方面用到了元數(shù)據(jù)配置:數(shù)據(jù)實(shí)體元數(shù)據(jù),用戶界面元數(shù)據(jù),業(yè)務(wù)流程元數(shù)據(jù),可配置性不足。本系統(tǒng)在各方面都采用了元數(shù)據(jù)管理,使程序更加靈活、容易擴(kuò)展;FastUnit等采用的是直接管理數(shù)據(jù)庫的功能、界面操作復(fù)雜,缺少模板,從而使二次開發(fā)變得困難,難以掌握。本系統(tǒng)對于幾個(gè)行業(yè)有現(xiàn)成的模板供編輯,從而大大加快了開發(fā)流程。最關(guān)鍵的是上面的系統(tǒng)都沒有封裝業(yè)務(wù)邏輯,從而增大了二次開發(fā)的難度,增加了二次開發(fā)的成本。 2設(shè)計(jì)思路 元數(shù)據(jù)是。關(guān)于數(shù)據(jù)的數(shù)據(jù)”,它不僅影響到系統(tǒng)的構(gòu)建,還影響到程序的運(yùn)行邏輯”。J??紤]到用戶的信息記錄方式和表現(xiàn)方式經(jīng)常改變,采用元數(shù)據(jù)方式配置用戶的信息描述,在呈現(xiàn)的時(shí)候按照用戶設(shè)定的方式呈現(xiàn)。在系統(tǒng)架構(gòu)中,通過元數(shù)據(jù)來控制程序的運(yùn)行,將每個(gè)行業(yè)歸納出來的公共的、構(gòu)成體系的東西加以綜合,再針對領(lǐng)域知識相關(guān)行業(yè)獨(dú)特的屬性,采用元數(shù)據(jù)的方式加以補(bǔ)充,然后將整體打包成一個(gè)SOA構(gòu)件∞。J,此構(gòu)件中包括相應(yīng)的業(yè)務(wù)邏輯,并向外提供標(biāo)準(zhǔn)的接口,再將這些構(gòu)件通過系統(tǒng)架構(gòu)組合起來。 系統(tǒng)架構(gòu)如圖j所示,分為物理數(shù)據(jù)層、數(shù)據(jù)驅(qū)動(dòng)層、基礎(chǔ)構(gòu)件層、集成構(gòu)件層、產(chǎn)品框架層。 (1)物理數(shù)據(jù)層:負(fù)責(zé)數(shù)據(jù)的存儲ⅢJ,支持MSSQL, MySQL,Oracle,DB2等主流數(shù)據(jù),也可以采用Access、文本文件等形式保存小最本地?cái)?shù)據(jù),在離線狀態(tài)下,將數(shù)據(jù)暫時(shí)保存到本地,待網(wǎng)絡(luò)接通時(shí)統(tǒng)一提交,物理數(shù)據(jù)層還負(fù)責(zé)元數(shù)據(jù)的管理。 . (2)數(shù)據(jù)驅(qū)動(dòng)層:數(shù)據(jù)驅(qū)動(dòng)層在系統(tǒng)中占據(jù)核心的地位,數(shù)據(jù)驅(qū)動(dòng)不僅實(shí)現(xiàn)和物理數(shù)據(jù)層的交互、邏輯對象和物理結(jié)構(gòu)的映射,還實(shí)現(xiàn)了邏輯規(guī)則和邏輯數(shù)據(jù)的封裝與數(shù)據(jù)模型 的建立和智能化驅(qū)動(dòng),是完全基于面向?qū)ο蟮臄?shù)據(jù)建模與驅(qū)動(dòng)平臺,在這一層實(shí)現(xiàn)了數(shù)據(jù)建模、數(shù)據(jù)和界面的關(guān)聯(lián)、數(shù)據(jù)的自動(dòng)存取等功能。考慮到效率的問題,本層用C++開發(fā) (5)產(chǎn)品框架層:產(chǎn)品框架層包括了建立業(yè)務(wù)模型的環(huán)境和程序固化的模板,業(yè)務(wù)人員可以選擇其中的某個(gè)模板,并在業(yè)務(wù)建模環(huán)境中修改、配置,使系統(tǒng)適應(yīng)自己的使用規(guī)則和使用習(xí)慣。這個(gè)提供給普通用戶使用,本層采用C#開發(fā)。 3實(shí)現(xiàn) 本系統(tǒng)每個(gè)模塊的實(shí)現(xiàn)采用SOA規(guī)則,即每個(gè)部分都是向外界提供服務(wù),下面簡單介紹元數(shù)據(jù)、數(shù)據(jù)驅(qū)動(dòng)、基礎(chǔ)構(gòu)產(chǎn)品舷架層件和系統(tǒng)啟動(dòng)流程等關(guān)鍵部分的實(shí)現(xiàn)方法。 3.1元數(shù)據(jù)實(shí)現(xiàn) 本系統(tǒng)分模塊進(jìn)行各個(gè)部分的實(shí)現(xiàn),下面將元數(shù)據(jù)記錄及其表現(xiàn)做簡單介紹。為了保存用戶建市的數(shù)據(jù)表和數(shù)據(jù)列,用7個(gè)表來存儲建模集成構(gòu)件 元數(shù)據(jù)的基本信息和修改記錄。為節(jié)省篇幅,沒有列出數(shù)據(jù)存儲列的詳細(xì)信息,簡單列出關(guān)鍵表的信息,基類是實(shí)體對象,元數(shù)據(jù)實(shí)體對象從中繼承出來, 實(shí)體對象通過增加子實(shí)體、移除實(shí)體、獲取子實(shí)體列表、以及實(shí)體之問的關(guān)系等函數(shù),實(shí)現(xiàn)對實(shí)體對象內(nèi)部的統(tǒng)一操作。利用元數(shù)據(jù)的這種存儲方式,可以自定義任意方式的表單。 3.2致?lián)?qū)動(dòng)實(shí)現(xiàn) 數(shù)據(jù)驅(qū)動(dòng)不僅僅實(shí)現(xiàn)數(shù)據(jù)的增、刪、改、查和數(shù)據(jù)交互,而且實(shí)現(xiàn)了業(yè)務(wù)對象和業(yè)務(wù)邏輯、.業(yè)務(wù)規(guī)則的封裝,圖2說明了數(shù)據(jù)在系統(tǒng)層次間的交互,圖4說明了數(shù)據(jù)驅(qū)動(dòng)的組成 3)基礎(chǔ)構(gòu)件層:基礎(chǔ)構(gòu)件層實(shí)現(xiàn)了基本控件、報(bào)表、圖標(biāo)等的數(shù)據(jù)封裝,例如文本輸入框,在原來的基礎(chǔ)上增加了數(shù)據(jù)對象以實(shí)現(xiàn)文本和邏輯對象的關(guān)聯(lián)、增加了數(shù)據(jù)規(guī)則實(shí)現(xiàn)數(shù)據(jù)驗(yàn)證等功能,還實(shí)現(xiàn)了’基本的業(yè)務(wù)構(gòu)件的管理,例如關(guān)鍵數(shù)據(jù)f元數(shù)據(jù))的修改記錄(歷史管理)、摹于角色的權(quán)限認(rèn)證管理、工作流引擎(采用WWF)和[作流組件(Activity)、業(yè)務(wù)規(guī)則管理f規(guī)則引擎)等的管理,本層采用C}}語言開發(fā)。 (4)建模、集成構(gòu)件層:基礎(chǔ)構(gòu)件層只是一些比較基礎(chǔ)的控件和對基本引擎的管理,對基礎(chǔ)構(gòu)件層的進(jìn)一步抽象,形成了集成構(gòu)件層。包括對某個(gè)邏輯對象的頁面生成、模板生成、規(guī)則定制頁面生成、工作流定制頁面生成、業(yè)務(wù)模型建立等功能。高級用戶(管理員)操作這個(gè)層面的程序,定制給業(yè)務(wù)人員使用的程序邏輯和業(yè)務(wù)流程,采用c#開發(fā)。 部分和實(shí)現(xiàn)方法。 圈4數(shù)據(jù)驅(qū)動(dòng)組成描述 基礎(chǔ)構(gòu)件包括文本輸入框、表單、編號框、選擇框、編單、OLE對象等編輯控件?;陂_發(fā)效率的考慮,采用c#開發(fā),每個(gè)控件增加標(biāo)簽屬性、數(shù)據(jù)對象屬性、權(quán)限屬性等,從而使基礎(chǔ)構(gòu)件本身就是數(shù)據(jù)的一部分??梢院蜆I(yè)務(wù)數(shù)據(jù)庫圈5部分Web控件類圈 3.4系統(tǒng)啟動(dòng)更新過程 該系統(tǒng)的基礎(chǔ)構(gòu)件層和數(shù)據(jù)驅(qū)動(dòng)層基于效率因素的考慮,采用c++開發(fā),其他模塊層使用c#語言實(shí)現(xiàn),當(dāng)程序啟動(dòng)時(shí)需要檢查本地元數(shù)據(jù)及其版本情況,如果不是最新版本的元數(shù)據(jù)數(shù)據(jù),需要下載更新。 4應(yīng)用效果 該系統(tǒng)是一個(gè)以元數(shù)據(jù)為基礎(chǔ)的可視化快速開發(fā)平臺,當(dāng)前已開發(fā)出了OA建模平臺和HIS(醫(yī)院系統(tǒng))建模平臺,但是在開發(fā)的過程中,已經(jīng)顯示了其相對于一般開發(fā)工具的優(yōu)越性和廣泛的適應(yīng)性。 系統(tǒng)優(yōu)越的快速構(gòu)建方式?jīng)Q定了它具有低成本、高效率、功能強(qiáng)大的技術(shù)優(yōu)勢和競爭優(yōu)勢,使其他開發(fā)系統(tǒng)難以抗?fàn)?。如表l所示,同樣開發(fā)一個(gè)大型系統(tǒng),系統(tǒng)構(gòu)建方式與常規(guī)方式相比,無論是從市場角度還是開發(fā)角度,都占有絕對的優(yōu)勢。 3.3基礎(chǔ)構(gòu)件實(shí)現(xiàn) 輯框、組合框、按鈕、圖表框、數(shù)據(jù)列表、樹狀控件、子表直接綁定,編輯框中增加數(shù)據(jù)驗(yàn)證功能等。圖5是部分Web控件的類圖。 (3)度量標(biāo)準(zhǔn) 正確分類的實(shí)例是衡量分類算法性能的最霞要的標(biāo)準(zhǔn),估計(jì)分類法的準(zhǔn)確率指的是估計(jì)一個(gè)給定的分類算法對未來的數(shù)據(jù)(eP未經(jīng)分類法處理的數(shù)據(jù)J正確標(biāo)號的準(zhǔn)確率(精度),其定義如下: 準(zhǔn)確率(精度)=正確預(yù)測的實(shí)例數(shù)/預(yù)測的總實(shí)例數(shù) 2神分類算法分類精度比較 (4)基準(zhǔn)方法 為分析本文提出方法的有效性,選擇CBA方法與其在分類精度和分類器大小上進(jìn)行對比。通過分別在5個(gè)數(shù)據(jù)集上運(yùn)行這2類算法,測試它們分類精度和分類器大小,從而說明本文提出算法的有效性。 4.2實(shí)驗(yàn)結(jié)果 5個(gè)數(shù)據(jù)集在實(shí)驗(yàn)時(shí)使用的最小支持度和最小置信度如表2所示。權(quán)值的確定由實(shí)驗(yàn)經(jīng)驗(yàn)給出。 2種分類算法構(gòu)造分類器的磊剜敦比較數(shù)據(jù)集 5結(jié)束語 本文提出一種基于CBA的改進(jìn)算法SR—CBA。與CBA方法相比,SR—CBA算法不僅分類精度更高,而且分類器中規(guī)則數(shù)目更少,因而分類效率也更高。但算法在產(chǎn)生類關(guān)聯(lián)規(guī)則時(shí)只考慮了規(guī)則的支持度和置信度,如果將其他規(guī)則度量標(biāo)準(zhǔn)考慮進(jìn)來,有可能進(jìn)一步提高分類的準(zhǔn)確率,這是下一步研究的蓖點(diǎn)。
信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
|