国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于模板的管理信息系統(tǒng)代碼自動(dòng)生成

2018-10-23 11:17陳海郎
價(jià)值工程 2018年32期
關(guān)鍵詞:管理信息系統(tǒng)模板

陳海郎

摘要:隨著軟件開發(fā)技術(shù)的不斷發(fā)展,人們?cè)诠芾硇畔⑾到y(tǒng)的開發(fā)過程中總結(jié)出越來越多重復(fù)性的工作。這些重復(fù)性的工作增加了開發(fā)人員重復(fù)性編碼的工作量,延長了市場(chǎng)需求響應(yīng)時(shí)間,提高了開發(fā)成本等,同時(shí)在團(tuán)隊(duì)開發(fā)過程中,由于隊(duì)員之間的代碼編寫能力參差不齊,編碼風(fēng)格不統(tǒng)一,代碼的質(zhì)量和可維護(hù)性得不到保證。從管理系統(tǒng)系統(tǒng)的應(yīng)用角度分析,設(shè)計(jì)并實(shí)現(xiàn)了一種基于模板的管理信息系統(tǒng)代碼生成方法。該方法通過提煉公共模塊用作模板定制,構(gòu)建一種基于Rete算法的代碼自動(dòng)生成引擎,能夠快速生成統(tǒng)一編碼風(fēng)格的代碼,提高系統(tǒng)開發(fā)效益和質(zhì)量。該方法在“進(jìn)銷存”管理信息系統(tǒng)開發(fā)中得到了應(yīng)用,并取得了良好的代碼自動(dòng)生成效果。

Abstract: With the continuous development of software development technology, people have summarized more and more repetitive work in the development process of management information systems. These repetitive tasks increase the workload of developers' repetitive coding, prolong the response time of market demand, increase the development cost, etc., and in the process of team development, because the code writing ability between the players is uneven, the coding style is not uniform, and the quality and maintainability of the code cannot be guaranteed. From the perspective of the application system of management system, a template-based management information system code generation method is designed and implemented. The method uses the refinement common module as template customization to build an automatic code generation engine based on Rete algorithm, which can quickly generate code of unified coding style and improve system development efficiency and quality. This method has been applied in the development of the "invoicing" management information system, and has achieved good automatic code generation.

關(guān)鍵詞:模板;Rete算法;代碼自動(dòng)生成;管理信息系統(tǒng)

Key words: template;Rete algorithm;automatic code generation;management information system

中圖分類號(hào):0TP311.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-4311(2018)32-0213-04

0 引言

隨著信息時(shí)代的不斷深入,管理信息系統(tǒng)的種類越來越多,需求量越來越大。因此,能否在確保軟件質(zhì)量的前提下,提高軟件開發(fā)效率,以快速響應(yīng)市場(chǎng)需求是軟件企業(yè)重點(diǎn)考慮的問題。雖然現(xiàn)有的軟件開發(fā)大部分都有建模過程,如瀑布模型、噴泉模型、螺旋模型及漸增式模型等,但此時(shí)的系統(tǒng)建模主要針對(duì)開發(fā)初期對(duì)系統(tǒng)的分析和設(shè)計(jì),后期的實(shí)現(xiàn)仍然需要開發(fā)人員手動(dòng)編寫代碼,這樣并沒有在真正意義上提高軟件開發(fā)的效率。另外,許多開發(fā)人員在軟件開發(fā)的初期使用UML或其他建模語言來描述軟件開發(fā)項(xiàng)目的流程,開發(fā)前期就會(huì)產(chǎn)生大量的文檔和設(shè)計(jì)模型,然而這些文檔和模型僅僅存在于設(shè)計(jì)階段,當(dāng)進(jìn)入實(shí)現(xiàn)階段時(shí),既有文檔和設(shè)計(jì)模型的價(jià)值得不到應(yīng)有的體現(xiàn)。隨著編碼階段的繼續(xù)進(jìn)行,系統(tǒng)不斷地被修改而我們修改的僅僅只是代碼,代碼與文檔及設(shè)計(jì)模型之間的關(guān)聯(lián)將變的脆弱,也就是說設(shè)計(jì)與實(shí)現(xiàn)脫節(jié),不利于系統(tǒng)的維護(hù)和開發(fā)效率的提高。

