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