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