999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2018-10-23 11:17:38陳海郎
價值工程 2018年32期

陳海郎

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

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

中圖分類號:0TP311.5 文獻標識碼:A 文章編號:1006-4311(2018)32-0213-04

0 引言

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

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

1 代碼自動生成設(shè)計

1.1 代碼自動生成基本原理

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

P表示頁面的有限集合,

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

O是操作的有限集合,

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

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

1.2 自動生成代碼的模型設(shè)計

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

2 代碼自動生成實現(xiàn)

2.1 代碼模板定制

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

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

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

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

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

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

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

算法輸入:管理信息系統(tǒng)實體數(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中逐個取出規(guī)則模式

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

4. rule is TRUE //當(dāng)前檢測模式存在標識

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

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

7. FOR fact in rule.Facts //處理待推理的實體數(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)前檢測模式處理完畢標識

13. BREAK;

14. END IF

15. END FOR

16. Get Next Rule(Nets)to rule

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

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

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

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

4 結(jié)語

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

參考文獻:

[1]吳步丹.基于模板的工作流應(yīng)用系統(tǒng)代碼自動生成[J].華中科技大學(xué)學(xué)報,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]孫新,等.一種基于共享度模型的改進Rete算法[J].自動化學(xué)報,2017(43):1571-1579.

主站蜘蛛池模板: 91九色视频网| 激情视频综合网| 国产精品林美惠子在线播放| 曰AV在线无码| 波多野结衣视频一区二区| 亚州AV秘 一区二区三区| 亚洲永久色| 久久青草视频| 国产在线第二页| 亚洲毛片一级带毛片基地| 亚洲人精品亚洲人成在线| 综合色在线| 欧美成人二区| 亚洲欧美不卡| 国产成人午夜福利免费无码r| 精品国产一区91在线| 青青青视频91在线 | 777午夜精品电影免费看| 美女被操91视频| 亚洲国产精品美女| 久久久久亚洲精品成人网 | 2020最新国产精品视频| 久久99国产视频| 久久精品娱乐亚洲领先| 理论片一区| 久久永久精品免费视频| 国产极品美女在线观看| 国产白浆在线观看| 欧美成人A视频| 国产最新无码专区在线| 精品久久久久久久久久久| 在线视频97| 亚洲男人的天堂视频| 欧美日韩动态图| 美女裸体18禁网站| 国模极品一区二区三区| 福利在线一区| 色哟哟精品无码网站在线播放视频| 日韩精品无码免费专网站| 97国产精品视频人人做人人爱| 操国产美女| 蜜臀av性久久久久蜜臀aⅴ麻豆| 精品人妻一区二区三区蜜桃AⅤ| 亚洲无码电影| 91成人免费观看在线观看| 日韩一区二区三免费高清| 99久久无色码中文字幕| 免费观看三级毛片| 国产一区二区三区精品久久呦| 国产一区在线视频观看| 97在线国产视频| 欧美自慰一级看片免费| 国产精品分类视频分类一区| 99热国产这里只有精品无卡顿"| 国产成人8x视频一区二区| 精品视频在线一区| 日韩成人在线网站| 波多野结衣亚洲一区| 在线看AV天堂| 久久综合婷婷| 免费Aⅴ片在线观看蜜芽Tⅴ| 精品国产网站| 色首页AV在线| 亚洲人精品亚洲人成在线| 免费aa毛片| 国产精品专区第1页| 国产欧美在线观看一区| 国产精品一老牛影视频| 婷婷亚洲最大| 国产精品妖精视频| 久久久无码人妻精品无码| 手机在线看片不卡中文字幕| 试看120秒男女啪啪免费| 69av在线| 亚洲精品第五页| 国产又色又爽又黄| 日韩av无码精品专区| 久草视频中文| 福利一区在线| 中国毛片网| 国产91特黄特色A级毛片| 久久久久久久蜜桃|