全球专业中文经管百科,由121,994位网友共同编写而成,共计436,047个条目

軟體重用

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

目錄

什麼是軟體重用

  軟體重用軟體工程研究的重要課題。它是指在構造新的軟體系統的過程中利用已有的軟體成分。這裡所說的已有的軟體成分包括十分廣泛的內容,如數據,文檔,模式,體繫結構,知識,方法和環境等多方面的內容。從廣義上說,軟體重用包括3個層次:(1)產品重用,如代碼數據軟體模式體繫結構等的重用;(2)知識重用,如方法、標準、經驗、領域知識、軟體過程等的重用(3)環境重用,如系統程式、軟體工具、開發環境等的重用。

軟體重用的對象[1]

  (一)實現層的軟體重用

  實現層的軟體重用是指已有的程式代碼的重用。它包括以下3個方面:

  (1)代碼提取

  軟體開發人員對已有的程式代碼,經理解、選擇後,把適合於重用的代碼據取出來,併進行必要的修改。使其適用於當前的上下文。這種可重用對象是最低程度的抽象,軟體開發人員不但必須知道有關的規格說明。還必須清楚它的實現部分。一般來說,因為在理解修改及測試方面的代價。使用這種重用對象並不能有效地提高軟體開發效率,提高軟體的質量。

  (2)源代碼部件

  源代碼部件是專門編寫經過嚴格測試後。專用於重用目的代碼段。高級程式語言程式的一些程式單元,如過程,函數,包,類等。通常用於完成一個完整的功能,有良好的輸入/輸出界而,可以作為可重用的源代碼部件。源代碼部件的抽象程度比代碼提取高,軟體開發人員只需知道源代碼部件的抽象規格說明部分即可。不必考慮它的實現部分。因為源代碼部件是為重用目的專門編寫的,其界面清晰。抽象規格說明明確,故使用方便而且質量高。目前使用得十分廣泛。例如,在數值計算領域中的數學函數庫。作為軟體可重用對象,使用得十分成功。許多商品化的軟體開發環境均有以重用為目的源代碼部件庫(函數庫)。用標準函數的形式向用戶提供大量可重用的源代碼部件。但是,這種方法的不足之外在於源代碼部件仍然是基於代碼這一較低層次的抽象上,與實際問題領域有較大的距離。

  (3)軟體邏輯結構

  也稱為軟體模式,是可重用源代碼部件的形式化擴充。這一層次的可重用對象著重於對數據結構、邏輯結構和過程的抽象。軟體邏輯結構主要描述軟體的各個成分(包括模塊,數據結構等)以及它們之問的關係(如調用與被調用,參數傳遞關係等),它們可以作為一個整體被重用。對於基於形式化規格說明的軟體邏輯結構,其可重用對象的選擇、理解。特化均較為容易,也便於使用自動工具支持重用過程。由於軟體人員工作於較高層次的抽象,能明顯地提高軟體生產率。但是,目前還缺乏描述軟體邏輯結構的較好的形式化規格說明方法。

  (二)設計層的軟體重用

  與編碼階段相比,軟體設計階段在軟體生命周期中占有更重要的地位。重用已有的軟體系統的設計信息,可以更好地降低軟體開發成本,提高軟體生產卑。設計層的軟體重用包括以下向個方面:

  (1)甚高級語言

  甚高級語言(VHLL]也稱為可執行的規格說明語言。它允許開發者使用比高級語言更高層次抽象的規格說明描述用戶需求。產生可執行系統。作為一種語言,甚高級語言與高級語官一樣,具有獨自的語法語義,可通過編譯,從需求規格說明自動影射到可執行的代碼。甚商級語言通常以集合論,謂詞邏輯等高層次的數學抽象作為基礎。

  利用越高級語言,系統的設計信息作為可重用軟體成分重用,而且甚高級語言比高級語言更接近於用戶語言,表達自然、筒結。因此能有效地減少開發人員的設計乃至編碼階段的工作量,提高軟體的開發效率。但其缺點是,現有的甚高級語言執行效率低,達不到實用的程度。但是,在硬體效率大幅度提高的基礎上,甚高級語言的效率可以逐漸達到可以被接受的程度。另外,使用廣譜怕讓高級語言(即混合高級語畝和甚高緞語言的一種語言)的優化功能,還可以用高級語言成份對甚高級語言成份進行優化,提高甚高級語言的運行效率。因此,從長遠觀點來看,甚高級語言是實現高層次軟體重用的重要途徑。

  (2)應用生成器

  應用生成器類似於程式語言的編譯器,它將輸入的程式規格說明自動轉換成可執行的程式。應用生成器已廣泛用來生成資料庫統計、分析等多種用途的程式。由於應用生成器直接來源於特定應用領域中的非常高層的抽象,因此十分接近原始的系統需求。

  使用應用生成器進行重用,實質上重用了整個系統的設計過程。實現的演算法和數據結構都是自動選擇的。如果要在某一應用領域編寫出多個類似的軟體系統,或者在軟體件生命期中系統要修改甚至重寫多次,則使用應用生成器是十分有效的。因為一個應用生成器往往針對特定的應用領域,因此它的實現效率也比較高。YACC是生成器中最著名、最成功的實例之一,它是一個語法分析器生成器,根據開發人員給出的語法表示,自動生成對應的語法分析器的源代碼。應用生成器是較為廣泛應用和成功軟體的可重用對象。不足的是,應用生成器只針對特定應用領域,開以出通用的生成器十分困難,從而限制了它的使用範圍。

  (3)變換系統

  利用變換系統開發軟體的過程是:首先用高層規格說明語言描述軟體系統的需求,然後根據變換規則,將規格說明轉化為可運行系統。在變換過程中,可以有人的干預。因此變換過程一般可以看作是一種交互的編譯過程。變換系統根據變換規則把一個程式變換成另一程式,後者在語義上與前者相同,但在性能上要優於前者。利用變換系統,可以逐步得到運行行為越來越好的程式。

  利用變換系統可以實現以下重用:(1)原型重用。在變換系統中,原型可作為系統的初始規格說明,通過不斷變換和完善,成為實用的可執行系統。(2)開發經歷重用。使用變換系統,開發人員的修改可以只在需求層次上進行,對於某些局部改動,原先的開發經歷,即變換序列的大部分可被重用,而不須重新設計。(3)變換規則。變換規則由匹配模式,應用條件和替換模式構成,大部分變換規則可被重用於多種不同的情況。

  變換系統是一種較為成功的可重用對象。

  3.體繫結構層的軟體重用

  最有效的軟體重用是在軟體體繫結構層的重用。

  軟體體系統結構重用是指將軟體的框架組織、全局結構等作為一個整體加以重用。與軟體邏輯結構相比,軟體體繫結構更著重於系統與各子系統,各子系統之間的相互關係而非數據結構和演算法。與應用生成器相比,均是重用系統設計,但應用生成器一般只適用於特定應用領域,隱含重用體繫結構的信息,而可重用軟體體繫結構則通常是顯式重用軟體體繫結構,並可以通過集成其它體繫結構。建立新的更高層次的體繫結構。軟體體繫結構的抽象直接來源於應用領域,可以用領域語言描述。從領域語言描述到實現可以全部通過自動映射來實現,開發者可通過選擇特定的體繫結構來適應不同應用的需求。

  軟體體繫結構的重用吸取了其它軟體可重用對象的優點,是目前最理想的可重用軟體對象。建立一個完備的軟體體繫結構庫,以及用於支持管理體繫結構構件的軟體開發環境,形成一種新的基於軟體重用的軟體開發範型,將對今後的軟體開發產生重要的影響。

參考文獻

  1. 李也戈,張然.軟體重用的實現[J].電腦工程.1995.4
本條目對我有幫助1
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

Mis铭,Tracy.

評論(共0條)

提示:評論內容為網友針對條目"軟體重用"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP

闽公网安备 35020302032707号