- 相關(guān)推薦
關(guān)于計算機軟件復用探討
。壅撐年P(guān)鍵詞]軟件復用 范式抽象 智能學(xué)習 范式庫?
。壅撐恼 要]計算機軟件作為一門(mén)學(xué)科得到了迅速發(fā)展,相關(guān)技術(shù)和方法層出不窮,研究領(lǐng)域不斷深入和發(fā)展,計算機的應用范圍也得到了很大程度的普及,人們對軟件系統的需求急劇上升,隨之而來(lái)的軟件規模越來(lái)越大,開(kāi)發(fā)費用越來(lái)越高,開(kāi)發(fā)的質(zhì)量和效率不斷降低的問(wèn)題日益嚴重,如何解決這些日益復雜的矛盾,滿(mǎn)足高質(zhì)量、高效率地開(kāi)發(fā)各種各樣日趨復雜、大型的軟件系統的需求,消除所謂的“軟件危機”,成為計算機軟件學(xué)科所面臨的重要課題。?
軟件復用技術(shù)的提出成為消除這種危機的一種解決方案。近年來(lái),特別是20世紀90年代以后,面向對象方法和技術(shù)成為主流的軟件開(kāi)發(fā)技術(shù),使得軟件復用被視為解決軟件危機一條現實(shí)可行的途徑。與此同時(shí),模型構件技術(shù)、分布式系統、領(lǐng)域工程、自動(dòng)生成技術(shù)又為軟件復用注入了新的活力,本文對面向對象系統分析階段軟件復用模型進(jìn)行了研究和探討。?
一、軟件復用?
軟件復用的概念是在1968年NATO軟件工程會(huì )議上被第一次引入的,在其后的幾十年中,進(jìn)行了許多復用技術(shù)的研究和實(shí)踐活動(dòng),但因技術(shù)和非技術(shù)方面的種種因素,造成復用技術(shù)在整體上對軟件產(chǎn)業(yè)的影響不盡人意。面向對象方法和技術(shù)的出現及成熟,為軟件復用提供了強有力的技術(shù)支持,尤其是軟件構件技術(shù)的發(fā)展為其注入了新的活力,使得軟件復用研究重新成為熱點(diǎn),被視為解決軟件危機、提高軟件生產(chǎn)效率和質(zhì)量的一個(gè)現實(shí)可行的途徑,同時(shí)也成為了避免軟件開(kāi)發(fā)中重復勞動(dòng)的解決方案,并在一定程度上降低了軟件開(kāi)發(fā)的費用。目前,軟件復用技術(shù)主要從兩個(gè)方面來(lái)考慮:產(chǎn)品復用、過(guò)程復用。?
產(chǎn)品復用:所謂產(chǎn)品復用是指復用已有的軟件產(chǎn)品。目前基于構件的和面向服務(wù)的軟件開(kāi)發(fā)模式就是建立在這種軟件復用的基礎上的。這兩種開(kāi)發(fā)模式主要通過(guò)對現有的構件和服務(wù)進(jìn)行合成或集成,從而生成所需要軟件的過(guò)程。產(chǎn)品的復用是目前軟件復用技術(shù)研究的焦點(diǎn),在這個(gè)復用的過(guò)程中涉及到的關(guān)鍵技術(shù)是構件技術(shù)和軟件架構技術(shù),在成熟的構件和架構的技術(shù)上,可以使產(chǎn)品復用達到良好的效果。?
二、面向對象系統分析(OOA)階段軟件復用模型?
1.OOA階段可重用性的本質(zhì)?
編程階段不同類(lèi)型的編程軟件和類(lèi)有不同深度的可重用性:高深度、中深度、低深度。?
所謂高深度重用是指在不進(jìn)行任何改變就可以直接使用重用產(chǎn)品的重用,像可視化開(kāi)發(fā)工具中的所有控件,就屬于這方面的重用;目前,面向服務(wù)的軟件開(kāi)發(fā)技術(shù)中對服務(wù)的重用,只要程序員獲得服務(wù)者提供的接口,就可以直接使用別人開(kāi)發(fā)的產(chǎn)品,這種復用也是高深度的復用技術(shù),因此高深度的軟件復用,可重用性最好;所謂中深度的重用,程序員可以根據自己的開(kāi)發(fā)經(jīng)驗,開(kāi)發(fā)出一些比較通用的組件,在具體的使用中,對這些通用的組件只要稍作修改就可以應用于具體的項目中去,這種復用可重用性較好。當然,對于低深度的可重用性就于具體的項目相關(guān),它只能局限于該項目,可重用性最差。由此可見(jiàn),可重用性與業(yè)務(wù)邏輯的相關(guān)性是成反比例關(guān)系的:越是與業(yè)務(wù)邏輯無(wú)關(guān)的重用,重用性越好;反之則越差。?
2.OOA階段軟件復用模型研究?
OOA階段的軟件復用,在一定程度上可以說(shuō)是建立在許多優(yōu)秀的系統分析員實(shí)踐和經(jīng)驗基礎之上的復用,是一種思想上的復用。在這個(gè)階段的軟件復用更具有通用性和重用性,因此,構造這個(gè)階段的軟件復用模型,可以使復用達到更好地效果。?
3.范式抽象?
所謂范式就是抽象的解決方案模板,它可在不同具體項目中使用。范式抽象就是在此基礎上提出的對范式的設計方法。針對不同的問(wèn)題域,就應該有與之對應的設計方法,這樣可以使范式的設計達到很高的重用性。針對OOA階段具體現狀,有三種范式抽象方法:
(1)關(guān)系抽象?
在OOA階段,針對具體的項目,會(huì )分析出大量的關(guān)系模型。例如在學(xué)校排課表系統中,需要定義教師類(lèi),它包括教師姓名、性別、職稱(chēng)等有關(guān)教師的基本信息,同時(shí),為了便于教師很快得出自己的上課表,還需要定義一個(gè)與教師對應的教師課表類(lèi),這個(gè)類(lèi)顯示了一周中教師的課程安排情況;在網(wǎng)上購物系統中,需要定義一個(gè)購物者類(lèi),包括了購物者的相關(guān)信息,同時(shí)為了得到購物者所購的物品,還需定義一個(gè)購物車(chē)類(lèi),該類(lèi)描述了購物者與所購買(mǎi)的物品的對應關(guān)系。這兩個(gè)系統的具體業(yè)務(wù)是不同的,但教師類(lèi)與教師課表類(lèi)、購物者類(lèi)與購物車(chē)類(lèi)的關(guān)系卻是基本相同的,都是一個(gè)實(shí)體對另一個(gè)實(shí)體的擁有關(guān)系,同樣,所進(jìn)行的操作也基本相同,諸如都涉及到對所擁有實(shí)體的查詢(xún)操作等。因此可將這種關(guān)系抽象出來(lái),定義為擁有關(guān)系,然后在此關(guān)系的基礎上定義相應的操作。這種關(guān)系就可以以范式的形式保存起來(lái),在不同的項目中都可重用這種范式。同樣,還可抽象出許多其他的關(guān)系范式,如實(shí)體——內容關(guān)系,上下級關(guān)系等。這些關(guān)系都是不依賴(lài)于具體的項目和業(yè)務(wù)的,可重復使用,只是在針對具體的業(yè)務(wù)時(shí),在相關(guān)屬性和方法上稍作修改就可以了。
(2)相似對象抽象?
在不同項目的OOA階段,還會(huì )分析出大量的相似對象或類(lèi),例如用戶(hù)、用戶(hù)組、角色、權限等在所有涉及到權限管理的系統中都會(huì )出現這類(lèi)對象;在一些相同領(lǐng)域的項目中,由于涉及的領(lǐng)域的標準化,有些對象的相似性以及相同的機率會(huì )更大。對于這些相似程度如此大的對象來(lái)說(shuō),由于其在項目開(kāi)發(fā)中的相對獨立性,把這些對象模型以范式的形式保存起來(lái)會(huì )使分析的結果得到更大的重用。?
按照上述思想進(jìn)行的范式抽象稱(chēng)為相似對象抽象,這種抽象依據的是分析階段的對象模型,這種對象模型具有獨立的、高度的相似性,抽象出來(lái)的范式可稱(chēng)為對象范式。這種范式與具體項目之間的相似可稱(chēng)為表面相似性。表面相似越接近,范式的重用性就越大。?
(3)領(lǐng)域抽象?
所謂領(lǐng)域抽象是用于某一領(lǐng)域的抽象問(wèn)題的解決方案。在同一個(gè)領(lǐng)域的項目開(kāi)發(fā)過(guò)程中往往能夠總結出更多的相似性,包括關(guān)系相似性和表面相似性,將二者相結合,可構建出與行業(yè)有關(guān)的構件。這種構件是建立在具體領(lǐng)域上的一種抽象,稱(chēng)為領(lǐng)域抽象。領(lǐng)域抽象的過(guò)程可借助領(lǐng)域工程的知識和方法。其中在OOA階段主要用到了領(lǐng)域分析的方法。所謂領(lǐng)域分析是被稱(chēng)為領(lǐng)域工程更大的學(xué)科中的第一項技術(shù)活動(dòng)。當業(yè)務(wù)、系統或產(chǎn)品域被定義為長(cháng)期的業(yè)務(wù)策略,則可以展開(kāi)持續的創(chuàng )建強健的可復用庫的工作,其目標是能夠在領(lǐng)域中以非常高的可復用構件率來(lái)創(chuàng )建軟件。領(lǐng)域分析在領(lǐng)域抽象過(guò)程的作用是從OOA得出的對象、關(guān)系、行為模型的抽象出與領(lǐng)域相關(guān)的領(lǐng)域范式,其中包括關(guān)系范式、相似對象范式和處理過(guò)程范式等。這些范式與前面提到的范式唯一不同就是有了特定領(lǐng)域的標識,這在同一領(lǐng)域的開(kāi)發(fā)中將達到高度的重用性。?
三、總結?
本文通過(guò)對軟件復用技術(shù)的分析,提出了一種面向對象系統分析階段軟件復用的模型,并對此模型中所涉及到范式抽象方法做了探討,并把它們應用于具體的項目中去,從而很好地利用的設計思想,大大提高了項目的完成速度。另外,對于范式庫的研究也為建立在高層上的軟件復用庫管理提出了新的研究課題:例如對于編碼階段復用構件庫的檢索條件也可以擴展為以范式為索引的檢索等。這些都成為下一步的研究課題。
?[參?考?文?獻]?
。1]Roger S•Pressman著(zhù),黃柏素、梅宏譯:《軟件工程實(shí)踐者的研究方法》,機械工業(yè)出版社1999年版。?
。2]黃靖、趙海光:《軟件復用,軟件合成與軟件集成》,《計算機應用研究》2004年。?
。3]王麗娟:《軟件復用技術(shù)及其在軟件開(kāi)發(fā)中的應用》,《中山大學(xué)學(xué)報論壇》2004年第24卷第1期。?
。4]段小君、高金環(huán):《軟件復用與面向對象技術(shù)》,《西安郵電學(xué)院學(xué)報》2004年第9卷第2期。?
。5]許天兵:《一種面向對象的軟件復用框架》,《微型電腦應用》2001年第17卷第10期。
【計算機軟件復用探討】相關(guān)文章:
非多路復用與多路復用總線(xiàn)轉換橋的設計與實(shí)現03-18
軟件的復用技術(shù)及開(kāi)發(fā)方法03-29
WDM光網(wǎng)絡(luò )模擬軟件中復用器/解復用器的研究與實(shí)現11-22
正交頻分復用技術(shù)及其應用03-18
SoC設計中IP復用和驗證策略03-07
FPGA在波分復用系統光監控信道中的應用03-08
基于正交頻分復用認知無(wú)線(xiàn)的井下無(wú)線(xiàn)的研究03-07
一種新型集成解復用接收器的設計11-22
淺析三道溝煤礦礦井水復用及采空區儲水安全11-30