專利名稱:基于arena平臺高層業(yè)務(wù)軟件的分層架構(gòu)設(shè)計方法
基于ARENA平臺高層業(yè)務(wù)軟件的分層架構(gòu)設(shè)計方法
技術(shù)領(lǐng)域:
本發(fā)明是一種基于模塊化設(shè)計思想的軟件設(shè)計方法,具體是一種基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)設(shè)計方法。
背景技術(shù):
目前基于大唐ARENA平臺整個軟件UI實(shí)現(xiàn)層、業(yè)務(wù)層、平臺層相關(guān)部分之間的藕合度太大,當(dāng)更新UI、平臺改變等都需要作較大的改變,這樣給代碼移植、功能擴(kuò)展等帶來很大困難,為此采用分層的方式減少模塊之間、子模塊之間的藕合度。同時業(yè)務(wù)層可向外獨(dú)立提供模塊接口,所以業(yè)務(wù)層接口設(shè)計中應(yīng)包括模塊啟動、外部事件處理部分。目前高層業(yè)務(wù)軟件部分實(shí)現(xiàn)主要分為三種情況(如圖1所示)(1)第三方完成UI (用戶界面her Interface)及業(yè)務(wù)部分,只需要移植完成 porting層代碼。(2)第三方完成業(yè)務(wù)部分,應(yīng)用需要完成UI及porting層。(3)獨(dú)立研發(fā)完成所有功能(包括UI、業(yè)務(wù)部分以及UI層與業(yè)務(wù)層之間的藕合)。其中(3)中,獨(dú)立研發(fā)模塊UI層與業(yè)務(wù)層之間的藕合方式主要為三種(如圖2所示)⑴消息;(2)接口; (3)代碼藕合即直接調(diào)用。對于獨(dú)立研發(fā)、第三方移植等模塊與模塊之間的交互主要采用接口、消息、AMS(啟動,交互)和外部事件處理等。這樣整個軟件部分處于高藕合、低內(nèi)聚狀態(tài),給移植、代碼維護(hù)帶來極大的不便。如圖2所示,如果采用第一種方式即消息耦合,將此模塊移植到其它平臺且消息接口改變,則需要將所有消息接口改變;如果直接耦合UI代碼(刷屏等接口),移植到其它平臺時由于UI接口改變需求修改所有相關(guān)代碼.如果采用注冊回調(diào)方式,業(yè)務(wù)層只需要調(diào)用UI層實(shí)現(xiàn)的回調(diào)接口即可,即使移植到其它模塊,業(yè)務(wù)層不需要作任務(wù)修改。
發(fā)明內(nèi)容為了解決現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明提出一種基于模塊化設(shè)計思想的軟件設(shè)計方法——基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)設(shè)計方法,具體技術(shù)方案如下1、一種基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)方法,其特征是包括步驟1)先把各個高層業(yè)務(wù)模塊統(tǒng)一分解為UI層、業(yè)務(wù)層和適配層;2)再設(shè)定每一個高層業(yè)務(wù)模塊的功能2. DUI層完成人機(jī)交互;為業(yè)務(wù)層提供業(yè)務(wù)刷屏接口 ;向與該UI層有接口交互的提供接口;2. 2)業(yè)務(wù)層完成本模塊業(yè)務(wù)需求;提煉UI通知及平臺相關(guān)接口 ;向與該業(yè)務(wù)層有接口交互的模塊提供功能性接口 ;2. 3)適配層提供業(yè)務(wù)層與平臺的適配接口。所述業(yè)務(wù)層提煉UI通知及平臺相關(guān)接口,是在移植過程中由UI及平臺實(shí)現(xiàn)。所述業(yè)務(wù)層中的實(shí)現(xiàn)避免與平臺相關(guān)的接口和代碼;業(yè)務(wù)層與其它高層業(yè)務(wù)模塊的交互是以API接口方式進(jìn)行;UI部分與業(yè)務(wù)部分完全分離,采用注冊回調(diào)的方式進(jìn)行刷屏UI處理,由業(yè)務(wù)層提取依賴平臺和其它高層業(yè)務(wù)模塊的適配接口。各個高層業(yè)務(wù)模塊之間的交互包括a)模塊啟動、停止、暫停和恢復(fù);b)模塊之間的依賴關(guān)系;c)對外部事件的響應(yīng)。UI層與其它高層業(yè)務(wù)模塊是互相依賴,交互方式中排除類消息的方式。各個高層業(yè)務(wù)模塊在實(shí)現(xiàn)分層過程中,將UI層、業(yè)務(wù)層、適配層實(shí)現(xiàn)分別存放在不同的文件中;同時將業(yè)務(wù)層單獨(dú)編譯成LIB庫形式發(fā)布;在代碼實(shí)現(xiàn)上避免子模塊之間、 模塊之間以共享內(nèi)存、全局、消息方式的藕合。本方法采用結(jié)構(gòu)化程序設(shè)計基本原則,少量借簽面向?qū)ο笤O(shè)計基礎(chǔ)對高層業(yè)務(wù)軟件部分進(jìn)行架構(gòu)設(shè)計,適用于大唐ARENA平臺等移動通信終端高層業(yè)務(wù)軟件。高層業(yè)務(wù)軟件采用本分層設(shè)計后,其進(jìn)行跨平臺移植、UI更改等只需要修改少量適配層代碼即可完成新的項(xiàng)目開發(fā),較大的提高了軟件的可移植性、可擴(kuò)展性。
圖1是現(xiàn)有技術(shù)中高層業(yè)務(wù)軟件實(shí)現(xiàn)結(jié)構(gòu)圖;圖2是UI層與業(yè)務(wù)層藕合方式示意圖;圖3A是本方法的整體架構(gòu)示意圖;圖;3B是本方法的業(yè)務(wù)層依賴關(guān)系示意圖;圖3C是本方法的各層接口示意圖。
具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步說明。一種基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)設(shè)計方法,(如圖3A所示)根據(jù)分層設(shè)計思想,把高層業(yè)務(wù)模塊統(tǒng)一分解為UI、業(yè)務(wù)層、適配層(Porting layer)。其中UI層主要完成人機(jī)交互,同時需要向業(yè)務(wù)層注冊UI刷屏回調(diào)接口 ;業(yè)務(wù)層主要完成本模塊業(yè)務(wù)需求,其功能實(shí)現(xiàn)接口需要UI層及適配層完成,從而完全脫離UI與平臺的依賴性。所以業(yè)務(wù)層需要提煉UI通知及平臺相關(guān)接口,這些都要在移植過程中由UI及平臺實(shí)現(xiàn)。同時業(yè)務(wù)層向其它模塊提供必要的功能性接口。為了減少業(yè)務(wù)層部分與其它子模塊的藕合度,業(yè)務(wù)層中實(shí)現(xiàn)不能包括與平臺相關(guān)的接口、代碼,同時其與其它模塊的交互以接口方式進(jìn)行,避免使用消息方式。為了減少模塊內(nèi)部之間的藕合度,減少其對UI及平臺的依賴性,UI部分與業(yè)務(wù)部分完全分離,采用注冊回調(diào)的方式進(jìn)行刷屏UI處理,業(yè)務(wù)層提取依賴平臺、其它模塊的 Porting(適配)接口(如圖2所示)。模塊之間的交互主要是模塊啟動、停止、暫停、恢復(fù);模塊之間的依賴關(guān)系;對外部事件的響應(yīng)。業(yè)務(wù)層、UI層與外部模塊可互相依賴,但不能采用類消息的方式進(jìn)行交互。如圖3C所示,平臺層需要向業(yè)務(wù)層提供適配接口,同時業(yè)務(wù)層向UI及外部模塊提供調(diào)用API,UI層需要向業(yè)務(wù)層提供適配接口,同時向其它模塊提供接口。模塊在實(shí)現(xiàn)分層過程中,將UI層、業(yè)務(wù)層、Porting Layer實(shí)現(xiàn)分別存放在不同的文件中;同時將業(yè)務(wù)層單獨(dú)編譯成LIB庫形式發(fā)布。在代碼實(shí)現(xiàn)上避免子模塊之間、模塊之間以共享內(nèi)存、全局、消息方式的藕合。在頭文件組織方面采用如下方式按照模塊的功能內(nèi)聚劃分,如模塊XXX分為幾個比較獨(dú)立并具有一定內(nèi)聚性的功能實(shí)體Fl,F(xiàn)2,F(xiàn)3,則頭文件可定義為以下幾個xxx_pub. h——定義所有與外部模塊公共(module-glcAal)的類型、常量和宏,聲明所有與外部模塊公共(module-glcAal)的變量和函數(shù)原型。xxx_f 1. h——定義或聲明所有與功能實(shí)體Fl相關(guān)的類型、宏、變量、函數(shù)原型以及任務(wù)原型xxx_f2. h——定義或聲明所有與功能實(shí)體F2相關(guān)的類型、宏、變量、函數(shù)原型以及任務(wù)原型xxxx_f3. h——定義或聲明所有與功能實(shí)體F3相關(guān)的類型、宏、變量、函數(shù)原型以及任務(wù)原型一般一個模塊可以依據(jù)模塊內(nèi)部是否有幾個比較獨(dú)立的功能實(shí)體來決定選定一種方式劃分頭文件。如果頭文件非常龐大則允許同時使用上面兩種劃分原則劃分頭文件。
權(quán)利要求
1.一種基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)方法,其特征是包括步驟1)先把各個高層業(yè)務(wù)模塊統(tǒng)一分解為UI層、業(yè)務(wù)層和適配層;2)再設(shè)定每一個高層業(yè)務(wù)模塊的功能2.DUI層完成人機(jī)交互;為業(yè)務(wù)層提供業(yè)務(wù)刷屏接口 ;向與該UI層有接口交互的模塊提供接口 ;2. 2)業(yè)務(wù)層完成本模塊業(yè)務(wù)需求;提煉UI通知及平臺相關(guān)接口 ;向與該業(yè)務(wù)層有接口交互的模塊提供功能性接口 ;2. 3)適配層提供業(yè)務(wù)層與平臺的適配接口。
2.根據(jù)權(quán)利要求1所述的基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)方法,其特征是所述業(yè)務(wù)層提煉UI通知及平臺相關(guān)接口,是在移植過程中由UI及平臺實(shí)現(xiàn)。
3.根據(jù)權(quán)利要求1所述的基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)方法,其特征是業(yè)務(wù)層中的實(shí)現(xiàn)避免與平臺相關(guān)的接口和代碼;業(yè)務(wù)層與其它高層業(yè)務(wù)模塊的交互是以API接口方式進(jìn)行;UI部分與業(yè)務(wù)部分完全分離,采用注冊回調(diào)的方式進(jìn)行刷屏UI處理,由業(yè)務(wù)層提取依賴平臺和其它高層業(yè)務(wù)模塊的適配接口。
4.根據(jù)權(quán)利要求1所述的基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)方法,其特征是各個高層業(yè)務(wù)模塊之間的交互包括a)模塊啟動、停止、暫停和恢復(fù);b)模塊之間的依賴關(guān)系; c)對外部事件的響應(yīng)。
5.根據(jù)權(quán)利要求1所述的基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)設(shè)計方法,其特征是 UI層與其它高層業(yè)務(wù)模塊是互相依賴,交互方式中排除類消息的方式。
6.根據(jù)權(quán)利要求1所述的基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)設(shè)計方法,其特征是各個高層業(yè)務(wù)模塊在實(shí)現(xiàn)分層過程中,將UI層、業(yè)務(wù)層、適配層實(shí)現(xiàn)分別存放在不同的文件中;同時將業(yè)務(wù)層單獨(dú)編譯成LIB庫形式發(fā)布;在代碼實(shí)現(xiàn)上避免子模塊之間、模塊之間以共享內(nèi)存、全局、消息方式的藕合。
全文摘要
一種基于ARENA平臺高層業(yè)務(wù)軟件分層架構(gòu)方法,包括步驟1)先把各個高層業(yè)務(wù)模塊統(tǒng)一分解為UI層、業(yè)務(wù)層和適配層;2)再設(shè)定每一個高層業(yè)務(wù)模塊的功能2.1)UI層完成人機(jī)交互;為業(yè)務(wù)層提供業(yè)務(wù)刷屏接口;向其它模塊提供接口;2.2)業(yè)務(wù)層完成本模塊業(yè)務(wù)需求;提煉UI通知及平臺相關(guān)接口;向其它模塊提供功能性接口;2.3)適配層提供業(yè)務(wù)層與平臺的適配接口。本方法采用結(jié)構(gòu)化程序設(shè)計基本原則,少量借簽面向?qū)ο笤O(shè)計基礎(chǔ)對高層業(yè)務(wù)軟件部分進(jìn)行架構(gòu)設(shè)計,適用于大唐ARENA平臺等移動通信終端高層業(yè)務(wù)軟件。高層業(yè)務(wù)軟件采用本分層設(shè)計后,其進(jìn)行跨平臺移植、UI更改等只需要修改少量適配層代碼即可完成新的項(xiàng)目開發(fā),較大的提高了軟件的可移植性、可擴(kuò)展性。
文檔編號G06F9/44GK102375729SQ20101025897
公開日2012年3月14日 申請日期2010年8月20日 優(yōu)先權(quán)日2010年8月20日
發(fā)明者劉美紅 申請人:希姆通信息技術(shù)(上海)有限公司