国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向Web領(lǐng)域的構(gòu)件庫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2010-05-13 09:17博,王普,李亞芬
現(xiàn)代電子技術(shù) 2009年20期

彭 博,王 普,李亞芬

摘 要:軟件復(fù)用技術(shù)被認(rèn)為是解決軟件危機(jī)的有效方法,可以大幅度提高軟件開發(fā)效率和質(zhì)量,其核心是建立可復(fù)用構(gòu)件庫系統(tǒng)。構(gòu)件庫系統(tǒng)最主要的問題是如何對構(gòu)件進(jìn)行準(zhǔn)確描述和分類,以便更快、更準(zhǔn)地查找到用戶需要的構(gòu)件。在此采用刻面分類方法在Web應(yīng)用開發(fā)領(lǐng)域中建立軟件構(gòu)件庫,完成了構(gòu)件的定義和準(zhǔn)確描述及分類,確定了構(gòu)件的存儲(chǔ)模型,采用關(guān)鍵字檢索和刻面分類檢索兩種檢索方式,有效提高了檢索效率和準(zhǔn)確性,實(shí)現(xiàn)了在Web應(yīng)用開發(fā)中對軟件復(fù)用的支持。

關(guān)鍵詞:Web應(yīng)用開發(fā);構(gòu)件庫;軟件復(fù)用;刻面分類

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1004-373X(2009)20-116-04

Design and Realization of Component Library System in Web Field

PENG Bo,WANG Pu,LI Yafen

(College of Electronic Information & Control Engineering,Beijing University of Technology,Beijing,100124,China)

Abstract:The software reuse is considered to be an effective way to solve the software crisis,which can greatly improve the efficiency and quality of software development,and the core of software reuse is to set up a reusable component library.The most important question of a component library system is how to describe components accurately and classification,in order that the users could search and get their needed components faster and more accurate.In this paper,it builds a component library based on the faceted classification method in the field of Web application development,which completes the definition of components,the accurate description and efficient classification,it determines the components storage model,using key words searching and facet classification searching,it greatly improves the searching efficiency and accuracy,realizes supports of software reuse in Web application development.

Keywords:Web application development;component library;software reuse;facet classification

0 引 言

目前采用Web形式開發(fā)的軟件產(chǎn)品需求與日劇增,其規(guī)模和復(fù)雜度不斷增加,開發(fā)和維護(hù)成本也不斷提高,傳統(tǒng)的Web開發(fā)模式面臨著巨大的挑戰(zhàn)。人們在探索新軟件開發(fā)方法的過程中發(fā)現(xiàn),軟件復(fù)用(Software Reuse)將是解決這個(gè)問題現(xiàn)實(shí)可行的途徑[1],而軟件復(fù)用的核心是建立可復(fù)用構(gòu)件庫系統(tǒng),實(shí)現(xiàn)軟件開發(fā)人員的合理分工,提高軟件產(chǎn)品開發(fā)效率,縮短開發(fā)周期。軟件復(fù)用是在軟件開發(fā)中避免重復(fù)勞動(dòng)的解決方案,其出發(fā)點(diǎn)是應(yīng)用系統(tǒng)的開發(fā)不再采用一切“從零開始”的模式,而是以已有的工作為基礎(chǔ),充分利用過去應(yīng)用系統(tǒng)開發(fā)中積累的知識(shí)和經(jīng)驗(yàn)[2]。它的基本思想是借鑒現(xiàn)代工業(yè)生產(chǎn)中的標(biāo)準(zhǔn)構(gòu)件復(fù)用思想,通過公共的可復(fù)用構(gòu)件來集成新的軟件產(chǎn)品,其本質(zhì)上是運(yùn)用現(xiàn)存軟件系統(tǒng)的產(chǎn)品構(gòu)造新的軟件系統(tǒng),在軟件開發(fā)中避免重復(fù)勞動(dòng)。國內(nèi)外軟件界對可復(fù)用軟件構(gòu)件庫系統(tǒng)及其相關(guān)技術(shù)進(jìn)行了深入的研究,并取得不少成果,比較有影響,例如北大青鳥構(gòu)件庫管理系統(tǒng)(JBCLMS)、REBOOT系統(tǒng),RIG及NATO標(biāo)準(zhǔn),ALOAF模型等。

