轉載自http://www.uml.org.cn/oobject/201403061.asp
[TOC]
1. 問題描述
1.1需求描述
超市采購系統需要實現對超市采購的管理,系統需要方便易用,輔助超市員工對超市的采購的信息進行管理,提高超市員工的工作效率,進而提高超市的收益。
本系統實現對進貨單的添加、修改、刪除、查詢功能,對每一筆進貨單都進行備案,存入數據庫中,可以按貨單號和進貨日期多種方式進行查詢,對數據庫中無用的進貨單執行刪除操作。對每一筆進貨單中的貨物的詳細信息進行記載,將貨物的詳細信息載入數據庫中,方便查詢和對貨物信息的管理。本系統還需要對柜存信息實行管理,是超市工作人員能隨時查看柜存情況,及時提醒采購員對缺貨商品的采購。
1.2開發環境描述
本系統采用Rational Rose做UML建模,使用Microsoft公司的Visulbasic6.做為前臺開放工具,使用Microsoft公司的ACCESS做為數據庫的開發環境,在WINOWS XP操作系統環境下進行開發并測試。
1.3可行性研究
1.3.1經濟可行性研究
本系統需要超市負擔的費用主要是本系統的開發及維護費用,對超市人員使用本系統的培訓費用,以及本系統開放完成后,由于工作方式的改變增加的其他開支。
本系統實現的收益主要來自減少采購管理中的人力,提高工作效率產生的額外的效益。
1.3.2技術可行性
本系統屬于小型管理軟件,對開發環境的要求和運行的環境的要求不苛刻,需要運行計算機的最低配置:
2. 用例模型及分析類圖的描述
2.1用例模型本系統以管理員對數據庫的操作為主,實現用例圖如下:
圖2-1用例視圖
根據對用例的分析,做出用例圖如上,管理員主要利用本系統,實現對進貨信息和對柜存信息的管理。系統采用VB環境開發,實現C/S結構,管理員對各個信息的修改都直接寫入數據庫,把前臺界面和數據庫分開存放,提高了程序的可擴展性。
2.2類圖
分析系統,本系統主要包含數據庫類和操作類。
數據庫類包括有進貨信息數據庫、物品信息數據庫、柜存信息數據庫。其中進貨信息數據庫和物品信息數據庫是人工創建,手動輸入數據,然后存入庫中;柜存信息數據庫是根據接到的進貨單的信息,自動生成的數據庫,其中主要保存著貨物的數量,查詢該數據庫可以讓管理員及時提醒采購員對缺貨商品進行采購。
操作類主要是對數據庫的操作,包括有添加進貨單、添加物品詳細信息兩個操作。其中添加進貨單可以對進貨信息數據庫執行添加,修改,刪除的操作,添加物品信息可以?物品信息數據庫執行添加修改刪除的操作。
操作類還包含對數據的查詢操作,查詢進貨單查詢是對進貨信息數據庫的查詢,可以根據貨單號和進貨時間兩個關鍵字進行查詢;物品信息查詢是對物品信息數據庫執行的查詢操作,主要以物品編號和物品名稱做為關鍵字進行查詢;歸村信息查詢功能是對貨物在活柜上的存放情況進行查詢。
分析以上各個類,作出類圖如下:
圖2-2類圖
3. 詳細設計描述
3.1系統功能描述
分析系統的用例后,列出系統的功能模塊,設計功能模塊的E-R圖:
圖4-3查詢進貨信息圖2
3.2系統時序圖
根據以上功能模塊,設計順序圖,管理員的每一步操作都是對數據庫的修改,程序順序圖如下:
3.2.1管理員登錄
管理員登錄界面主要是驗證登錄信息,當輸入的登錄信息不正確時,提示用戶并且重新返回登錄界面。
3.2.2管理員添加進貨單
管理員添加進貨單的操作,管理員填寫好相應的進貨單項之后,系統自動把進貨單信息寫入數據庫中,修改了進貨單數據庫中的內容,同時數據庫也自動的修改了柜存信息中的內容。
圖3-3管理員添加進貨單順序圖
3.2.3管理員修改進貨單
管理員通過修改操作對進貨單信息中的表項進行修改,然后更新數據庫,同時數據庫會自動修改柜存信息中的相應項。
圖3-4管理員修改進貨單順序圖
3.2.4管理員刪除進貨單
管理員執行刪除操作刪除進貨信息中的信息,更新進貨信息中的表單,同時數據庫自動修改柜存信息中的相應項。
圖3-5管理員刪除進貨單順序圖
3.2.5管理員添加物品信息
管理員添加物品信息的操作,管理員填寫好相應的物品信息之后,系統自動把物品信息寫入數據庫中,修改了物品信息數據庫中的內容。
圖3-6管理員添加物品信息順序圖
3.2.6管理員修改物品信息
管理員通過修改操作對物品信息中的表項進行修改,然后更新數據庫。
圖3-7管理員修改物品信息順序圖
3.2.7管理員刪除物品信息
管理員執行刪除操作刪除進貨信息中的信息,更新進貨信息中的表單
圖3-8管理員刪除物品信息順序圖
3.2.8管理員查詢進貨單
管理員按照要求字段,輸入查詢信息,系統自動訪問數據庫,顯示出管理員需要查詢的信息。
圖3-9管理員查詢進貨單順序圖
3.2.9管理員查詢物品信息
管理員按照要求字段,輸入查詢信息,系統自動訪問數據庫,顯示出管理員需要查詢的信息。
圖3-10管理員查詢物品信息順序圖
3.2.10管理員查詢柜存信息
管理員按照要求字段,輸入查詢信息,系統自動訪問數據庫,顯示出管理員需要查詢的信息。
圖3-11管理員查詢柜存信息順序圖
3.3狀態圖
狀態圖主要描述了系統在各個狀態之間的轉換關系。在系統登陸成功之后,通過點擊系統管理界面上的各個菜單跳轉到各個不同的子功能中,添加、修改、刪除操作都是對數據庫中的數據進行操作,然后更新數據庫中的表單,查詢操作主要是訪問數據庫中的數據,然后把查詢結果顯示出來,各個操作執行完成之后都可以直接返回到系統操作界面,執行其他操作。
圖3-12狀態圖
3.4設計數據庫
本系統各個環節都是對數據庫的操作,應該設計一個合理的數據庫,分析該系統,為數 據庫創建三張表格:
3.4.1進貨信息
包含有進貨時間,進貨單號,產品號,產品名稱,客戶號,產品數量,產品單價幾個字段
圖3-13進貨信息數據表
3.4.2物品信息
包含有產品號,產品名稱,產品類型,產品重量,產品單位,產品日期,產品價格幾個字段。
圖3-14物品信息數據表
3.4.3柜存信息 包含產品號,產品名稱,產品數量幾個字段。
圖3-15柜存信息數據表
3.5用戶界面設計
3.5.1登錄界面設計
圖3-16登錄界面
輸入設計:在用戶名文本框中,輸入管理員ID。 在密碼框中,輸入管理員密碼。
3.5.2系統界面的設計
圖3-17系統界面
3.5.3添加進貨單界面的設計
輸入設計:直接在空白表單的相應項里輸入相應數據,進貨單號、產品號、客戶號中輸入 編號,進貨時間欄中輸入時間,在產品數量中輸入整數,產品單價中輸入浮點小數。 輸出設計:執行相應操作后,輸出的結果直接顯示在表單中。
圖3-18添加進貨單界面
3.5.4添加物品新系界面的設計
圖3-19添加物品新系界面
輸入設計:在產品號中輸入編號,產品重量和產品單價欄中輸入浮點小數,在產品名稱、 食品類別和產品單價欄中輸入文本,在生產日期欄中輸入時間。
輸出設計:執行相應操作后,輸出的結果直接顯示在表單中。
3.5.5查詢進貨單界面的設計