針對(duì)傳統(tǒng)的軟件開發(fā)周期長、軟件設(shè)計(jì)與實(shí)現(xiàn)脫節(jié)和軟件代碼重用性差等問題,通過對(duì)管理信息系統(tǒng)的應(yīng)用分析研究發(fā)現(xiàn):盡管當(dāng)前管理信息系統(tǒng)種類繁多,但是仍然是以數(shù)據(jù)的增加、修改、刪除和查找的功能實(shí)現(xiàn)為主,不同的管理信息之間主要以業(yè)務(wù)流程和界面風(fēng)格的不同進(jìn)行區(qū)分。本文基本模板的管理信息系統(tǒng)代碼自動(dòng)生成研究,對(duì)提高軟件抽象層次將管理信息系統(tǒng)開發(fā)從日益復(fù)雜的技術(shù)和層出不窮的框架中解放出來,加快信息管理系統(tǒng)快速成型,進(jìn)而解決代碼重用性問題,提高軟件開發(fā)效率和質(zhì)量等具有重要的意義。

1 代碼自動(dòng)生成設(shè)計(jì)

1.1 代碼自動(dòng)生成基本原理

管理信息系統(tǒng)的操作是對(duì)數(shù)據(jù)的操作,被操作數(shù)據(jù)主要數(shù)據(jù)庫表或?qū)嶓w對(duì)象。其開發(fā)過程是操作實(shí)現(xiàn)的程序頁面新建、疊加的過程,并且程序頁面的數(shù)量是有限集合。根據(jù)有限狀態(tài)自動(dòng)機(jī)理論,管理信息系統(tǒng)代碼生成過程可用一個(gè)M=(P,D,O,δ,p0)五元組表示,其中:

P表示頁面的有限集合,

D是數(shù)據(jù)的有限集合,

O是操作的有限集合,

p0∈P是初始狀態(tài),即未開始生成目標(biāo)源代碼狀態(tài)。

依據(jù)上述對(duì)管理信息系統(tǒng)代碼自動(dòng)生成過程的抽象定義,可設(shè)計(jì)一種代碼自動(dòng)生成工具按照下面的方式:假設(shè)處于未生代碼初始狀態(tài),當(dāng)代碼引擎接受操作輸入指令時(shí),代碼引擎結(jié)合頁面生成規(guī)則(即代碼模板)完成移動(dòng)函數(shù)的變換,即可完成目標(biāo)源代碼的生成,并進(jìn)入下一個(gè)狀態(tài),即δ(pn-1,d,o)=pn(n∈N*)。

1.2 自動(dòng)生成代碼的模型設(shè)計(jì)

根據(jù)代碼生成基本原理,本文通過構(gòu)建數(shù)據(jù)模型作代碼生成過程的輸入,為實(shí)現(xiàn)代碼自動(dòng)生成提供必要的參數(shù)信息。同時(shí)為了更好地實(shí)現(xiàn)軟件復(fù)用,將管理信息系統(tǒng)代碼結(jié)構(gòu)相似或公共部分進(jìn)行分析研究,以完成代碼模板的定制,并將代碼模板作為代碼生成的輸入。模板引擎接收到模板文件和數(shù)據(jù)模型輸入后,通過對(duì)數(shù)據(jù)模型和模板的解析形式,以實(shí)現(xiàn)目標(biāo)源代碼的輸出。代碼生成的模型如圖1所示。

2 代碼自動(dòng)生成實(shí)現(xiàn)

2.1 代碼模板定制

模板是最終生成的代碼原型[1]。根據(jù)代碼的組成形式,可分為靜態(tài)對(duì)象和動(dòng)態(tài)對(duì)象。靜態(tài)對(duì)象是指代碼生成過程中無需改變直接輸出的部分。該對(duì)象通常是經(jīng)過了嚴(yán)格測(cè)試的目標(biāo)源代碼。動(dòng)態(tài)對(duì)象是需要引入特殊的動(dòng)態(tài)標(biāo)簽,通過變量或函數(shù)的方式進(jìn)行定制。在模板引擎驅(qū)動(dòng)下進(jìn)行模板解析時(shí),該對(duì)象需要借助數(shù)據(jù)模型來完成動(dòng)態(tài)對(duì)象到目標(biāo)源代碼的動(dòng)態(tài)轉(zhuǎn)化。

