色偷偷伊人-色偷偷综合-色无五月-色香蕉影院-色亚洲影院

逆向工程技術(shù)在信息系統(tǒng)開發(fā)中的應(yīng)用

所屬欄目:計(jì)算機(jī)信息管理論文 發(fā)布日期:2021-10-19 10:02 熱度:

   在互聯(lián)網(wǎng)技術(shù)飛速發(fā)展的今天,為了提升企業(yè)的經(jīng)營(yíng)效率、降低管理成本,越來(lái)越多的企業(yè)致力于投入資金和人力建立符合自身業(yè)務(wù)需要的信息系統(tǒng)。在企業(yè)級(jí)信息系統(tǒng)的設(shè)計(jì)思想領(lǐng)域,Java EE的三層架構(gòu)思想一直占有著主導(dǎo)地位。表現(xiàn)層負(fù)責(zé)將數(shù)據(jù)以用戶需要的形式進(jìn)行展示;業(yè)務(wù)邏輯層針對(duì)具體的問(wèn)題,調(diào)用Service或Service的組合來(lái)處理問(wèn)題;數(shù)據(jù)訪問(wèn)層則負(fù)責(zé)操作數(shù)據(jù)庫(kù)、完成具體的實(shí)現(xiàn)。數(shù)據(jù)訪問(wèn)層的代碼具有結(jié)構(gòu)相似、重復(fù)率高的特點(diǎn),縮短數(shù)據(jù)訪問(wèn)層的開發(fā)周期具有重要意義,闡釋了利用逆向工程工具生成數(shù)據(jù)訪問(wèn)層的代碼,這種策略能夠大幅縮短數(shù)據(jù)訪問(wèn)層的開發(fā)周期、提高開發(fā)效率。