在分析各類構(gòu)件庫系統(tǒng)的基礎(chǔ)上,針對Web應(yīng)用開發(fā)領(lǐng)域,建立了原型構(gòu)件庫系統(tǒng),系統(tǒng)完成了用戶認(rèn)證授權(quán)、構(gòu)件添加、構(gòu)件修改、構(gòu)件刪除、構(gòu)件入庫以及下載、構(gòu)件檢索和維護(hù)等功能,以實(shí)現(xiàn)在Web應(yīng)用開發(fā)過程中對軟件復(fù)用的支持,使基于軟件復(fù)用技術(shù)的Web應(yīng)用開發(fā)人員可以快速有效地開發(fā)各種Web應(yīng)用軟件,提高Web應(yīng)用軟件的開發(fā)效率。

1 構(gòu)件庫系統(tǒng)的定義和職能

構(gòu)件庫系統(tǒng)是整個(gè)軟件復(fù)用的中介和核心,是可重用構(gòu)件的集合,并作為開發(fā)可重用構(gòu)件和基于可重用構(gòu)件開發(fā)這兩個(gè)生存周期的聯(lián)系體系[3]。具體地說,構(gòu)件庫是軟件構(gòu)件的基礎(chǔ)物質(zhì)倉庫,是分類和管理可復(fù)用構(gòu)件資產(chǎn)的基礎(chǔ)設(shè)施,它在構(gòu)件開發(fā)人員和構(gòu)件使用人員之間起到了橋梁作用,如圖1所示。

圖1 構(gòu)件庫系統(tǒng)職能圖

構(gòu)件庫系統(tǒng)存儲(chǔ)并管理著大量的構(gòu)件,系統(tǒng)必須對這些構(gòu)件進(jìn)行有效的組織和管理,同時(shí)還需要為構(gòu)件庫系統(tǒng)使用者提供方便有效地構(gòu)件檢索工具,支持開發(fā)人員在軟件開發(fā)過程中方便檢索、理解和獲取構(gòu)件。構(gòu)件庫系統(tǒng)主要職能包括:構(gòu)件的選取、構(gòu)件的驗(yàn)證、構(gòu)件的描述和分類、構(gòu)件的入庫存儲(chǔ)、構(gòu)件的檢索、構(gòu)件庫系統(tǒng)的管理和維護(hù)、構(gòu)件庫系統(tǒng)的安全訪問管理等。

2 構(gòu)件的定義以及存儲(chǔ)模型

2.1 構(gòu)件的定義

構(gòu)件來源于英文的“Component”,對構(gòu)件的定義一般來說,有廣義與狹義之分。廣義構(gòu)件是指可以被明確標(biāo)識(shí)的軟件制品,它可以是需求分析、設(shè)計(jì)、代碼、測試用例、文檔或軟件開發(fā)過程中的其他產(chǎn)品。狹義軟件構(gòu)件是指具體的、可復(fù)用的、提供明確接口完成特定功能的程序代碼塊[4]。

鑒于Web開發(fā)過程的特殊性,在此認(rèn)為在Web開發(fā)各個(gè)階段的各種成果對于今后的復(fù)用工作都是非常有價(jià)值的,都應(yīng)當(dāng)作為可復(fù)用構(gòu)件存儲(chǔ),因此構(gòu)件定義為在Web應(yīng)用開發(fā)過程中的一切有復(fù)用價(jià)值的產(chǎn)品。例如在系統(tǒng)設(shè)計(jì)前的需求文檔、系統(tǒng)的設(shè)計(jì)文檔、各種模塊實(shí)體代碼、測試階段的各種測試用例、各種圖片或者多媒體資料等,可見這里涉及的構(gòu)件的表現(xiàn)形式多樣,粒度大小差異明顯。

2.2 構(gòu)件的存儲(chǔ)模型

