隨著信息時代的來臨,計算機(jī)、手機(jī)等電子用品在人們的日常生活中逐漸的得到了普及,而軟件是這些電子產(chǎn)品技術(shù)支持,對于這些電子產(chǎn)品的運行性能和質(zhì)量具有重要的作用。傳統(tǒng)的軟件開發(fā)主要使用的是“面向?qū)ο、面向過程”的方法,這種方法具有明顯的缺點,并且軟件的生產(chǎn)效率和質(zhì)量低下。隨著研究的深入,基于構(gòu)件的軟件開發(fā)技術(shù)則應(yīng)運而生,這種方法不僅具有良好的靈活性、適應(yīng)性和易維護(hù)性,還能較好的支持軟件復(fù)用,其具體的開發(fā)方法與技術(shù)如下面所述。
1 基于構(gòu)件的軟件開發(fā)過程
基于構(gòu)件的軟件開發(fā)的核心是構(gòu)件級的可重用性,其主要是通過將已經(jīng)存在的構(gòu)件進(jìn)行適當(dāng)?shù)恼蟻硗瓿纱笮蛙浖到y(tǒng)的開發(fā)。這種方法不僅可以有效的降低大型軟件系統(tǒng)升級和維護(hù)的壓力,還可以更快速地整合系統(tǒng),減少軟件開發(fā)的費用。應(yīng)用系統(tǒng)的軟件作為軟件開發(fā)中的一種,其主要建造過程包括構(gòu)件的分析、設(shè)計、實現(xiàn)和組裝。
基于構(gòu)件的軟件開發(fā)過程的理論基礎(chǔ)是對于系統(tǒng)中重復(fù)出現(xiàn)的部分通過構(gòu)件進(jìn)行組合,即通過書寫代碼的方式來指導(dǎo)構(gòu)件系統(tǒng)對特定的內(nèi)容來進(jìn)行整合與裝配系統(tǒng)。此外,不同于傳統(tǒng)軟件開發(fā)方法的另一個地方時:在基于構(gòu)件的軟件開發(fā)技術(shù)當(dāng)中,系統(tǒng)的整合在開發(fā)過程中處于核心的地位,而在傳統(tǒng)的軟件開發(fā)當(dāng)中則僅僅是作為軟件系統(tǒng)收尾的一個部分。基于此,決定構(gòu)件的使用、重用和獲得的關(guān)鍵是其是否可以與其他的構(gòu)件之間進(jìn)行很好地整合。
1.1 構(gòu)件選取
構(gòu)件的選取過程也可以看作是構(gòu)件交易中購買合適構(gòu)件的過程,即其主要是通過對原有的組件依據(jù)系統(tǒng)的要求來進(jìn)行選取的過程。這個過程也可以擴(kuò)展到維護(hù)構(gòu)件和開發(fā)構(gòu)件的質(zhì)量保證上來。就構(gòu)件的選取過程而言,其主要可以分為兩個階段,即:發(fā)現(xiàn)和評估階段。
(1)發(fā)現(xiàn)階段。該階段主要是對各種構(gòu)件的屬性進(jìn)行明確,如構(gòu)件的接口、功能、性質(zhì)、特點等。此外,對于這些構(gòu)件的屬性不應(yīng)該獨立的看待,還需要對其自身的一些特征進(jìn)行綜合的考慮與看待,如構(gòu)件的可擴(kuò)展性、可用性、可靠性。在某些特殊的情況下還需要對于構(gòu)件的技術(shù)特性加以考慮,如構(gòu)件開發(fā)組織的成熟度和過程、提供者的市場占有率等方面。
(2)評估階段。目前,我國對于構(gòu)件的選取過程中的質(zhì)量檢測具有很多種比較成熟的評估方法。例如,IEEE的特定域的構(gòu)件評價技術(shù)、標(biāo)準(zhǔn)組織(Standards Organization)所設(shè)定的產(chǎn)品評估標(biāo)準(zhǔn)以及一些適用于特殊問題的評定技術(shù)和標(biāo)準(zhǔn)。這些方法的一個共同特點就是:它們都是基于構(gòu)件的相關(guān)理論所產(chǎn)生的解決構(gòu)件質(zhì)量評估的方法。但是,這種評價技術(shù)和方法具有不確定性,并且很難進(jìn)行相互之間的比較,不能對構(gòu)件進(jìn)行快速修改和精確評價。
1.2 構(gòu)件的調(diào)整
單個構(gòu)件為了符合上下文的假設(shè),完成特定的功能和技術(shù)需求,必須要在新系統(tǒng)完成之前進(jìn)行適當(dāng)?shù)卣{(diào)整。這種對構(gòu)件進(jìn)行調(diào)整的手段與技術(shù)可以通過將構(gòu)件之間的通用性進(jìn)行擴(kuò)展,進(jìn)而將構(gòu)件之間的沖突程度降低到最小。目前,我國比較常用的方法主要包括:白盒法、黑盒法以及灰盒法。
(1)白盒法。該方法主要是通過用戶對構(gòu)件進(jìn)行相應(yīng)的修改與控制達(dá)到構(gòu)件調(diào)整的目的,但是這種方法由于對源碼進(jìn)行了修改,很容易造成軟件升級及維護(hù)方面的問題。
(2)黑盒法。該方法主要是通過用戶對構(gòu)件進(jìn)行二進(jìn)制的編程修改,這樣可以在沒有API和擴(kuò)展機(jī)制的條件下進(jìn)行。
(3)灰盒法。該法可以提供構(gòu)件自身的API或者擴(kuò)展機(jī)制,但是不可以對其源碼進(jìn)行修改。
2 系統(tǒng)的實現(xiàn)
2.1 系統(tǒng)中的構(gòu)件實現(xiàn)
軟件工程網(wǎng)絡(luò)課堂教學(xué)系統(tǒng)的開發(fā)所依據(jù)的構(gòu)件模型主要是通過B/S架構(gòu)的三層體系結(jié)構(gòu)來實現(xiàn)的,其開發(fā)所依據(jù)的前后臺分別采用ASP和SOL Server 2000數(shù)據(jù)庫。對于一個構(gòu)件中的業(yè)務(wù)邏輯層/功能、表示層/用戶界面和數(shù)據(jù)訪問層的實現(xiàn)方法可以通過課件構(gòu)件的開發(fā)過程來加以說明。
(1)用戶界面層實現(xiàn)。課件上傳構(gòu)件的表示層用戶界面可以分為動態(tài)和靜態(tài)兩種形式。其主要借助Dream weaver的模板來實現(xiàn)靜態(tài)界面功能,而通過ASP技術(shù)來實現(xiàn)動態(tài)頁面地生產(chǎn)。在設(shè)計的過程中,動態(tài)界面中常見的動作是:生成和傳送下一個視圖給用戶、選擇下一個顯示視圖、分發(fā)這些請求到相應(yīng)的業(yè)務(wù)邏輯、解釋用戶請求。
(2)業(yè)務(wù)邏輯、功能層的實現(xiàn)。課件上傳的業(yè)務(wù)邏輯層的作用是將所上傳的文件的相關(guān)說明在用戶界面顯示出來,并將文件錄入到相應(yīng)的數(shù)據(jù)庫當(dāng)中。為了保證數(shù)據(jù)的安全與可靠性,在構(gòu)件進(jìn)行設(shè)計的時候,特意對上傳文件的格式進(jìn)行了特殊的性質(zhì),即只能上傳RAR壓縮文件,并且為了有效地避免造成文件重名的現(xiàn)象,對于上傳的文件以上傳的時間為新的文件名進(jìn)行重新的命名。
(3)數(shù)據(jù)訪問層的實現(xiàn)。課件上傳構(gòu)件數(shù)據(jù)訪問層主要是用于數(shù)據(jù)及文件的存儲功能,通過將具體的功能(如插入、查詢等操作)封裝到特定的構(gòu)件當(dāng)中,以方便今后數(shù)據(jù)庫的重用與維護(hù)。
2.2 基于構(gòu)件的系統(tǒng)組裝
(1)原子構(gòu)件的組裝。原子構(gòu)件組裝的核心思想是:將上述的三個層次(即:用戶界面層、業(yè)務(wù)邏輯、功能層及數(shù)據(jù)訪問層)組裝成構(gòu)件。其原理為:通過借助原子構(gòu)件的組裝,將用戶界面、業(yè)務(wù)、功能和數(shù)據(jù)訪問層這三個層次進(jìn)行很好地整合,以使其構(gòu)成一個完善的整合體,進(jìn)而達(dá)到原子組裝的目的。
上述的三個層次構(gòu)件的排列順序為,用戶界面層在最上,其次是業(yè)務(wù)/功能層,最后是數(shù)據(jù)訪問層;诖,作為中介的業(yè)務(wù)/功能層構(gòu)件是原子組裝的基礎(chǔ)。其具體的原子組裝流程為:將用戶界面層構(gòu)件module.asp通過使用VBScipt腳本來加以引用。而作為其中一部分的數(shù)據(jù)訪問層則是通過采取面向?qū)ο蟮姆绞,首先將功能?gòu)件ADD.ASP與外部接口連接,然后再類UPLOSD_FILE和類fileinfo內(nèi)部的接口與類ke jian接口進(jìn)行連接,以組裝出一個低耦合、高內(nèi)聚的原子構(gòu)件。
(2)復(fù)合構(gòu)件的組裝。復(fù)合構(gòu)件是通過多個原子構(gòu)件組裝在一起而形成的獨立構(gòu)件。這些組裝所使用的構(gòu)件分裝在特定的文件當(dāng)中,切各構(gòu)件之間沒有行為和數(shù)據(jù)上的耦合,因此可以通過采用黑盒方法對其進(jìn)行組裝。在組裝的過程中,通過將各種不同地連接構(gòu)件之間進(jìn)行連接,并通過接口之間綁定的方式來對內(nèi)、外部的接口進(jìn)行組裝,以得到所需要的復(fù)合構(gòu)件。此外,鑒于擴(kuò)展連接件具有可擴(kuò)展的特性,對于復(fù)合構(gòu)件的外部接口可以采用擴(kuò)展連接件進(jìn)行適當(dāng)?shù)倪B接,這樣所得到的復(fù)合構(gòu)件也將具備可擴(kuò)展的特性,并且內(nèi)部接口也可以進(jìn)行信息的傳遞,所組裝出來的構(gòu)件也具有很好地動態(tài)性質(zhì)。
總之,21世紀(jì)是信息化社會,計算機(jī)、手機(jī)等電子產(chǎn)品遍布在人們的生活中,軟件作為這些電子產(chǎn)品的技術(shù)和功能支持,對于其具有重大的影響。因此,這必將導(dǎo)致軟件的需求及其復(fù)雜程度的迅猛增加;诖,人們必須不斷探索軟件開發(fā)新技術(shù)來滿足軟件發(fā)展的需要。隨著研究的深入,構(gòu)件以其本身諸多的優(yōu)良特性,正在逐漸成為軟件開發(fā)的一個熱點,基于構(gòu)件的軟件開發(fā)方法被視為解決軟件危機(jī),提高軟件生產(chǎn)效率和質(zhì)量的一條現(xiàn)實可行的途徑。