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