對于構(gòu)件的存儲(chǔ)方式,首先想到使用關(guān)系數(shù)據(jù)庫(RDBMS),其具有儲(chǔ)存和管理大量數(shù)據(jù)的高效性、理論的嚴(yán)密性和技術(shù)的成熟性。但是在實(shí)際應(yīng)用中,由于本文定義的構(gòu)件的結(jié)構(gòu)相對復(fù)雜,存在形式多種多樣,粒度大小多樣且尺度相差有時(shí)很懸殊,這與關(guān)系數(shù)據(jù)庫對所保存的數(shù)據(jù)項(xiàng)一般都有尺寸限制,不宜過大的要求不相符合。文件系統(tǒng)(Files)的存儲(chǔ)特點(diǎn)是存儲(chǔ)容量大,對存儲(chǔ)的數(shù)據(jù)體積無限制,存儲(chǔ)數(shù)據(jù)的形式也沒有要求,但文件系統(tǒng)的查詢效率低,不利于大量數(shù)據(jù)的存儲(chǔ)以及管理。因此,單一使用關(guān)系數(shù)據(jù)庫或者文件系統(tǒng)都不完全符合對構(gòu)件存儲(chǔ)的需要。

在該構(gòu)件庫系統(tǒng)中利用關(guān)系數(shù)據(jù)庫來存儲(chǔ)構(gòu)件的信息部分,利用文件系統(tǒng)來存儲(chǔ)構(gòu)件的實(shí)體,并通過信息文件中的地址信息與構(gòu)件實(shí)體建立鏈接。其中,構(gòu)件信息中包含構(gòu)件的分類信息,即按照某種分類方式確定的分類信息;基本信息是指對構(gòu)件基本屬性的描述、構(gòu)件的說明等,可增加對構(gòu)件理解的說明文件,例如構(gòu)件的作者、入庫日期、下載次數(shù)、構(gòu)件說明文件等;地址信息則是指對構(gòu)件實(shí)體實(shí)際存放位置的描述,如圖2所示。

圖2 構(gòu)件庫系統(tǒng)存儲(chǔ)模型

3 構(gòu)件庫系統(tǒng)的體系結(jié)構(gòu)

本文構(gòu)件庫系統(tǒng)基于瀏覽器/服務(wù)器(B/S)模式,采用Web多層結(jié)構(gòu),如圖3所示構(gòu)件庫系統(tǒng)分為三層結(jié)構(gòu):視圖層、業(yè)務(wù)層、數(shù)據(jù)層。

圖3 構(gòu)件庫系統(tǒng)體系結(jié)構(gòu)圖

視圖層主要完成系統(tǒng)與客戶的交互工作,當(dāng)客戶通過瀏覽器向指定的Web服務(wù)器發(fā)出申請時(shí),Web服務(wù)器將客戶端的申請?zhí)幚砗?把處理的相應(yīng)的內(nèi)容再傳送給客戶端瀏覽器。

業(yè)務(wù)層將視圖層提出的請求轉(zhuǎn)換為對數(shù)據(jù)層的請求,并將數(shù)據(jù)層返回的數(shù)據(jù)處理,最后提交視圖層。業(yè)務(wù)層負(fù)責(zé)完成各種應(yīng)用邏輯,在構(gòu)件庫系統(tǒng)中,業(yè)務(wù)邏輯層體現(xiàn)為構(gòu)件庫系統(tǒng)的主要功能和實(shí)現(xiàn),是構(gòu)件庫系統(tǒng)的核心。

數(shù)據(jù)層包括數(shù)據(jù)庫和及其服務(wù)與管理系統(tǒng),負(fù)責(zé)對從業(yè)務(wù)層傳來的數(shù)據(jù)進(jìn)行處理。并且對業(yè)務(wù)層屏蔽處理細(xì)節(jié),屏蔽的掉了底層數(shù)據(jù)庫系統(tǒng)的特殊性,使邏輯可以按照統(tǒng)一的接口訪問庫中的數(shù)據(jù),提高整個(gè)系統(tǒng)的靈活性和可移植性。

用戶對數(shù)據(jù)的訪問請求,通過視圖層的客戶端瀏覽器提供的用戶界面輸入,并經(jīng)業(yè)務(wù)層中業(yè)務(wù)邏輯轉(zhuǎn)換為對數(shù)據(jù)層的數(shù)據(jù)請求,數(shù)據(jù)層的服務(wù)器處理完請求后,將結(jié)果通過業(yè)務(wù)邏輯層,返回給視圖層由視圖層輸出顯示用戶所需的結(jié)果。構(gòu)件庫系統(tǒng)采用瀏覽器/服務(wù)器(B/S)模式及多層體系結(jié)構(gòu),有助于功能的獨(dú)立與系統(tǒng)的擴(kuò)展,同時(shí)降低了系統(tǒng)的復(fù)雜性和耦合度,并且使得系統(tǒng)更穩(wěn)定、方便擴(kuò)展、維護(hù)簡單。

