蘇州高等職業(yè)技術(shù)學(xué)?!±钪緜?/p>
?
淺談軟件架構(gòu)復(fù)用技術(shù)及存在的問(wèn)題
蘇州高等職業(yè)技術(shù)學(xué)校李志偉
【摘要】如何快速開(kāi)發(fā)出高質(zhì)量的軟件一直是人們關(guān)注、研究的熱點(diǎn)問(wèn)題。軟件架構(gòu)中的復(fù)用技術(shù)對(duì)解決這一問(wèn)題大有幫助。本文簡(jiǎn)要介紹軟件架構(gòu)技術(shù)發(fā)展的前沿背景,并對(duì)實(shí)現(xiàn)復(fù)用技術(shù)的關(guān)鍵技術(shù)加以分析敘述,給出了軟件復(fù)用存在的問(wèn)題。最后對(duì)軟件復(fù)用技術(shù)加以總結(jié)和展望。
【關(guān)鍵詞】軟件架構(gòu);復(fù)用技術(shù)
計(jì)算機(jī)技術(shù)的快速發(fā)展,使得人們對(duì)計(jì)算機(jī)軟件的要求越來(lái)越高。如何最大程度上提高軟件的開(kāi)發(fā)和使用效率一直是人們關(guān)注的熱點(diǎn)。但復(fù)雜度較高的軟件開(kāi)發(fā)周期較長(zhǎng),開(kāi)發(fā)過(guò)程中面臨各種各樣錯(cuò)誤,加大的開(kāi)發(fā)人員的工作量。盡管面向過(guò)程的開(kāi)發(fā)方法能夠在一定程度上提高軟件開(kāi)發(fā)的技術(shù)水平。但分布式技術(shù)的依賴程度越高,處理的數(shù)據(jù)量也就越大。加上軟件規(guī)模和軟件產(chǎn)業(yè)的增加,各行業(yè)的軟件技術(shù)沒(méi)有統(tǒng)一標(biāo)準(zhǔn)規(guī)范。假如每個(gè)新開(kāi)發(fā)的項(xiàng)目都從零開(kāi)始實(shí)施,那么開(kāi)發(fā)的過(guò)程中大量重復(fù)的勞動(dòng)力就會(huì)出現(xiàn),浪費(fèi)人力、財(cái)力和物力。隨后出現(xiàn)的軟件復(fù)用技術(shù),能夠解決項(xiàng)目開(kāi)發(fā)效率低、質(zhì)量不達(dá)標(biāo)等問(wèn)題。它是在已經(jīng)有的開(kāi)發(fā)經(jīng)驗(yàn)和成果基礎(chǔ)之上,減小或消除軟件開(kāi)發(fā)過(guò)程中的重復(fù)性勞動(dòng),加上這一技術(shù)能夠適應(yīng)日益成熟的面向?qū)ο蠹夹g(shù),軟件復(fù)用技術(shù)是當(dāng)前軟件開(kāi)發(fā)必須要考慮的技術(shù)。軟件復(fù)用的思想對(duì)于提高軟件開(kāi)發(fā)質(zhì)量和效率有重大意義。而后這一技術(shù)被廣泛運(yùn)用于計(jì)算機(jī)行業(yè),具有劃時(shí)代的意義。
軟件架構(gòu)復(fù)用就是在軟件的架構(gòu)層設(shè)計(jì)中套用現(xiàn)有的優(yōu)勢(shì)架構(gòu)。軟件架構(gòu)復(fù)用具有一定的積累功能,可基于特定的軟件開(kāi)發(fā)工具或平臺(tái),也可以基于電子商務(wù)、電子政務(wù)等特定應(yīng)用領(lǐng)域。軟件復(fù)用的基礎(chǔ)或零件部分來(lái)源于:將不同系統(tǒng)中相似的功能和特征總結(jié)出來(lái),形成再可使用的資源。這些資源在使用過(guò)程中可被劃分為若干部分。如:選取、抽象、實(shí)例化、集成等。
實(shí)現(xiàn)軟件復(fù)用的主要因素有:軟件架構(gòu)、軟件構(gòu)件技術(shù)、軟件工程、領(lǐng)域工程、軟件過(guò)程、CASE技術(shù)、開(kāi)放系統(tǒng)和非技術(shù)因素。以下簡(jiǎn)要介紹4個(gè)因素。
(1)軟件架構(gòu)。
軟件架構(gòu)是軟件主體模塊之間的邏輯關(guān)系總和。它包括一個(gè)程序/系統(tǒng)各部件的結(jié)構(gòu),描述的對(duì)象是直接構(gòu)成系統(tǒng)的抽象組件。各個(gè)組件之間的連接則明確和相對(duì)細(xì)致地描述組件之間的通訊。在實(shí)現(xiàn)階段,這些抽象組件被細(xì)化為實(shí)際的組件,組件之間的連接通常用接口來(lái)實(shí)現(xiàn)。
軟件架構(gòu)有許多模型,通常采用的是視圖模型,它可以從多個(gè)角度描述一個(gè)復(fù)雜的軟件系統(tǒng)。最流行的視圖模型是4+1視圖模型,包括:用例視圖、結(jié)構(gòu)視圖、行為視圖、實(shí)現(xiàn)視圖和部署視圖五個(gè)視圖。
(2)構(gòu)件技術(shù)。
構(gòu)件技術(shù)是指通過(guò)組裝一系列可復(fù)用的軟件構(gòu)件來(lái)構(gòu)造軟件系統(tǒng)的軟件技術(shù)。構(gòu)建是指可以被重復(fù)使用的標(biāo)準(zhǔn)化的功能單元。通常包括的基本特征有:可用性、有用性、質(zhì)量和可移植性。如今的構(gòu)件不僅包括源代碼構(gòu)件、測(cè)試計(jì)劃、軟件架構(gòu)等內(nèi)容,還包括其他對(duì)開(kāi)發(fā)活動(dòng)有用的信息等。
(3)軟件再工程。
軟件再工程是對(duì)調(diào)查的對(duì)象系統(tǒng)進(jìn)行重構(gòu)的開(kāi)發(fā)過(guò)程。它以軟件工程方法學(xué)為指導(dǎo),對(duì)程序重新設(shè)計(jì)、編碼和測(cè)試,使用逆向或再工程工具理解原有設(shè)計(jì)。軟件再工程是對(duì)已有系統(tǒng)中構(gòu)件級(jí)的優(yōu)化,其特點(diǎn)是最大限度地重用原有系統(tǒng)的資源。在再工程的各個(gè)階段中,前期要加深對(duì)代碼的理解,軟件的可重用程度決定了再工程的工作量。
(4)領(lǐng)域工程。
領(lǐng)域工程是指開(kāi)發(fā)相同或相似的領(lǐng)域系統(tǒng)。開(kāi)發(fā)過(guò)程可分為三個(gè)階段:一是領(lǐng)域分析階段:該階段是要提取領(lǐng)域模型。領(lǐng)域模型能夠描述領(lǐng)域中的共同需求。其主要內(nèi)容包括領(lǐng)域邊界,系統(tǒng)需求和識(shí)別信息源,共享功能,不變與可變的需求功能。二是領(lǐng)域設(shè)計(jì)階段:該階段是要對(duì)領(lǐng)域構(gòu)架進(jìn)行分析。領(lǐng)域構(gòu)架是要先通過(guò)對(duì)領(lǐng)域內(nèi)的業(yè)務(wù)流程進(jìn)行分析、構(gòu)建出模型,再抽象出領(lǐng)域的構(gòu)架。由于各領(lǐng)域的流程不同,故而得到的模型、構(gòu)架也是不相同的。三是領(lǐng)域?qū)崿F(xiàn)階段:即使用構(gòu)件將領(lǐng)域需求分析得出的構(gòu)架填充起來(lái),以期完成總的領(lǐng)域工程的過(guò)程。
軟件復(fù)用技術(shù)能夠提軟件的開(kāi)發(fā)效率、降低開(kāi)發(fā)成本,它是解決軟件危機(jī)問(wèn)題的有效途徑。但是,在大型軟件的開(kāi)發(fā)過(guò)程中,使用復(fù)用思想開(kāi)發(fā)的卻很少,原因有很多。如:(1)在開(kāi)發(fā)軟件構(gòu)件時(shí),過(guò)分強(qiáng)調(diào)了軟件復(fù)用,很可能使得產(chǎn)品滿足不了所有用戶的需求。(2)開(kāi)發(fā)人員、管理人員缺乏軟件復(fù)用的觀念和意識(shí)。(3)對(duì)構(gòu)件的開(kāi)發(fā)粒度大小把握不好,粒度大的構(gòu)件應(yīng)用范圍小,小粒度的構(gòu)件功能簡(jiǎn)單,應(yīng)用范圍廣,但會(huì)降低或失去構(gòu)件復(fù)用的價(jià)值。4.構(gòu)件達(dá)到一定數(shù)量后,如何選擇合適的構(gòu)件是個(gè)問(wèn)題。另外,軟件復(fù)用存在的問(wèn)題還有:可供復(fù)用的資源太少;可復(fù)用資源的功能必須通用;可復(fù)用資源的使用方法必須清楚。
本文介紹了軟件架構(gòu)、軟件復(fù)用的前沿背景,后對(duì)實(shí)現(xiàn)軟件復(fù)用的幾種要素加以分析說(shuō)明。分別介紹了軟件架構(gòu)、構(gòu)建技術(shù)、軟件再工程、領(lǐng)域工程等因素。最后分析了軟件復(fù)用技術(shù)面臨的幾個(gè)問(wèn)題。使用軟件復(fù)用技術(shù)開(kāi)發(fā)軟件將是勢(shì)之所趨,在提高軟件開(kāi)發(fā)質(zhì)量和降低成本上功不可沒(méi),良好的復(fù)用思想加上對(duì)問(wèn)題的如實(shí)把握將是解決問(wèn)題的關(guān)鍵。伴隨著因特網(wǎng)與科技的發(fā)展進(jìn)步,軟件復(fù)用技術(shù)必將成為開(kāi)發(fā)工程師關(guān)注和使用的最關(guān)鍵技術(shù)。