- 相關(guān)推薦
淺談財務(wù)管理系統用戶(hù)可定制性技術(shù)論文
1引言
目前,不管在行政事業(yè)單位,還是在生產(chǎn)企業(yè)單位,財務(wù)管理系統是一個(gè)較典型的應用系統。在軟件工程界,很多軟件組織在現有的開(kāi)發(fā)環(huán)境下使用了各種可能的方法與途徑進(jìn)行過(guò)此方面應用系統的設計與實(shí)現,但是還存在一些共同的問(wèn)題,主要表現在:
(1)按通用系統來(lái)進(jìn)行設計,把業(yè)務(wù)的主要邏輯或計算公式存放在數據庫中,除系統表以外設計模式,大部分表采用自定義方式,保證所開(kāi)發(fā)的財務(wù)管理系統能用于所有學(xué);蛐姓髽I(yè)單位。
(2)從界面和業(yè)務(wù)分離到分布式多層體系結構,包括界面和業(yè)務(wù)的邏輯分離、界面與業(yè)務(wù)的物理分離、界面和業(yè)務(wù)的空間分離。
(3)系統與其他系統的數據導入與導出的設計。
(4)各種自定義報表的設計。
(5)在創(chuàng )建型模式、結構型模式以及行為型模式系列中選擇合式的模式運用到本系統中。
(6)功能對象、協(xié)調對象以及數據對象的如何設計,才能使系統性能達到最佳。
(7)系統的安全性考慮,如基于角色的訪(fǎng)問(wèn)控制管理問(wèn)題等。
為使得財務(wù)管理系統具有用戶(hù)可定制性,以軟件復用技術(shù)為設計理念,利用面向對象程序設計思想,充分使用組件開(kāi)發(fā)、模式設計的思想、分布式多層體系結構等現代軟件工程關(guān)鍵詞匯,便于人們在軟件開(kāi)發(fā)中的交流與溝通,有助于實(shí)現應用程序的功能,有助于建立一個(gè)復雜的架構。每個(gè)模式提供組件、作用以及相互關(guān)系的預定義集。
系統采用演進(jìn)軟件開(kāi)發(fā)過(guò)程模型,使用面向對象軟件開(kāi)發(fā)方法,貫徹設計模式思想,采用分布式多層體系結構與DCOM/COM+組件等技術(shù)[4,5,6,7]來(lái)實(shí)現財務(wù)管理系統的業(yè)務(wù)邏輯,主要有對工資類(lèi)、津貼類(lèi)、福利類(lèi)、加班類(lèi)、獎勵類(lèi)以及其他類(lèi)各項收入進(jìn)行日常管理(包括日常數據修改、查詢(xún)及報表打印),能夠按指定要求將六類(lèi)收入匯總統計,方便對各項數據進(jìn)行財務(wù)分析;根據人事信息資料,對各類(lèi)人員的信息增加修改、查詢(xún);根據財務(wù)核算要求任意添加、修改各大類(lèi)明細項目;以工資號為主鍵,通過(guò)手工修改、成批修改、公式修改待等方式方便、靈活地修改人各收入類(lèi)數據設計模式,降低數據集操作的工作量,提高工作效率;根據各項指定條件(單個(gè)條件或組合條件),方便、快捷地篩選數據;自定義報表輸出,根據業(yè)務(wù)需要,將系統中的查詢(xún)數據、匯總信息及變動(dòng)信息實(shí)時(shí)打印或轉換成Excel表的形式輸出;在校園網(wǎng)環(huán)境中,允許多用戶(hù)同時(shí)登錄系統;界面人性化設計,充分考慮財務(wù)核算人員的操作思路,直觀(guān)反映財務(wù)管理要求,方便人機信息交換。
2財務(wù)管理系統架構用戶(hù)可定制性技術(shù)
財務(wù)管理系統架構用戶(hù)可定制性體現在:真正的軟件復用和高度的互操作性[8],開(kāi)發(fā)者可利用它組合成不同的應用系統;接口的可靠性,組件接口是不變的,接口是穩定的;可擴充服務(wù),每個(gè)組件是自主的,有其獨自的功能,只能通過(guò)接口與外界通信;具有強有力的基礎設施,為了組件有機地組織在一起;具有構建和組合組件的工具,可以方便地增加和替換應用中的組件,充分發(fā)揮可復用的優(yōu)勢,實(shí)現客戶(hù)應用程序的組裝和升級。在開(kāi)發(fā)鹽城師范學(xué)院財務(wù)管理系統時(shí)設計模式,采用了COM/DCOM組件技術(shù)。通過(guò)該系統可以對學(xué)院的教職的收入的六大組成部分(工資、福利、津貼、加班、獎勵和其它)的信息進(jìn)行輸入、導入、導出、查詢(xún)、統計、修改、打印和生成銀行報盤(pán)。
系統采用三層結構,客戶(hù)端表示層由FORM窗體組成,可實(shí)現COM組件的調用,業(yè)務(wù)邏輯和數據訪(fǎng)問(wèn)由一組用Delphi實(shí)現的COM組件構成。為了便于維護、升級和實(shí)現分布式應用,在實(shí)現過(guò)程中,又將業(yè)務(wù)邏輯層和數據訪(fǎng)問(wèn)層分離開(kāi),客戶(hù)端不直接調用數據訪(fǎng)問(wèn)層,而是通過(guò)業(yè)務(wù)邏輯層來(lái)調用數據庫,如圖1所示。
圖1 三層結構示意圖
中間層組件對所用到的數據庫中的表示進(jìn)行了封裝,形成了組件。通過(guò)接口為表現層提供服務(wù)。建立Remote Data Module業(yè)務(wù)邏輯,確定應用程序服務(wù)器的名稱(chēng)、實(shí)例屬性以及服務(wù)器所使用的線(xiàn)程模型等信息。然后向空白窗體中加入非可視化的VCL組件。
本系統中主要ADOConection, ADOCommand,ataSetProvider, ADODataSet等組件,如圖2所示。 圖2 系統數據存取組件 表現層的主要組件包括登錄組件,數據查詢(xún)組件,數據修改組件,個(gè)人信息項目管理組件,基本表管理組件,銀行報盤(pán)組件,公式設置組件,信息初始化組件設計模式,生成匯總數據組件和報表打印組件等。
3財務(wù)管理系統模塊用戶(hù)可定制性技術(shù)
3.1 數據庫模塊用戶(hù)可定制性技術(shù)
為使本系統具有通用性,后臺可使用不同的數據庫,如Access數據庫、SQL數據庫等。而應用程序中提供用戶(hù)訪(fǎng)問(wèn)數據庫的某一專(zhuān)用的數據集對象往往難以勝任這種多變的需求。由于數據庫的連接和訪(fǎng)問(wèn)機制比較復雜。如果將數據庫連接方式寫(xiě)死在程序中,將不利于今后的維護和復用。如果客戶(hù)端能夠創(chuàng )建一個(gè)通用的數據集對象創(chuàng )建方法來(lái)創(chuàng )建數據集對象,就可以解決這個(gè)問(wèn)題。這樣,對象的創(chuàng )建方法要與要創(chuàng )建的對象就可以分離開(kāi)來(lái),達到去耦的效果。
如圖3所示,是一個(gè)用于數據庫訪(fǎng)問(wèn)的工廠(chǎng)方法設計模式圖,圖中的TDataFactory和TDataSet分別是工廠(chǎng)方法模式中的工廠(chǎng)類(lèi)和產(chǎn)品類(lèi)。它們都是抽象類(lèi),負責維護工廠(chǎng)和新產(chǎn)品之間的關(guān)系,TDataFactroy負責創(chuàng )建TDataSet對象。
圖3 工廠(chǎng)模式
顯然,系統事先無(wú)法知道會(huì )使用何種類(lèi)型的數據庫以及使用何種數據庫連接機制。只知道何時(shí)有一個(gè)新的數據集對象要被創(chuàng )建,但不知道所要創(chuàng )建的是哪一種數據集對象。這就是說(shuō)系統將實(shí)際創(chuàng )建工作委派到TDFactory類(lèi)的派生中了。而這個(gè)抽象類(lèi)TDFactory提供創(chuàng )建數據集對象的抽象方法CreateDataSet,它相當于一個(gè)虛構造子,而具體工廠(chǎng)類(lèi)創(chuàng )建具體產(chǎn)品的過(guò)程是通過(guò)多態(tài)來(lái)實(shí)現的。
3.2系統界面模塊用戶(hù)可定制性技術(shù)
不同用戶(hù)對系統界面的要求不同,有的用戶(hù)喜歡使用傳統的按鈕界面,有的用戶(hù)喜歡使用菜單界面。鹽城師范學(xué)院財務(wù)部門(mén)的操作人員就有這兩種不同的需求。本系統通過(guò)使用抽象工廠(chǎng)模式實(shí)現兩種操作界面,即按鈕界面和菜單界面。
如圖4所示,是一個(gè)抽象工廠(chǎng)的設計模式。在這個(gè)例子中設計模式,包含了命令按鈕和菜單兩種風(fēng)格的窗體,即兩個(gè)產(chǎn)品系列。這樣便于改變產(chǎn)品族,維護產(chǎn)品的一致性。為了維護產(chǎn)品的一致性,定義了一個(gè)抽象類(lèi)TFormMaker,TForMaker類(lèi)聲明一個(gè)接口來(lái)建立各種組件的原型。同時(shí)又由這些組件的抽象類(lèi)及具體類(lèi)負責產(chǎn)生組件的實(shí)例。TFormMaker的接口提供統一的操作為所有組件產(chǎn)生新的對象實(shí)例?蛻(hù)端調用這些接口的操作來(lái)得到一個(gè)組件實(shí)例,但卻和具體實(shí)現相隔離,因為客戶(hù)端沒(méi)有必須了解所用到的那些產(chǎn)生實(shí)例的具體類(lèi)。
圖4 抽象工廠(chǎng)模式
這里TFormMaker有許多派生類(lèi)分別創(chuàng )建需要的組件,每一個(gè)派生類(lèi)都是一個(gè)實(shí)例具體產(chǎn)品生產(chǎn)的具體工廠(chǎng),由它們來(lái)實(shí)現創(chuàng )建不同風(fēng)格的組件的操作。如在TFormMaker的派生類(lèi)中有一個(gè)CreateButton,客戶(hù)只需與TFormMaker這個(gè)抽象的接口CreateButton溝通而不必理會(huì )到底是由哪一個(gè)具體類(lèi)創(chuàng )建了按鈕。TFormMaker同時(shí)強調具體類(lèi)之間的依賴(lài)性,這就是說(shuō)不同的TFormMaker所產(chǎn)生的實(shí)例實(shí)際上是不同具體工廠(chǎng)的不同實(shí)例。
3.3數據顯示模塊用戶(hù)可定制性技術(shù)
在本系統的開(kāi)發(fā)中,用到大量的數據感知組件,通過(guò)這些組件來(lái)顯示數據表中的記錄。為了適應不同數據庫的連接要求,使增加新的數據庫和數據庫存取標準而無(wú)須修改客戶(hù)端的數據顯示程序。因此在本系統中作為建造者的新產(chǎn)品也就有TTable、TADOTable等多種形態(tài)。如果將創(chuàng )建數據集對象的方法從其表現中分離開(kāi)來(lái),由可抽象為以下的算法步驟:創(chuàng )建數據庫的連接,創(chuàng )建數據集對象,激活并返回數據集對象。
在系統開(kāi)發(fā)的過(guò)程中,由于要涉及到多個(gè)表,而對各個(gè)表的操作界面是完全相同的。用建造者模式能夠簡(jiǎn)化程序的編寫(xiě)設計模式,使程序界面簡(jiǎn)潔。而且有利于系統的擴充。工資數據表和津貼數據表關(guān)系如圖5所示。
圖5 建造者模式
3.4文件轉換模塊用戶(hù)可定制性技術(shù)
在系統開(kāi)發(fā)過(guò)程中,我們開(kāi)發(fā)一個(gè)通用的組件,用于實(shí)現將數據庫中符合條件的表的內容轉換成Excel文件或文本文件。這樣設計的好處是既可以在自己的本系統中使用這一組件,也可在其它系統中使用該組件。在實(shí)際開(kāi)發(fā)中需要用到這種轉換的場(chǎng)合很多。另外如果以后要轉換成其它格式的文件,只要在適配器類(lèi)中進(jìn)行修改就可以了,客戶(hù)端的程序完全不用修改。
但在使用這一模式時(shí),也容易犯這樣的錯誤,在設計Adapter時(shí)不愿犧牲Adaptee對象的多余功能 ,轉換了過(guò)多的Adaptee接口并使接口變得復雜。在實(shí)際應用中往往是功能單一且通用、對其它條件依賴(lài)性較少的少數接口。所以在設計Adapter模式時(shí)要考慮為Adaptee找到一個(gè)窄接口,即可用于匹配的最小操作集。系統中用于轉換成類(lèi)圖如圖6所示。 圖6 適配器模式 3.5數據的顯示、查詢(xún)和修改模塊用戶(hù)可定制性技術(shù)
在系統開(kāi)發(fā)中,有很多的地方用到數據的顯示、查詢(xún)和修改。用到了“顯示數據”——“數據對象”——“后臺數據”就對應了“表現層”(界面)——“邏輯層”(業(yè)務(wù))——“持久層”(數據庫或其它文件)。這是程序員在編程應用程序時(shí)應該遵循的Class-Type體系結構。通過(guò)這種結構,應用程序會(huì )因為減少了內部的耦合性而顯著(zhù)提高程序的健壯性。如果用戶(hù)接口層要獲得信息,則必須與業(yè)務(wù)層的對象交互,然后再通過(guò)業(yè)務(wù)層對象從持久層獲得存儲在持久層中的對象。這樣就能禁止用戶(hù)層對象直接訪(fǎng)問(wèn)持久層對象中的數據。也就是說(shuō)你可以改變對象的存儲方式,而不需改變你的應用程序界面和報表,如圖7所示。
圖7 橋接模式
3.6數據的顯示、查詢(xún)和修改模塊用戶(hù)可定制性技術(shù)
在系統開(kāi)發(fā)的過(guò)程中,要涉及對多個(gè)表的操作,如對表進(jìn)行初始化。盡管對不同的表進(jìn)行操作,但對表的操作方法是一樣的。如果讓用戶(hù)直接對表進(jìn)行操作設計模式,則會(huì )對表產(chǎn)生很大的依賴(lài)性,如何增加一個(gè)門(mén)面層,則會(huì )減少這種依賴(lài)關(guān)系,可以提供子系統的獨立性和可移植性。系統中對多個(gè)表進(jìn)行定義的簡(jiǎn)化圖如圖所示。用戶(hù)通過(guò)operate實(shí)現對不同表的操作。門(mén)面模式圖如圖8所示。
圖8 門(mén)面模式
4結束語(yǔ)
本文對“組件化軟件設計方法與設計模式等技術(shù)”進(jìn)行了實(shí)踐,,從用戶(hù)可定制的角度設計應用系統,保證所設計系統具有良好的適應性、可維護性:反映教職工基本數據可以由系統管理員隨意定義,并方便管理員增加或刪除;所有報表結構可以動(dòng)態(tài)定義,可以根據單位需求的變化進(jìn)行變動(dòng);設計了結構良好的數據導入與導出功能,方便應用系統間的數據交互;采用了基于角色的訪(fǎng)問(wèn)控制方式,由系統管理員定義多級角色,再根據用戶(hù)業(yè)務(wù)需要,為每個(gè)用戶(hù)分配不同的角色。這樣保證系統具有良好的可管理性與安全性。
參考文獻
[1]JeffreyK.H.Mak, Precise Modeling of Design Patterns in UML. Proseeding of the 26thInternational Conference on Software Engineering(ICSE2004):101-120
[2]NeelamSoundarajan and Jason D.Hallstrom, Responsibilites and Rrewards: SpecifyingDesign Patterns. Proseeding of the 26th International Conference on SoftwareEngineering(ICSE2004).
[3]王俊峰,戚曉濱.設計模式和UML. 計算機應用研究. 1998,5:27-29.
[4]CarmaMcClure.軟件復用標準指南.北京:電子工業(yè)出版社.2004
[5]於長(cháng)華.基于三層C/S模型的大型關(guān)系數據庫應用系統優(yōu)化設計技術(shù). 計算機工程與應用. 1999,11:90-92.
[6]蔣建平,梁新元,舒紅平.基于組件和中間件的裝配式軟件系統模型.計算機工程與應用2004,34:137
[7]Pressman RS.Software Engineering:A Practitioner’s Approach[M].5thed,McGraw-Hill Companies Inc,2000
[8]梅宏,陳鋒,馮耀東,楊杰.基于軟件體系結構、面向組件的軟件開(kāi)發(fā)方法.軟件學(xué)報,2003,14(4):721-73
【淺談財務(wù)管理系統用戶(hù)可定制性技術(shù)論文】相關(guān)文章:
淺談水彩畫(huà)的偶然性論文07-27
《淺談小學(xué)教育的重要性》論文(通用7篇)06-28
淺談物資采購計劃準確性的分析與思考論文07-12
淺談高?缥幕浑H能力培養的重要性的論文04-15
淺談潛水醫師數字化教學(xué)培訓系統的設計及應用論文07-27
淺談文化自信論文04-25