如圖3所示,本文構(gòu)件庫系統(tǒng)設(shè)置了兩類用戶,構(gòu)件庫使用人員和構(gòu)件庫管理人員,他們都通過友好的界面接口使用構(gòu)件庫系統(tǒng)的服務(wù)。其中構(gòu)件庫使用人員主要使用構(gòu)件檢索工具獲取自己感興趣或者需要的構(gòu)件,構(gòu)件檢索工具支持兩種檢索模式:關(guān)鍵字查詢以及刻面分類查詢。同時(shí)因?yàn)閷?gòu)件理解最深刻的是構(gòu)件開發(fā)人員本身,因此構(gòu)件管理工具可以讓構(gòu)件開發(fā)人員添加和管理自己開發(fā)的構(gòu)件。信息反饋工具可以讓構(gòu)件的使用者與該構(gòu)件的開發(fā)者進(jìn)行交流,以便構(gòu)件的更新與改進(jìn),同時(shí)構(gòu)件庫使用人員也可以使用信息反饋工具與系統(tǒng)管理人員交流,討論構(gòu)件分類方式以及構(gòu)件庫系統(tǒng)管理等問題。

構(gòu)件庫的管理人員有權(quán)限訪問并管理所有構(gòu)件,并可以使用用戶管理工具對構(gòu)件庫系統(tǒng)所有用戶的信息以及權(quán)限進(jìn)行維護(hù)管理。由于Web開發(fā)的技術(shù)日新月異,新技術(shù)、新術(shù)語不斷更新,構(gòu)件庫管理人員可以使用刻面術(shù)語管理工具動(dòng)態(tài)維護(hù)系統(tǒng)刻面及術(shù)語空間。信息發(fā)布工具主要用于發(fā)布系統(tǒng)通知信息及系統(tǒng)消息,構(gòu)件庫管理人員使用系統(tǒng)的文本編輯器編輯發(fā)布信息。

4 構(gòu)件庫分類方式以及構(gòu)件的描述

4.1 構(gòu)件庫分類方式的確定

構(gòu)件的表示、分類和檢索方法,決定了構(gòu)件庫系統(tǒng)的組織、管理,以及構(gòu)件庫系統(tǒng)的查詢和用戶對構(gòu)件的理解,是構(gòu)件庫系統(tǒng)研究的基礎(chǔ)性問題,也是構(gòu)件庫系統(tǒng)的關(guān)鍵性問題。對單個(gè)構(gòu)件的復(fù)用可以劃分為構(gòu)件的識(shí)別和檢索、構(gòu)件的理解和適應(yīng)性修改三部分,復(fù)用成本公式[5]為:

復(fù)用的成本=檢索成本+理解成本+修改成本

有效的檢索機(jī)制能大大降低構(gòu)件的檢索成本和理解成本,對構(gòu)件的分類就是為了高效方便的檢索,而構(gòu)件的分類最終體現(xiàn)在構(gòu)件的分類描述上。

Frakes W和Mili H分別對現(xiàn)有的構(gòu)件表示和檢索方法進(jìn)行分類。Mili按復(fù)雜度和檢索效果的遞增將其分為基于文本、基于詞法描述子的和基于規(guī)則的編碼和檢索三類。Frkaes W將現(xiàn)有的構(gòu)件表示方法分為人工智能方法、超文本方法、和基于庫科學(xué)/信息科學(xué)的方法[6]。

人工智能方法采用人工智能的學(xué)習(xí)和推理機(jī)制,來維護(hù)一個(gè)表示構(gòu)件的知識(shí)庫[7]。該方法采用構(gòu)件知識(shí)表示語言,來描述構(gòu)件的屬性及其特征和用于檢索構(gòu)件的知識(shí)。這種方法目前處于實(shí)驗(yàn)階段,還沒有得到廣泛應(yīng)用。

超文本方法使用超文本技術(shù),主要應(yīng)用于非線性關(guān)系的檢索領(lǐng)域,通過基于屬性的元模型鏈接為開發(fā)人員提供一個(gè)有用的功能集合,從而找到可重用的構(gòu)件[8]。

