亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Web應(yīng)用代碼生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2010-06-22 03:41:08李亞芬
        現(xiàn)代電子技術(shù) 2009年22期

        宋 微 李亞芬

        摘 要:代碼生成工具的使用可以大幅度減少開(kāi)發(fā)人員編寫重復(fù)性代碼的工作量,提高Web應(yīng)用開(kāi)發(fā)的質(zhì)量和效率。在代碼生成系統(tǒng)中,設(shè)計(jì)一種基于MVC設(shè)計(jì)模式的新型Web應(yīng)用開(kāi)發(fā)框架,將Web應(yīng)用分為視圖層、控制層和模型層,每層各司其職,代碼結(jié)構(gòu)清晰,在此基礎(chǔ)上采用JET模板和Xpath相結(jié)合的代碼生成方法生成重復(fù)性代碼。實(shí)驗(yàn)證明,該系統(tǒng)可快速構(gòu)建Web應(yīng)用。

        關(guān)鍵詞:代碼生成系統(tǒng);MVC;JET;Web應(yīng)用

        中圖分類號(hào):TP311

        0 引 言

        早期Web應(yīng)用使用ASP,JSP等技術(shù)進(jìn)行編碼,將頁(yè)面顯示、業(yè)務(wù)邏輯和數(shù)據(jù)庫(kù)操作大部分都集中在頁(yè)面代碼中,維護(hù)困難,不利于分工協(xié)作。隨著Web技術(shù)的飛速發(fā)展,Web組件的開(kāi)發(fā)方式成為主導(dǎo),MVC設(shè)計(jì)模式是其中的典型,各種框架也紛紛出現(xiàn),如Struts,Spring框架等,在很大程度上降低了Web開(kāi)發(fā)的難度,但也存在很多不足,如難于掌握,配置復(fù)雜等,對(duì)于很多Web應(yīng)用項(xiàng)目并不適用。在此基于MVC模式,并結(jié)合大量設(shè)計(jì)模式,設(shè)計(jì)一種新型的Web應(yīng)用開(kāi)發(fā)框架,代碼結(jié)構(gòu)清晰,復(fù)雜度低,易于理解,并且配置簡(jiǎn)單,加強(qiáng)了系統(tǒng)的可擴(kuò)展性,降低了軟件開(kāi)發(fā)成本。

        基于Web應(yīng)用本身的特點(diǎn),采用上述框架開(kāi)發(fā)Web應(yīng)用,對(duì)于不同模塊而言,各層次代碼在實(shí)現(xiàn)上有很大的相似性,開(kāi)發(fā)人員需要重復(fù)編寫大量代碼,嚴(yán)重影響了軟件開(kāi)發(fā)速度。代碼生成技術(shù)的引入,在很大程度上可以解決這一問(wèn)題,大大減少了軟件開(kāi)發(fā)中枯燥且重復(fù)的編碼工作,更進(jìn)一步加快了Web應(yīng)用的開(kāi)發(fā)。

        在此采用模型驅(qū)動(dòng)(MDA)開(kāi)發(fā)的思想,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)面向Web應(yīng)用的代碼生成系統(tǒng),在開(kāi)發(fā)人員簡(jiǎn)單配置下,能夠快速構(gòu)建Web應(yīng)用,顯著提高了Web應(yīng)用的開(kāi)發(fā)效率。

        1 Web應(yīng)用體系結(jié)構(gòu)

        [BT3]1.1 MVC設(shè)計(jì)模式

        MVC設(shè)計(jì)模式是基于J2EE的Web應(yīng)用開(kāi)發(fā)的首選模式,它強(qiáng)制性地將應(yīng)用程序的輸入、處理和輸出分開(kāi),使應(yīng)用程序分成模型層、控制器、視圖層,并各自處理自己的任務(wù)。

        模型層封裝了數(shù)據(jù)和對(duì)數(shù)據(jù)的操作,是應(yīng)用程序的主體部分。MVC三個(gè)部件中,模型層擁有最多的處理任務(wù)。同一個(gè)模型可被多個(gè)視圖重用,提高了應(yīng)用的可重用性。通過(guò)模型層,可以確定需要操作的數(shù)據(jù)、業(yè)務(wù)處理方法以及需要設(shè)計(jì)什么樣的視圖層頁(yè)面[3]。

        控制層用來(lái)處理業(yè)務(wù)邏輯,負(fù)責(zé)視圖和模型之間的交互,控制對(duì)用戶輸入響應(yīng)方式和流程。它主要負(fù)責(zé)兩方面的動(dòng)作:把用戶的請(qǐng)求分發(fā)到相應(yīng)的模型;將模型的改變及時(shí)反應(yīng)到視圖上[4]。

        視圖層是模型的表示,用于管理用戶請(qǐng)求并做出相應(yīng)的響應(yīng)。對(duì)于Web應(yīng)用程序,視圖主要指HTML或JSP頁(yè)面。視圖向用戶顯示相關(guān)的數(shù)據(jù),并能接收用戶的輸入數(shù)據(jù),提交給Web服務(wù)器進(jìn)行處理。但是它并不進(jìn)行任何實(shí)際的業(yè)務(wù)處理[5]。

        綜上,基于MVC的設(shè)計(jì)模式開(kāi)發(fā)Web應(yīng)用,┟懇徊悛在處理程序上都有明確的任務(wù)與功能,實(shí)現(xiàn)了系統(tǒng)結(jié)構(gòu)層次清晰及各層間的解耦,從而大大提高了代碼的靈活性和復(fù)用性。

        [BT3]1.2 Web應(yīng)用框架結(jié)構(gòu)

        本文框架結(jié)構(gòu)基于MVC設(shè)計(jì)模式,并使用了大量?jī)?yōu)秀的設(shè)計(jì)模式,如模板模式、工廠模式、適配器模式等,篇幅有限,不再贅述。

        框架將目標(biāo)系統(tǒng)分為模型層、控制層、視圖層三層。其中,視圖層通過(guò)JSP實(shí)現(xiàn),控制層通過(guò)Servlet來(lái)實(shí)現(xiàn),而模型層則通過(guò)實(shí)體Entity來(lái)實(shí)現(xiàn)。三者之間的交互模式如圖1所示。

        Servlet充當(dāng)控制的角色,它接收請(qǐng)求,并且根據(jù)請(qǐng)求信息將它們分發(fā)給適當(dāng)?shù)腏SP頁(yè)面來(lái)產(chǎn)生響應(yīng)[6]。Servlet控制器還根據(jù)JSP視圖的需求生成實(shí)體Entity的實(shí)例并輸出給JSP環(huán)境。JSP視圖可以通過(guò)直接調(diào)用Entity實(shí)例的方法得到Entity中的數(shù)據(jù)。

        下面對(duì)各層次模型在Web系統(tǒng)中的作用以及實(shí)現(xiàn)方法進(jìn)行詳細(xì)闡述。

        [BT4]1.2.1 模型層

        Web應(yīng)用架構(gòu)模型層由實(shí)體實(shí)現(xiàn),如圖2所示。

        CommonEntity執(zhí)行基本的實(shí)體操作,包含屬性table,property以及與數(shù)據(jù)庫(kù)的操作等。具體操作的實(shí)體均繼承自這個(gè)統(tǒng)一的抽象類CommonEntity,各業(yè)務(wù)對(duì)象的實(shí)體對(duì)應(yīng)于其具體對(duì)應(yīng)的數(shù)據(jù)庫(kù)表,包含數(shù)據(jù)庫(kù)表的基本屬性字段的表示信息。

        各個(gè)具體的實(shí)體類在結(jié)構(gòu)上非常相似,都是get和set方法,只是具體的屬性不同,保持了良好的面向?qū)ο笤O(shè)計(jì)風(fēng)格。這樣,有利于從目標(biāo)代碼中抽象出統(tǒng)一的結(jié)構(gòu)作為模板,使模型層代碼的生成更為簡(jiǎn)單。

        [BT4]1.2.2 控制層

        對(duì)于系統(tǒng)的控制層,采用Servlet實(shí)現(xiàn),如圖3所示。通過(guò)CommonServlet設(shè)置一些基本功能,其中包括訪問(wèn)控制、日志處理等信息。然后由較具體的類繼承這個(gè)CommonServlet,它們實(shí)現(xiàn)各自的執(zhí)行方法,但是并不具體。例如,對(duì)于Web應(yīng)用的基本功能:增加、刪除、修改、查詢操作,與業(yè)務(wù)對(duì)象無(wú)關(guān)的實(shí)現(xiàn)操作都抽象在二級(jí)抽象類Addservlet,Deleteservlet,Updateservlet及Queryservlet中,各業(yè)務(wù)對(duì)象對(duì)應(yīng)的具體模塊中相應(yīng)操作的Servlet繼承二級(jí)抽象類,完成具體操作。這在很大程度上減少了代碼的重復(fù),提高了代碼的利用率。

        各個(gè)模塊對(duì)應(yīng)的Servlet在結(jié)構(gòu)上具有很大的相似性,很容易提煉出統(tǒng)一結(jié)構(gòu)作為模板。應(yīng)用代碼生成器,可以使Web開(kāi)發(fā)速度得到很大提高。

        [BT4]1.2.3 視圖層

        視圖層為顯示提供一個(gè)數(shù)據(jù)模型,用于管理用戶的請(qǐng)求并做出相應(yīng)的響應(yīng)。不同的業(yè)務(wù)邏輯對(duì)應(yīng)不同的頁(yè)面,如添加頁(yè)面add.jsp、列表頁(yè)面list.jsp等,且根據(jù)用戶需求的不同,選擇多種頁(yè)面風(fēng)格,對(duì)于不同對(duì)象,只是顯示的內(nèi)容有所不同。本文框架的設(shè)計(jì)使視圖層大大簡(jiǎn)化,同一種類型的頁(yè)面對(duì)于各個(gè)模塊而言,包含大量的結(jié)構(gòu)相似代碼,同樣適于使用代碼生成工具實(shí)現(xiàn)。

        通過(guò)以上分析可知,這里所采用的Web應(yīng)用框架結(jié)構(gòu),在根據(jù)MVC模式劃分的每一層中,都將大量的通用操作封裝在抽象類中,具體業(yè)務(wù)對(duì)象繼承抽象類實(shí)現(xiàn)具體的業(yè)務(wù)邏輯,在很大程度上減少了代碼的重復(fù)率。

        具體業(yè)務(wù)對(duì)象的增加、刪除、修改、查詢等功能在系統(tǒng)各模塊中的處理方式相似,開(kāi)發(fā)人員手動(dòng)開(kāi)發(fā)重復(fù)率很高,交互頁(yè)面也存在大量的重復(fù)設(shè)計(jì)。這類代碼非常適合于使用代碼生成工具實(shí)現(xiàn),代碼生成技術(shù)的引入將大大地減少重復(fù)工作,減少開(kāi)發(fā)的工作量。

        根據(jù)對(duì)目標(biāo)系統(tǒng)的分析,可最終確定需要生成哪些目標(biāo)代碼,主要有:

        (1) 視圖層:各業(yè)務(wù)對(duì)象的add,list,update頁(yè)面(delete直接用Servlet實(shí)現(xiàn));

        (2) 控制層:各業(yè)務(wù)對(duì)象進(jìn)行add,delete,update,query操作所對(duì)應(yīng)的Servlet;

        (3) 模型層:各業(yè)務(wù)對(duì)象相應(yīng)的entity。

        2 代碼生成器的設(shè)計(jì)

        [BT3]2.1 代碼生成方式

        由第1.2節(jié)可知,各層目標(biāo)代碼由代碼生成器自動(dòng)生成。關(guān)于代碼生成器,比較典型的幾種生成方式包括:

        (1) 使用XSLT把XML轉(zhuǎn)為Java源代碼。

        采用XSLT處理器完成模板解析和變量替換,并使用樣式表語(yǔ)言,免去為文本定制規(guī)范的工作[7]。

        (2) 面向?qū)傩跃幊獭V饕荴Doclet,

        XDoclet使用類似JavaDoc標(biāo)記的注釋向類、方法和字段等語(yǔ)言特征添加元數(shù)據(jù)。隨后,它利用這些額外的元數(shù)據(jù)自動(dòng)生成配置文件、源代碼等。

        (3) 基于MDA。

        主要是AndroMDA,它是在模板技術(shù)和XDoclet兩項(xiàng)技術(shù)的基礎(chǔ)上實(shí)現(xiàn)Code Generation的。

        (4) 基于模板解析。

        通過(guò)模板解析引擎將輸入數(shù)據(jù)替換模板文件中可變部分生成目標(biāo)代碼,能夠生成Java,C/C++,SQL等各種語(yǔ)言代碼。采用模板方式生成代碼,可減小復(fù)雜性和增加可讀性,是代碼生成的主要實(shí)現(xiàn)手段[8]。

        在本文的代碼生成系統(tǒng)中,根據(jù)第1.2節(jié)中對(duì)目標(biāo)代碼的分析,需對(duì)每一層進(jìn)行模板的提取,輸入XML文件中包含具體的用戶需求信息,二者進(jìn)行相應(yīng)融合,即可逐層生成目標(biāo)代碼。

        成熟的模板引擎主要有Velocity,JET等,Velocity通過(guò)調(diào)用JDOM完成對(duì)XML文檔的解析,編碼量大,而基于EMF框架的JET模板引擎采用Xpath查詢語(yǔ)言完成對(duì)XML文檔的解析,大大減少了編碼量,從而使代碼生成過(guò)程更為快速,已經(jīng)越來(lái)越多的被使用。

        綜上,在本文代碼生成系統(tǒng)中,代碼生成器部分使用JET模板引擎,以XML文件為輸入數(shù)據(jù)模型,采用JET模板和XPath相結(jié)合的代碼生成方法。

        [BT3]2.2 基于JET模板的代碼生成器

        基于JET的代碼生成過(guò)程包括:加載以XML格式存儲(chǔ)的數(shù)據(jù)模型,通過(guò)XML Schema對(duì)模型進(jìn)行結(jié)構(gòu)完整性和語(yǔ)義一致性檢查,檢查通過(guò),則執(zhí)行模板引擎(控制文件),將模板文件與XML文件中的內(nèi)容合并以生成目標(biāo)代碼。生成過(guò)程如圖4所示。

        下面對(duì)代碼生成器的各部分進(jìn)行說(shuō)明:

        (1) XML文件驗(yàn)證(XML Validator)。

        XML文件用來(lái)存儲(chǔ)和交換數(shù)據(jù),采用層化關(guān)系,允許每個(gè)節(jié)點(diǎn)具有屬性,使動(dòng)態(tài)參數(shù)容易被獲得。XML文件定義相關(guān)數(shù)據(jù)信息,標(biāo)簽名是模板中待替換參數(shù),標(biāo)簽值則用于代替模板中待替換的參數(shù)[9]。

        利用XML Schema對(duì)XML文件的語(yǔ)法格式及有效性進(jìn)行驗(yàn)證,以保證代碼生成的質(zhì)量。XML Schema指定XML文檔所允許的組織結(jié)構(gòu)和必須包含的內(nèi)容,如:文檔中元素屬性、子元素的數(shù)量、屬性等。

        (2) 模板文件。

        在采用JET語(yǔ)言編寫模板文件時(shí),JET使用類JSP的語(yǔ)法,包括目標(biāo)代碼中的相同部分及各JET標(biāo)簽,可接受輸入對(duì)象作為參數(shù),可直接使用Java代碼執(zhí)行循環(huán)、聲明變量或執(zhí)行邏輯流程控制(腳本)[10] 。

        JET支持Xpath查詢語(yǔ)言,標(biāo)簽中select屬性通過(guò)括號(hào)({ 和 })包含動(dòng)態(tài)的XPath表達(dá)式,對(duì)XML文檔中標(biāo)簽名和標(biāo)簽值進(jìn)行解析,讀取相關(guān)元素及屬性信息。

        (3) 控制文件。

        JET是功能強(qiáng)大且靈活的模板引擎,包裝在〦clipse建??蚣蹺MF之內(nèi),通過(guò)控制文件main.jet控制代碼的生成。JET編譯器為每一個(gè)代碼模板創(chuàng)建一個(gè)Java源文件,并在生成代碼之前自動(dòng)將代碼模板編譯成JavaClass文件,然后接受用戶輸入的參數(shù),產(chǎn)生目標(biāo)代碼??刂莆募凶钪匾臉?biāo)記是,它將執(zhí)行一個(gè)模板并將結(jié)果轉(zhuǎn)儲(chǔ)至指定文件。

        3 代碼生成系統(tǒng)的實(shí)際驗(yàn)證

        [BT3]3.1 代碼生成系統(tǒng)的總體結(jié)構(gòu)

        以一個(gè)簡(jiǎn)單的Web信息發(fā)布系統(tǒng)為例,利用本文代碼生成系統(tǒng),可生成各層目標(biāo)代碼。當(dāng)業(yè)務(wù)對(duì)象發(fā)生變更或需要維護(hù)時(shí),只需要修改相關(guān)代碼生成系統(tǒng)的輸入模型就可以重新生成目標(biāo)代碼,使Web應(yīng)用的可維護(hù)性大大提高。

        該代碼生成系統(tǒng)的總體結(jié)構(gòu)如圖5所示,主要包含模型庫(kù)、模板轉(zhuǎn)換庫(kù)、代碼生成器三大部分。

        模型庫(kù)用于存放描述數(shù)據(jù)模型信息的XML文件,模板轉(zhuǎn)換庫(kù)中,以目錄樹(shù)的形式存放不同類別的模板;另外,模板轉(zhuǎn)換庫(kù)還存放有成熟的,具有特定功能的代碼片斷,有使用需要時(shí),將其綁定到模板中的相應(yīng)位置。代碼生成器通過(guò)控制文件,從模型庫(kù)選擇需要的XML文件,模板轉(zhuǎn)換庫(kù)選擇相應(yīng)的模板文件,從而生成Web應(yīng)用。

        模型庫(kù)以及模板轉(zhuǎn)換庫(kù)的采用能夠提高XML文件和各類型模板文件的使用率,從而提高代碼生成系統(tǒng)的可維護(hù)性及可擴(kuò)展性。

        [BT3]3.2 代碼生成系統(tǒng)各部分介紹

        [BT4]3.2.1 數(shù)據(jù)模型的輸入及驗(yàn)證

        數(shù)據(jù)模型包含用戶需求的所有數(shù)據(jù)源,前期的數(shù)據(jù)源越準(zhǔn)確、豐富,其結(jié)果也就越符合下一道工序的要求。因此,只有對(duì)系統(tǒng)的模型描述得準(zhǔn)確和完整,才能更準(zhǔn)確地生成Web應(yīng)用代碼。本代碼生成系統(tǒng)針對(duì)完整的Web應(yīng)用,因此XML文件中包含了用戶所提供的Web應(yīng)用各模塊全部信息。

        以下所示的程序中XML文件按照用戶需求將數(shù)據(jù)對(duì)象的信息分成幾個(gè)模塊進(jìn)行描述,程序中展示了代碼生成系統(tǒng)輸入XML文件的部分內(nèi)容,包含欄目、文章、用戶等模塊。

        對(duì)于每一個(gè)模塊,在具體描述上都與Web應(yīng)用的三層結(jié)構(gòu)相對(duì)應(yīng),分別從視圖層、控制層和模型層三方面對(duì)系統(tǒng)模型進(jìn)行描述。

        據(jù)此,XML文件分為四層進(jìn)行描述,以欄目模塊的模型層為例,四層分別為Webinfo,App,Model,〢ttr。其中,標(biāo)簽名,如Attr層的name,type是模板中待替換的參數(shù),而標(biāo)簽值,如ColumnID,ColumnName,String則用于代替模板中待替換的參數(shù)。這些描述表示欄目模塊模型層代碼中包含兩個(gè)屬性,分別為ColumnID,ColumnName,類型都是String。

        Webinfo[CD*2]PSM層指定系統(tǒng)XML文件中Schema 定義書(shū)的位置和名稱。只有通過(guò)Schema驗(yàn)證,生成過(guò)程才能順利進(jìn)行。

        [BT4]3.2.2 模板文件

        根據(jù)第1.2節(jié)對(duì)代碼生成系統(tǒng)目標(biāo)代碼的分析,可以歸納出需要抽象的模板,主要有:

        視圖層:add,list,update頁(yè)面模板;

        控制層:add,delete,update,query的Servlet模板;

        模型層:entity模板。

        [JP2]以模型層為例,對(duì)于XML文件中包含的幾個(gè)模塊,都對(duì)應(yīng)著相同的模板文件,如以下程序所示。select屬性包含Xpath路徑,通過(guò)路徑表達(dá)式可得到XML文件中的相應(yīng)信息。

        [BT4]3.2.3 控制文件

        代碼生成器控制文件如以下程序所示。

        控制文件指定模板文件及生成代碼的路徑及名稱,執(zhí)行時(shí)選定輸入文件webinfo.xml,即可生成所需代碼文件。由第3.2.2節(jié)所示程序可知,根元素Webinfo[CD*2]PSM下包含三個(gè)app元素,則利用,即可同時(shí)生成articleEntity.java,columnEntity.java以及userEntity.java三個(gè)文件。各個(gè)文件的結(jié)構(gòu)是一樣的。

        同樣,對(duì)于控制層而言,利用寫好的模板文件delete.jet,add.jet,update.jet,query.jet,可以通過(guò)代碼生成器生成各個(gè)模塊的delete,add,update,query代碼文件;對(duì)于視圖層而言,利用模板文件jspadd.jet,list.jet,jspupdate.jet,即可生成相應(yīng)添加、列表、修改等頁(yè)面代碼。

        這樣,通過(guò)代碼生成系統(tǒng)的使用,大大減少了手工編寫重復(fù)代碼,提高了軟件開(kāi)發(fā)的效率。

        4 結(jié) 語(yǔ)

        在此設(shè)計(jì)了一種基于MVC模式的新型Web應(yīng)用框架結(jié)構(gòu),將Web應(yīng)用分為視圖層、控制層、模型層,每一層都有明確分工,層次清晰,結(jié)構(gòu)明顯。在各層中,將大量的通用操作封裝在抽象類中,具體業(yè)務(wù)對(duì)象繼承抽象類實(shí)現(xiàn)功能,使代碼更為簡(jiǎn)潔、清晰。這樣,涉及到業(yè)務(wù)對(duì)象的代碼通過(guò)代碼生成器生成,進(jìn)一步減少重復(fù)性代碼的編碼量。

        該代碼生成系統(tǒng)已經(jīng)在一個(gè)Web應(yīng)用系統(tǒng)的開(kāi)發(fā)項(xiàng)目中經(jīng)過(guò)測(cè)試和檢驗(yàn)。實(shí)踐證明,使用該代碼生成系統(tǒng)開(kāi)發(fā)Web應(yīng)用,可以大幅度提高Web應(yīng)用開(kāi)發(fā)的質(zhì)量和效率,但本文所研究的代碼生成系統(tǒng),只能生成具有增加、刪除、修改、查詢功能的Web應(yīng)用,對(duì)于更加復(fù)雜的需求,還需進(jìn)一步擴(kuò)充模板庫(kù),以及對(duì)XML文件的描述語(yǔ)言進(jìn)一步細(xì)化。

        要實(shí)現(xiàn)可以滿足更多需求的Web應(yīng)用代碼生成系統(tǒng),還需要進(jìn)一步更深入的工作。

        參 考 文 獻(xiàn)

        [1]孫茂增,李鳳華,都婧.基于Velocity的J2EE應(yīng)用代碼生成系統(tǒng)[J].儀器儀表用戶,2008,15(1):105[CD*2]106.

        [2]Hailpern B,Tarr P.Model[CD*2]driven Development: the Good,the Bad and the Ugly[J].IBM Systems Journal,2006,48(3):451[CD*2]461.

        [3]李憲軍.基于J2EE的Web應(yīng)用框架研究[D].大連:大連海事大學(xué),2007.

        [4]王廣峰.模型驅(qū)動(dòng)的J2EE Web應(yīng)用生成器的設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2006.

        [JP2][5]Rod Johnson.J2EE Development Frameworks[J].〤omputer,2005,1(1):107[CD*2]110.[JP]

        [JP2][6]Ken Kennedy,Bradley Broom,Arun Chauhan.Telescoping Languages:A System for Automatic Generation of Domain Languages[J].Procedding of the IEEE,2005,93(2):266[CD*2]297.[JP]

        [7]陳翔,王學(xué)斌,吳泉源.代碼生成技術(shù)在MDA中的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2006(1):148[CD*2]149.

        [JP2][8]Hugge N,Wagner B.A New Function Block Modeling Language Based on Petri Nets for Automatic Code Generation [J].IEEE Trans.on Industrial Informatics,2005,1(4):226[CD*2]237.[JP]

        [9]戴周林.DaPerM:一種用MDA開(kāi)發(fā)數(shù)據(jù)持久層應(yīng)用的方法的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:復(fù)旦大學(xué),2006.

        [10]尹彥均.Web應(yīng)用代碼自動(dòng)生成平臺(tái)中代碼生成系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2007.

        作者簡(jiǎn)介 宋 微 女,1982年出生,河北保定人,碩士研究生。研究方向?yàn)閃eb應(yīng)用與基礎(chǔ)。

        李亞芬 女,1963年出生,北京人,高級(jí)工程師,碩士研究生。主要研究領(lǐng)域?yàn)閃eb應(yīng)用與基礎(chǔ)、數(shù)據(jù)庫(kù)、計(jì)算機(jī)控制系統(tǒng)。

        少妇熟女天堂网av天堂| 激情综合一区二区三区| 中国亚洲一区二区视频| 欧美噜噜久久久xxx| 无码人妻一区二区三区免费看| 成人欧美一区二区三区| 国产xxxxx在线观看| 国产 国语对白 露脸| 国产午夜精品理论片| 欧洲无码一级毛片无遮挡| 精品国免费一区二区三区| 日韩av中文字幕少妇精品| 伊人狼人影院在线视频| 精品一区二区三区婷婷| 日本一区二区精品高清| 色偷偷av一区二区三区| 国产69精品久久久久777| 毛片a级毛片免费观看| 狠狠久久亚洲欧美专区| 日韩精品网| 欧美日韩亚洲国产无线码| 蜜桃视频成年人在线观看| 蜜桃传媒免费在线观看| 亚洲av男人电影天堂热app| 337p人体粉嫩胞高清视频| 男女裸交无遮挡啪啪激情试看| 亚洲熟妇无码久久精品疯| 人成视频在线观看免费播放| 亚洲成生人免费av毛片| 精品一区二区三区蜜桃麻豆| 三a级做爰片免费观看| 无码中文字幕日韩专区视频| 欧美亚洲精品一区二区| 国产精品亚洲专区无码不卡| 蜜臀久久久精品国产亚洲av| 亚洲高清国产一区二区| 亚洲av无码一区二区三区天堂古代 | 天天躁日日躁狠狠躁av麻豆| 国产福利一区二区三区在线观看 | 久久亚洲精品成人综合| 成人爽a毛片在线播放|