肖增凱
【摘 要】將可復(fù)用構(gòu)件技術(shù)引入MIS的開(kāi)發(fā),進(jìn)一步提出了具體開(kāi)發(fā)模式和需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測(cè)試、系統(tǒng)維護(hù)等開(kāi)發(fā)過(guò)程。
【關(guān)鍵詞】軟件復(fù)用;構(gòu)件;MIS;開(kāi)發(fā)模式
0.引言
構(gòu)件技術(shù)的出現(xiàn)是對(duì)傳統(tǒng)MIS開(kāi)發(fā)過(guò)程的一次變革,它是基于面向?qū)ο蟮?、以嵌入后馬上可以“即插即用”概念為中心、通過(guò)構(gòu)件的組合來(lái)支持應(yīng)用的技術(shù)體系。軟件復(fù)用模式是產(chǎn)業(yè)工程化、工業(yè)化的必由之路。標(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ù)用受到高度重視的根本原因。
許多研究人員從不同角度對(duì)軟件復(fù)用這個(gè)概念做了說(shuō)明。比較權(quán)威和通用的定義是:軟件復(fù)用是指重復(fù)使用“為了復(fù)用目的而設(shè)計(jì)的軟件”的過(guò)程,而可復(fù)用軟件則是指為了復(fù)用目的而設(shè)計(jì)的軟件。軟件復(fù)用更強(qiáng)調(diào)的是復(fù)用的目的,它是一種系統(tǒng)化的方法,為了復(fù)用而進(jìn)行設(shè)計(jì),為了復(fù)用而開(kāi)發(fā),并且要有效地組織和管理這些復(fù)用產(chǎn)品,方便人們查找和使用,基于復(fù)用品進(jìn)行開(kāi)發(fā)。
1.構(gòu)件技術(shù)
軟件構(gòu)件的概念產(chǎn)生于軟件復(fù)用。構(gòu)件(Component)是指應(yīng)用系統(tǒng)中可以明確辨識(shí)的構(gòu)成成分。而可復(fù)用構(gòu)件(Reusable Component)是指具有相對(duì)獨(dú)立的功能和可復(fù)用價(jià)值的構(gòu)件。構(gòu)件是一種定義良好的獨(dú)立可復(fù)用的二進(jìn)制代碼,它可以是一些功能模塊、被封裝的對(duì)象類、軟件框架、軟件系統(tǒng)模型等。構(gòu)件具有以下特點(diǎn):構(gòu)成粒度大小較自由;通過(guò)規(guī)定一個(gè)統(tǒng)一的二進(jìn)制標(biāo)準(zhǔn),建立構(gòu)件之間的智能互操作機(jī)制和實(shí)現(xiàn)語(yǔ)言獨(dú)立性;外界僅通過(guò)接口訪問(wèn)構(gòu)件:多側(cè)面性;支持封裝、繼承和多態(tài)性;構(gòu)件位置透明性??蓮?fù)用構(gòu)件應(yīng)具備如下屬性;有用性;可用性;高質(zhì)量;適應(yīng)性;可移植性。
構(gòu)件模型定義了構(gòu)件的本質(zhì)屬性,規(guī)定了構(gòu)件接口的結(jié)構(gòu)以及構(gòu)件與軟件構(gòu)架、構(gòu)件與構(gòu)件之間的交互機(jī)制。構(gòu)件模型通常還提供創(chuàng)建和實(shí)現(xiàn)構(gòu)件的指導(dǎo)原則。構(gòu)件模型是為開(kāi)發(fā)者定義軟件構(gòu)件而建立的體系結(jié)構(gòu)和API集,使開(kāi)發(fā)者可通過(guò)軟件構(gòu)件的動(dòng)態(tài)組合來(lái)建立應(yīng)用系統(tǒng)。構(gòu)件模型由構(gòu)件與容器兩種主要成分構(gòu)成。構(gòu)件是具有可復(fù)用特性的基本軟件部件。容器用于存放和安排構(gòu)件,實(shí)現(xiàn)構(gòu)件間的交互。容器也可以作為另一個(gè)容器的構(gòu)件使用。現(xiàn)有的構(gòu)件模型一般認(rèn)為構(gòu)件由構(gòu)件接口和構(gòu)件內(nèi)容兩部分組成。構(gòu)件接口就是為成功復(fù)用該軟件實(shí)體而需要提供給外界的所有信息,包括構(gòu)件向外提供和請(qǐng)求的服務(wù)、構(gòu)件的自述信息和定制信息、構(gòu)件的初始化、實(shí)例化和永久化方法以及構(gòu)件對(duì)目標(biāo)復(fù)用環(huán)境的依賴和構(gòu)件組裝信息等。構(gòu)件內(nèi)容就是用于直接復(fù)用的軟件實(shí)體,它可以具有源代碼、二進(jìn)制碼、文檔、分析設(shè)計(jì)模型和腳本等不同的物理形態(tài),并遵從一定的格式標(biāo)準(zhǔn)。
軟件構(gòu)架技術(shù)研究如何快速、可靠地應(yīng)用可復(fù)用構(gòu)件系統(tǒng)進(jìn)行系統(tǒng)構(gòu)造的方式,著重于軟件系統(tǒng)自身的整體結(jié)構(gòu)和構(gòu)件間的互聯(lián)。其中主要包括:軟件構(gòu)架原理和風(fēng)格、軟件構(gòu)架的描述和規(guī)約、特定領(lǐng)域軟件構(gòu)架、構(gòu)件向軟件構(gòu)架的集成機(jī)制等。特澍重要的是,在基于可復(fù)用構(gòu)件的軟件開(kāi)發(fā)中,為復(fù)用而開(kāi)發(fā)的軟件構(gòu)架可以作為一種大粒度的、抽象級(jí)別較高的軟件構(gòu)件進(jìn)行復(fù)用。
2.可復(fù)用構(gòu)件MIS開(kāi)發(fā)過(guò)程
基于可復(fù)用構(gòu)件MIS的開(kāi)發(fā)過(guò)程有如下5個(gè)步驟:
2.1需求分析
基于可復(fù)用構(gòu)件的MIS需求分析可以采用改進(jìn)后的信息模型法,在數(shù)據(jù)分析、建立穩(wěn)定的數(shù)據(jù)集合和邏輯數(shù)據(jù)模型的基礎(chǔ)上,從信息模型、狀態(tài)模型和功能模型中組織構(gòu)件,建立系統(tǒng)模型。更多的是采用00A,由此提煉的類構(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)模型盡可能與已收集的可復(fù)用構(gòu)件等成分相聯(lián)系。
2.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)榭赡埽枰獙Ⅲw系結(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ì)方案。
2.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)?,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)雛形。
2.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ā)布為止。
2.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應(yīng)用都適用。
【參考文獻(xiàn)】
[1]夏潔武.基于構(gòu)件/構(gòu)架的軟件開(kāi)發(fā)方法[J].計(jì)算機(jī)應(yīng)用與軟件,2006(10).