基于各種形式化規(guī)格說明的方法[9,10],需要使用專門的形式化規(guī)范語言對組件進(jìn)行全面細(xì)致的描述。當(dāng)查找構(gòu)件時(shí),系統(tǒng)會(huì)對兩個(gè)構(gòu)件進(jìn)行完整的匹配,這樣的查詢方式具有較高的查準(zhǔn)率,能夠滿足大型構(gòu)件庫系統(tǒng)的檢索要求。但是形式化規(guī)范語言的復(fù)雜性,使這種方法的廣泛應(yīng)用受到了很大的限制。

在實(shí)際的構(gòu)件庫系統(tǒng)中,往往采用基于庫科學(xué)/信息科學(xué)的表示方法[11]。信息科學(xué)方法又分為基于受控詞匯表(如枚舉、刻面)分類和基于不受控詞匯表分類兩種形式,其中以關(guān)鍵詞分類(Keyword)和刻面分類(Faceted)兩種應(yīng)用最多?,F(xiàn)在的大型通用構(gòu)件庫系統(tǒng)應(yīng)用較為普遍的也是刻面分類方式,例如REBOOT模型從抽象、操作、操作對象、依賴四個(gè)刻面對構(gòu)件進(jìn)行描述,青鳥構(gòu)件庫也是采用以刻面分類為主、多種分類模式相結(jié)合的方法對構(gòu)件進(jìn)行分類描述[12]。

通過對上文中介紹的幾種查詢方法進(jìn)行比較分析,結(jié)合Web應(yīng)用系統(tǒng)組件庫查詢的特殊性,確定使用刻面分類法對組件進(jìn)行描述和分類,如表1所示,本文確定四個(gè)主要刻面:

(1) 功能描述(Function Description):描述構(gòu)件的具體實(shí)現(xiàn)功能;

(2) 層次形態(tài)(Level & State):描述構(gòu)件在軟件開發(fā)過程中所處的層次階段及構(gòu)件的具體形態(tài);

(3) 開發(fā)環(huán)境(Develop Environment):描述構(gòu)件的開發(fā)工具以及開發(fā)語言;

(4) 應(yīng)用環(huán)境(Application Environment):描述構(gòu)件在使用的時(shí)候所需要的環(huán)境,包括操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、Web服務(wù)器。

表1 構(gòu)件分類描述具體刻面及術(shù)語

刻面名稱子刻面名稱術(shù)語舉例

功能描述無用戶管理、信息發(fā)布、統(tǒng)計(jì)計(jì)數(shù)、數(shù)據(jù)庫、人機(jī)交互、上傳下載等

層次形態(tài)層次描述形態(tài)描述分析、設(shè)計(jì)、編碼、測試等文本、圖片、代碼、功能模塊等

開發(fā)環(huán)境開發(fā)語言開發(fā)工具HTML,Java,jsp,.Net,Asp等Eclipse,Photoshop,VisualStudio等

應(yīng)用環(huán)境操作系統(tǒng)WebServer數(shù)據(jù)庫Windows,Linux,Unix,Solaris等Tomcat,WebSphere,Apache 等MySQL,Oracle,PostgreSQL等

4.2 構(gòu)件分類描述的實(shí)例

根據(jù)上文確定的刻面分類模式,舉一個(gè)構(gòu)件描述的具體實(shí)例:假設(shè)構(gòu)件(ID=0001)是用于用戶登錄的模塊,其功能描述為用戶管理(User Manage),層次已處于測試階段(Testing),形態(tài)為代碼(Code)、是使用開發(fā)工具(Eclipse)開發(fā)的開發(fā)語言為(Java),其部署環(huán)境為操作系統(tǒng)(Linux)、Web服務(wù)器(Tomcat)、數(shù)據(jù)庫(MySql),構(gòu)件相應(yīng)的XML描述如下:

User Manage

Testing

湟中县| 大连市| 荆州市| 永清县| 藁城市| 巴马| 绥阳县| 浮梁县| 天津市| 临武县| 古交市| 平舆县| 曲周县| 青州市| 峨眉山市| 固阳县| 凤台县| 忻城县| 汉源县| 永吉县| 义乌市| 中牟县| 瑞昌市| 灵寿县| 新龙县| 连江县| 维西| 岑溪市| 蓬莱市| 喀什市| 临潭县| 沾化县| 克什克腾旗| 常州市| 织金县| 三门县| 双流县| 锡林郭勒盟| 邻水| 丹棱县| 吉首市|