陳忠菊
摘 要:該文首先說(shuō)明軟件工程領(lǐng)域應(yīng)用復(fù)用技術(shù)的意義,接著指出將復(fù)用技術(shù)應(yīng)用到軟件工程時(shí)需要解決的技術(shù)問(wèn)題,以及復(fù)用技術(shù)在軟件工程領(lǐng)域主要應(yīng)用在哪些方面,最后對(duì)復(fù)用技術(shù)在軟件工程領(lǐng)域的具體應(yīng)用過(guò)程進(jìn)行分析。
關(guān)鍵詞:軟件工程 復(fù)用技術(shù) 應(yīng)用
中圖分類(lèi)號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2016)07(a)-0098-02
軟件系統(tǒng)在快速開(kāi)發(fā)和應(yīng)用的過(guò)程中,存在著相當(dāng)多的重復(fù)開(kāi)發(fā)現(xiàn)象,浪費(fèi)了大量的開(kāi)發(fā)資金和技術(shù)。為了減少或避免這種重復(fù)開(kāi)發(fā),提高軟件系統(tǒng)的開(kāi)發(fā)質(zhì)量,推動(dòng)軟件工程的發(fā)展,可以在軟件工程領(lǐng)域中應(yīng)用復(fù)用技術(shù)。
1 軟件工程領(lǐng)域應(yīng)用復(fù)用技術(shù)的意義
1.1 軟件工程領(lǐng)域應(yīng)用復(fù)用技術(shù)的含義
通常情況下,軟件系統(tǒng)的開(kāi)發(fā)和投入應(yīng)用都要經(jīng)歷“系統(tǒng)的需求分析—系統(tǒng)設(shè)計(jì)—系統(tǒng)編碼—系統(tǒng)測(cè)試—系統(tǒng)維護(hù)”等過(guò)程,而這些過(guò)程中有很多重復(fù)的工作內(nèi)容。為了減少重復(fù)工作造成的時(shí)間和資金的消耗,軟件工程領(lǐng)域的工作人員通過(guò)使用復(fù)用技術(shù)以及可復(fù)用的構(gòu)件組建新軟件系統(tǒng),取代傳統(tǒng)的“一切從頭開(kāi)始進(jìn)行”的軟件開(kāi)發(fā)方式,達(dá)到實(shí)現(xiàn)軟件復(fù)用的目的,就是復(fù)用技術(shù)在軟件工程領(lǐng)域應(yīng)用的含義。
1.2 軟件工程領(lǐng)域應(yīng)用復(fù)用技術(shù)的意義
1.2.1 提高軟件系統(tǒng)質(zhì)量
(1)可復(fù)用構(gòu)件在組建系統(tǒng)時(shí),需要經(jīng)過(guò)科學(xué)合理的設(shè)計(jì)和試驗(yàn),因此組建出的系統(tǒng)具有更強(qiáng)大的性能和更高的穩(wěn)定性。
(2)在軟件工程領(lǐng)域應(yīng)用復(fù)用技術(shù),能夠提高軟件系統(tǒng)與其他系統(tǒng)的互操作性,提高了軟件系統(tǒng)工作效率。
(3)利用可復(fù)用構(gòu)件和框架,能夠進(jìn)行快速的原型設(shè)計(jì)和構(gòu)建,從而能夠得到用戶(hù)的使用情況以及對(duì)軟件系統(tǒng)功能的反饋。
1.2.2 降低軟件開(kāi)發(fā)成本
(1)軟件工程領(lǐng)域應(yīng)用復(fù)用技術(shù)能夠提高軟件系統(tǒng)的生產(chǎn)率,縮短組建一個(gè)新系統(tǒng)需要花費(fèi)的時(shí)間,降低軟件系統(tǒng)的生產(chǎn)成本。
(2)可復(fù)用構(gòu)件在組建過(guò)程中經(jīng)過(guò)科學(xué)嚴(yán)格的設(shè)計(jì)與檢驗(yàn),具有更高的性能和可靠性,能夠有效減少軟件系統(tǒng)維護(hù)的可能性,降低軟件系統(tǒng)維護(hù)的代價(jià),能夠節(jié)省一大筆軟件系統(tǒng)的維護(hù)費(fèi)用。
1.2.3 推動(dòng)實(shí)現(xiàn)軟件工程
在軟件工程領(lǐng)域應(yīng)用復(fù)用技術(shù),可以提高原型設(shè)計(jì)的效率、避免重復(fù)工作、降低系統(tǒng)被維護(hù)的可能性、提高軟件系統(tǒng)的質(zhì)量,對(duì)于解決軟件發(fā)展面臨的難題具有重要意義,而這又剛好符合軟件工程提出和發(fā)展的目的,能夠推動(dòng)軟件工程的實(shí)現(xiàn)和發(fā)展。
2 將復(fù)用技術(shù)應(yīng)用到軟件工程領(lǐng)域時(shí)需要解決的技術(shù)問(wèn)題
2.1 軟件構(gòu)件技術(shù)
主要使用的構(gòu)件為代碼級(jí)構(gòu)件,直接由工具支持,分為二進(jìn)制代碼和源代碼兩種,前者的復(fù)用方式為黑盒復(fù)用,主要用于了解構(gòu)件的接口和屬性等信息;后者的復(fù)用方式為黑盒復(fù)用和白盒復(fù)用。
將復(fù)用技術(shù)應(yīng)用到軟件工程領(lǐng)域的過(guò)程中,需要從以下幾個(gè)方面應(yīng)用軟件構(gòu)件技術(shù):
(1)獲取構(gòu)件:通常從已經(jīng)存在的軟件系統(tǒng)中挖掘獲取,找到可復(fù)用構(gòu)件;(2)構(gòu)件模型:通過(guò)設(shè)計(jì)和組建模型,了解不同構(gòu)件之間的關(guān)系,便于可復(fù)用構(gòu)件的進(jìn)一步利用;(3)構(gòu)件描述:對(duì)不同類(lèi)型的構(gòu)件的性能和屬性等進(jìn)行清晰準(zhǔn)確的描述,著重于構(gòu)件的組建和使用問(wèn)題;(4)儲(chǔ)存構(gòu)件:根據(jù)對(duì)獲取的構(gòu)件的描述,將構(gòu)建分類(lèi),并存入構(gòu)件庫(kù),便于之后對(duì)構(gòu)件的查詢(xún)和檢索;(5)構(gòu)建的組裝:了解不同構(gòu)件的屬性和組裝機(jī)之后,在構(gòu)件模型的基礎(chǔ)上進(jìn)行構(gòu)件組裝,并對(duì)其進(jìn)行標(biāo)準(zhǔn)化的處理。
2.2 CASE技術(shù)和軟件復(fù)用庫(kù)
2.2.1 CASE技術(shù)和工具
軟件工程的實(shí)現(xiàn)和發(fā)展是一個(gè)長(zhǎng)期復(fù)雜的過(guò)程,這之中要需要涉及大量的軟件開(kāi)發(fā),而CASE(計(jì)算機(jī)輔助軟件工程)技術(shù)的使用能夠降低軟件開(kāi)發(fā)和管理的難度,提高軟件開(kāi)發(fā)的質(zhì)量,促進(jìn)軟件工程的實(shí)現(xiàn)和發(fā)展。在復(fù)用技術(shù)應(yīng)用于軟件工程領(lǐng)域的過(guò)程中,CASE技術(shù)可以配合具體的開(kāi)發(fā)方法,實(shí)現(xiàn)對(duì)可復(fù)用構(gòu)件的選擇、分類(lèi)、儲(chǔ)存、檢索、組裝、度量等一系列管理。
2.2.2 軟件復(fù)用庫(kù)
在過(guò)去積累的軟件設(shè)計(jì)的算法和實(shí)現(xiàn)技術(shù)的基礎(chǔ)上,對(duì)代碼進(jìn)行進(jìn)一步的改進(jìn)和提升,并將其保存和編輯,形成可以直接用于檢索、查詢(xún)和引用的軟件復(fù)用庫(kù)。在復(fù)用技術(shù)應(yīng)用于軟件工程領(lǐng)域的過(guò)程中,需要借助于軟件復(fù)用庫(kù)對(duì)可復(fù)用構(gòu)件、構(gòu)件組建方式、軟件設(shè)計(jì)算法等進(jìn)行管理,降低軟件開(kāi)發(fā)的難度,提高軟件開(kāi)發(fā)的質(zhì)量和能力。
2.3 開(kāi)放系統(tǒng)技術(shù)
使用開(kāi)放系統(tǒng)技術(shù)主要是為了提高子系統(tǒng),以及不同系統(tǒng)之間的互操作性,保證系統(tǒng)演化和運(yùn)行的穩(wěn)定;還能夠?yàn)檐浖到y(tǒng)開(kāi)發(fā)的設(shè)計(jì)過(guò)程提供參考依據(jù),縮短軟件系統(tǒng)開(kāi)發(fā)的周期,提高軟件開(kāi)發(fā)的效率;同時(shí),穩(wěn)定的接口標(biāo)準(zhǔn)使得軟件系統(tǒng)能夠更容易適應(yīng)復(fù)用技術(shù),促進(jìn)了復(fù)用技術(shù)在軟件工程領(lǐng)域的應(yīng)用[1]。
3 復(fù)用技術(shù)在軟件工程領(lǐng)域的主要應(yīng)用方面
3.1 復(fù)用軟件的分析和測(cè)試信息
軟件系統(tǒng)從開(kāi)發(fā)到投入應(yīng)用的過(guò)程中,需要參考大量的信息,其中就包括軟件的分析和測(cè)試信息,為了避免對(duì)這些信息的重復(fù)測(cè)量和分析,就可以對(duì)部分信息內(nèi)容進(jìn)行復(fù)用。
(1)復(fù)用軟件的分析:將重復(fù)的軟件分析內(nèi)容和方法抽取出來(lái)后,可以將軟件分析的內(nèi)容應(yīng)用在其他軟件系統(tǒng)的分析上;也可以將軟件分析的方法應(yīng)用在其他不同的軟件平臺(tái)上;還可以對(duì)軟件系統(tǒng)中的部分構(gòu)件進(jìn)行分析。
(2)復(fù)用軟件的測(cè)試信息:將重復(fù)的測(cè)試過(guò)程信息和通用的測(cè)試用例提出后,前者可用于為其他軟件系統(tǒng)的部分測(cè)試提供參考信息;后者可以直接用于其他軟件系統(tǒng)的測(cè)試中。
3.2 復(fù)用軟件設(shè)計(jì)
軟件設(shè)計(jì)的復(fù)用,能夠使復(fù)用技術(shù)在軟件工程領(lǐng)域的應(yīng)用上升到軟件系統(tǒng)的模塊級(jí)別,而且可以復(fù)用的范圍也更廣泛。
3.3 復(fù)用代碼
代碼的復(fù)用主要體現(xiàn)在面向結(jié)構(gòu)化和面向?qū)ο蟮能浖O(shè)計(jì)方法中。在前者中使用復(fù)用技術(shù)指的是:將可以復(fù)用的部分抽象為函數(shù),以向函數(shù)傳遞不同參數(shù)的方式,實(shí)現(xiàn)軟件系統(tǒng)不同模塊對(duì)函數(shù)的復(fù)用;在后者中使用復(fù)用技術(shù)指的是:將重復(fù)使用基類(lèi)的代碼或者成員變量等,在子類(lèi)繼承過(guò)程中進(jìn)行重復(fù)使用[2]。
4 復(fù)用技術(shù)在軟件工程領(lǐng)域的具體應(yīng)用過(guò)程
4.1 指導(dǎo)復(fù)用驅(qū)動(dòng)軟件開(kāi)發(fā)過(guò)程
指導(dǎo)復(fù)用驅(qū)動(dòng)軟件開(kāi)發(fā)過(guò)程,主要是為了實(shí)現(xiàn)更高的共享率和復(fù)用率。一般從兩個(gè)角度看待復(fù)用技術(shù)的應(yīng)用:(1)應(yīng)用者角度:利用可復(fù)用構(gòu)件組建出新的軟件系統(tǒng);(2)生產(chǎn)者角度:重新設(shè)計(jì)、建立和獲得可復(fù)用構(gòu)件[3]。
4.2 評(píng)估軟件復(fù)用能力
為了避免其他因素對(duì)軟件復(fù)用能力評(píng)估的干擾,首先,要盡可能地挖掘軟件中能夠被復(fù)用的部分,提高軟件的復(fù)用能力:對(duì)軟件系統(tǒng)的功能、屬性以及開(kāi)發(fā)需求進(jìn)行充分深入的分析,在此基礎(chǔ)上將適合復(fù)用的部分提取出來(lái),并通過(guò)提高對(duì)這些可復(fù)用部分的使用效率,來(lái)提高軟件系統(tǒng)的質(zhì)量。
4.3 選擇可復(fù)用構(gòu)件
(1)根據(jù)實(shí)際軟件系統(tǒng)開(kāi)發(fā)的需要,從供應(yīng)商那里,網(wǎng)絡(luò)上,或者其他并行項(xiàng)目中選擇可復(fù)用構(gòu)件,但一定要做好對(duì)這些構(gòu)件的質(zhì)量檢測(cè)工作,確保選擇的構(gòu)件能夠滿(mǎn)足軟件系統(tǒng)開(kāi)發(fā)的需求;
(2)利用公用的或者個(gè)人的軟件復(fù)用庫(kù),結(jié)合所開(kāi)發(fā)的軟件系統(tǒng)的特點(diǎn)和實(shí)際開(kāi)發(fā)需求,從軟件復(fù)用庫(kù)中檢索選擇合適的可復(fù)用構(gòu)件。
5 結(jié)語(yǔ)
將復(fù)用技術(shù)應(yīng)用于軟件工程領(lǐng)域中,解決軟件系統(tǒng)開(kāi)發(fā)過(guò)程中遇到的難題,提高軟件系統(tǒng)開(kāi)發(fā)的效率,推動(dòng)軟件工程的實(shí)現(xiàn)和發(fā)展。
參考文獻(xiàn)
[1] 劉小海.軟件復(fù)用技術(shù)[J].信息與電腦:理論版,2011(12):118-120.
[2] 毛海駿.軟件復(fù)用在軟件工程開(kāi)展中的應(yīng)用探析[J].電子技術(shù)與軟件工程,2014(23):54-55.
[3] 馬伽洛倫.復(fù)用技術(shù)在軟件工程領(lǐng)域中的應(yīng)用研究[J].中國(guó)新通信,2016(2):159.