當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀] “有效的開(kāi)發(fā)軟件”和“有效的復(fù)用軟件”一直是軟件工程領(lǐng)域兩個(gè)永恒的主題。軟件復(fù)用是提高軟件開(kāi)發(fā)效率和質(zhì)量的有效途徑,軟件復(fù)用的主要思想是,將軟件看成是由不同功能部分的“組件”所組成的有機(jī)體,每一個(gè)組

“有效的開(kāi)發(fā)軟件”和“有效的復(fù)用軟件”一直是軟件工程領(lǐng)域兩個(gè)永恒的主題。軟件復(fù)用是提高軟件開(kāi)發(fā)效率和質(zhì)量的有效途徑,軟件復(fù)用的主要思想是,將軟件看成是由不同功能部分的“組件”所組成的有機(jī)體,每一個(gè)組件在設(shè)計(jì)編寫時(shí)可以被設(shè)計(jì)成完成同類工作的通用工具。這樣,如果完成各種工作的組件被建立起來(lái)以后,編寫一特定軟件的工作就變成了只是將各種不同組件組織連接起來(lái)的簡(jiǎn)單問(wèn)題,這對(duì)于軟件產(chǎn)品的最終質(zhì)量和維護(hù)工作都有本質(zhì)性的改變。

構(gòu)件技術(shù)是支持軟件復(fù)用的核心技術(shù),是近幾年來(lái)迅速發(fā)展并受到高度重視的一個(gè)學(xué)科分支。它的出現(xiàn)是對(duì)傳統(tǒng)MIS開(kāi)發(fā)過(guò)程的一次變革,是基于面向?qū)ο蟮?、以嵌入后馬上可以“即插即用”概念為中心、通過(guò)構(gòu)件的組合來(lái)支持應(yīng)用的技術(shù)體系。標(biāo)準(zhǔn)零部件生產(chǎn)業(yè)的獨(dú)立存在和發(fā)展是產(chǎn)業(yè)形成規(guī)模經(jīng)濟(jì)的前提。軟件產(chǎn)業(yè)要發(fā)展并形成規(guī)模經(jīng)濟(jì),標(biāo)準(zhǔn)構(gòu)件的生產(chǎn)和構(gòu)件的復(fù)用是關(guān)鍵因素。而軟件復(fù)用模式是產(chǎn)業(yè)工程化、工業(yè)化的必由之路。這正是軟件復(fù)用受到高度重視的根本原因。

1 軟件復(fù)用與軟件構(gòu)件

1.1 軟件復(fù)用的基本概念

軟件復(fù)用是指重復(fù)使用“為了復(fù)用目的而設(shè)計(jì)的軟件”的過(guò)程[1]。軟件復(fù)用是在軟件開(kāi)發(fā)中避免重復(fù)勞動(dòng)的解決方案,它包括對(duì)軟件生產(chǎn)過(guò)程中其他勞動(dòng)成果的復(fù)用,如需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試用例和使用手冊(cè)等。

依據(jù)對(duì)可復(fù)用信息進(jìn)行復(fù)用的方式,可以將軟件復(fù)用區(qū)分為黑盒(Black-box)復(fù)用和白盒(White-box)復(fù)用。黑盒復(fù)用是指對(duì)可復(fù)用構(gòu)件不作任何修改,原封不動(dòng)地復(fù)用。這類可復(fù)用構(gòu)件比較通用,往往具有很好的封裝性,并具有標(biāo)準(zhǔn)的接口;而且這類構(gòu)件的復(fù)用率較高,因此要求有很高的質(zhì)量和可靠性。白盒復(fù)用是指在復(fù)用一個(gè)構(gòu)件時(shí)須對(duì)其進(jìn)行部分修改,以適應(yīng)具體應(yīng)用的需要。

1.2 實(shí)現(xiàn)軟件復(fù)用的關(guān)鍵因素

實(shí)現(xiàn)軟件復(fù)用的關(guān)鍵因素如圖1所示,主要包括:軟件構(gòu)件技術(shù)、領(lǐng)域工程、軟件構(gòu)架技術(shù)、軟件再工程、開(kāi)放系統(tǒng)技術(shù)、軟件過(guò)程、CASE技術(shù),以及各種非技術(shù)因素[2]。