逆向工程技術(shù)在信息系統(tǒng)開發(fā)中的應(yīng)用

  1 研究的背景及意義

  在互聯(lián)網(wǎng)技術(shù)飛速發(fā)展的今天,為了提升企業(yè)的經(jīng)營(yíng)效率、降低管理成本,越來(lái)越多的企業(yè)致力于投入資金和人力建立符合自身業(yè)務(wù)需要的信息系統(tǒng)。在企業(yè)級(jí)信息系統(tǒng)的設(shè)計(jì)思想領(lǐng)域,Java EE的三層架構(gòu)思想一直占有著主導(dǎo)地位。近20年來(lái),占有率最高的技術(shù)組合從最初的JSP+Servlet+DAO,變成了SSH,然后是SSM,到最近的Spring Boot、Spring Cloud,無(wú)論哪一種技術(shù)組合,都在三層架構(gòu)的思想下進(jìn)行設(shè)計(jì)和編碼,即:表現(xiàn)層負(fù)責(zé)將數(shù)據(jù)以用戶需要的形式進(jìn)行展示;業(yè)務(wù)邏輯層針對(duì)具體的問(wèn)題,調(diào)用Service或Service的組合來(lái)處理問(wèn)題;數(shù)據(jù)訪問(wèn)層則負(fù)責(zé)操作數(shù)據(jù)庫(kù)、完成具體的Service實(shí)現(xiàn)。對(duì)大量系統(tǒng)項(xiàng)目的代碼進(jìn)行分析和比較后不難發(fā)現(xiàn),數(shù)據(jù)訪問(wèn)層具有以下特點(diǎn):

  (1)代碼量占比相對(duì)較高。數(shù)據(jù)訪問(wèn)層代碼量大概占整個(gè)系統(tǒng)編碼總量的20%~30%;在以數(shù)據(jù)分析、統(tǒng)計(jì)為主要功能的系統(tǒng)中,數(shù)據(jù)訪問(wèn)層的代碼占比甚至能到達(dá)40%。

  (2)代碼的重復(fù)率較高。不管DAO層包含多少?gòu)垟?shù)據(jù)表,對(duì)它們進(jìn)行Create、Retrieve、Update、Delete4種操作的語(yǔ)句的語(yǔ)法、結(jié)構(gòu)都是相同的,差異僅在于表名、參數(shù)等部分,這使得DAO層的代碼重復(fù)率、相似度非常高。

  從軟件開發(fā)者的角度看,DAO層的代碼若采用人工編寫的方式編寫,盡管可行,但創(chuàng)造性勞動(dòng)較少,是一個(gè)相對(duì)冗長(zhǎng)、乏味的過(guò)程。若能找到一種自動(dòng)化的方法完成上述編碼工作,至少有以下兩個(gè)方面的好處:(1)從程序員的角度看,能夠免去冗長(zhǎng)、乏味的編碼過(guò)程,從而有更多精力專注于業(yè)務(wù)邏輯、用戶界面、用戶體驗(yàn)等部分;(2)從企業(yè)的角度看,能夠降低DAO層的開發(fā)周期、減少所需的人力、節(jié)省成本。

  逆向工程是從已完成的產(chǎn)品或系統(tǒng)出發(fā),借助各種工具進(jìn)行分析和研究,進(jìn)而推導(dǎo)出該產(chǎn)品的處理流程、組織結(jié)構(gòu)、功能特性、技術(shù)規(guī)格等設(shè)計(jì)要素的技術(shù)。與直接開發(fā)相比,借助逆向工程技術(shù)來(lái)開發(fā)能在一定程度上縮短開發(fā)周期、減少投入經(jīng)費(fèi)、減少人力成本,并取得功能相似的產(chǎn)品。以My Eclipse、Oracle數(shù)據(jù)庫(kù)為例,闡釋如何采用逆向工程技術(shù)自動(dòng)實(shí)現(xiàn)上述目標(biāo)。

  2 逆向工程技術(shù)使用流程

  2.1 在IDE中添加逆向工程插件

  以My Eclipse 2017、Hibernate框架為例,添加插件的步驟為:在My Eclipse的Project Explorer中選中項(xiàng)目,右鍵菜單【Configure Facets】-->【Install Hibernate Facet】,即完成了逆向工程插件的添加。

  2.2 創(chuàng)建數(shù)據(jù)庫(kù)、表結(jié)構(gòu)、表約束

  以租房信息管理系統(tǒng)的表結(jié)構(gòu)為例,將被執(zhí)行逆向工程的表的結(jié)構(gòu)信息如下:

  (1)用戶表User (ID,Name,Password,Telephone,Use-rname)

  (2)房屋類型表Type (ID,Name)

  (3)街道表Street (ID,Name,district_id)

  (4)區(qū)表District (ID,Name)

  (5)房屋表House (ID,User_id,type_id,street_id,ti-tle,price,floorage,imge)

  用下劃線標(biāo)記的字段為主鍵;用波浪線標(biāo)記的字段為外鍵。

  2.3 利用逆向工程工具生成DAO層代碼

  2.3.1 開啟Database Explorer

  在My Eclipse 207中依次選擇菜單【W(wǎng)indow】-->【Perspective】-->【Open Perspective】-->【Database Explorer】。

  2.3.2 添加Oracle數(shù)據(jù)庫(kù)連接

  在【DB Browser】中依次選擇菜單【New】-->【輸入數(shù)據(jù)庫(kù)配置信息(驅(qū)動(dòng)信息、連接URL、用戶名、密碼)】-->【連接】,可連接上數(shù)據(jù)庫(kù)并查看到所有的Schema和數(shù)據(jù)庫(kù)對(duì)象。

  2.3.3 對(duì)表使用逆向工程

  在Schema中找到要執(zhí)行逆向工程的5張表。然后右鍵菜單【Hibernate Reversing Engineering】--設(shè)置生成的DAO層代碼保存路徑--Finish,即可完成DAO層代碼的生成。

  上述5表生成的DAO層主要類如下:

  (1) District DAO,持久化操作District表。(2)House DAO表,持久化操作House表。(3) Street DAO,持久化操作Street表。(4) User DAO,持久化操作User表。(5) Type DAO,持久化操作Type表。(6) Hibernate Session Factory,創(chuàng)建Sessesion Factory。(7) BaseHibernate DAO,基類,提供訪問(wèn)數(shù)據(jù)庫(kù)所需的Session。

  3 對(duì)DAO層代碼進(jìn)行必要調(diào)整、集成到系統(tǒng)

  3.1 代碼調(diào)整

  逆向工程工具生成的DAO類的基本成員類型,有時(shí)會(huì)需要進(jìn)行必要的調(diào)整,調(diào)整主要涉及到兩個(gè)方面:

  3.1.1 DAO類基本屬性類型的調(diào)整

  例如,DAO類代碼中映射主鍵的ID字段的類型為Java.lang.Double,大多情況下調(diào)整為Java.lang.Integer較合適。

  3.1.2 手動(dòng)創(chuàng)建某些名稱特殊的DAO類

  例如,數(shù)據(jù)庫(kù)中房屋類型Type表,由于Type類為Jdk中已有的類,因而無(wú)法生成Type.java和Type DAO.java。這種情況下,只能手動(dòng)創(chuàng)建Type.java、Type DAO.java。當(dāng)逆向工程工具遇到名字特殊的表時(shí),不能正常生成。解決這個(gè)問(wèn)題的方式是,預(yù)先將表的名稱修改成非特殊名稱,然后再使用逆向工程工具。

  3.2 集成到系統(tǒng)

  根據(jù)是否系統(tǒng)是否采用了Spring,集成方式分為以下兩種情況:未采用Spring的系統(tǒng)、采用了Spring的系統(tǒng)。

  3.2.1 未采用Spring的系統(tǒng)

  可直接集成。即,在服務(wù)層直接使用new的方式創(chuàng)建DAO對(duì)象,然后對(duì)相應(yīng)的表進(jìn)行持久化操作。

  3.2.2 采用了Spring的系統(tǒng)

  采用了Spring的系統(tǒng),Spring的IOC容器中創(chuàng)建并維護(hù)著操作數(shù)據(jù)庫(kù)所需的Session Factory Bean。在這種情形下,DAO對(duì)象中的Session Factory應(yīng)采用用自動(dòng)裝配的方式從Spring的IOC容器中獲取Session Factory,不再采用new的方式創(chuàng)建。

  3.3 在DAO中添加自定義的數(shù)據(jù)庫(kù)訪問(wèn)方法

  通過(guò)逆向工程工具生成的DAO類中具備方法較多,常用的如下(以House DAO為例):

  (1) void delete (House),刪除House對(duì)象對(duì)應(yīng)的記錄。(2) List find All(),查詢House表中的所有記錄。(3) List find By Example (House),查詢House表中屬性與參數(shù)匹配的記錄。(4) List find By Property (String,Object),根據(jù)屬性名、屬性值查詢表中能匹配的記錄。(5) House merge (House),將傳入的托管態(tài)的對(duì)象的屬性復(fù)制到持久化對(duì)象中,并返回持久化對(duì)象。(6) void save (House),根據(jù)House對(duì)象在表中插入新紀(jì)錄。

  4 結(jié)語(yǔ)

  逆向工程工具的采用使得數(shù)據(jù)訪問(wèn)層代碼的生產(chǎn)方式從人工編寫轉(zhuǎn)變成了自動(dòng)生成,大幅地提高了開發(fā)效率、縮短了編碼周期,從而使得開發(fā)人員能夠?qū)⒏嗟木W⒂跇I(yè)務(wù)層、用戶界面、用戶體驗(yàn)的工作,具有相當(dāng)?shù)氖褂脙r(jià)值。

  參考文獻(xiàn)

  [1]王奎.基于SSM框架的Java Web開發(fā)課程教學(xué)中的幾點(diǎn)思考[J].電腦知識(shí)與技術(shù),2018,(27).

  [2]吳官學(xué)基于Spring MVC酒店信息管理系統(tǒng)[D].吉林大學(xué)2018.

  [3]葛萌基于Spring MVC框架的Java Web應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2018.(08).

  《逆向工程技術(shù)在信息系統(tǒng)開發(fā)中的應(yīng)用》來(lái)源:《電腦編程技巧與維護(hù)》,作者:高新凱

