本發(fā)明涉及的是軟件應(yīng)用開(kāi)發(fā)設(shè)計(jì)的架構(gòu)
背景技術(shù):
::目前軟件的開(kāi)發(fā)設(shè)計(jì)都是定向開(kāi)發(fā),即根據(jù)項(xiàng)目需求將相關(guān)的數(shù)據(jù)關(guān)系、業(yè)務(wù)邏輯、功能模塊及接口插件等揉合在一起并與人機(jī)交互整體開(kāi)發(fā)(若涉及人機(jī)交互),如附圖1所示,當(dāng)所涉及的任意部分需要改變或調(diào)整(即使是一丁點(diǎn)邏輯或參數(shù)調(diào)整)都需要去修改程序(大部分需重新編譯發(fā)布)。因此軟件開(kāi)發(fā)人員做的最頻繁且繁瑣的事情就是改界面、調(diào)邏輯(業(yè)務(wù))、理數(shù)據(jù)關(guān)系等,而這些不僅僅存在于軟件開(kāi)發(fā)中,更多軟件發(fā)生在維護(hù)中,因?yàn)榇罅康臉I(yè)務(wù)更改發(fā)生在業(yè)務(wù)實(shí)際應(yīng)用中,因此軟件后期就靠補(bǔ)丁、新版本來(lái)維系。一方面軟件應(yīng)用的開(kāi)發(fā)難度大、周期長(zhǎng),后期維護(hù)不方便,同時(shí)用戶總是需要升級(jí)更新軟件。技術(shù)實(shí)現(xiàn)要素:我們發(fā)明了一種新的軟件架構(gòu),其核心思想就是從軟件里解耦出應(yīng)用界面(人機(jī)交換內(nèi)容)、數(shù)據(jù)關(guān)系、業(yè)務(wù)邏輯,即應(yīng)用界面、數(shù)據(jù)關(guān)系、業(yè)務(wù)邏輯等獨(dú)立于軟件,組合為應(yīng)用,在其外圍設(shè)計(jì);軟件主體被定義為運(yùn)行平臺(tái),其動(dòng)態(tài)載入應(yīng)用,按照應(yīng)用的旨意執(zhí)行來(lái)實(shí)現(xiàn)項(xiàng)目需求,當(dāng)項(xiàng)目需求發(fā)生調(diào)整僅需修改調(diào)整應(yīng)用的內(nèi)容,而軟件主體無(wú)需修改,附圖2所示。按照新的軟件架構(gòu),將參與軟件開(kāi)發(fā)的人員進(jìn)行分工:軟件開(kāi)發(fā)人員、應(yīng)用設(shè)計(jì)人員,軟件主體由專業(yè)軟件開(kāi)發(fā)人員完成、應(yīng)用部分由應(yīng)用設(shè)計(jì)人員(專注于業(yè)務(wù)等,少量簡(jiǎn)單代碼)。應(yīng)用部分(應(yīng)用界面、數(shù)據(jù)關(guān)系、業(yè)務(wù)邏輯)是可以用簡(jiǎn)單的腳本語(yǔ)言(如xml)進(jìn)行描述,應(yīng)用設(shè)計(jì)人員只需編寫(xiě)簡(jiǎn)單的腳本描述即可。附圖說(shuō)明圖1傳統(tǒng)軟件架構(gòu)圖圖2本發(fā)明的軟件架構(gòu)圖圖3本發(fā)明示例腳本展示的界面具體實(shí)施方式首先我們?cè)O(shè)計(jì)一套規(guī)范,用某種腳本語(yǔ)言(如xml)來(lái)描述應(yīng)用,規(guī)定軟件運(yùn)行時(shí)加載應(yīng)用(人機(jī)交互內(nèi)容、數(shù)據(jù)關(guān)系、業(yè)務(wù)邏輯等)需遵循的規(guī)則,該規(guī)范要求將用于人機(jī)交互所需的按鈕、輸入框等元素及相關(guān)特性在軟件里分別作為一個(gè)組件來(lái)設(shè)計(jì)實(shí)現(xiàn)并開(kāi)放出來(lái)可以在外圍腳本文件的配置(比如可以使用xml腳本),各個(gè)組件可以對(duì)應(yīng)一個(gè)或一組數(shù)據(jù),而這些數(shù)據(jù)關(guān)系也可以在腳本文件里定義,組件可以觸發(fā)事件并響應(yīng)事件,同時(shí)也可以設(shè)計(jì)邏輯引擎,能從腳本里載入邏輯規(guī)則并根據(jù)軟件運(yùn)行的動(dòng)態(tài)環(huán)境及參數(shù)做出相應(yīng)的處理;然后我們遵循該規(guī)范開(kāi)發(fā)一套或一個(gè)軟件,軟件需要解析腳本的能力,并把腳本描述的應(yīng)用轉(zhuǎn)換為應(yīng)用所要表達(dá)的人機(jī)交互關(guān)系、數(shù)據(jù)關(guān)系、業(yè)務(wù)邏輯,軟件運(yùn)行時(shí)加載按照腳本里規(guī)定的方式做出相應(yīng)操作處理;最后我們可以按照項(xiàng)目需求遵循規(guī)范來(lái)設(shè)計(jì)各種應(yīng)用(用腳本語(yǔ)言來(lái)描述),軟件運(yùn)行時(shí)按照需要去加載相應(yīng)的應(yīng)用實(shí)現(xiàn)應(yīng)用需求。在完成軟件主體開(kāi)發(fā)后,我們可以根據(jù)實(shí)際應(yīng)用需求來(lái)定制xml腳本,比如我們需要按照下面的規(guī)則計(jì)算會(huì)員的級(jí)別,那么我們用下面的腳本描述定義了一個(gè)頁(yè)面“表格邏輯”,包含一個(gè)名稱為“會(huì)員邏輯演示”的組件元素塊,里面又包含有四個(gè)文本“輸入1”、“輸入2”、“輸入3”、“輸出”分別指示各自后面的下拉框、輸入框的功用,最后還定義了一個(gè)按鈕“計(jì)算”來(lái)執(zhí)行相應(yīng)的操作(計(jì)算)。其展示的界面可以是附圖3上述代碼中包含有一個(gè)邏輯描述文件“memberlevel.xml”,其內(nèi)容為<?xmlversion=″1.0″e(cuò)ncoding=″utf-8″?><tables><tablename=″memberlevel″><inputs><attr>annualamount</attr><valueop=″32″id=″3″>2000</value><value/><valueop=″32″id=″4″>1000</value><value/><valueop=″32″id=″5″>1</value><value/><value/><value/><value/><value/><value/><value/></inputs><inputs><attr>annualtimes</attr><value/><valueop=″32″id=″6″>4</value><value/><valueop=″32″id=″7″>2</value><value/><valueop=″32″id=″5″>1</value><value/><value/><value/><value/><value/><value/></inputs><inputs><attr>noneyears</attr><value/><value/><value/><value/><value/><value/><valueop=″1″id=″5″>1</value><valueop=″1″id=″7″>2</value><valueop=″1″id=″8″>3</value><value/><value/><value/></inputs><outputs><attr>level</attr><valueop=″1″id=″9″>a</value><valueop=″1″id=″9″>a</value><valueop=″1″id=″10″>b</value><valueop=″1″id=″10″>b</value><valueop=″1″id=″11″>c</value><valueop=″1″id=″11″>c</value><valueop=″1″id=″12″>d1</value><valueop=″1″id=″13″>d2</value><valueop=″1″id=″14″>d3</value><valueop=″1″id=″14″>d3</value><value/><value/></outputs></table></tables>當(dāng)用戶點(diǎn)擊按鈕時(shí)軟件將“輸入1”、“輸入2”、“輸入3”的值傳遞給邏輯引擎,邏輯引擎按照memberlevel.xml描述的業(yè)務(wù)規(guī)則計(jì)算出相應(yīng)的結(jié)果填入“輸出”框。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12