1.3 軟件復(fù)用過(guò)程

 軟件復(fù)用過(guò)程如圖2所示,可分為以下步驟:(1)認(rèn)識(shí)到有可能復(fù)用的機(jī)會(huì);(2)分解、抽象;(3)分類并建立復(fù)用構(gòu)件庫(kù);(4)檢索與選擇復(fù)用構(gòu)件;(5)對(duì)復(fù)用構(gòu)件具體化;(6)重新組裝成新軟件。


1.4 構(gòu)件的基本概念

在眾多的軟件復(fù)用開(kāi)發(fā)方法中,基于構(gòu)件的軟件開(kāi)發(fā)方法是一條有效、實(shí)際的軟件復(fù)用途徑。所謂構(gòu)件是指系統(tǒng)中可以明確辨識(shí)的構(gòu)成成份,軟件構(gòu)件是系統(tǒng)中具有一定意義的獨(dú)立構(gòu)成成份[3]。

構(gòu)件應(yīng)具備的基本特征:(1)復(fù)用:復(fù)用是構(gòu)件最基本的性質(zhì),構(gòu)件的設(shè)計(jì)必須滿足能在新的應(yīng)用項(xiàng)目中使用;(2)封裝:是對(duì)外界隱藏構(gòu)件的設(shè)計(jì)和實(shí)現(xiàn)細(xì)節(jié),僅通過(guò)接口與外界交互,可以保證構(gòu)件功能復(fù)用的完整性和構(gòu)件開(kāi)發(fā)及交互的獨(dú)立性;(3)組裝:構(gòu)件可以通過(guò)組裝形成新的構(gòu)件或系統(tǒng),組裝是構(gòu)件復(fù)用的手段;(4)粒度:構(gòu)件是有大小的,與領(lǐng)域相關(guān)的構(gòu)件粒度大;(5)層次:構(gòu)件可以按層次進(jìn)行劃分,企業(yè)級(jí)應(yīng)用系統(tǒng)的復(fù)雜邏輯可以通過(guò)分層來(lái)解決。

2 基于構(gòu)件的軟件復(fù)用技術(shù)實(shí)現(xiàn)

對(duì)于構(gòu)件,應(yīng)當(dāng)按可復(fù)用的要求進(jìn)行設(shè)計(jì)、實(shí)現(xiàn)、打包、編寫文檔。構(gòu)件應(yīng)當(dāng)是內(nèi)聚的,并具有相當(dāng)穩(wěn)定的公開(kāi)的接口。有的構(gòu)件具有廣泛的可復(fù)用性,可復(fù)用到眾多種類的應(yīng)用系統(tǒng)中。而有的構(gòu)件則只能在有限的特定范圍內(nèi)被復(fù)用。

復(fù)用者從軟件體系結(jié)構(gòu)和可復(fù)用構(gòu)件的模型入手,將現(xiàn)成的可復(fù)用資產(chǎn)匯集在一起,以滿足客戶的需求。復(fù)用者應(yīng)當(dāng)利用可復(fù)用資產(chǎn)提供的可變性機(jī)制對(duì)所需的構(gòu)件進(jìn)行轉(zhuǎn)化。如果僅利用現(xiàn)有的可復(fù)用構(gòu)件還不足以完全滿足客戶所有的需求,則就需要另外編程。最后,把所需要的構(gòu)件集成在一起,并進(jìn)行測(cè)試,形成應(yīng)用系統(tǒng)。

單獨(dú)的一個(gè)構(gòu)件往往用處不大,但若干個(gè)構(gòu)件聯(lián)合起來(lái),用處就大了。所以要將相關(guān)的構(gòu)件組織在一起,形成構(gòu)件系統(tǒng)。實(shí)際應(yīng)用中的開(kāi)發(fā)者往往需要使用多個(gè)構(gòu)件系統(tǒng),因此,應(yīng)當(dāng)把構(gòu)件系統(tǒng)當(dāng)作系統(tǒng)產(chǎn)品進(jìn)行管理,必要時(shí)可自行開(kāi)發(fā)構(gòu)件系統(tǒng)。一個(gè)構(gòu)件系統(tǒng)的規(guī)??纱罂尚?,小到只有幾個(gè)構(gòu)件及支持文檔。

應(yīng)用系統(tǒng)要復(fù)用公共的構(gòu)件,要從構(gòu)件系統(tǒng)中挑選所需的可復(fù)用構(gòu)件。構(gòu)件系統(tǒng)中的構(gòu)件之間存在若干種關(guān)系,例如,一個(gè)構(gòu)件可從其他構(gòu)件那里繼承其功能(即繼承關(guān)系),也可以發(fā)送消息給其他構(gòu)件,或者可以與其他構(gòu)件聯(lián)合、支持協(xié)同工作。