代碼模板定制通常需要結(jié)合信息管理系統(tǒng)所采用的開發(fā)架構(gòu)或語言規(guī)范進(jìn)行具體定制,以確保最終生成的目標(biāo)代碼具有高可用性和可維護(hù)性。本文選用基于J2EE的MVC管理信息系統(tǒng)開發(fā)規(guī)范,對(duì)管理信息系統(tǒng)的代碼模板定制進(jìn)行具體介紹。MVC框架可分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和領(lǐng)域模塊層。其具有可復(fù)用性較好、維護(hù)方便和搭建結(jié)構(gòu)清晰等特點(diǎn),有利于分開管理數(shù)據(jù)和模板。根據(jù)MVC框架各個(gè)分層特點(diǎn),本研究需要設(shè)計(jì)四種類型模板用于生成J2EE各層的目標(biāo)源代碼。代碼自動(dòng)生成的模板定義如表1所示。

2.2 基于XML的數(shù)據(jù)模型定制

數(shù)據(jù)模型主要是對(duì)管理信息系統(tǒng)的所需的實(shí)體對(duì)象數(shù)據(jù)和功能操作信息進(jìn)行定義的記錄文件,需要用于更替模板文件中的動(dòng)態(tài)部分,從而生成目標(biāo)源代碼。本文采用XML文件的格式對(duì)的數(shù)據(jù)模型進(jìn)行定制。之所以選用XML文件的格式進(jìn)行數(shù)據(jù)模型定制,是由XML文件的特點(diǎn)所決定的。XML是一種簡單、可擴(kuò)展性強(qiáng)、與平臺(tái)無關(guān)并被廣泛使用的標(biāo)記語言,既方便對(duì)關(guān)系實(shí)體對(duì)象數(shù)據(jù)和功能操作信息記錄與維護(hù),也有利于模板引擎對(duì)該類型文件進(jìn)行解析。

基于XML的數(shù)據(jù)模型不僅能夠?yàn)樯赡繕?biāo)源代碼提供較為完備的必需信息,而且還是一份完整的維護(hù)文檔。當(dāng)用戶需求發(fā)生改變時(shí),只需要對(duì)數(shù)據(jù)模型文件做出相應(yīng)修改或調(diào)整后,重新生成目標(biāo)源代碼即可,無需在目標(biāo)源代碼的基礎(chǔ)上進(jìn)行修改。定義的格式如下所示。

X6:生成類型為“虛擬路徑訪問”的數(shù)據(jù)操作方法目標(biāo)源代碼,對(duì)應(yīng)節(jié)點(diǎn)類型為V。

如圖2所示,在進(jìn)行目標(biāo)源代碼生成規(guī)則推理時(shí),事實(shí)數(shù)據(jù)(Facts)為待推理的模板文件數(shù)據(jù)。其采用三元組(對(duì)象、屬性、值)的方式進(jìn)行描述。例如生成用戶實(shí)體對(duì)象的數(shù)據(jù)修改方法可描述為(Users實(shí)體對(duì)象,Method,update)?;赗ete算法的模板引擎實(shí)現(xiàn)偽代碼描述如下:

算法輸入:管理信息系統(tǒng)實(shí)體數(shù)據(jù)三元組列表 Facts= {Fa1,F(xiàn)a2,…,F(xiàn)an};

算法輸出:代碼生成模型匹配到的規(guī)則 Ru,R={?覫,Ru1,Ru2,…,Run};

Rete Match(Facts)

1. Result to ?覫 //匹配結(jié)果初始化

2. Get Next Rule(Nets)to rule //從Nets中逐個(gè)取出規(guī)則模式

3. WHILE rule IS NOT NULL //判斷當(dāng)前檢測(cè)模式是否存在所對(duì)應(yīng)的AlphaNode中

4. rule is TRUE //當(dāng)前檢測(cè)模式存在標(biāo)識(shí)

5. FOR pattern in rule.patterns //構(gòu)建Beta網(wǎng)絡(luò)中的JoinNode

6. Pattern is FALSE //Beta網(wǎng)絡(luò)節(jié)點(diǎn)處理完畢狀態(tài)標(biāo)識(shí)

7. FOR fact in rule.Facts //處理待推理的實(shí)體數(shù)據(jù)

