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

基于Eclipse智能代碼生成框架的研究

2013-04-12 00:00:00宮愛愛丁香乾侯瑞春
現代電子技術 2013年18期

摘 要: Eclipse是一個基于Java的可擴展開發平臺,它本身是由一個框架和一組服務組成,用于通過插件組件的形式構建開發環境。富客戶端平臺RCP是位于Eclipse平臺核心的功能,它可以視為基于OSGi構建插件系統的最佳實踐指導,同時可重用Eclipse中已存在的方法和編碼模式。圖形化的模型框架GMF是一個Eclipse建模項目的子項目,其目標是為Eclipse建模框架EMF和圖形化編輯框架GEF提供一個統一的橋梁,從而為代碼工具的生成奠定了良好的基礎。而EMF是Eclipse MDA的一個重要組成部分,通過它可以將模型轉換成高效正確和易于定制的Java代碼。在此結合Eclipse平臺、RCP工程及GMF、EMF等相關技術,研究分析了智能代碼生成框架的設計過程。

關鍵詞: Eclipse; RCP; EMF; 智能代碼生成框架

中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2013)18?0055?04

0 引 言

隨著網絡的迅速發展,在實際生活中Web應用得到了更廣泛的應用,越來越多的人把目光投放到Web應用系統開發上。隨之而來軟件開發的便捷高效性受到軟件開發人員的高度重視,軟件代碼的自動生成更吸引了業界越來越多的注意力,越來越成為開發者努力發展的目標。通過像軟件復用以及軟件構件等相關技術,已經將已有的設計成果在很大程度上利用起來[1]。在軟件工程的發展過程中,為了方便軟件開發,進而減少代碼的重復編寫,開發者致力于代碼自動生成工具的研究。

Eclipse提供的插件機制為開發者提供了可以任意展示的平臺,開發者可以根據需要在平臺上集成所需的功能插件,然而Eclipse的這種特點就需要它能夠隨時的發現平臺中已經集成的插件,這也是Eclipse擴展功能的核心[2]。Eclipse平臺本身只處理后臺的基本工作,所以插件只需要關注自身所需要實現的功能,而不用擔心怎么被Eclipse發現以及調用。與此同時Eclipse不僅為開發Java應用程序提供了開發工具,而且還支持C/C++的開發。因此,為了支持不同應用的不同需求,Eclipse可以通過插件集成機制擴展許多功能[3]。

1 相關技術介紹

1.1 富客戶端平臺RCP

Eclipse平臺的核心是插件,而位于Eclipse中的一項核心功能便是富客戶端平臺RCP(Rich Client Platform)[4]。基于Eclipse平臺,開發Web應用比較容易,眾所周知,如果開發桌面應用程序就比較困難,因為Eclipse平臺缺少圖形化的開發界面,富客戶端平臺RCP的插件機制解決了Eclipse開發桌面應用程序的瓶頸,它為構建桌面應用程序提供了基本的框架,進而解決了Eclipse轉向桌面應用開發的難題,而且基于RCP工程,可以做到比較簡單的就實現設計架構而且還擁有專業化的設計效果。富客戶端平臺RCP以OSGi為基礎,它在工程中應用了擴展點的設計思想,所以RCP可以比較完善的開發基于插件的應用系統。同時在RCP中很好地體現了擴展點的表現形式,從它友好地支持桌面應用開發就能看出來[5]。RCP工程中首先依據對象的思路將界面進行切分,在分解的時候按照功能不同便形成了不同的插件,逐漸展現出擴展點,最終展現了跟樹相似的架構。插件結構圖如圖1所示。

下面簡單介紹Eclipse RCP的體系結構,一個Eclipse RCP可分為如下5個部分:

(1)工作臺(Wrokbench)。提供了Eclipse的用戶界面。是運用SWT和API(JFace)來構建的;

(2)工作區(Workspace)。它是一個插件,主要負責管理用戶的資源。如果資源信息該改變,它還負責通知其他插件,例如:文件的創建、更新等;

