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