總之,一個(gè)構(gòu)件系統(tǒng)是能提供一系列具有可復(fù)用特性的系統(tǒng)產(chǎn)品。這些特性被實(shí)現(xiàn)為相互依賴相互連接的眾多構(gòu)件,包括眾多的類型、軟件包和文檔。一個(gè)好的構(gòu)件系統(tǒng)使得復(fù)用者能夠又快、又好、又省地開(kāi)發(fā)應(yīng)用系統(tǒng)。對(duì)構(gòu)件系統(tǒng)中的每個(gè)構(gòu)件,都要精心地進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),使得它具有適當(dāng)?shù)撵`活性,能夠與其他構(gòu)件(甚至與其他構(gòu)件系統(tǒng))協(xié)同工作,向復(fù)用者提供適當(dāng)層次的功能。構(gòu)件系統(tǒng)應(yīng)當(dāng)是易于理解和易于使用的,每個(gè)構(gòu)件類型、類以及與其他構(gòu)件的相互作用,均應(yīng)當(dāng)有良好的文檔,并且所使用的術(shù)語(yǔ)應(yīng)當(dāng)具有一致性,對(duì)構(gòu)件應(yīng)當(dāng)是仔細(xì)地進(jìn)行建模、實(shí)現(xiàn)、制作文檔、測(cè)試,以便于以后的有效維護(hù)和改進(jìn)。

3 軟件復(fù)用技術(shù)在MIS中的應(yīng)用

基于可復(fù)用構(gòu)件MIS的開(kāi)發(fā)過(guò)程如圖3所示,有如下5個(gè)步驟:

(1)需求分析
基于可復(fù)用構(gòu)件的MIS需求分析可以采用改進(jìn)后的信息模型法,在數(shù)據(jù)分析、建立穩(wěn)定的數(shù)據(jù)集合和邏輯數(shù)據(jù)模型的基礎(chǔ)上,從信息模型、狀態(tài)模型和功能模型中組織構(gòu)件,建立系統(tǒng)模型。更多的是采用OOA,由此提煉的類構(gòu)件對(duì)構(gòu)件復(fù)用更有利。要利用在開(kāi)發(fā)MIS系統(tǒng)之初準(zhǔn)備的構(gòu)件庫(kù),并收集一些已經(jīng)開(kāi)發(fā)出的MIS的總體設(shè)計(jì)、規(guī)范、局部流程以及某些人機(jī)界面、通用功能模塊、簡(jiǎn)單開(kāi)發(fā)工具等。使用戶需求的系統(tǒng)模型盡可能與已經(jīng)收集的可復(fù)用構(gòu)件等成分相聯(lián)系。
(2)系統(tǒng)設(shè)計(jì)
在構(gòu)件復(fù)用情況下,由于代碼被封裝于構(gòu)件之中,所以系統(tǒng)設(shè)計(jì)的目標(biāo)應(yīng)是可以實(shí)現(xiàn)的構(gòu)件表達(dá)式,以支持后續(xù)的實(shí)現(xiàn)環(huán)節(jié)。MIS系統(tǒng)設(shè)計(jì)在內(nèi)容上包括了數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)和過(guò)程設(shè)計(jì)等,在階段劃分上,又可以分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。在概要設(shè)計(jì)階段,MIS設(shè)計(jì)的任務(wù)是確定系統(tǒng)的概況,即把需求轉(zhuǎn)化為概念數(shù)據(jù)模型和軟件體系結(jié)構(gòu),該階段的工作需要MIS構(gòu)件庫(kù)的支持。在詳細(xì)設(shè)計(jì)階段,邏輯數(shù)據(jù)模型通過(guò)進(jìn)一步細(xì)化轉(zhuǎn)換成物理數(shù)據(jù)模型,如數(shù)據(jù)庫(kù)結(jié)構(gòu)。為了使體系結(jié)構(gòu)的實(shí)現(xiàn)變?yōu)榭赡?,需要將體系結(jié)構(gòu)中的過(guò)程構(gòu)件(模塊)定義映射成實(shí)際程序構(gòu)件的結(jié)構(gòu)化表達(dá)式。對(duì)相對(duì)于構(gòu)件庫(kù)無(wú)解的模塊需要進(jìn)行原先的過(guò)程設(shè)計(jì)。至此,需求信息已轉(zhuǎn)換為程序員可以接受的設(shè)計(jì)方案。
(3)系統(tǒng)實(shí)現(xiàn)
在MIS實(shí)現(xiàn)中,首先是數(shù)據(jù)庫(kù)的實(shí)現(xiàn),可以通過(guò)MIS建模工具自動(dòng)在DBMS上完成,也可以由用戶利用相應(yīng)工具手工完成。其次是把構(gòu)件表達(dá)式變成程序?qū)崿F(xiàn),將進(jìn)行過(guò)程分析得到的描述信息稱為過(guò)程構(gòu)件。對(duì)于過(guò)程構(gòu)件,可以用某一具體語(yǔ)言加以實(shí)現(xiàn),最好使用對(duì)象對(duì)其進(jìn)行封裝。對(duì)于無(wú)需改動(dòng)的可復(fù)用構(gòu)件,僅需要根據(jù)構(gòu)件索引將其從構(gòu)件庫(kù)中提取出來(lái),作為MIS的一個(gè)模塊。多數(shù)情況下,需要對(duì)提取出的構(gòu)件進(jìn)行改造以適應(yīng)新的應(yīng)用系統(tǒng)。常見(jiàn)的改造形式是修改源程序,還可以通過(guò)面向?qū)ο蟮睦^承、重載及動(dòng)態(tài)編聯(lián)等特性進(jìn)行改造。在一些情況下,還需要組合幾個(gè)構(gòu)件形成更大粒度的構(gòu)件以滿足某一特定功能需要。通過(guò)以上方法形成各個(gè)功能模塊,再將這些模塊通過(guò)控制模塊聯(lián)系起來(lái)形成應(yīng)用系統(tǒng)雛形。
(4)系統(tǒng)測(cè)試
根據(jù)需求分析中提出的功能要求、性能要求等設(shè)計(jì)測(cè)試用例,對(duì)系統(tǒng)進(jìn)行全面測(cè)試、驗(yàn)證、優(yōu)化,形成MIS系統(tǒng)原型,提交給用戶評(píng)價(jià)。根據(jù)評(píng)價(jià)意見(jiàn),返回前面的相關(guān)步驟,進(jìn)行修改。通過(guò)復(fù)用上次開(kāi)發(fā)過(guò)程的成果,可以很快形成新的原型,直到需求得到滿足,MIS系統(tǒng)發(fā)布為止。
(5)系統(tǒng)維護(hù)
基于可復(fù)用構(gòu)件的MIS由于其自身的特點(diǎn),因此必須重新考慮MIS的維護(hù)問(wèn)題。一個(gè)基于可復(fù)用構(gòu)件的MIS采用的構(gòu)件可以是COTS構(gòu)件、公開(kāi)構(gòu)件、自由構(gòu)件、共享構(gòu)件等。對(duì)構(gòu)件集成者來(lái)說(shuō),當(dāng)把這些構(gòu)件集成到系統(tǒng)中時(shí),由于缺乏部分或全部源代碼,使得維護(hù)變得十分困難。如果構(gòu)件全部是“黑盒”,其可見(jiàn)部分僅局限于描述構(gòu)件的使用和功能的文檔上,那么這對(duì)全部由黑盒構(gòu)成的系統(tǒng)的維護(hù),又增添了新的難度。對(duì)構(gòu)件賣主來(lái)說(shuō),不能只考慮特定MIS應(yīng)用領(lǐng)域的某一源代碼塊,而應(yīng)維護(hù)被不同用戶所使用的所有代碼。因?yàn)槊總€(gè)MIS應(yīng)用可能在需求上有一點(diǎn)差別,修改后的構(gòu)件必須對(duì)所有的MIS都適用。
通過(guò)對(duì)基于構(gòu)件的軟件復(fù)用的研究及其在MIS中的應(yīng)用,可以提高軟件生產(chǎn)和開(kāi)發(fā)的工業(yè)化水平,大大提高了軟件開(kāi)發(fā)的效率、質(zhì)量和可維護(hù)性,特別是領(lǐng)域內(nèi)構(gòu)件技術(shù)的應(yīng)用更有價(jià)值和應(yīng)用前景。目前正在致力于MIS領(lǐng)域的軟件重用技術(shù)和軟件構(gòu)件技術(shù)的研究,希望通過(guò)對(duì)這一領(lǐng)域技術(shù)的研究,能夠探索出一條管理信息系統(tǒng)領(lǐng)域內(nèi)軟件開(kāi)發(fā)的低投入、高效率、高質(zhì)量的有效途徑。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