(3)幫助系統(Help)。它能夠提供一個附加的導航結構,當用戶需要添加文檔時,可以讓工具應用XML文件的形式添加;

(4)支持系統(Team)。該組件主要負責支持版本控制和配置管理。它會根據應用的需要添加視圖;

(5)運行平臺(Platform Runtime)。平臺運行庫是整個Eclipse的內核,啟動時會自動檢測已經安裝了的插件,并在注冊表中創建相關的信息。

1.2 EMF和GEF技術

圖形編輯框架GEF和建模框架EMF分別是Eclipse中的兩個子項目,GEF是Eclipse平臺中提供的圖形編輯框架,它可以為用戶提供圖形化編輯模型[1]。而EMF是Eclipse提供的模型驅動應用程序開發框架,它是可以用來產生代碼的框架[6]。

建模框架EMF(Eclipse Modeling Framework)可以采用模型驅動的方式設計實現Web應用程序,它是Eclipse平臺中又一個非常重要的子項目,開發人員可以全身心的投入應用系統模型的設計上,因為建模框架集成了代碼智能自動生成工具,從而使開發者不用擔心內部代碼的具體設計編寫規范。而上文所說的模型就是EMF內部設計的元模型(名為Ecore),它包含了屬性、方法等基本的內容。所謂的EMF代碼自動生成就是要依據上面所說的模型,根據Ecore模型智能生成復合Eclipse中規范的Java代碼[7?8]。這種方法的優點是第一顯而易見提高了開發的效率。第二能夠保持代碼與模型的一致性,當模型發生變化后只需要重新根據模型生成代碼即可,減少了手動開發中所存在的不必要的失誤。

通過以上對EMF的分析可以看出應用程序在EMF的基礎上來構造只需要兩步:構造模型和生成代碼。EMF中支持的模型定義方式非常的廣泛,像UML類圖、Java接口等均可以。模型編輯完成后,就可以根據模型智能生成代碼了,在代碼生成階段光生成與模型有關的代碼或者也生成與編輯器有關的代碼都是可以的。而要想得到復合要求應用只求要對編輯器做一些修改就可[9]。

2 智能代碼生成框架的設計

隨著開發實踐工作的不斷深入,目前代碼生成工具的發展已經越來越成熟。本文設計研究的智能代碼生成工具是基于Eclipse平臺的智能自動XML代碼生成工具。本身是以插件的形式安裝,使用所見即所得的圖形界面編輯Web應用系統的視圖界面,能夠實時預覽,瀏覽調試信息,并可以導出XML代碼及最終部署配置所需要的文件。

2.1 框架的總體架構

智能代碼生成工具的基本框架如圖2所示,它可以劃分為不同的功能模塊,下面分別介紹每一部分的特點。UI層主要接受用戶的操作請求并且進行響應,然后把不同的操作轉化為各種不同的請求,發給Model層或者Engine層,在這個過程中需要經過Template層進行分配。Template層主要負責為各種不同種類的界面提供個性化的設計。Model層是代碼工具整體架構的基礎。它為代碼生成工具定義了不同的數據模型,將需要產生的代碼劃分為元素,進行更高層的抽象。

Engine層主要負責代碼的自動生成,將Model層的數據結構模型自動轉換為實際的代碼[10]。

2.2 框架的主要特點

通過對智能代碼生成工具總體架構的分析,可以看出它的主要特點,首先它是一個集成的開發平臺,擁有比較高的自動化程度,并且提供了友好的可視化的編輯界面,從而降低了開發人員對技術的要求[10]。所謂的集成的開發平臺可以進行Web應用的設計、預覽以及代碼編輯,同時可以隨時瀏覽調試信息,因而程序員可以只關心系統的架構以及模型的設計,而無需關注底層代碼的設計生成;自動化程度主要表現在平臺中很多的操作都已經實現了自動完成,很大程度地提高了程序員的開發效率;在開發工具中提供了友好的可視化編輯界面,可以通過簡單的可視化配置來設計模型從而完成平代碼的自動生成,無需對XML代碼進行功能程序的修改;由于代碼生成工具的靈活度很高,很多操作可以通過配置操作就可以簡單的完成,也可以直接編寫代碼,以前用文本工具能做到的在代碼工具中都可以完成。

