楊軍
摘 要:企業(yè)信息化的發(fā)展,對(duì)軟件開發(fā)提出了新的要求。本文針對(duì)提高軟件模塊的復(fù)用性和擴(kuò)展性,提出提出了一種基于 UML 全程建模和基于構(gòu)件的多層體系結(jié)構(gòu)解決方案,并利用這一理論基礎(chǔ)設(shè)計(jì)開發(fā)了油田電力MIS系統(tǒng)中用電管理子系統(tǒng)。
關(guān)鍵詞:構(gòu)件 UML J2EE 用電管理子系統(tǒng)
隨著信息時(shí)代的來(lái)臨,信息技術(shù)的迅速發(fā)展加快了企業(yè)信息化的進(jìn)程?,F(xiàn)在軟件系統(tǒng)的開發(fā)也由技術(shù)驅(qū)動(dòng)向業(yè)務(wù)驅(qū)動(dòng)轉(zhuǎn)變。當(dāng)前企業(yè)組織結(jié)構(gòu)、產(chǎn)品研發(fā)和業(yè)務(wù)流程需要適應(yīng)市場(chǎng)競(jìng)爭(zhēng)的激烈變化,伴隨著企業(yè)應(yīng)用集成范圍的不斷擴(kuò)大、集成度的不斷提高。企業(yè)為了適應(yīng)市場(chǎng)不斷進(jìn)行動(dòng)態(tài)重組,旨在實(shí)現(xiàn)企業(yè)活動(dòng)中三要素(人、經(jīng)營(yíng)、技術(shù))和三流(物流、信息流、價(jià)值流)的集成與優(yōu)化,從而改善企業(yè)的 T(時(shí)間)、Q(質(zhì)量)、C(成本)、S(服務(wù)),提高競(jìng)爭(zhēng)能力。企業(yè)資源規(guī)劃等企業(yè)信息化應(yīng)用軟件系統(tǒng)外延與內(nèi)涵的擴(kuò)展,對(duì)軟件復(fù)用和體系結(jié)構(gòu)都提出了較高的要求。軟件建模、復(fù)用技術(shù)和體系結(jié)構(gòu)的研究是軟件開發(fā)和軟件工程中一個(gè)重點(diǎn)的研究領(lǐng)域。怎樣提高軟件模塊的可復(fù)用和重構(gòu)能力、怎樣實(shí)現(xiàn)較好的可擴(kuò)展性和集成能力?怎樣實(shí)現(xiàn)企業(yè)業(yè)務(wù)模型、設(shè)計(jì)模型到實(shí)現(xiàn)的平滑過(guò)渡?怎樣解決傳統(tǒng)應(yīng)用軟件系統(tǒng)靈活性差的弊端?本文探討了企業(yè)級(jí)應(yīng)用軟件系統(tǒng)的建模和復(fù)用問(wèn)題,闡述了一種基于 UML 全程建模和基于構(gòu)件的多層體系結(jié)構(gòu)解決方案,并提出了“以 UML 為基礎(chǔ),以體系結(jié)構(gòu)為中心,構(gòu)件封裝業(yè)務(wù)邏輯”的軟件開發(fā)策略,實(shí)現(xiàn)了基于J2EE 平臺(tái)——**油田電力MIS系統(tǒng)中用電管理子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。
一、構(gòu)件
現(xiàn)在對(duì)于構(gòu)件還沒(méi)有一個(gè)公認(rèn)的定義,下面選取了兩個(gè)具有代表性的:(1)構(gòu)件是指應(yīng)用系統(tǒng)中可以明確辯識(shí)的 、具有一定功能的構(gòu)成模塊。(2)構(gòu)件是有一定功能,能獨(dú)立工作和能同其他構(gòu)件裝配起來(lái)協(xié)同工作的程序體,構(gòu)件的使用和它的開發(fā)、生產(chǎn)無(wú)關(guān)?;跇?gòu)件的軟件開發(fā)方法是一種社會(huì)化的軟件開發(fā)方法,它使得開發(fā)者可將由不同語(yǔ)言、不同供應(yīng)商開發(fā)的構(gòu)件組合在一起來(lái)構(gòu)造軟件。一般地,基于構(gòu)件的軟件開發(fā)方法具有以下幾個(gè)優(yōu)點(diǎn):提高開發(fā)速度;降低開發(fā)成本;增加應(yīng)用軟件的靈活性、降低軟件維護(hù)費(fèi)用、促進(jìn)軟件產(chǎn)業(yè)的合理分工。由此可見,構(gòu)件技術(shù)可以使原來(lái)周期較長(zhǎng)的、復(fù)雜的軟件開發(fā)工作變得簡(jiǎn)單、快速且成本較低。這樣的應(yīng)用軟件系統(tǒng)不再是一個(gè)固化的整體性系統(tǒng),而是通過(guò)構(gòu)件間互相提出請(qǐng)求及提供服務(wù)的協(xié)同工作機(jī)制來(lái)達(dá)到系統(tǒng)的目標(biāo)。當(dāng)前業(yè)界幾種主流構(gòu)件技術(shù),包括 Microsoft 的分布式構(gòu)件對(duì)象模型(COM/ COM+、DCOM)、OMG 的公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA)、Sun 公司的 Enterprise JavaBeans(EJB)等。
二、基于構(gòu)件的體系結(jié)構(gòu)
通過(guò)軟件復(fù)用,在應(yīng)用系統(tǒng)開發(fā)中可以充分地利用已有的開發(fā)成果,消除包括分析、設(shè)計(jì)、編碼、測(cè)試在內(nèi)的許多重復(fù)勞動(dòng),提高軟件生產(chǎn)的效率和質(zhì)量,降低開發(fā)成本。但是傳統(tǒng)意義下的代碼重用已經(jīng)不能滿足現(xiàn)有的企業(yè)級(jí)要求。如何較好地實(shí)現(xiàn)軟件復(fù)用?如何滿足復(fù)雜系統(tǒng)的獨(dú)特特征?這兩個(gè)因素是軟件體系結(jié)構(gòu)產(chǎn)生和發(fā)展的內(nèi)在驅(qū)動(dòng)力。構(gòu)件和體系結(jié)構(gòu)是緊密相關(guān)的。從理論層面看,雖然軟件工程領(lǐng)域?qū)τ谲浖?fù)用與構(gòu)件技術(shù)以及軟件體系結(jié)構(gòu)沒(méi)有達(dá)成統(tǒng)一的認(rèn)識(shí)和理解,北大楊芙清院士對(duì)以構(gòu)件技術(shù)為支持的軟件復(fù)用作了很多的理論研究。如基于軟件體系結(jié)構(gòu)的可復(fù)用構(gòu)件制作和組裝,軟件復(fù)用與構(gòu)件技術(shù)等,著重對(duì)構(gòu)件的制作和組裝等方面展開研究。國(guó)外對(duì)于軟件復(fù)用與構(gòu)件技術(shù)和軟件體系結(jié)構(gòu)的研究已經(jīng)早就開始了。針對(duì)軟件體系結(jié)構(gòu)的研究始于Dewayne Perry和Alexander Wolf,David Garlan和Mary Shaw 所作的工作,目前軟件體系結(jié)構(gòu)領(lǐng)域的研究主要集中于體系結(jié)構(gòu)描述語(yǔ)言,體系結(jié)構(gòu)風(fēng)格及其分類特定領(lǐng)域的體系結(jié)構(gòu),體系結(jié)構(gòu)的形式化基礎(chǔ)等。由于軟件體系結(jié)構(gòu)描述語(yǔ)言本身并不是一個(gè)可編譯執(zhí)行的語(yǔ)言,目前主要的實(shí)現(xiàn)策略是基于框架模型來(lái)建立描述語(yǔ)言到實(shí)現(xiàn)語(yǔ)言的轉(zhuǎn)化過(guò)程。國(guó)內(nèi)中科院軟件所、北大計(jì)算機(jī)科學(xué)技術(shù)系、北航計(jì)科系等對(duì)軟件體系結(jié)構(gòu)作了較多的理論研究。武大的軟件工程國(guó)家重點(diǎn)實(shí)驗(yàn)室提出了基于軟件體系結(jié)構(gòu)的需求分析與設(shè)計(jì)等。軟件體系結(jié)構(gòu)是當(dāng)今軟件工程的重要研究領(lǐng)域之一。系統(tǒng)的復(fù)雜性和軟件復(fù)用技術(shù)是軟件體系結(jié)構(gòu)發(fā)展的內(nèi)在驅(qū)動(dòng)力。Dewnyne Peny 在 2000 年 8 月北京舉行的 WCC2000 軟件理論與應(yīng)用技術(shù)專題研討會(huì)上的專題報(bào)告中指出:“軟件體系結(jié)構(gòu)的核心問(wèn)題和它對(duì)軟件工程的根本影響的源泉在于,它有助于把軟件系統(tǒng)的基本結(jié)構(gòu)特征與算法和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)劃分開。把軟件體系結(jié)構(gòu)看作是制作和發(fā)展軟件系統(tǒng)的第一重要因素,軟件體系結(jié)構(gòu)有利于更好地設(shè)計(jì)軟件系統(tǒng)”。
三、 UML
UML,Unified Modeling Language 統(tǒng)一建模語(yǔ)言。UML 于 1997 年被 OMT 組織批淮作為標(biāo)淮。UML 可以對(duì)任何大型的系統(tǒng)包括軟件、機(jī)械系統(tǒng)、企業(yè)過(guò)程、復(fù)雜的信息系統(tǒng)、實(shí)時(shí)系統(tǒng)、分布系統(tǒng)、商業(yè)系統(tǒng)等進(jìn)行建模。UML 方法的類和模型圖是一個(gè)整體,可以采用任何一種模型圖或者其組合實(shí)現(xiàn)可視化和面向?qū)ο蠹夹g(shù)的建模。UML包括用例圖、類圖、對(duì)象圖、狀態(tài)圖、順序圖、協(xié)作圖、活動(dòng)圖、構(gòu)件圖、配置圖等。用例圖描述了一組用例和參與者以及他們之間的關(guān)系,描述系統(tǒng)提供的功能,顯示了系統(tǒng)的外部角色以及他們與系統(tǒng)所提供的用例之間的關(guān)系(由“誰(shuí)”提供了哪些功能或哪些服務(wù))。類圖顯示了一組類、接口、協(xié)作以及他們之間的關(guān)系,描述了系統(tǒng)中類的靜態(tài)結(jié)構(gòu),定義了系統(tǒng)類的內(nèi)部結(jié)構(gòu)屬性和操作。對(duì)象圖顯示了一組對(duì)象以及他們之間的關(guān)系。狀態(tài)圖顯示了一個(gè)由狀態(tài)、轉(zhuǎn)換、事件和活動(dòng)組成的狀態(tài)機(jī),描述類的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件。順序圖描述對(duì)象之間的動(dòng)態(tài)協(xié)作和消息傳遞,強(qiáng)調(diào)消息的時(shí)間次序的交互圖。協(xié)作圖描述對(duì)象之間的協(xié)作關(guān)系,強(qiáng)調(diào)收發(fā)消息的對(duì)象的結(jié)構(gòu)組織的交互圖?;顒?dòng)圖顯示了系統(tǒng)從活動(dòng)到活動(dòng)的流以及活動(dòng)之間的約束關(guān)系。構(gòu)件圖顯示了程序代碼的物理結(jié)構(gòu)。配置圖顯示了軟件在硬件環(huán)境中的配置關(guān)系。
四、電力MIS用電管理子系統(tǒng)分析與設(shè)計(jì)
863CIMS 主題專家組提出了 CIMS 的概念:CIMS 將信息技術(shù)、現(xiàn)代管理技術(shù)、制造技術(shù)相結(jié)合,并應(yīng)用于企業(yè)產(chǎn)品全生命周期(從市場(chǎng)需求分析到最終報(bào)廢處理)的各個(gè)階段。通過(guò)信息集成過(guò)程優(yōu)化、運(yùn)行,達(dá)到人(組織、管理)、經(jīng)營(yíng)、技術(shù)三要素的集成,以加強(qiáng)企業(yè)新產(chǎn)品開發(fā)的 T、Q、C、S、E,從而提高企業(yè)的市場(chǎng)應(yīng)變能力和競(jìng)爭(zhēng)能力。電力MIS系統(tǒng)中的用電管理子系統(tǒng)不只是一個(gè)軟件系統(tǒng),而是一個(gè)集各種企業(yè)模型、用電相關(guān)設(shè)備管理以及相關(guān)業(yè)務(wù)流程、管理規(guī)范和信息技術(shù)、實(shí)施方法為一體的綜合管理應(yīng)用體系。該子系統(tǒng)幫助企業(yè)對(duì)用電信息進(jìn)行卓有成效的管理,充分發(fā)揮資產(chǎn)的效能,保證企業(yè)生產(chǎn)經(jīng)營(yíng)活動(dòng)的順利進(jìn)行。對(duì)企業(yè)的用電全業(yè)務(wù)流程進(jìn)行管理,對(duì)用電設(shè)備的檔案、用電設(shè)備設(shè)備運(yùn)行狀態(tài)等進(jìn)行維護(hù)、查詢,為各級(jí)管理部門提供所需的統(tǒng)計(jì)、查詢數(shù)據(jù)。 本子系統(tǒng)將設(shè)備管理部門、設(shè)備使用部門、財(cái)務(wù)等相關(guān)部門聯(lián)系起來(lái),以用電子系統(tǒng)的流程為核心,實(shí)現(xiàn)數(shù)據(jù)共享和流程之間的共享,形成一個(gè)較完整的管理體系。電力MIS中的用電管理子系統(tǒng)從管理上突出特點(diǎn)便是事前控制和事中控制,強(qiáng)調(diào)生產(chǎn)流程各個(gè)環(huán)節(jié)之間的銜接、協(xié)調(diào)和統(tǒng)一。從軟件系統(tǒng)的結(jié)構(gòu)而言,與其他子系統(tǒng)之間有廣泛的數(shù)據(jù)、業(yè)務(wù)邏輯的接口,具體反應(yīng)在三個(gè)方面:用電管理子系統(tǒng)是從企業(yè)的業(yè)務(wù)流程出發(fā);用電子系統(tǒng)提現(xiàn)了現(xiàn)代化的管理思想、用電子系統(tǒng)與其他子系統(tǒng)數(shù)據(jù)共享。用 Servlets/JSP、EJB 構(gòu)件解決軟件模塊的復(fù)用和重構(gòu)問(wèn)題、用基于J2EE體系結(jié)構(gòu)實(shí)現(xiàn)用電子系統(tǒng)較好的可擴(kuò)展性和集成能力。從業(yè)務(wù)流程的角度看,用 UML 實(shí)現(xiàn)業(yè)務(wù)模型到軟件建模的映射;從 UML 建模的角度看,用 UML 實(shí)現(xiàn)全程的、集成的企業(yè)建模。UML為分析、設(shè)計(jì)和部分實(shí)現(xiàn)提供了“共同語(yǔ)言”,而且構(gòu)件和多層體系結(jié)構(gòu)的分析也需要用UML來(lái)體現(xiàn),并能生成代碼框架。這樣不但解決了系統(tǒng)分析、設(shè)計(jì)和實(shí)現(xiàn)之間不能平滑過(guò)渡的缺點(diǎn),而且基于構(gòu)件的多層層體系結(jié)構(gòu)實(shí)現(xiàn)了對(duì)業(yè)務(wù)的復(fù)用和重構(gòu)。
五、結(jié)語(yǔ)
本文提出了基于業(yè)務(wù)規(guī)則、業(yè)務(wù)邏輯的構(gòu)件封裝以及構(gòu)件顆粒度的劃分;闡述了多層體系結(jié)構(gòu)能較好地解決軟件系統(tǒng)的可擴(kuò)展性和集成的問(wèn)題 ,實(shí)現(xiàn)了企業(yè)模型到軟件模型由傳統(tǒng)的“轉(zhuǎn)化”向“優(yōu)化”的轉(zhuǎn)變,在理論上重點(diǎn)研究了基于UML的集成企業(yè)建模和構(gòu)件封裝業(yè)務(wù)規(guī)則和業(yè)務(wù)邏輯,并應(yīng)用于實(shí)際電力MIS系統(tǒng)用電管理子系統(tǒng)開發(fā)。