文章標(biāo)題:逆向工程技術(shù)在信息系統(tǒng)開發(fā)中的應(yīng)用

轉(zhuǎn)載請(qǐng)注明來(lái)自:http://www.anghan.cn/fblw/dianxin/xinxiguanli/46938.html

相關(guān)問(wèn)題解答

SCI服務(wù)

搜論文知識(shí)網(wǎng) 冀ICP備15021333號(hào)-3

主站蜘蛛池模板: 国产视频高清在线观看 | 大人和孩做爰h视频在线观看 | 美日韩免费视频 | 黑人超大 | 久久亚洲私人国产精品va | 国产a久久精品一区二区三区 | 亚洲成在人天堂一区二区 | 成年男女免费大片在线观看 | 特黄aaaaaa久久片 | 国产精品久久久久久福利69堂 | 久久www免费人成精品 | 看国产一级片 | 国产高清免费午夜在线视频 | 欧美午夜精品 | 久久青草18免费观看网站 | 日韩中文字幕在线观看视频 | xxxx国产视频| 欧美国产成人免费观看永久视频 | 亚洲在线视频一区 | tobesex日本护士| 欧美成人看片一区二区三区 | 国产女人一区二区 | 久久久久久88色愉愉 | 91在线免费公开视频 | 国产免费高清mv视频在线观看 | 亚洲欧洲日韩天堂无吗 | 成年性羞羞视频免费观看无限 | 久久国产精品-国产精品 | 亚洲黄色片| 黄色一级免费 | 国产大片免费在线观看 | 久热青青青在线视频精品 | 亚洲欧美日韩一区高清中文字幕 | 免费在线观看中文字幕 | 成人精品一区二区不卡视频 | 中国特级片 | xxxx色| 欧美一级毛片欧美一级 | 久久精品国产99国产精品 | 91啦中文成人 | 日韩欧美在线观看视频一区二区 |