舉例來說,在開發平臺中創建可訪問資源。通過可視化的配置就可以形成系統可訪問的菜單。如圖3所示。

在可視化窗口配置完成后,在相應的文件中代碼就會自動生成,如圖4所示,在相應的模型視圖中配置好可訪問資源的菜單及相應的子菜單模型后,相應的可訪問資源配置文件中的代碼也會自動生成。

2.3 框架的實現

工具的實現首先需要配置好開發環境,代碼工具主體程序是一個RCP工程并且基于Eclipse平臺,而設計實現所需的主要的功能插件有編輯模型框架GEF,建模框架EMF,圖形化建模框架GMF以及SWT,Draw2D等。

代碼生成工具的設計是基于RCP工程,在工程中包含兩個配置文件Plugin.xml和build.properties。Plugin.xml文件列出了Eclipse的擴展點,而這個文件便是用來使用和定義Eclipse擴展點的。關聯Eclipse插件的基本方式是擴展點。build.properties文件是在集成插件的時候指定了要build的內容及相關資源的路徑。如果向工具新增一些資源,如圖標文件等需要把它們添加到build.properties文件中的bin.include一節。

整個代碼生成框架的核心是模型,并且整個模型幾乎都是為用戶界面的生成服務,這符合了系統的宗旨。而建模框架EMF為模型設計提供了基礎,模型是基于EMF的Ecore模型,它是關于應用的類和數據的簡單模型。當建立Ecore后,代碼生成工具采用實現與接口相分離的設計,將模型中的每個類自動生成一個接口和一個實現類。它從表達用戶需求信息的功能模型出發到最終生成工程的源代碼。

從圖5中可以看出代碼生成的過程可以分為4個階段。

第一為需求分析階段,它是整個代碼生成過程的基礎。主要負責將用戶提出的需求以模型的方式表示出來;

第二個是構件的創建階段,根據上一個階段確定好的用戶需求來創建Web應用,這個階段的主要任務就是確定Web應用的類型以及所包含的資源的基本邏輯屬性等;

第三是模型的創建階段,定義Web應用所用到的可訪問資源、業務模式及頁面控件,通過可視化的配置到應用中,進而確定系統包含的基本菜單及內部對數據的基本操作、用戶權限分配等;第四是智能代碼生成階段,上一個階段配置好模型的基本屬性內容以后代碼會在創建的應用中相應的文件中智能生成代碼。

3 結 語

智能代碼自動生成工具的研究,是在改變以往的軟件開發方式,進而可以簡化Web應用的開發過程,提高開發效率。本文主要研究與實現了智能代碼生成工具[11]。將智能代碼生成工具引入在Web應用開發,可以很大程度上改善傳統軟件開發方式中存在的缺陷。代碼生成工具在項目開發中的廣泛應用,使系統設計模型可以自動轉換成所需要的代碼,避免了直接去手工編寫代碼進而進行大量的重復性工作,為開發人員減輕了工作量和工作負擔,提高了工作效率,從而使開發人員在開發不同的Web應用時能夠快速構建系統架構,進而快速完成系統的設計。

參考文獻

[1] 施洪潔.GEF圖形編輯器自動生成的研究[D].長春:長春工業大學,2011.

[2] AGRAWAL R, IMIELINSKI T, SWAMI A. Mining association rules between sets of items in large databases [C]// Proceedings of ACM SIGMOD Conference on Management of Data. Washington, DC: ACM, 2008: 207?216.

[3] 趙麗娜.試談安裝Eclipse插件的方法[J].電腦編程技巧與維護,2011(16):112?113.

[4] 詹鵬飛.基于GMF的Web快速開發工具的研究與實現[D].廣州:華南理工大學,2010.

