夏俊博
【摘要】本論文討論ERP系統(tǒng)中的庫存管理模塊的開發(fā)過程。分析ERP系統(tǒng)中的庫存管理系統(tǒng),并應(yīng)用面向?qū)ο蟮姆治龊驮O(shè)計方法及建模技術(shù)給出了有關(guān)庫存管理系統(tǒng)的面向?qū)ο竽P?。主要研究了基于庫存管理系統(tǒng)的模型的建立、該模型應(yīng)用的體系結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu)以及系統(tǒng)實(shí)現(xiàn)。
【關(guān)鍵詞】現(xiàn)代庫存管理理論;統(tǒng)一建模語言;類圖;順序圖;用例圖;組件圖
一、課題背景
隨著科學(xué)技術(shù)的進(jìn)步及其不斷向生產(chǎn)與庫存控制方面的滲透,解決合理庫存與生產(chǎn)控制問題所需要處理的大量信息和企業(yè)資源管理的復(fù)雜化,要求信息處理的效率更高。信息的集成度要求擴(kuò)大到企業(yè)的整個資源的利用和管理,因此產(chǎn)生了新一代的管理理論與計算機(jī)系統(tǒng)——企業(yè)資源規(guī)劃(Enterprise Resource Planning,ERP)
傳統(tǒng)庫存管理模型
所謂庫存管理是在保障供應(yīng)的前提下,使庫存物品的數(shù)量最少,所進(jìn)行的有效管理的技術(shù)經(jīng)濟(jì)措施,包括日常的庫存事務(wù)處理和庫存狀態(tài)控制兩部分。
庫存事務(wù)處理主要包括入庫處理、出庫處理、庫存臺賬維護(hù)和盤庫處理等庫存物資的收發(fā)存具體工作,賬目的計算和記錄以及各種數(shù)據(jù)、檔案的保管工作。
而在庫存狀態(tài)控制方面,傳統(tǒng)的庫存管理模式涉及兩類庫存:一是與生產(chǎn)庫存相適應(yīng)的相關(guān)需求庫存:需要采用MRP算法進(jìn)行處理;二是與經(jīng)銷庫存相適應(yīng)的獨(dú)立需求庫存。
二、MRP基本原理
MRP應(yīng)用的目的是進(jìn)行庫存的控制和管理,按需求的類型可以將庫存問題分為兩種:獨(dú)立性需求和相關(guān)性需求。
MRP的基本原理:由主生產(chǎn)計劃(MPS)和物料清單((BOM)逐個求出主產(chǎn)品所有主部件的出產(chǎn)時間、出產(chǎn)數(shù)量,即物料需求計劃。其中,零部件如果靠企業(yè)內(nèi)部生產(chǎn),需要根據(jù)各自的生產(chǎn)時間長短來提前安排投產(chǎn)時間,形成零部件生產(chǎn)計劃;如果零部件需要從企業(yè)外部采購,則要根據(jù)各自的訂貨提前期來確定提前發(fā)出各自訂貨的時間,采購數(shù)量,形成采購計劃。MRP原理如圖所示:
2.1 UPI庫存管理系統(tǒng)的分析
系統(tǒng)分析就是描述系統(tǒng)的需求,通過定義系統(tǒng)中的關(guān)鍵域類來定義模型。在這里,首先根據(jù)庫存管理業(yè)務(wù)流程來導(dǎo)出庫存管理系統(tǒng)的用例圖,然后進(jìn)行領(lǐng)域分析。
2.2 UPI庫存管理系統(tǒng)的用例圖
用例圖的基本組成部件是用例、角色和系統(tǒng)。用例用于描述系統(tǒng)的功能,是對系統(tǒng)功能的宏觀描述。角色是與系統(tǒng)進(jìn)行交互的外部實(shí)體,它可以是系統(tǒng)用戶,也可以是其它系統(tǒng)或硬件設(shè)備,凡是需要與系統(tǒng)交互的任何東西都可以稱作角色。系統(tǒng)的邊界線以內(nèi)的區(qū)域(即用例的活動區(qū)域)則抽象表示系統(tǒng)能夠?qū)崿F(xiàn)的所有基本功能。
2.3 UPI庫存管理系統(tǒng)的設(shè)計
設(shè)計階段就是將分析模型進(jìn)行擴(kuò)展并將模型進(jìn)一步細(xì)化,該階段的目的是產(chǎn)生一個可行的解決方案,并且可以比較容易的轉(zhuǎn)為程序代碼。這里會定義一些新的類來執(zhí)行技術(shù)上的操作,包括對數(shù)據(jù)庫的操作、用戶接口的操作。首先,進(jìn)行體系結(jié)構(gòu)設(shè)計。包括定義包、描述包之間的依賴性及基本的通信機(jī)制;最后,詳細(xì)設(shè)計,包括對所有的類進(jìn)行描述。
2.4 體系結(jié)構(gòu)設(shè)計
體系結(jié)構(gòu)的設(shè)計是保證系統(tǒng)可擴(kuò)展和可改變的基礎(chǔ),它將應(yīng)用程序邏輯和技術(shù)邏輯分開。這里的關(guān)鍵技術(shù)是,標(biāo)識和建立包間相關(guān)性規(guī)則使包間不存在雙方關(guān)聯(lián)性,明確必須的標(biāo)準(zhǔn)庫和發(fā)現(xiàn)要使用的庫。
邊界類包:也稱之為用戶接口包,位于系統(tǒng)與外界的交界處,包括所有的社會分配、報表、與打印機(jī)和掃描儀等硬件接口、以及與其它系統(tǒng)的接口。邊界類描述表示參與者和系統(tǒng)之間交互的對象。它捕獲了部分系統(tǒng)的狀態(tài),并用可視化顯示或聲音效果的形式將它呈現(xiàn)給用戶,邊界對象經(jīng)常超出程序一次執(zhí)行的范圍。邊界類對應(yīng)于GUI設(shè)計中出現(xiàn)的類。實(shí)體對象將它的變化傳播到它的狀態(tài)中,從而使得邊界對象能更新GUI的顯示。
控制類包:負(fù)責(zé)協(xié)調(diào)其它類的工作??刂祁惐旧聿煌瓿扇魏喂δ?。其它類并不向控制類發(fā)送消息,而由控制類來發(fā)出消息??刂祁惔韰f(xié)調(diào)、處理、控制和序列化其它對象,經(jīng)常用于封裝與特定用例相關(guān)的控制或代表復(fù)雜的派生和計算,控制類封裝了對某些對象的控制、協(xié)調(diào)和事務(wù)處理,這樣將控制變化孤立在某個類中??刂祁惷枋瞿切┙忉層脩糨斎胧录⒖刂茦I(yè)務(wù)進(jìn)程執(zhí)行的對象。一個控制類表示行為以及一個用例的活動??刂茖ο蠼?jīng)常不超出程序的執(zhí)行??刂茖ο筇幚碛脩羯墒录褪艿接绊懙膶?shí)體對及邊界對象之間的交互。特別地,每個允許交互的邊界對象總有一個控制對象與之關(guān)聯(lián)。
實(shí)體包:保存要放進(jìn)持續(xù)存儲體的信息,它是對用戶最有意義的類。它用于為系統(tǒng)長期存在的信息建模。在通常情況下,實(shí)體類直接來自業(yè)務(wù)對象模型中相應(yīng)的業(yè)務(wù)對象,但是也有區(qū)別,實(shí)體類代表的是業(yè)務(wù)對象中需要計算機(jī)系統(tǒng)處理的部分,反映的信息必須是對開發(fā)都在設(shè)計和實(shí)事系統(tǒng)時有用。實(shí)體類描述那些表示一個應(yīng)用領(lǐng)域中實(shí)體語義的對象。它對應(yīng)于系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)結(jié)構(gòu)。實(shí)體對象總是要超出程序的執(zhí)行并參與許多用例。
數(shù)據(jù)庫包:把實(shí)體包中負(fù)責(zé)抽取數(shù)據(jù)庫中的數(shù)據(jù)的類分離出來,形成數(shù)據(jù)庫包。數(shù)據(jù)庫包提供了應(yīng)用和數(shù)據(jù)庫之間的一個沒有方向的層次。通常,數(shù)據(jù)庫包中的類執(zhí)行一組關(guān)于數(shù)據(jù)庫的服務(wù)。這些服務(wù)包括打開和關(guān)閉與數(shù)據(jù)庫的互聯(lián),當(dāng)承諾或退出一個事務(wù)時向數(shù)據(jù)庫發(fā)指令,確定運(yùn)行時數(shù)據(jù)庫配置的參數(shù)、處理用戶權(quán)限、抽取和存儲關(guān)于數(shù)據(jù)庫對象的元數(shù)據(jù)信息(如表、列、視圖、存儲過程、索引等)。
三、UPI庫存管理系統(tǒng)的詳細(xì)設(shè)計
在設(shè)計階段,為了保證得到優(yōu)質(zhì)的類圖,我們首先通過交互圖來細(xì)化分析模型。一般交互圖有兩種:順序圖和協(xié)作圖。
順序圖描述對象是如何交互的,并且將重點(diǎn)放在消息序列上,也就是說,描述消息是如何在對象間發(fā)送和接收的。順序圖有兩個坐標(biāo)軸:縱坐標(biāo)軸顯示時間,橫坐標(biāo)軸顯示對象。順序圖也顯示特殊情況下的對象交互:在系統(tǒng)執(zhí)行期間的某一時間點(diǎn)發(fā)生在對象間的特殊交互(如:當(dāng)用到一個特殊功能時)。在順序圖的橫坐標(biāo)軸上是與順序有關(guān)的對象。每一個對象的表示方法是:矩形框中寫有對象和(或)類名,且名字下面有下劃線。同時,有一條縱向的虛線表示對象在序列中的執(zhí)行情況(即,發(fā)送和接收的消息,對象的活動),這條虛線稱為對象的“生命線”。對象間的通信用對象的生命線之間的水平的消息線來表示。消息線的箭頭說明消息的(下轉(zhuǎn))(上接)類型,如同步,異步,或簡單(本章前面定義的)。瀏覽順序圖的方法是:從上到下查看對象間交換的消息。順序圖是按時間順序排序的;協(xié)作圖顯示同一信息,但是組織方式和順序圖不同,它注重的是對象之間的關(guān)系。交互圖關(guān)注實(shí)現(xiàn)用例功能時要生成的對象。
3.1 UPI庫存管理系統(tǒng)數(shù)據(jù)庫的設(shè)計
在大多數(shù)應(yīng)用程序的運(yùn)行中,對象的生命周期與一個動態(tài)變量的生命周期相似:首先對象被創(chuàng)建(在內(nèi)存中分配空間),并按一定要求對屬性進(jìn)行初始化。定義之后的對象可以被刪除,所用空間被收回。如果一個對象沒有被顯示刪除,應(yīng)用程序運(yùn)行結(jié)束時結(jié)束它的生命周期。如果對象要保持到下一次程序中運(yùn)行,它必須被保持到一永久介質(zhì)上,以便在需要時能被從介質(zhì)上取用。外部介質(zhì)的組織方式依賴于數(shù)據(jù)被使用的方式,它可以是一個普通的文件,也可以是層次、網(wǎng)狀或關(guān)系數(shù)據(jù)庫。一般是使用面向?qū)ο髷?shù)據(jù)庫或使用關(guān)系數(shù)據(jù)庫。
由于面向?qū)ο髷?shù)據(jù)庫存儲持久對象最主要的缺點(diǎn)是當(dāng)數(shù)據(jù)操作頻繁時,需要使用兩個獨(dú)立的數(shù)據(jù)庫系統(tǒng),特別對傳統(tǒng)的應(yīng)用更是如此。而且面向?qū)ο髷?shù)據(jù)庫不支持集合操作,因此我們采用關(guān)系數(shù)據(jù)庫。
關(guān)系數(shù)據(jù)庫可以用來有效地?zé)o關(guān)化對象,即把它們的屬性值保存在關(guān)系表中,以便將來用這些屬性值重建對象。它用表、表的行列、完整性約束等等提供了簡單的數(shù)據(jù)模型。它還提供了結(jié)構(gòu)化查詢語言(SQL),用戶可用結(jié)構(gòu)化查詢語言描述要做什么而不必描述怎樣去做;也不用瀏覽整個數(shù)據(jù)庫。
在UML中,類圖定義了應(yīng)用所要求的數(shù)據(jù)結(jié)構(gòu),那些在數(shù)據(jù)庫中永久存在的數(shù)據(jù)結(jié)構(gòu)被建模為實(shí)體類或者實(shí)體類之間的關(guān)系。實(shí)體類需要映射為數(shù)據(jù)庫能識別的數(shù)據(jù)結(jié)構(gòu)。
結(jié)論
本文來自于實(shí)際中小型企業(yè)適用的ERP系統(tǒng)的分析、設(shè)計中遇到的實(shí)際應(yīng)用問題,首先確定了ERP系統(tǒng)的構(gòu)架,采用3-tier C/S模型,并對其進(jìn)行分析確定其實(shí)用性和有效性;根據(jù)這一結(jié)構(gòu)的特點(diǎn),采用OOAD方法對庫存管理系統(tǒng)進(jìn)行分析和設(shè)計,運(yùn)用UML可視化建模方法將其描述出來,然后通過對象映射到關(guān)系數(shù)據(jù)庫的思想,來設(shè)計數(shù)據(jù)庫。
參考文獻(xiàn)
[1]羅鴻編著.ERP原理設(shè)計實(shí)施.北京:電子工業(yè)出版社,2002:95-139.
[2]王槐林著.采購管理與庫存控制.北京:中國物資出版社,2002:62-135.
[3]馬士華,林勇、陳志祥編著.供應(yīng)鏈管理.北京:中國物資出版社,2002:102-268.
[4]俞仲文,陳代芬著.物流配送技術(shù)與實(shí)務(wù).北京:人民交通出版社,2001:165-186.