摘? 要: 介紹了一種基于面向?qū)ο?/a>方法和原型法的系統(tǒng)設計思想在連鎖超市管理信息系統(tǒng)設計中的應用。
關(guān)鍵詞: 連鎖超市? MIS系統(tǒng)? 面向?qū)ο? 原型法? 系統(tǒng)分析
?
在進入21世紀的今天,信息資源已成為現(xiàn)代生產(chǎn)和經(jīng)營管理中一項至關(guān)重要的經(jīng)濟資源。連鎖超市企業(yè)采用計算機、收款機、條形碼、網(wǎng)絡等先進技術(shù)和設備,通過商業(yè)管理信息系統(tǒng)的開發(fā)與應用,克服了連鎖超市管理中的盲目性和決策中的隨意性,有利于對超市進行科學和規(guī)范的現(xiàn)代化管理,提高工作效率。更重要的是連鎖超市通過信息管理軟件能將收集到的信息及時迅速地為生產(chǎn)廠家所共享,使產(chǎn)、供、銷之間信息反饋的時間差、地區(qū)差幾乎縮小到零。如:生產(chǎn)和流通中的庫存規(guī)模在不斷縮小,甚至不再需要庫存;相關(guān)的運輸工具由大變小、運輸頻率加快,資金占用由多變少,消除了信息在傳統(tǒng)生產(chǎn)、流通等諸多環(huán)節(jié)中的浪費。信息可以代替庫存、資本、勞動力。因此建立一套完善合理的連鎖超市綜合信息管理系統(tǒng),不但有助于增強連鎖超市的市場競爭力,而且對超市的管理產(chǎn)生深遠的影響。
1?系統(tǒng)分析
大型連鎖超市MIS系統(tǒng)不同于一般的單超市MIS系統(tǒng),它的用戶需求是復雜而且多變的,系統(tǒng)分析人員很難在設計初期將所有的用戶需求考慮周到。同時用戶需求的變化將造成系統(tǒng)設計的反復變更修改,可能導致軟件產(chǎn)品達不到預期的目標。這些都是傳統(tǒng)的系統(tǒng)分析方法難以解決的問題。而面向?qū)ο蠓治龇椒ńY(jié)合原型法可以很好地解決這些問題。因為不論用戶需求如何變化,系統(tǒng)的核心業(yè)務是基本不變的,核心業(yè)務中的對象也是基本不變的。所以系統(tǒng)分析員可以先對核心業(yè)務進行分析,從中提取基本的業(yè)務對象,實現(xiàn)相應的對象組件,在此基礎上構(gòu)建原型系統(tǒng)。隨后,用戶參與開發(fā)過程,同開發(fā)人員一起逐步對系統(tǒng)進行功能擴展和修改。由于使用了面向?qū)ο蟮姆治龇椒ê突趯ο蠼M件的開發(fā)方法,原型系統(tǒng)功能的擴展可通過添加新類、派生原有類或者修改原有類方法和屬性等方式達到目的。在這個過程中只要保證類與類間的接口不變,就可以避免需求變化導致的整體反復修改。這樣開發(fā)出的系統(tǒng)的可重用性、可修改性、可擴充性較好,開發(fā)周期也較短。
1.1 核心業(yè)務需求描述
連鎖配送模式是當前許多大型連鎖超市所采用的經(jīng)營管理模式,它的機構(gòu)設置和業(yè)務流如圖1所示(圖中方框表示機構(gòu),橢圓表示業(yè)務,箭頭表示數(shù)據(jù)的流向)。
?
(1)機構(gòu)設置:連鎖超市由連鎖總部、配送中心、下屬多個分店等機構(gòu)組成。
(2)總部職能:總部中設置采購部和財務部。采購部負責和供貨商簽訂合同,采購商品。財務部負責每月結(jié)算,向供貨商付款和向分店收款。
(3)分店職能:各分店負責銷售商品。分店通過收款機(POS機)和掃描槍等設備完成收銀工作。每次交易由掃描槍讀取顧客購買商品條碼,由收款機記錄商品銷售單并且打印出收銀條交給顧客。
(4)配送處理:分店沒有進貨權(quán),配送中心可以主動向分店配送商品,或者在分店缺貨時,根據(jù)分店向配送中心發(fā)出的配送請求(稱之為“點菜”),由配送中心開配送單,隨貨物一起運送到分店。
(5)要貨處理:當配送中心庫存中沒有分店所要的貨物或者數(shù)額不足時,由分店直接向采購部發(fā)出要貨請求。
(6)采購業(yè)務:采購部根據(jù)采購計劃或者分店的要貨請求,填寫采購訂單,然后傳真給簽訂過合同的供貨商,要求供貨商送貨。
(7)送貨業(yè)務:供貨商填寫送貨單,隨采購訂單傳真和貨物一起送到配送中心。
(8)商品入庫:對照采購訂單和送貨單內(nèi)容驗收,開驗收入庫單將商品入庫。
(9)月末結(jié)算:財務部每月對當月的配送中心驗收入庫單和各分店銷售單進行結(jié)算。根據(jù)供貨商的商品入庫情況和銷售情況開具付款通知單向廠商付款。根據(jù)各分店銷售收入情況開收款通知單向分店收繳營業(yè)收入。
(10)倉庫構(gòu)成:各個分店中對顧客開放的賣場、各個分店的倉庫、配送中心的倉庫可看作構(gòu)成整個連鎖超市企業(yè)大倉庫的各個倉位。
1.2 對象的提取
根據(jù)核心需求的描述,提取對象如圖2所示。提取對象為:連鎖總部、配送中心、分店、采購部、財務部、供貨商、合同、商品、收款機、商品銷售單、配送中心、配送請求、配送單、要貨請求、采購定單、送貨單、驗收入庫單、付款通知單、收款通知單、倉位,連鎖超市的經(jīng)營目標是銷售商品獲取利潤,因此將商品劃為目標對象。連鎖超市的每一次進銷存活動數(shù)據(jù)全都記錄在各種單據(jù)和合同里,因此將這些單據(jù)和合同劃為數(shù)據(jù)對象。
?
其中,對象泛化是指對各種單據(jù)抽象出“單據(jù)”對象。除了收款通知單和付款通知單外,其他單據(jù)中單據(jù)明細欄均記錄了流通的一種或多種商品的編碼、數(shù)量和價格等信息,因此可以抽象出單據(jù)明細項對象。對文員、收銀員、業(yè)務員、各級經(jīng)理等這些人員對象可抽象出用戶對象。
1.3 系統(tǒng)類圖
根據(jù)對象提取的結(jié)果結(jié)合核心業(yè)務描述設計原型系統(tǒng)類圖如圖3所示。
?
2 ?系統(tǒng)設計
2.1 數(shù)據(jù)庫設計
因為大多數(shù)數(shù)據(jù)管理庫系統(tǒng)使用的是關(guān)系型數(shù)據(jù)庫,所以需將上述的對象模型映射到關(guān)系模型中,即將類映射為數(shù)據(jù)庫中的數(shù)據(jù)表,將類的某些屬性映射為相應數(shù)據(jù)表中的字段。機構(gòu)類、商品類和用戶類不存在上層父類,可以直接將類圖中的屬性映射為相應的各機構(gòu)表、商品表和用戶表的各字段。對于存在繼承關(guān)系的數(shù)據(jù)類如單據(jù)超類和各單據(jù)類,采用只將子類轉(zhuǎn)換成表的辦法,父類的屬性由各子類對應表收集,這樣就得到了配送單表、銷售單表等單據(jù)主表和保存各單據(jù)項的配送單明細表、銷售單明細表等單據(jù)明細表。
2.2 對象組件的實現(xiàn)
連鎖超市MIS系統(tǒng)采用了表現(xiàn)層、業(yè)務層和數(shù)據(jù)層三層結(jié)構(gòu)體系。其中業(yè)務層是整個系統(tǒng)的核心,體現(xiàn)了整個系統(tǒng)的功能,業(yè)務層通常由基于組件技術(shù)構(gòu)建的業(yè)務組件構(gòu)成。在類圖和數(shù)據(jù)庫結(jié)構(gòu)設計完成后,下一步就是將類圖中的封裝業(yè)務邏輯的類編程實現(xiàn)為組件。在實際表現(xiàn)層和業(yè)務層的開發(fā)中,采用了Visual C#作為開發(fā)工具。因為Visual C#的優(yōu)勢在于既有助于快速的應用程序開發(fā),又允許大量的控制權(quán)。它包含了最新的數(shù)據(jù)訪問技術(shù)ADO.NET,而且能很好地與Web應用開發(fā)、XML和多重新興技術(shù)集成。選擇Visual C#可以極大地提高開發(fā)效率。
2.3 客戶端的開發(fā)
連鎖超市的專用收款機的硬件配置一般較低,不適合運行Windows系統(tǒng),但是如果為此而更換大量POS機也是不現(xiàn)實的。因此開發(fā)運行在DOS平臺上的POS機軟件是必要的。POS機軟件開發(fā)的技術(shù)難點是如何在16位DOS下與Sql Server通信。SQL Server提供了DB-Library庫函數(shù)可供在標準C下調(diào)用。程序員也可以更方便地在C程序中嵌入SQL語句,在程序編譯前使用nsqlprep.exe程序進行預編譯,將源代碼中SQL語句轉(zhuǎn)換為對應的DB-Library函數(shù)語句。POS程序運行時必須有dbnmpipe.exe駐留內(nèi)存才能保證DOS客戶端與數(shù)據(jù)服務器正常連接。
2.4 網(wǎng)絡結(jié)構(gòu)和數(shù)據(jù)庫的分布式設計
連鎖超市的總部、分店、配送中心往往處于一個城市不同的地理位置,它們各自的局域網(wǎng)需通過幀中繼、電話線撥號或Internet等方式方式實現(xiàn)遠程互聯(lián)。系統(tǒng)的網(wǎng)絡結(jié)構(gòu)如圖4所示。在遠程連接帶寬有限的情況下,若各分店的收款機客戶端程序直接讀寫總部數(shù)據(jù)服務器的數(shù)據(jù),將導致收款機客戶端程序響應緩慢,增加顧客的排隊等待時間。更嚴重的是,如果遠程連接出現(xiàn)故障,分店的收款機客戶端程序?qū)o法工作,造成不必要的銷售損失。
?
因此連鎖超市信息管理系統(tǒng)有必要采用分布式數(shù)據(jù)庫結(jié)構(gòu):即一級數(shù)據(jù)服務器設在總部,二級數(shù)據(jù)服務器設在各分店。在總部和分店分別安裝SQL Server2000數(shù)據(jù)服務器,整體上構(gòu)成一個分布式數(shù)據(jù)庫系統(tǒng)。
數(shù)據(jù)的分配如下:總部數(shù)據(jù)服務器保存整個企業(yè)所有的業(yè)務數(shù)據(jù),采購部、財務部、配送中心和各分店店長的管理業(yè)務處理均在總部數(shù)據(jù)服務器上進行,分店只保存與收銀業(yè)務密切相關(guān)的數(shù)據(jù)。由于POS機工作時僅讀取商品的條碼、名稱、價格等信息和保存每筆銷售的數(shù)據(jù),因此在各個分店的數(shù)據(jù)庫服務器上只需要保存總部數(shù)據(jù)服務器上的商品表副本和本分店的銷售單表。這樣一方面保證了POS機的響應速度,另一方面又保證了分店在與遠程總部斷開后收銀工作仍能正常進行。
數(shù)據(jù)的同步與更新方法:(1)在總部商品表修改時(如總部對某商品統(tǒng)一調(diào)價)引發(fā)一個觸發(fā)器,利用SQL Server2000的復制機制在觸發(fā)器的處理過程中設置總部為發(fā)布者,分店為訂閱者,由總部向分店更新商品表。(2)在每日交班后的非營業(yè)期間,由分店作為發(fā)布者向總部訂閱者上傳各個分店的當日銷售單表數(shù)據(jù)。(3)各分店數(shù)據(jù)上傳完畢后,由總部服務器集中對各倉位庫存、各商品銷售金額等統(tǒng)計數(shù)據(jù)進行重新計算。雖然這種數(shù)據(jù)同步方式使得總部不能實時地監(jiān)控各個分店的銷售情況,但在連鎖配送模式下,分店有一定的經(jīng)營自主權(quán),分店可以實時地根據(jù)本地的銷售記錄作出相應的決策。因此這種同步方式在不影響業(yè)務的情況下可適應分店與總部距離較遠網(wǎng)絡帶寬較低的情況。
實踐證明,在連鎖超市MIS軟件開發(fā)中采用分析核心業(yè)務→提取對象→設計類圖→設計數(shù)據(jù)表→編寫組件和用戶界面→架設原型系統(tǒng)→需求分析深化→擴充系統(tǒng)功能這樣一個反復迭代過程是行之有效的。
?
參考文獻
1? Normanr J.面向?qū)ο笙到y(tǒng)分析與設計.北京:清華大學出版社,1998
2? 陳世鴻,彭蓉.面向?qū)ο筌浖こ?北京:電子工業(yè)出版社,1999
3? 薛華成.管理信息系統(tǒng)(第2版).北京:清華大學出版社,1993
4? 李慶發(fā).完全探索Microsoft.net技術(shù)戰(zhàn)略.北京:中國青年出版社,2002