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

        ?

        軟件構(gòu)件庫(kù)技術(shù)研究

        2018-07-02 22:35:42毛洪川韓潔胡豪王芳
        科技傳播 2018年11期

        毛洪川 韓潔 胡豪 王芳

        摘 要 近年來(lái),大型應(yīng)用系統(tǒng)軟件逐漸增多,軟件的質(zhì)量和開(kāi)發(fā)效率嚴(yán)重制約著系統(tǒng)軟件的發(fā)展,軟件代碼的復(fù)用再次成為軟件開(kāi)發(fā)的研究熱點(diǎn),軟件構(gòu)件的建立為軟件的重用提供了基本的技術(shù)支持。軟件的構(gòu)件庫(kù)研究,被軟件行業(yè)的執(zhí)行者認(rèn)為是提高軟件開(kāi)發(fā)的生產(chǎn)效率、解決軟件危機(jī)和提高軟件產(chǎn)品質(zhì)量的必要途徑之一。通過(guò)軟件構(gòu)件的重用,可以提高軟件開(kāi)發(fā)過(guò)程的質(zhì)量和工作效率。

        關(guān)鍵詞 軟件重用;軟件構(gòu)件;軟件構(gòu)件技術(shù)

        中圖分類(lèi)號(hào) TP3 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 1674-6708(2018)212-0094-03

        1 研究背景

        構(gòu)件庫(kù)技術(shù)是通過(guò)組裝一系列可復(fù)用的獨(dú)立軟件構(gòu)件來(lái)組建軟件系統(tǒng)的一種軟件技術(shù)。利用這種構(gòu)件組裝技術(shù),軟件開(kāi)發(fā)人員可以有效地使用有效的獨(dú)立構(gòu)件來(lái)復(fù)用軟件,減少重復(fù)開(kāi)發(fā),縮短軟件開(kāi)發(fā)時(shí)間,降低軟件開(kāi)發(fā)成本。

        構(gòu)件庫(kù)技術(shù)封裝類(lèi)的組合,表示可以執(zhí)行一個(gè)或者多個(gè)功能點(diǎn)的特定類(lèi)集合,還可以為不同的用戶(hù)提供不同的接口。構(gòu)件庫(kù)的建立隱藏了構(gòu)件的具體代碼實(shí)現(xiàn)并僅通過(guò)對(duì)外接口來(lái)進(jìn)行軟件的復(fù)用。用分層的表示方法來(lái)說(shuō),構(gòu)件庫(kù)的建立可以將軟件系統(tǒng)底層中的多個(gè)邏輯處理單元組合成更高一層次的軟件構(gòu)件,甚至可直接將這些可復(fù)用的軟件單元封裝成一個(gè)完成的軟件系統(tǒng),使軟件構(gòu)件的復(fù)用從最底層的代碼層和對(duì)象層到軟件體系架構(gòu)層和系統(tǒng)層都可以實(shí)現(xiàn),從而使軟件像硬件一樣,通過(guò)各種構(gòu)件的組合可以快速的開(kāi)發(fā)。

        2 基于構(gòu)件開(kāi)發(fā)優(yōu)點(diǎn)

        軟件的構(gòu)件開(kāi)發(fā)與軟件系統(tǒng)的開(kāi)發(fā)一樣,在開(kāi)發(fā)過(guò)程中可能包含有一定的問(wèn)題和缺陷,但是當(dāng)這個(gè)軟件構(gòu)件被其他軟件復(fù)用時(shí),那么復(fù)用的軟件構(gòu)件中所包含的問(wèn)題和Bug已經(jīng)趨于穩(wěn)定,可能出現(xiàn)新的問(wèn)題和Bug也會(huì)很少。對(duì)新開(kāi)發(fā)的軟件系統(tǒng)而言,復(fù)用穩(wěn)定的軟件構(gòu)件相對(duì)于完全重新編碼而言,軟件的可靠性更高。從用戶(hù)的角度看,軟件構(gòu)件可以被很好的集成在一起,擁有相同或相似的功能和用戶(hù)界面。基于構(gòu)件開(kāi)發(fā)軟件的優(yōu)點(diǎn)。

        1)縮短上市周期。一個(gè)新開(kāi)發(fā)的軟件系統(tǒng)在軟件的研制初期,可以根據(jù)用戶(hù)提出的需求在軟件的構(gòu)件庫(kù)中查找可復(fù)用的軟件構(gòu)件,再以選定后軟件構(gòu)件為基礎(chǔ)開(kāi)發(fā)應(yīng)用軟件時(shí),只需要編寫(xiě)除復(fù)用軟件構(gòu)件外的其他軟件功能代碼即可。復(fù)用的代碼越多,需要重新編寫(xiě)的代碼就越少,軟件系統(tǒng)所需要的開(kāi)發(fā)周期就會(huì)相應(yīng)的縮短,從而采用軟件構(gòu)件可以有效地縮短軟件產(chǎn)品的上市周期。

        2)節(jié)省維護(hù)成本。在軟件研制的生存周期內(nèi),軟件的后期維護(hù)在整個(gè)軟件的生存周期中是時(shí)間最長(zhǎng)的,同時(shí)相應(yīng)的開(kāi)發(fā)成本也是最高的。對(duì)于大型軟件應(yīng)用系統(tǒng)而言,主要的成本消耗就是找后期的軟件產(chǎn)品維護(hù)上,軟件重新開(kāi)發(fā)需求縮減可以很大程度降低軟件開(kāi)發(fā)的總成本。當(dāng)維護(hù)一個(gè)由軟件構(gòu)件所集成出來(lái)不同軟件產(chǎn)品時(shí),只需要維護(hù)這個(gè)相對(duì)穩(wěn)定軟件構(gòu)件,以及每個(gè)軟件系統(tǒng)中其他需求部分即可。在維護(hù)軟件系統(tǒng)是所有的變化只會(huì)出現(xiàn)在一個(gè)構(gòu)件中產(chǎn)生,就可以保持軟件產(chǎn)品一致性。與同時(shí)維護(hù)幾個(gè)完全不同的軟件應(yīng)用相比較,采用軟件構(gòu)件方式可以大大節(jié)省軟件維護(hù)成本。

        3)節(jié)省測(cè)試成本。當(dāng)一個(gè)軟件構(gòu)建被復(fù)用時(shí),與該本構(gòu)件所有相關(guān)的測(cè)試用例和結(jié)果也可被復(fù)用。對(duì)于軟件而言,必須測(cè)試的對(duì)象是除復(fù)用軟件構(gòu)件以外其他新模塊的測(cè)試,還要對(duì)新模塊和復(fù)用的軟件構(gòu)件之間的集成代碼的測(cè)試和與軟件構(gòu)件集成后的系統(tǒng)測(cè)試。因此,相對(duì)于完全新開(kāi)發(fā)的代碼測(cè)試與調(diào)試的數(shù)量大大縮減了,通過(guò)軟件構(gòu)件的復(fù)用可以大大節(jié)省測(cè)試的成本。

        4)使軟件開(kāi)發(fā)標(biāo)準(zhǔn)化。遵循軟件開(kāi)發(fā)標(biāo)準(zhǔn)而精心設(shè)計(jì)出來(lái)的軟件構(gòu)件,是軟件開(kāi)發(fā)人員以最好實(shí)踐經(jīng)驗(yàn)為基礎(chǔ)設(shè)計(jì)出來(lái)接近完美的構(gòu)件。當(dāng)軟件開(kāi)發(fā)人員以構(gòu)件為基礎(chǔ)進(jìn)行軟件開(kāi)發(fā)時(shí),復(fù)用的軟件構(gòu)件將新開(kāi)發(fā)的軟件代碼的編碼風(fēng)格產(chǎn)生一定約束。這就導(dǎo)致構(gòu)件必須要進(jìn)行標(biāo)準(zhǔn)化的開(kāi)發(fā)。

        3 軟件構(gòu)件技術(shù)

        軟件構(gòu)件是可以在軟件應(yīng)用系統(tǒng)中清楚地識(shí)別出來(lái)的可復(fù)用的構(gòu)件。而可以復(fù)用的軟件構(gòu)件是指相對(duì)于軟件應(yīng)用的其他需求而言具有相對(duì)獨(dú)立特性且有可重復(fù)利用價(jià)值的構(gòu)件。

        一般可復(fù)用的軟件構(gòu)件應(yīng)具有以下屬性:

        1)通用性:必須提供可以被其他軟件應(yīng)用可以通用的功能。

        2)可用性:對(duì)構(gòu)件需求的描述必須使使用者易于理解和使用。

        3)質(zhì)量:構(gòu)件及其適應(yīng)性的改進(jìn)后必須經(jīng)過(guò)驗(yàn)證。

        4)適應(yīng)性:通過(guò)適應(yīng)性的改進(jìn),可以在不同的環(huán)境中使用復(fù)用的構(gòu)件。

        5)可移植性:構(gòu)件應(yīng)能夠在不同的硬件操作平臺(tái)和軟件環(huán)境中工作。

        隨著對(duì)軟件構(gòu)件技術(shù)認(rèn)識(shí)的深入,軟件構(gòu)件的概念已經(jīng)不僅僅局限于軟件的源代碼,而是從技術(shù)要求開(kāi)始,擴(kuò)展到軟件的需求和需求的規(guī)則約束、系統(tǒng)需求和整體的軟件架構(gòu)、文檔、不同階段的測(cè)試計(jì)劃、測(cè)試說(shuō)明、測(cè)試記錄和測(cè)試報(bào)告等有用信息的軟件開(kāi)發(fā)活動(dòng),這些內(nèi)容都可以被稱(chēng)為可復(fù)用軟件構(gòu)件。

        近年來(lái)構(gòu)件技術(shù)以成為軟件復(fù)用的核心技術(shù),并逐漸受到軟件開(kāi)發(fā)人員重視的一個(gè)重要研究分支。其主要研究?jī)?nèi)容包括:

        1)如何獲取構(gòu)件:在軟件的研制過(guò)程中根據(jù)軟件的需求有目的地研制軟件可復(fù)用的通用構(gòu)件和如何從現(xiàn)有軟件系統(tǒng)的需求中提取可復(fù)用的通用軟件構(gòu)件。

        2)構(gòu)件模型建立:研究目前已獲取的軟件構(gòu)件的特點(diǎn)和其他潛在軟件共用構(gòu)件之間的公共依賴(lài)關(guān)系。

        3)構(gòu)件描述:基于軟件的構(gòu)件特點(diǎn),要對(duì)構(gòu)件的特征進(jìn)行準(zhǔn)確的描述和理解。

        4)構(gòu)件的分類(lèi):研究所有類(lèi)型構(gòu)件分類(lèi)策略、集成模式和檢索策略,建立完整構(gòu)件庫(kù)系統(tǒng),支持構(gòu)件的有效管理。

        5)構(gòu)件集成:研究了基于構(gòu)件模型的構(gòu)件集成機(jī)制,包括基于構(gòu)件對(duì)象互操作性的源碼級(jí)別集成和部件級(jí)集成。

        4 構(gòu)件庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        采用C/S架構(gòu)和XML語(yǔ)言結(jié)合的構(gòu)件庫(kù)設(shè)計(jì)模型(見(jiàn)圖1),本模型中所有軟件構(gòu)件都有詳細(xì)的構(gòu)件描述,并使用工程化的方法對(duì)現(xiàn)有的軟件構(gòu)件進(jìn)行實(shí)例化的驗(yàn)證。軟件構(gòu)件的提供者只有通過(guò)軟件構(gòu)件系統(tǒng)的實(shí)例化驗(yàn)證,才可以在相應(yīng)類(lèi)型的構(gòu)件庫(kù)中增加或更新構(gòu)件。構(gòu)件使用者可以通過(guò)檢索構(gòu)件庫(kù)中XML文檔來(lái)獲得構(gòu)件。

        4.1 構(gòu)件的增加

        軟件構(gòu)件的提供者在進(jìn)入構(gòu)件庫(kù)管理系統(tǒng)界面時(shí),首先將構(gòu)件的詳細(xì)信息、主要功能和相應(yīng)的接口說(shuō)明等詳細(xì)的構(gòu)件信息輸入到系統(tǒng)內(nèi)。待構(gòu)件庫(kù)管理組織審核通過(guò)后,將輸入的構(gòu)件的信息生成XML文檔,構(gòu)件庫(kù)管理員驗(yàn)證XML文檔格式和構(gòu)件有效性,驗(yàn)證后進(jìn)行由管理員對(duì)此次提交的構(gòu)件進(jìn)行添加操作,構(gòu)件添加的部分功能全部封裝在addCpt類(lèi)中,具體實(shí)現(xiàn)如下:

        D o c u m e n t d o c = s a x B u i l d e r. build(newFile(“Cpts.xml”));//解析XML文件

        Widget?editCom=?new?Widget?(“Component”);//按照構(gòu)件的分類(lèi)簡(jiǎn)歷不同的軟件界面

        W i d g e t?e d i t C o m F = n e w?W i d g e t?(“ComponentForm”);

        W i d g e t?e d i t R e p = n e w?W i d g e t?(“Represstation”);

        ………

        editRep.setText(sourceCode);/將構(gòu)件的詳細(xì)信息寫(xiě)入構(gòu)件庫(kù)系統(tǒng)中

        ………

        editCom.addContent(editComF);//把相近功能的軟件構(gòu)件關(guān)聯(lián)起來(lái)

        ………

        Element?root=doc.getRootElement();/獲得XML文件根目錄節(jié)點(diǎn)

        ……………

        root.addContent(editCom);//把新增的構(gòu)件加入到XML文件根目錄節(jié)點(diǎn)

        ……………

        Schema?Validation?validateCom=new? SchemaValidation();//驗(yàn)證新增軟件構(gòu)件

        InputStream?xmlString=validateCom. getClass().getResource?AsStream(“compents. xml”);//獲取相應(yīng)構(gòu)件的XML文件

        InputStream?schemaStr=validatecom. g e t C l a s s ( ).g e t R e s o u r o e? AsStream(sStream((”);//獲取XML文件的根節(jié)點(diǎn)

        SAXReader?reader=createSAXReader(schemaS tr);//對(duì)需要驗(yàn)證的構(gòu)件進(jìn)行XML信息解析

        D o c u m e n t?d o c u m e n t = r e a d e r. read(xmIString);//對(duì)XML文件進(jìn)行驗(yàn)證;

        ……………

        eltRep.setText(sourceCode);/把生成XML文檔的構(gòu)件詳細(xì)信息寫(xiě)入構(gòu)件庫(kù)系統(tǒng)

        ……………

        4.2 構(gòu)件的檢索

        軟件構(gòu)件的使用者根據(jù)構(gòu)件分類(lèi)的詳細(xì)描述,在不同類(lèi)型的構(gòu)件庫(kù)中進(jìn)行構(gòu)件檢索,也可結(jié)合界面的樹(shù)形結(jié)構(gòu)對(duì)需要的構(gòu)件進(jìn)行構(gòu)件檢索,檢索結(jié)果包括樹(shù)形結(jié)構(gòu)所有分支的數(shù)量、每個(gè)分支的構(gòu)件結(jié)構(gòu),并且找出他或她需要檢索哪個(gè)分支構(gòu)件描述。當(dāng)檢索構(gòu)件時(shí),構(gòu)件使用者根據(jù)查詢(xún)要求從各個(gè)方面選擇術(shù)語(yǔ)合法的構(gòu)件描述。當(dāng)查詢(xún)條件中有多個(gè)方面時(shí),由每個(gè)方面檢索的構(gòu)件集的交集形成最終結(jié)果集。

        構(gòu)件庫(kù)系統(tǒng)中層次劃分完成的XML文件具有嵌套其他相關(guān)相近構(gòu)件的功能,每個(gè)構(gòu)件的開(kāi)始標(biāo)記都對(duì)應(yīng)有一個(gè)結(jié)束標(biāo)記,并且標(biāo)記構(gòu)件之間的嵌套沒(méi)有錯(cuò)位,保證構(gòu)件的版本正確,因此構(gòu)件庫(kù)系統(tǒng)采用的堆棧的方式來(lái)記錄XML文檔結(jié)構(gòu)。堆棧的特征是先入先出,在start元素(?)中使用push方法向堆棧添加刻面名稱(chēng),在end元素(?)中使用pop_ back方法將其彈出。對(duì)startelement?(?)方法的每次調(diào)用都必須對(duì)應(yīng)于對(duì)endele?-?element?(?)方法的調(diào)用,因此push和pop是成對(duì)的,只需分析堆棧的結(jié)構(gòu),用字符方法對(duì)匹配刻面的術(shù)語(yǔ)做相應(yīng)的處理,就可以知道文檔結(jié)構(gòu)中的當(dāng)前標(biāo)記。

        4.3 構(gòu)件的更新和刪除

        軟件構(gòu)件的管理者可以在構(gòu)件庫(kù)管理系統(tǒng)中更新或刪除構(gòu)件,首先管理者檢索構(gòu)件提供者提供的構(gòu)件是否已存在,如果存在將新提交的構(gòu)件和現(xiàn)有的構(gòu)件進(jìn)行版本比對(duì)并進(jìn)行顯示,列出新構(gòu)件所增加的詳細(xì)內(nèi)容并更新此構(gòu)件。當(dāng)構(gòu)件庫(kù)中的構(gòu)件長(zhǎng)時(shí)間未使用或已有新版本替代時(shí),構(gòu)件庫(kù)管理員直接調(diào)用remove?content方法刪除構(gòu)件節(jié)點(diǎn)并將其保存到回收站,并將構(gòu)件刪除的詳細(xì)原因進(jìn)行說(shuō)明。

        4.4 構(gòu)件的集成

        一個(gè)大的應(yīng)用系統(tǒng)一般是由多個(gè)獨(dú)立的構(gòu)件組成,在提高軟件生產(chǎn)率和軟件產(chǎn)品質(zhì)量的技術(shù)上,復(fù)用構(gòu)件的集成為大型應(yīng)用系統(tǒng)的研制提供了保障,由于軟件代碼的可以進(jìn)行復(fù)用,因此從已經(jīng)建立的構(gòu)件庫(kù)中來(lái)集成軟件應(yīng)用系統(tǒng)將變得非容易。因此在進(jìn)行大的軟件系統(tǒng)研制時(shí),就應(yīng)考慮到軟件架構(gòu)的復(fù)用、軟件代碼的復(fù)用等可復(fù)用的構(gòu)件,構(gòu)件的集成可以以及客服用的算法和架構(gòu)設(shè)計(jì)在一些通用借口而的基礎(chǔ)上集各種各樣的軟件應(yīng)用系統(tǒng),基于構(gòu)件的集成,軟件的開(kāi)發(fā)人員還可以將大系統(tǒng)分解成更小的獨(dú)立的構(gòu)件,更有效的進(jìn)行軟件設(shè)計(jì)。

        5 結(jié)論

        軟件重用對(duì)于提高開(kāi)發(fā)效率和軟件質(zhì)量具有很大的開(kāi)發(fā)潛力。正確使用構(gòu)件庫(kù)可以實(shí)現(xiàn)軟件重用。在構(gòu)件庫(kù)的支持下,軟件工程師不僅可以“帶頭”,而且可以避免軟件的重復(fù)開(kāi)發(fā)。

        參考文獻(xiàn)

        [1]楊敬君.基于構(gòu)件的軟件復(fù)用技術(shù)研究與應(yīng)用實(shí)踐[D].大連:大連海事大學(xué),2009.

        [2]楊森.曹寶香基于J2EE和XML的構(gòu)件庫(kù)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(8):100-103.

        国产日韩亚洲欧洲一区二区三区| 最新国产精品拍自在线观看| 男人的天堂av网站| 性高朝久久久久久久| 国产精品1区2区| 久久久亚洲一区二区三区| 久久精品国产亚洲av麻豆会员 | 国产精品www夜色视频| 亚洲国产一区二区三区亚瑟| 久久久久亚洲AV无码专区一区| 91久久精品美女高潮喷白浆| 国产成人亚洲综合| 日产无人区一线二线三线新版| 久久久久人妻精品一区5555| 狼人精品剧情av在线观看| 亚洲av永久无码精品漫画| 亚洲乱码日产精品bd在线观看| 中文字幕午夜AV福利片| 国产高清视频在线不卡一区| 人妻少妇精品视频三区二区一区 | 久久中文字幕av一区二区不卡| 久久99精品久久久久婷婷| 日韩人妻无码一区二区三区久久99| 日韩免费高清视频网站| 国产乱淫h侵犯在线观看| 国产综合久久久久久鬼色| 久久久久亚洲av无码尤物| 亚洲精品尤物av在线网站 | 美国又粗又长久久性黄大片| 亚洲精品国产电影| 性久久久久久久| 日本又色又爽又黄又免费网站| 超碰97人人做人人爱少妇| 亚洲日韩AV无码美腿丝袜 | 一本大道熟女人妻中文字幕在线 | 亚洲午夜久久久精品国产| 日本人妖熟女另类二区| 又粗又粗又黄又硬又深色的| 亚洲国产成人手机在线电影| 伊人婷婷综合缴情亚洲五月| 一本一道人人妻人人妻αv|