[5] 袁赟. Eclipse RCP框架分析和應用研究[D].上海:同濟大學,2008.

[6] 常浩浩,覃征.基于EMF和OCL的MDA軟件工程方法研究[J].計算機科學,2007(1):268?271.

[7] PARK J S, CHEN M S, YU P S. An effective hash-based algorithm for mining association rules [C]// Proceedings of ACM-SIGMOD International Conference on Management of Data. San Jose, CA: ACM, 1995: 175?186.

[8] 劉強.設計模式的形式化研究及其EMF實現[D].上海:華東師范大學,2011.

[9] 管太陽.基于模板的自動代碼生成技術的研究[D].成都:電子科技大學,2007.

[10] 何亮.代碼自動生成工具在軟件開發中的應用[J].信息與電腦:理論版,2011(10):109?110.

[11] CHEUNG D W. Maintenance of discovered association rules in large databases: an incremental updating technique [C]// Proceedings of the 12th International Conference on Data Engineering. New Orleans, Louisana: ICDE, 1996: 106?114.

[12] 萬東.基于GEF和EMF的JavaEE快速開發工具設計[J].現代電子技術,2010,33(10):66?68.

主站蜘蛛池模板: 91久久偷偷做嫩草影院免费看| 亚洲精品爱草草视频在线| 国产精彩视频在线观看| 人妻中文久热无码丝袜| 手机在线免费毛片| 青青久视频| 国产杨幂丝袜av在线播放| 台湾AV国片精品女同性| 欧美福利在线| 国产高清不卡视频| 欧美a级在线| 久久99精品久久久久纯品| 亚洲看片网| 18禁影院亚洲专区| 91国内外精品自在线播放| 国产日韩久久久久无码精品| 婷婷色中文网| 91蜜芽尤物福利在线观看| 性色生活片在线观看| 久久毛片免费基地| 免费jizz在线播放| 欧美五月婷婷| 一级毛片a女人刺激视频免费| 中文字幕亚洲无线码一区女同| 狼友av永久网站免费观看| 日韩精品无码免费专网站| 国产极品美女在线播放| 色有码无码视频| 色网站在线视频| 精品伊人久久大香线蕉网站| 超清人妻系列无码专区| 国产97视频在线| 在线观看国产精美视频| 国产综合精品日本亚洲777| 大学生久久香蕉国产线观看| 欧美日韩中文国产va另类| 午夜无码一区二区三区在线app| 日本久久免费| 91精品国产自产91精品资源| 国产精品开放后亚洲| 日本在线视频免费| 中文无码精品a∨在线观看| a毛片免费观看| 国产在线一区视频| 99精品视频在线观看免费播放| 午夜精品久久久久久久无码软件| 国产女人综合久久精品视| 国产在线精彩视频二区| 亚洲精品波多野结衣| 亚洲日韩精品欧美中文字幕| 四虎影视国产精品| 国产精品视频猛进猛出| 伦伦影院精品一区| 国产国产人免费视频成18| 亚洲久悠悠色悠在线播放| 暴力调教一区二区三区| 国产精品99久久久久久董美香| 在线日韩一区二区| 国产精品极品美女自在线看免费一区二区| 久久综合丝袜长腿丝袜| 99久久人妻精品免费二区| 亚洲欧美日本国产综合在线| 精品91自产拍在线| 丁香婷婷激情网| 国产在线精品美女观看| 噜噜噜久久| 欧美日韩福利| 亚洲男人的天堂在线观看| 免费国产小视频在线观看| 国产丝袜无码一区二区视频| 深夜福利视频一区二区| 这里只有精品免费视频| 欧美一级一级做性视频| 久久免费看片| 99视频在线看| 99久久国产综合精品女同| 亚洲精品中文字幕无乱码| 国产成人精品免费视频大全五级| 老司国产精品视频91| 久久精品一卡日本电影| 国产乱子伦视频三区| AV老司机AV天堂|