• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      關(guān)于構(gòu)件復(fù)用技術(shù)的探索

      2013-08-15 00:49:23程海水
      關(guān)鍵詞:連接件文檔構(gòu)件

      程海水

      (江西廣播電視大學(xué) 江西 南昌 330046)

      一、引言

      軟件復(fù)用(softreuse)是指在開放軟件過程中,為提高效率,降低成本,充分使用原有的經(jīng)驗、思想、方法和產(chǎn)品的一系列活動。

      現(xiàn)階段,軟件復(fù)用研究主要集中在構(gòu)件技術(shù)上,構(gòu)件技術(shù)對傳統(tǒng)的系統(tǒng)開發(fā)方式產(chǎn)生了巨大的影響,以其分布性、開放性、可配置性、高效性、易維護(hù)性等優(yōu)點得到了計算機軟件行業(yè)人士的充分認(rèn)可。構(gòu)件技術(shù)通過分析行業(yè)領(lǐng)域或者一組相似系統(tǒng),從中提取可以共享的資源,開發(fā)成獨立部署的成品,供軟件開發(fā)者使用,避免軟件開發(fā)者一切從零開始,大大降低了開發(fā)成本,提高了開發(fā)效率,有效地緩解了軟件危機問題。

      二、構(gòu)件的概念

      軟件復(fù)用的思想,如子程序、函數(shù)等為早期的軟件開發(fā)人員提供了一種便捷的方法,節(jié)省了時間和資源。但是隨著信息技術(shù)的不斷發(fā)展,原有的軟件復(fù)用技術(shù)已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足軟件開發(fā)需要,軟件危機隨之而來。為了解決軟件開發(fā)成本高、周期長、維護(hù)難等問題,1968年NATO軟件工程會議上首次提出了構(gòu)件技術(shù)。

      目前對構(gòu)件的定義還沒有一個統(tǒng)一的描述。比較有代表性的是Szyperski提出的構(gòu)件定義:“軟件構(gòu)件是一個僅帶特定契約接口和顯示語境依賴關(guān)系的組合單元,軟件構(gòu)件可以獨立部署,易于第三方組裝”。本人研究各種有代表性的定義后,認(rèn)為構(gòu)件是指軟件開發(fā)中能夠獨立部署并被其他系統(tǒng)復(fù)用的單元,它可以小到一段二進(jìn)制代碼、一個圖,也可以大到系統(tǒng)分析、文檔、包,甚至是子系統(tǒng)等等??蓮?fù)用的構(gòu)件應(yīng)該具有可定制性、自我描述性、有用性、易讀性、兼容性、移植性等特點。

      構(gòu)件的接口、實現(xiàn)、契約(contact)是相分離的,用戶可以根據(jù)需要對構(gòu)件的屬性進(jìn)行修改從而滿足用戶的特定需要(可定制性)。同時,構(gòu)件需要達(dá)到一定程度的自治,也就是說構(gòu)件不需要作大的修改就可以換到另外一個運行環(huán)境中使用。

      構(gòu)件可以根據(jù)各種不同的角度進(jìn)行分類,主要是可以按照復(fù)用方式、使用范圍、粒度大小、復(fù)用狀態(tài)、功能用途等角度進(jìn)行分類。比如,按照構(gòu)件復(fù)用方式可以將構(gòu)件分為即插即用的黑匣構(gòu)件和編輯使用的白匣構(gòu)件;按照功能用途可以將構(gòu)件分為在集成環(huán)境中使用的系統(tǒng)構(gòu)件、在構(gòu)件庫管理中使用的支撐構(gòu)件和專用的領(lǐng)域構(gòu)件;按形態(tài)將構(gòu)件可分為分析構(gòu)件、設(shè)計構(gòu)件、編碼構(gòu)件和測試構(gòu)件。

      三、構(gòu)件相關(guān)的技術(shù)

      1.接口技術(shù)

      構(gòu)件作為一個獨立部署的單元,它對用戶來說是透明的。構(gòu)件只提供接口給用戶使用,而無需讓用戶了解構(gòu)件內(nèi)部結(jié)構(gòu)和實現(xiàn)代碼。接口是構(gòu)件和用戶之間交互的橋梁。

      2.連接件(connector)和角色(role)

      連接件表示構(gòu)件之間的交互。連接件作為構(gòu)件之間的交互工具,他既可以表示方法調(diào)用這種簡單的概念,還可以表示抽象連接,如客戶和數(shù)據(jù)庫服務(wù)器之間的SQL連接。和構(gòu)件一樣,用戶無需知道連接件的內(nèi)部構(gòu)造。正如構(gòu)件通過接口與外部交互一樣,連接件通過一組角色(role,即接口)與外界環(huán)境進(jìn)行交互。例如,二元連接件(binary)方法調(diào)用就是一個帶有調(diào)用者(caller)和被調(diào)用者(callee)兩個角色的連接件。

      3.構(gòu)件和對象的比較

      構(gòu)件技術(shù)的提出很大一部分是源于面向?qū)ο蟪绦蛟O(shè)計技術(shù),構(gòu)件借鑒了對象的封裝、繼承等許多先進(jìn)思想。因此構(gòu)件和對象許多共同點,比如封裝屬性、繼承性、復(fù)用性、提供接口、定義與運用相分離等。構(gòu)件與對象的區(qū)別在于構(gòu)件比對象的定義更廣、更大。面向?qū)ο蟮膹?fù)用一般都是指對類庫的復(fù)用。而構(gòu)件復(fù)用可以適用很多情況,它可以是代碼、思想、設(shè)計圖等。另外,為了復(fù)用某一個對象類,需要熟悉特定的語言,比如C++,Java等。而構(gòu)件則不需要,構(gòu)件不需要知道內(nèi)部實現(xiàn)機制,也不需要知道采用何種編程語言,使用何種平臺。構(gòu)件適合描述服務(wù)和系統(tǒng)功能,而對象適合描述功能及其問題域。構(gòu)件的接口一般也會比對象復(fù)雜得多。

      四、構(gòu)件模型

      構(gòu)件模型是構(gòu)件開發(fā)的核心,是構(gòu)件開發(fā)與應(yīng)用的交匯點,既是構(gòu)件技術(shù)研究的主要內(nèi)容和成果,又是構(gòu)件技術(shù)運用于實際應(yīng)用系統(tǒng)開發(fā)的主要依據(jù)。目前學(xué)術(shù)界和產(chǎn)業(yè)界流行的構(gòu)件模型主要有從概念 (Concept)、內(nèi)容(Content)和語境(Context)三個不同的方面來描述構(gòu)件的3C模型、基于構(gòu)件刻面分類和檢索的REBOOT模型、基于面向?qū)ο笙到y(tǒng),便于使用面向?qū)ο蠼UZ言UML來描述構(gòu)件內(nèi)部的動、靜態(tài)結(jié)構(gòu)、狀態(tài)變化過程的FRISCO模型、以及楊芙清院士等人提出的更多關(guān)注構(gòu)件易理解性、封裝性及構(gòu)件關(guān)系的青鳥構(gòu)件模型。

      五、構(gòu)件的評價

      目前第三方構(gòu)件眾多,如何選取性能優(yōu)越同時又適用的構(gòu)件越來越受到大家的關(guān)注。一個好的構(gòu)件可能本身就是一個功能強大但又復(fù)雜的軟件。想要充分有效地使用該構(gòu)件,需要深入了解構(gòu)件的功能和屬性,特別是構(gòu)件的接口。這并不是一件非常容易的事。因為一個功能強大,結(jié)構(gòu)復(fù)雜的構(gòu)件,它的接口一般擁有上百個API調(diào)用,即使是開發(fā)該構(gòu)件的程序員可能都很難完全了解每個API。同時,構(gòu)件的開發(fā)者可能提供的文檔不夠全面或者存在錯誤,想要用文檔全面、正確地描述構(gòu)件同樣不是能夠輕易完成的。即使能夠做到,這個文檔也一定是一個龐大的、一般用戶難以理解的文檔。

      那么如何能夠科學(xué)地評價一個構(gòu)件的好壞呢。構(gòu)件的評價取決于很多特定因素和需求,所以不可能有標(biāo)準(zhǔn)的評價體系和指標(biāo)。本人借鑒統(tǒng)計代碼行數(shù)、Halstead方法、Albercht功能點方法等傳統(tǒng)軟件的評價方法,認(rèn)為可以主要通過以下幾個指標(biāo)對構(gòu)件進(jìn)行評價:一是用戶查找該構(gòu)件的次數(shù),即檢索次數(shù)。此指標(biāo)反映了構(gòu)件的可識別復(fù)用的特征;二是構(gòu)件實際被復(fù)用的次數(shù);三是構(gòu)件的修改次數(shù),修改得越少,說明構(gòu)件設(shè)計的越合理;四是構(gòu)件的復(fù)雜度,復(fù)雜度越低越容易被用戶所接受;五是構(gòu)件的可靠性,出錯率越低可靠性越強;六是構(gòu)件的耦合率,耦合度越小,構(gòu)件的獨立性和封裝性越好;七是通用性,可復(fù)用的范圍越大,通用性則越好;八是構(gòu)件的接口,接口應(yīng)該清晰、簡潔、干凈。

      六、構(gòu)件的管理

      要真正使用構(gòu)件技術(shù)去開發(fā)系統(tǒng),則需要數(shù)量龐大的構(gòu)件群。如何管理這些數(shù)量巨大的構(gòu)件,使這些構(gòu)件的獲取、檢索、組裝等操作方便、有效則顯得非常重要。構(gòu)件庫就是滿足這種需要的一種工具。它是按照一定的語義和規(guī)范的組織結(jié)構(gòu)形成的構(gòu)件集合。它為系統(tǒng)開發(fā)提供共享構(gòu)件資源和管理。軟件開發(fā)人員要想利用構(gòu)件技術(shù)進(jìn)行系統(tǒng)開發(fā)則必須懂得使用構(gòu)件庫,因為構(gòu)件庫為構(gòu)件編譯、測試、開發(fā)、檢索、維護(hù)、組裝等操作提供了管理平臺。

      猜你喜歡
      連接件文檔構(gòu)件
      有人一聲不吭向你扔了個文檔
      基于有限元法改進(jìn)螺栓連接剛度模型*
      建筑構(gòu)件
      建筑構(gòu)件
      基于RI碼計算的Word復(fù)制文檔鑒別
      建筑構(gòu)件
      建筑構(gòu)件
      鋼-混凝土組合梁開孔板連接件抗剪承載力計算研究
      Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
      組合鋼板墻混凝土板厚度及剪力連接件間距的確定
      深泽县| 益阳市| 抚州市| 图木舒克市| 鹤岗市| 电白县| 哈尔滨市| 仁化县| 花莲市| 南陵县| 麻城市| 定边县| 博湖县| 嵊州市| 水城县| 彭水| 金平| 靖远县| 射洪县| 肥乡县| 瓦房店市| 化德县| 尚志市| 都兰县| 定边县| 历史| 克拉玛依市| 长岛县| 绩溪县| 栾城县| 策勒县| 清水县| 洛扎县| 富锦市| 拉孜县| 巢湖市| 吕梁市| 巴里| 英吉沙县| 昌乐县| 红安县|