8. match(fact,pattern)to Pattern

9. IF Pattern is TRUE BREAK;//跳出當(dāng)前FOR循環(huán),重復(fù)步驟5

10. END FOR

11. IF Pattern is FALSE

12. Rule is FALSE //當(dāng)前檢測(cè)模式處理完畢標(biāo)識(shí)

13. BREAK;

14. END IF

15. END FOR

16. Get Next Rule(Nets)to rule

17. RETURN rule; //返回匹配到的規(guī)則

3 代碼自動(dòng)生成的應(yīng)用與效果分析

本文以完成生產(chǎn)部署的“進(jìn)銷存”管理信息系統(tǒng)為實(shí)例,分別對(duì)使用本代碼自動(dòng)生成工具生成代碼和最終發(fā)布代碼進(jìn)行統(tǒng)計(jì)分析,以完成對(duì)該工具產(chǎn)生的作用與效果說明。使用代碼生成工具生成的代碼是指為有修改過的原始生成代碼,而最終發(fā)布代碼是指系統(tǒng)正式投入使用時(shí)所有的代碼。為了獲得代碼相關(guān)統(tǒng)計(jì)數(shù)據(jù),本文使用SourceCounter源代碼統(tǒng)計(jì)工具對(duì)本代碼自動(dòng)生成工具所生成的代碼和最終發(fā)布的代碼進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。在使用SourceCounter統(tǒng)計(jì)前,設(shè)定編碼生產(chǎn)率為每個(gè)月4000行/每人,一個(gè)月工作天數(shù)為20天/每人,每個(gè)月的成本為10000元/每人。根據(jù)該統(tǒng)計(jì)工具統(tǒng)計(jì)后得到的結(jié)果并對(duì)結(jié)果進(jìn)行相應(yīng)分析得出了如表2所示。

從表2可得知:該管理信息系統(tǒng)開發(fā)的代碼生成比例可達(dá)84.65%。假設(shè)以5個(gè)人組成的團(tuán)隊(duì)對(duì)該項(xiàng)目進(jìn)行編碼,在不使用該代碼自動(dòng)生成工具的情況下大概需要6個(gè)月才能完成,使用該代碼自動(dòng)生成工具后只需1個(gè)半月完成編碼工作。

4 結(jié)語

本文運(yùn)用有限狀態(tài)自動(dòng)機(jī)理論對(duì)代碼生成技術(shù)的基本原理進(jìn)行了論述,并在此基礎(chǔ)上設(shè)計(jì)了管理信息系統(tǒng)代碼生成模型。該模型主要包括模板文件和代碼生成引擎。然后提出并實(shí)現(xiàn)了一種基于XML的模板定制方法,構(gòu)建一種了基于Rete算法的代碼自動(dòng)生成引擎。最終應(yīng)用實(shí)例表明該代碼生成技術(shù)能夠完成大部分的代碼編寫工作,進(jìn)而縮短系統(tǒng)的開發(fā)周期,降低開發(fā)難度。同時(shí)應(yīng)用實(shí)例表明,該項(xiàng)代碼生成技術(shù)設(shè)計(jì)的模板表現(xiàn)能力有限,對(duì)于復(fù)雜性的需求不能很好地完成高層次的抽象化公共模塊提煉,代碼自動(dòng)生成比例達(dá)不到100%,后繼還可以通過不斷豐富模板自定義方式,使該項(xiàng)目技術(shù)能夠完成更多的代碼編寫工作。

參考文獻(xiàn):

[1]吳步丹.基于模板的工作流應(yīng)用系統(tǒng)代碼自動(dòng)生成[J].華中科技大學(xué)學(xué)報(bào),2013(12):18.21.

[2]Forgy C L. Rete: a fast algorithm for the many pattern/mane object pattern match problem. Artificial Interlligence,1982,19(1):17-37.

[3]孫新,等.一種基于共享度模型的改進(jìn)Rete算法[J].自動(dòng)化學(xué)報(bào),2017(43):1571-1579.

猜你喜歡
管理信息系統(tǒng)模板
巧用思維模板 強(qiáng)化規(guī)律應(yīng)用
Estimation of irrigation requirements for drip-irrigated maize in a sub-humid climate
鋁模板在高層建筑施工中的應(yīng)用
城市綜改 可推廣的模板較少