登錄

軟件重用

百科 > 軟件 > 軟件重用

1.什么是軟件重用

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

2.軟件重用的對象[1]

  (一)實現層的軟件重用

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

  (1)代碼提取

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

  (2)源代碼部件

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

  (3)軟件邏輯結構

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

  (二)設計層的軟件重用

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

  (1)甚高級語言

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

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

  (2)應用生成器

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

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

  (3)變換系統(tǒng)

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

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

  變換系統(tǒng)是一種較為成功的可重用對象。

  3.體系結構層的軟件重用

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

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

  軟件體系結構的重用吸取了其它軟件可重用對象的優(yōu)點,是目前最理想的可重用軟件對象。建立一個完備的軟件體系結構庫,以及用于支持管理體系結構構件的軟件開發(fā)環(huán)境,形成一種新的基于軟件重用的軟件開發(fā)范型,將對今后的軟件開發(fā)產生重要的影響。

評論  |   0條評論