圖3-20查詢進貨單界面
輸入設計:在進貨單后的文本框中輸入編號,在進貨時間文本框中輸入時間。
輸出設計:點擊查詢后,在上面的表但中顯示出查詢的結果,按數據表中的表項內容顯示。
3.5.6查詢柜存信息界面的設計
圖3-21查詢柜存信息界面?
輸入設計:在產品編號后的文本框中輸入編號,在產品名稱后的文本框中輸入文本。?輸出設計:在庫存數量后的文本框中顯示正整數。
3.5.7查詢物品詳細信息界面的設計
圖3-22查詢物品詳細信息界面
輸入設計:在產品號后的文本框中輸入編號,在貨物名稱后餓文本框中輸入文本。
輸出設計:點擊查詢后,在上面的表但中顯示出查詢的結果,按數據表中的表項內容顯示。
本系統的界面采用VB程序語言編寫,使用ACCESS做數據庫。界面設計好了之后,使用DATA控件將界面和數據庫進行連接,在界面上直接對數據庫內的數據進行修改和操作。
4. 給出軟件的測試方法和測試結果
4.1登錄系統測試
系統設置默認管理員ID是ADMIN,默認密碼是123456,正確輸入后會跳轉到系統界面,如果輸入錯誤,例如輸入密碼為111111,則出現如圖情況:
圖4-1登錄系統測試
4.2添加進貨單
在3.5.3添加進貨信息界面的表單中輸入進貨單信息,點擊“添加”按扭,就把輸入表單的數據寫入了數據庫中。
刪除進貨信息時,只要選中表單中的一行,點擊“刪除”按扭,就可以把數據庫中的信息刪除。
4.3添加物品信息
在3.5.4添加物品信息界面的表單中輸入物品詳細信息,然后點擊“添加”按扭,就把輸入在表單中的數據寫入了數據庫。
刪除物品信息時,只要選中表單中的一行,點擊“刪除”按扭,就可以把數據庫中的信息刪除。
4.4查詢進貨信息
在查詢進貨信息界面,按貨單號查詢,輸入貨單號點擊“查詢”按扭,在上面的表
但匯總酒會顯示希望查詢的信息。輸入0001,然后點擊查詢,會顯示頁面如下:
圖4-2查詢進貨信息圖1
輸入2005-5-20,然后點擊查詢,會顯示頁面如下:
圖4-3查詢進貨信息圖2
4.5查詢物品信息
物品信息可以根據“產品號”和“貨物名稱”兩個字段進行查詢?輸入0110,然后點擊查詢會顯示如下頁面:?
圖4-4查詢物品信息圖1
輸入恰恰香瓜子,然后點擊查詢會顯示如下頁面:
圖4-5查詢物品信息圖2
4.6查詢柜存信息
柜存信息的查詢是對貨物的柜存數量進行查詢,可以從貨物名稱和物品編號兩個字段進行查詢。?當輸入0110,然后點擊查詢會顯示如下頁面:
圖4-6查詢柜存信息圖1
當輸入恰恰香瓜子,然后點擊查詢,會顯示如下頁面:
圖4-7查詢柜存信息圖2
5. 總結心得
本系統使用VB開發,和ACCESS數據庫能有很好的連接。
利用UML建模的方法很快就能分析出本程序的各個要點出來,利用VB開發好界面以后,然后為各個控件分別編寫代碼,完成整個程序。
但是我覺得這個程序中還有很多不完善的地方。在這個程序中查詢功能實際上只是對數據庫的一次搜索,沒有實現模糊查詢的功能,無法對部分字符匹配做查詢。還有對數據庫的備份方面做的不夠好,該系統無法自動對數據庫進行備份,必須有管理員手動備份數據庫,這不能保證數據庫的即時備份。應該設計數據庫每當數據增加一定量后就自動對數據庫進行依次備份,這樣可以最大下怒的保證數據庫安全。在系統的日志方面做的也有缺陷,應該在系統的后臺創建日志文件,對每次的管理員登錄,以及登錄后的各種行為寫人日志文件,以便在系統出現問題或者數據出現異常情況的時候查看日志文件可以發現問題的根源。由于是采用的ACCESS數據庫開發該系統,當超市的業務增大是,ACCESS數據庫可能不能勝任,需要升級到SQL?Server這樣的大中型數據庫。
本程序的實現主要是添加、修改、刪除的操作,程序中有大量代碼重復的地方,主要是連接數據庫和使用SQL語言對數據庫進行修改,在VB中使用DATA控件將VB的強臺界面與數據庫相連,即可對數據庫進行響應的操作了。
本程序在設計時碰到一個難點,在查詢柜存信息的時候,需要查詢物品的柜存數量,但是在進貨單信息中,可能對同一種類的商品有多次的進貨,查詢的時候需要知道的是這種貨物的總的數量,而不是每比進貨單中這種貨物的進貨量,那么就需要對該類商品的數量做出統計,直接使用SQL語言查詢是無法實現該功能的。通過在網上查找到的資料,發現可以獲取一個表單中的各個列中的數值,于是想到,先建立一個表單,這個只用存放進貨單里同一種商品的進貨數量,然后利用DataGrid1.Text函數,獲取表但中的數值,先把表但的第一項附給一個空文本,然后此文本中餓值依次與表但后面幾項值相加,直到把所有表項都加完為止,那么最后該文本中的值則是該種類物品的數量的統計值。
通過本次課程設計讓我對UML建模有了進一步的認識,讓我了解了使用UML建模對開發程序有很大的幫助,在UML模型中能清晰的反映出程序的所有行為,為程序的開發以及維護,查錯都有很大的幫助。