第一篇:倉(cāng)庫(kù)管理系統(tǒng)系統(tǒng)分析與設(shè)計(jì)UMLDOC
題目:倉(cāng)庫(kù)管理系統(tǒng)的分析與設(shè)計(jì)
姓名:徐昊學(xué)號(hào):12427002 班級(jí):軟件121
目錄
一、需求分析.................................................................3
1.1系統(tǒng)總功能需求........................................................3 1.2 用戶登錄功能需求.....................................................3
1.2.1用戶登錄功能的模塊圖:..........................................3 1.2.2用戶登錄功能流程圖:............................................4 1.3 倉(cāng)庫(kù)管理功能需求.....................................................5
1.3.1倉(cāng)庫(kù)管理功能模塊................................................5 1.3.2倉(cāng)庫(kù)進(jìn)貨流程圖..................................................6 1.3.3倉(cāng)庫(kù)退貨流程圖..................................................6 1.3.4倉(cāng)庫(kù)領(lǐng)料流程圖..................................................6 1.3.5倉(cāng)庫(kù)退料流程圖..................................................7 1.3.6倉(cāng)庫(kù)盤點(diǎn)流程圖..................................................7 1.4 查詢功能需求.........................................................7
1.4.1查詢功能模塊....................................................7 1.4.2庫(kù)存查詢流程圖..................................................8 1.4.3出入庫(kù)查詢流程圖................................................8
二、倉(cāng)庫(kù)管理系統(tǒng)系統(tǒng)的建模...................................................8 2.1 用例圖的建立.............................................................8
2.1.1操作員的用例圖:................................................8 2.1.2管理員用例圖:..................................................9 2.1.3總用例圖:.....................................................10 2.2 時(shí)序圖的生成.......................................................10
2.2.1倉(cāng)庫(kù)盤點(diǎn)時(shí)序圖:...............................................10 2.2.2倉(cāng)庫(kù)管理時(shí)序圖:...............................................11 2.2.4查詢時(shí)序圖:...................................................12 2.3 活動(dòng)圖的生成......................................................12
2.3.1入庫(kù)活動(dòng)圖:...................................................12 2.3.2出庫(kù)活動(dòng)圖:...................................................13 2.3.3查詢活動(dòng)圖:...................................................14
三、類圖的生成..............................................................1
5一、需求分析
1.1系統(tǒng)總功能需求
倉(cāng)庫(kù)管理系統(tǒng)可以分成三個(gè)功能模塊,分別是用戶登倉(cāng)庫(kù)管理、查詢功能。本系統(tǒng)主要實(shí)現(xiàn)對(duì)倉(cāng)庫(kù)物資的管理,包括商品的入庫(kù)、出庫(kù),并可根據(jù)需要查詢倉(cāng)庫(kù)使用記錄。
倉(cāng)庫(kù)管理系統(tǒng)用戶登錄倉(cāng)庫(kù)管理查詢功能
1.2 用戶登錄功能需求
1.2.1用戶登錄功能的模塊圖:
用戶登錄用戶登錄退出系統(tǒng)用戶注銷
由用戶登錄、用戶注銷、退出系統(tǒng) 3個(gè)部分組成。用戶可以用兩種身份登錄本系統(tǒng)..普通操作員或經(jīng)理,管理人員。不同身份登錄被系統(tǒng)授予不同的使用權(quán)限,這樣提高了本系統(tǒng)的安全性,避免了無(wú)關(guān)人員獲取不在他權(quán)限范圍內(nèi)的信息。用戶在登錄后可以不退出本系統(tǒng),而采用用戶注銷的方式使系統(tǒng)不存在激活狀態(tài)下的用戶。
(1)用戶登錄:
用戶根據(jù)用戶名、密碼登錄進(jìn)系統(tǒng)進(jìn)行操作。(2)用戶注銷:
注銷當(dāng)前用戶,但不退出系統(tǒng)。(3)退出系統(tǒng):
用戶退出系統(tǒng)。
1.2.2用戶登錄功能流程圖:
輸入用戶名密碼判斷是否正確登陸成功
1.3 倉(cāng)庫(kù)管理功能需求
1.3.1倉(cāng)庫(kù)管理功能模塊
倉(cāng)庫(kù)管理倉(cāng)庫(kù)進(jìn)貨倉(cāng)庫(kù)退貨倉(cāng)庫(kù)領(lǐng)料倉(cāng)庫(kù)退料倉(cāng)庫(kù)盤點(diǎn)
倉(cāng)庫(kù)管理系統(tǒng)中.,包括倉(cāng)庫(kù)進(jìn)貨、倉(cāng)庫(kù)退貨、倉(cāng)庫(kù)領(lǐng)料、倉(cāng)庫(kù)退料和倉(cāng)庫(kù)盤點(diǎn) 6個(gè)功能模塊組成。倉(cāng)庫(kù)管理系統(tǒng)是整個(gè)倉(cāng)庫(kù)信息系統(tǒng)的核心..是所有數(shù)據(jù)的來(lái)源。用戶通過本系統(tǒng)的使用..可以使倉(cāng)庫(kù)的空間得以優(yōu)化,減低無(wú)效和冗余的作業(yè),使庫(kù)存精度更準(zhǔn)確,庫(kù) 存周轉(zhuǎn)率提高及庫(kù)存資金占用減少。
(1)倉(cāng)庫(kù)進(jìn)貨:
本功能要求操作員輸入進(jìn)貨的貨物型號(hào)以及數(shù)量,并更新到數(shù)據(jù)庫(kù)當(dāng)中,打印出報(bào)表。
(2)倉(cāng)庫(kù)退貨:
本功能可以實(shí)現(xiàn)退貨的功能,要求操作員填寫退貨信息,更新到數(shù)據(jù)庫(kù)中,并且打印報(bào)表。
(3)倉(cāng)庫(kù)領(lǐng)料:
本功能實(shí)現(xiàn)工廠的職工從倉(cāng)庫(kù)中領(lǐng)料的功能,更新到數(shù)據(jù)庫(kù)中,并且打印報(bào)表。
(4)倉(cāng)庫(kù)退料:
本功能實(shí)現(xiàn)工廠的職工從倉(cāng)庫(kù)中退料的功能,更新到數(shù)據(jù)庫(kù)中,并且打印報(bào)表。
(5)倉(cāng)庫(kù)盤點(diǎn):
本功能實(shí)現(xiàn)對(duì)倉(cāng)庫(kù)中貨物信息的查詢。
1.3.2倉(cāng)庫(kù)進(jìn)貨流程圖
填寫進(jìn)貨單進(jìn)貨更新數(shù)據(jù)庫(kù)生產(chǎn)進(jìn)貨報(bào)表
1.3.3倉(cāng)庫(kù)退貨流程圖
填寫退貨單退貨更新數(shù)據(jù)庫(kù)生產(chǎn)退貨報(bào)表
1.3.4倉(cāng)庫(kù)領(lǐng)料流程圖
填寫領(lǐng)料單領(lǐng)料更新數(shù)據(jù)庫(kù)生產(chǎn)領(lǐng)料報(bào)表6
1.3.5倉(cāng)庫(kù)退料流程圖
填寫退料單退料更新數(shù)據(jù)庫(kù)生產(chǎn)退料報(bào)表
1.3.6倉(cāng)庫(kù)盤點(diǎn)流程圖
填寫盤點(diǎn)貨物盤點(diǎn)更新數(shù)據(jù)庫(kù)生產(chǎn)盤點(diǎn)貨物報(bào)表
1.4 查詢功能需求
1.4.1查詢功能模塊
查詢庫(kù)存查詢出入庫(kù)查詢
(1)庫(kù)存查詢:
本功能實(shí)現(xiàn)管理員對(duì)倉(cāng)庫(kù)商品庫(kù)存的查詢,由管理員填寫查詢請(qǐng)求,并有數(shù)據(jù)庫(kù)返回查詢結(jié)果。
(2)出入庫(kù)查詢:
本功能實(shí)現(xiàn)管理員對(duì)倉(cāng)庫(kù)貨物出入庫(kù)立即記錄的查詢,由管理員填寫查詢要求,由數(shù)據(jù)庫(kù)返回查詢結(jié)果。
1.4.2庫(kù)存查詢流程圖
輸入查詢條件到數(shù)據(jù)庫(kù)查詢生成查詢信息
1.4.3出入庫(kù)查詢流程圖
輸入查詢條件到數(shù)據(jù)庫(kù)查詢生成查詢信息
二、倉(cāng)庫(kù)管理系統(tǒng)系統(tǒng)的建模
2.1 用例圖的建立
2.1.1操作員的用例圖:
倉(cāng)庫(kù)領(lǐng)料用戶登錄倉(cāng)庫(kù)進(jìn)貨退出系統(tǒng)倉(cāng)庫(kù)退貨操作員用戶注銷倉(cāng)庫(kù)退料
2.1.2管理員用例圖:
供應(yīng)商信息維護(hù)用戶登錄倉(cāng)庫(kù)信息維護(hù)用戶注銷倉(cāng)庫(kù)盤點(diǎn)管理員退出系統(tǒng)庫(kù)存查詢倉(cāng)庫(kù)歷史記錄查詢 9
2.1.3總用例圖:
倉(cāng)庫(kù)進(jìn)貨商品領(lǐng)料人商品調(diào)撥倉(cāng)庫(kù)退貨倉(cāng)庫(kù)盤點(diǎn)倉(cāng)庫(kù)信息維護(hù)倉(cāng)庫(kù)領(lǐng)料庫(kù)存查詢操作員商品供應(yīng)商管理員業(yè)務(wù)分析商品退料用戶注銷退出登錄用戶登錄供應(yīng)商信息維護(hù)倉(cāng)庫(kù)歷史記錄查詢商品退料人
2.2 時(shí)序圖的生成
2.2.1倉(cāng)庫(kù)盤點(diǎn)時(shí)序圖:
操作員管理員商品盤點(diǎn)模塊信息打印模塊
1、盤點(diǎn)信息
2、審核后盤點(diǎn)信息
3、盤點(diǎn)信息列表
4、盤點(diǎn)信息打印表
2.2.2倉(cāng)庫(kù)管理時(shí)序圖:
操作員管理員進(jìn)貨模塊退貨模塊進(jìn)貨進(jìn)貨清單進(jìn)貨報(bào)表退貨退貨清單退貨報(bào)表
2.2.4查詢時(shí)序圖:
管理員歷史記錄查詢模塊退換貨模塊庫(kù)存信息模塊查詢條件查詢信息退換貨信息查詢條件查詢信息庫(kù)存信息
2.3 活動(dòng)圖的生成
2.3.1入庫(kù)活動(dòng)圖:
進(jìn)貨輸入名稱輸入型號(hào)入庫(kù)填寫進(jìn)貨單
存儲(chǔ)信息 2.3.2出庫(kù)活動(dòng)圖:
核對(duì)領(lǐng)料單重新填寫領(lǐng)料單失敗取消查詢庫(kù)存取消發(fā)放物料成功不滿足進(jìn)貨進(jìn)貨滿足更新庫(kù)存存儲(chǔ)信息
2.3.3查詢活動(dòng)圖:
輸入查詢條件查詢輸出查詢結(jié)果繼續(xù)查詢存在取消
三、類圖的生成
供應(yīng)商-供應(yīng)商ID供應(yīng)零件名稱1...n管理1操作員-姓名-年齡-性別-工作號(hào)+修改()管理員管理1...n1-姓名-年齡-性別-工作號(hào)+修改()1...n1..n1...n1...n入庫(kù)單領(lǐng)料單-時(shí)間-操作員ID-數(shù)目-價(jià)格+填寫()+查詢()+更改()物料匯總表+增加()+刪除()+查詢()-時(shí)間-數(shù)量-使用部門+填寫()+查詢()+更改()物料-名稱-型號(hào)-庫(kù)存量
第二篇:倉(cāng)庫(kù)管理系統(tǒng)課程設(shè)計(jì) UML
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
二、倉(cāng)庫(kù)信息管理系統(tǒng)分析與設(shè)計(jì)
(一)《倉(cāng)庫(kù)信息管理系統(tǒng)》的需求建模
1、需求分析
倉(cāng)庫(kù)信息管理系統(tǒng)要能完成以下功能:
倉(cāng)庫(kù)存放的貨物品種繁多,堆存方式以及處理方式也非常復(fù)雜,隨著業(yè)務(wù)量的增加,倉(cāng)庫(kù)管理者需要處理的信息量會(huì)大幅上升,因此往往很難及時(shí)準(zhǔn)確的掌握整個(gè)倉(cāng)庫(kù)的運(yùn)作狀態(tài)。針對(duì)這一情況,為了減輕倉(cāng)庫(kù)管理員和操作員的工作負(fù)擔(dān),此系統(tǒng)在滿足倉(cāng)庫(kù)的基本管理功能基礎(chǔ)上發(fā)揮信息系統(tǒng)的智能化。
根據(jù)要求可將系統(tǒng)分為四個(gè)模塊(1)用戶登錄模塊
普通操作員和管理人員登錄此系統(tǒng),執(zhí)行倉(cāng)庫(kù)管理的一些操作,但是普通操作員和管理人員所能執(zhí)行的功能不一樣。(2)倉(cāng)庫(kù)管理模塊
管理員工作需要登陸系統(tǒng),才能夠進(jìn)行操作,系統(tǒng)中的各項(xiàng)數(shù)據(jù)都不允許外人隨便查看和更改,所以設(shè)置登陸模塊是必須的??梢詧?zhí)行倉(cāng)庫(kù)進(jìn)貨,退貨,領(lǐng)料,退料;商品調(diào)撥,倉(cāng)庫(kù)盤點(diǎn)等功能。(3)業(yè)務(wù)查詢模塊
在用戶登錄系統(tǒng)后,可以執(zhí)行庫(kù)存查詢,銷售查詢,倉(cāng)庫(kù)歷史記錄查詢。
(4)系統(tǒng)設(shè)置模塊
顯示當(dāng)前倉(cāng)庫(kù)系統(tǒng)中的信息,在系統(tǒng)中可以執(zhí)行供應(yīng)商設(shè)置,倉(cāng)庫(kù)設(shè)置。
2、功能模塊分析(1)登錄模塊
? 普通操作員:顯示當(dāng)天倉(cāng)庫(kù)中的所有庫(kù)存的信息。? 管理員:修改倉(cāng)庫(kù)中的庫(kù)存信息。
? 用戶注銷:在用戶執(zhí)行完倉(cāng)庫(kù)功能時(shí),注銷。? 用戶退出。(2)管理模塊
? 倉(cāng)庫(kù)庫(kù)存的進(jìn)貨與退貨;
? 倉(cāng)庫(kù)中的庫(kù)存需要領(lǐng)料和退料功能;
? 倉(cāng)庫(kù)也可以完成不同地區(qū)的商品在此倉(cāng)庫(kù)的商品調(diào)撥任務(wù); ? 用戶人員也可以在當(dāng)天之后對(duì)倉(cāng)庫(kù)中的庫(kù)存進(jìn)行盤點(diǎn)。(3)查詢模塊
? 顯示當(dāng)前倉(cāng)庫(kù)商品信息,并執(zhí)行庫(kù)存查詢; ? 顯示倉(cāng)庫(kù)信息,對(duì)商品的銷售量進(jìn)行查詢; ? 此系統(tǒng)還可以對(duì)倉(cāng)庫(kù)歷史記錄進(jìn)行查詢。(4)設(shè)置模塊
? 供應(yīng)商設(shè)置 ? 倉(cāng)庫(kù)設(shè)置
3、工作內(nèi)容及要求
? 進(jìn)一步細(xì)化需求分析的內(nèi)容,識(shí)別出系統(tǒng)的參與者,并完成用例圖; 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
將用例圖中的每個(gè)用例都寫成相應(yīng)的事件流文檔;
進(jìn)一步使用活動(dòng)圖來(lái)描述每個(gè)用例,為后續(xù)的系統(tǒng)設(shè)計(jì)做好準(zhǔn)備;
按照系統(tǒng)的功能分析,從用例的描述中提取出系統(tǒng)的對(duì)象類和界面類,建立類圖;
分析類圖中的實(shí)體類和實(shí)體類之間的關(guān)系,畫出數(shù)據(jù)庫(kù)的邏輯模型圖(只包含實(shí)體類,且注明角色和階元)。
? 對(duì)數(shù)據(jù)庫(kù)的邏輯模型進(jìn)行優(yōu)化,取消多對(duì)多的聯(lián)系,完成最終的邏輯模型設(shè)計(jì); ? 使用交互作用圖或狀態(tài)機(jī)圖完成系統(tǒng)動(dòng)態(tài)行為的建模。(建議使用順序圖按功能分別描述)
4、創(chuàng)建SRS文檔:
? 引言
? 倉(cāng)庫(kù)管理系統(tǒng)將24小時(shí)為用戶服務(wù)。? 用途
? SRS文檔將作為SDLC設(shè)計(jì)和編碼階段的輸入。? 作用域
? 管理員直接對(duì)系統(tǒng)進(jìn)行管理。? 功能性需求
? 操作員需要取得管理員的認(rèn)可才可以登錄此系統(tǒng)。? 操作員可以查詢庫(kù)存的信息。
? 系統(tǒng)管理員可以管理登錄系統(tǒng)以后對(duì)倉(cāng)庫(kù)進(jìn)行管理
? 因?yàn)椴皇敲總€(gè)人都可以隨便修改系統(tǒng)的,所以系統(tǒng)管理員可以登錄進(jìn)系統(tǒng)以后對(duì)用戶的權(quán)限信息進(jìn)行管理。
? 界面需求
? 界面應(yīng)該清晰易懂。? 運(yùn)行環(huán)境
? 此系統(tǒng)可以在網(wǎng)絡(luò)上進(jìn)行運(yùn)行。? ? ? ? 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
用例圖如下:
分析:操作員在進(jìn)行驗(yàn)證后登陸系統(tǒng),可以執(zhí)行商品的進(jìn)退貨的記錄信息的查詢與管理等操作。
用戶登錄**倉(cāng)庫(kù)領(lǐng)料倉(cāng)庫(kù)進(jìn)貨**退出系統(tǒng)****商品調(diào)撥**操作員****用戶注銷*倉(cāng)庫(kù)退料*倉(cāng)庫(kù)退貨c
圖1 操作員用例圖
分析:此用戶是管理員,可以對(duì)倉(cāng)庫(kù)信息進(jìn)行維護(hù),倉(cāng)庫(kù)商品進(jìn)行盤點(diǎn),業(yè)務(wù)分析,歷史記錄查詢,供應(yīng)商信息維護(hù)和倉(cāng)庫(kù)查詢操作。
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
倉(cāng)庫(kù)信息維護(hù)用戶登錄****用戶注銷******管理員***退出系統(tǒng)倉(cāng)庫(kù)盤點(diǎn)*倉(cāng)庫(kù)查詢**供應(yīng)商信息維護(hù)*業(yè)務(wù)分析歷史記錄查詢*
圖2 管理員用例圖
分析:該用戶為供應(yīng)商,可以對(duì)執(zhí)行倉(cāng)庫(kù)進(jìn)貨和退貨的查詢與管理操作。
倉(cāng)庫(kù)進(jìn)貨***商品供應(yīng)商*倉(cāng)庫(kù)退貨
圖3 供應(yīng)商用例圖
(二)《倉(cāng)庫(kù)管理系統(tǒng)》的靜態(tài)建模
靜態(tài)建模用于描述軟件的靜態(tài)成分,又叫結(jié)構(gòu)建模。它包含類關(guān)系圖和對(duì)象關(guān)系圖。用于描述軟件系統(tǒng)的成分之間的關(guān)系和依賴性。1)類的分析與設(shè)計(jì)
? 確定初始類圖 ? 提取類的屬性 ? 提取類的操作 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
? 類之間的關(guān)系
去除不必要的類和不正確的類:
1.冗余類:若兩個(gè)類表述同一信息,保留最具有描述能力的類; 2.不相干的類:去掉與問題沒有多少關(guān)系和根本不相關(guān)的類;
3.模糊類:類必須是確定的,有些臨時(shí)類邊界定義不對(duì),或范圍太廣,應(yīng)排除; 4.屬性:如果有些名詞是用來(lái)描述某個(gè)類的,那么它一定是這個(gè)類的屬性。5.操作:如果所描述的操作并不適用于對(duì)象并且被自身所操作,那么這一定不是類。這樣可以得到相關(guān)的三種類關(guān)系: ? 人員信息包類圖 ? 接口信息包類圖 ? 系統(tǒng)事務(wù)信息包類圖 2)確定類之間的關(guān)系
兩個(gè)類之間的相互依賴就是關(guān)聯(lián),關(guān)聯(lián)常用描述性動(dòng)詞或動(dòng)詞組來(lái)表示,其中有物理位置的表示、傳導(dǎo)的動(dòng)作、通信、所有者關(guān)系及條件的滿足等等。通過以上方法可以確定類圖:
① 人員信息包類圖里包含:操作員類、管理員類、供應(yīng)商類、商品進(jìn)貨模塊類、商品退換模塊類、商品打印模塊類、庫(kù)存查詢模塊類、商品盤點(diǎn)模塊類、歷史信息查詢模塊類和商品調(diào)撥模塊類。
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
**操作員-姓名-id號(hào)-權(quán)限+倉(cāng)庫(kù)進(jìn)貨()*+倉(cāng)庫(kù)退貨()+倉(cāng)庫(kù)領(lǐng)料()+倉(cāng)庫(kù)退料()+商品調(diào)撥()*+用戶登錄()+用戶注銷()+退出系統(tǒng)()+盤點(diǎn)信息打印報(bào)表()+進(jìn)貨商品打印報(bào)表()*+退換商品打印報(bào)表()+商品庫(kù)存信息()**商品進(jìn)貨模塊+商品清單()+退貨清單()+查詢信息()庫(kù)存查詢模塊**商品打印模塊*
圖4 人員信息包類圖
供應(yīng)商-供應(yīng)商姓名-供應(yīng)商id號(hào)-聯(lián)系方法+進(jìn)貨()+退貨()*1管理員-姓名-id號(hào)-權(quán)限+供應(yīng)商信息維護(hù)()+倉(cāng)庫(kù)信息維護(hù)()+盤點(diǎn)信息()+倉(cāng)庫(kù)查詢()+業(yè)務(wù)分析()+用戶注銷()+退出系統(tǒng)()+歷史記錄查詢()+用戶登錄()+查詢結(jié)果()*歷史信息查詢模塊*+查詢條件()+進(jìn)貨記錄()+商品調(diào)撥記錄()+商品盤點(diǎn)信息()*********商品退換模塊*商品盤點(diǎn)模塊*+審核后盤點(diǎn)信息()+查詢信息()**商品調(diào)撥模塊+查詢信息()+查詢條件()*+盤點(diǎn)信息列表()8 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
② 接口信息包類圖里包含:用戶登錄類、倉(cāng)庫(kù)管理類、系統(tǒng)管理類和業(yè)務(wù)查詢類。
倉(cāng)庫(kù)管理+倉(cāng)庫(kù)進(jìn)貨()+倉(cāng)庫(kù)退貨()+倉(cāng)庫(kù)領(lǐng)料()+倉(cāng)庫(kù)退料()+倉(cāng)庫(kù)調(diào)撥()+倉(cāng)庫(kù)盤點(diǎn)()用戶登錄+用戶登錄()+用戶注銷()+退出系統(tǒng)()系統(tǒng)設(shè)置-供應(yīng)商設(shè)置-倉(cāng)庫(kù)信息維護(hù)業(yè)務(wù)查詢+庫(kù)存查詢()+業(yè)務(wù)分析()+歷史記錄查詢()
圖5 接口信息包類圖
③系統(tǒng)事務(wù)信息包類圖包含:用戶登錄類、供應(yīng)商管理類、業(yè)務(wù)分析類、查詢歷史信息類、倉(cāng)庫(kù)信息維護(hù)類、領(lǐng)料類、退料類、退換類、盤點(diǎn)類、調(diào)撥類和倉(cāng)庫(kù)查詢類。
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
調(diào)撥供應(yīng)商管理-該操作id號(hào)-日期-管理員id號(hào)+增加供應(yīng)商()倉(cāng)庫(kù)信息維護(hù)-該操作id號(hào)-日期退料用戶登錄-該操作id號(hào)-登錄日期-登錄人id-name+用戶登錄()+用戶注銷()+退出系統(tǒng)()退貨-交易id-日期-操作員-交易id-日期-退料人-操作員倉(cāng)庫(kù)查詢-該操作id-日期領(lǐng)料-交易id-日期-領(lǐng)料員-操作員查詢歷史信息-該操作id-日期業(yè)務(wù)分析-操作id號(hào)-日期-管理員id+opname()盤點(diǎn)-交易id-日期-管理員id-倉(cāng)庫(kù)id
圖6 系統(tǒng)事務(wù)信息包類圖
(三)《倉(cāng)庫(kù)管理系統(tǒng)》的動(dòng)態(tài)建模
在完成靜態(tài)建模后,需要對(duì)系統(tǒng)實(shí)現(xiàn)動(dòng)態(tài)建模。需要?jiǎng)?chuàng)建
? 活動(dòng)關(guān)系圖:表示系統(tǒng)的靜態(tài)成分為了完成過程需要執(zhí)行的活動(dòng)的順序;
? 交互關(guān)系圖:表示軟件系統(tǒng)靜態(tài)成分之間的交互,常用序列關(guān)系圖和通信關(guān)系圖。(1)活動(dòng)關(guān)系圖
活動(dòng)關(guān)系圖是用來(lái)對(duì)特定過程的控制流進(jìn)行建模。
分析:管理員在登錄系統(tǒng)后,查看銷售記錄和查看商品庫(kù)存情況,如果缺貨就通知操作員缺貨商品清單,操作員即可聯(lián)系供應(yīng)商按缺貨清單提供貨物,然后管理員更新數(shù)據(jù)庫(kù)結(jié)束,如果不缺貨直接結(jié)束。
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
通知操作員缺貨商品清單查看銷售記錄聯(lián)系供應(yīng)商按缺貨清單提供貨物查看商品庫(kù)存情況[ 缺貨] 接受貨物更新庫(kù)存數(shù)據(jù)庫(kù)[ 不缺貨 ]
圖7 倉(cāng)庫(kù)系統(tǒng)的活動(dòng)圖
(2)交互關(guān)系圖:通信關(guān)系圖、序列關(guān)系圖
①通信關(guān)系圖以消息的形式表示對(duì)象之間的交互。通信圖集中在活動(dòng)著的對(duì)象上,表現(xiàn)的是相互通信的對(duì)象之間的消息傳遞,不參照時(shí)間。通信圖通過在消息上加序號(hào)表示消息傳遞的次序。序列號(hào)放在消息之前作為消息的前綴。
注:通信關(guān)系圖不描繪對(duì)象的生命線。A.管理員盤點(diǎn)過程協(xié)助圖
分析:操作員把盤點(diǎn)信息發(fā)送給管理員,管理員審查后盤點(diǎn)信息,在倉(cāng)庫(kù)商品盤點(diǎn)模塊中盤點(diǎn)信息列表,然后交由信息打印模塊打印盤點(diǎn)信息列表,給操作員。
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
操作員盤點(diǎn)信息管理員盤點(diǎn)信息打印列表審查后盤點(diǎn)信息商品信息打印模塊盤點(diǎn)信息列表商品盤點(diǎn)模塊
圖8 管理員盤點(diǎn)過程協(xié)作圖
B.商品管理協(xié)作圖
分析:操作員通知供應(yīng)商進(jìn)貨,供應(yīng)商打印出進(jìn)貨清單,操作員也可以對(duì)進(jìn)貨退貨進(jìn)行管理,供應(yīng)商打印出退貨清單。
商品進(jìn)貨進(jìn)貨商印品打報(bào)表進(jìn)貨清單操作員退貨商品供應(yīng)商表庫(kù)存查詢商品退換退貨清單庫(kù)存信息進(jìn)貨商品打印報(bào)
圖9 商品管理協(xié)作圖 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
C.倉(cāng)庫(kù)歷史記錄查詢協(xié)作圖
分析:管理員應(yīng)該先登錄系統(tǒng)。當(dāng)管理員登錄系統(tǒng)以后,可以查詢歷史信息,看到商品進(jìn)貨、商品盤點(diǎn)、商品調(diào)撥的歷史記錄。
商品進(jìn)貨管理員查詢條件歷史信息查詢進(jìn)貨、退貨記錄查詢條件商品調(diào)撥商品盤點(diǎn)圖10 倉(cāng)庫(kù)歷史記錄查詢協(xié)作圖
②序列關(guān)系圖
序列關(guān)系圖以按時(shí)間排序的消息形式來(lái)表示對(duì)象之間的交互。序列關(guān)系圖和通信關(guān)系圖的區(qū)別在于通信關(guān)系圖情調(diào)對(duì)象的組織結(jié)構(gòu),而序列關(guān)系圖則按時(shí)間順序顯示對(duì)象之間交互的消息。在序列關(guān)系圖中,可以沿x軸方向排列對(duì)象。將啟動(dòng)交互的對(duì)象放在最左邊。消息序列中后來(lái)的對(duì)象則放在交互啟動(dòng)對(duì)象的右邊。在交互中,對(duì)象發(fā)送和接收的消息按時(shí)間升序沿y軸防止。
注:和通信關(guān)系圖不同,序列關(guān)系圖描述對(duì)象生命線。
A.倉(cāng)庫(kù)盤點(diǎn)過程序列圖 分析:操作員將盤點(diǎn)信息發(fā)送給管理員,管理員審查盤點(diǎn)信息,然后盤點(diǎn)信息列表交給商品打印模塊打印后發(fā)給操作員執(zhí)行相關(guān)商品操作。
商品盤點(diǎn)信息
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
操作員管理員商品盤點(diǎn)模塊商品打印模塊盤點(diǎn)信息盤點(diǎn)信息列表()審核后盤點(diǎn)信息盤點(diǎn)信息打印報(bào)表()
圖11 倉(cāng)庫(kù)盤點(diǎn)過程序列圖
B.商品管理序列圖
分析:操作通知商品供應(yīng)商進(jìn)貨、退貨,商品供應(yīng)商將商品清單和退貨商品清單發(fā)送給商品進(jìn)貨模塊,商品進(jìn)貨模塊將進(jìn)貨商品打印報(bào)表給操作員,商品退貨模塊將商品退換報(bào)表打印發(fā)給操作員,操作員也可以查詢庫(kù)存,庫(kù)存庫(kù)存模塊將庫(kù)存查詢信息發(fā)送給操作員。
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
操作員商品供應(yīng)商商品進(jìn)貨模塊商品退換模塊進(jìn)貨()商品清單()進(jìn)貨商品打印報(bào)表()退貨清單()退貨()退換商品打印報(bào)表()查詢條件()商品庫(kù)存信息
圖12 商品管理序列圖
C.倉(cāng)庫(kù)歷史記錄序列圖
分析:管理員登錄系統(tǒng)查詢歷史信息模塊,歷史信息則查詢商品進(jìn)貨退貨模塊、商品調(diào)撥模塊、商品盤點(diǎn)模塊,之后各模塊將查詢得到的信息發(fā)送給歷史信息模塊,最后由歷史信息模塊統(tǒng)一將信息發(fā)給管理員。
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
管理員歷史信息查詢模塊商品進(jìn)貨退貨模塊商品調(diào)撥模塊商品盤點(diǎn)模塊查詢信息()查詢條件()進(jìn)貨記錄()查詢信息()商品調(diào)撥記錄()查詢信息()商品盤點(diǎn)信息()查詢結(jié)果()
圖13 倉(cāng)庫(kù)歷史記錄序列圖 無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
(四)《倉(cāng)庫(kù)管理系統(tǒng)》的架構(gòu)建模
架構(gòu)建模使您能夠了解組件在組織網(wǎng)絡(luò)中的物理分布。您需要對(duì)軟件系統(tǒng)的架構(gòu)進(jìn)行建模以確定組件的設(shè)計(jì)是否符合軟件系統(tǒng)的需要。軟件架構(gòu)描述軟件按系統(tǒng)的所有組件以及這些組件之間的關(guān)系。要對(duì)系統(tǒng)軟件的架構(gòu)進(jìn)行建模,您需要?jiǎng)?chuàng)建以下關(guān)系圖:
? 包關(guān)系圖:描述根據(jù)特定條件分組在一起的軟件系統(tǒng)構(gòu)成。? 組件關(guān)系圖:描述軟件系統(tǒng)的可執(zhí)行構(gòu)成。
? 部署關(guān)系圖:描述軟件系統(tǒng)組件的各種處理設(shè)備。
a)組件關(guān)系圖:組件可實(shí)現(xiàn)一組接口并構(gòu)成軟件系統(tǒng)的可執(zhí)行部分。
分析:該圖是系統(tǒng)的各個(gè)組件圖,由系統(tǒng)登錄、倉(cāng)庫(kù)管理管理、信息查詢、系統(tǒng)設(shè)置。
倉(cāng)庫(kù)管理信息查詢系統(tǒng)登錄系統(tǒng)設(shè)置
圖14 組件關(guān)系圖
b)部署關(guān)系圖:顯示需要在其中部署軟件組件的硬件。
分析:下圖表明系統(tǒng)采用數(shù)據(jù)庫(kù)系統(tǒng)作為后臺(tái)數(shù)據(jù)提供者,然后客戶登錄使用系統(tǒng),也可以對(duì)系統(tǒng)中的信息進(jìn)行打印操作。
無(wú)錫職業(yè)技術(shù)學(xué)院實(shí)踐環(huán)節(jié)材料撰寫用紙
數(shù)據(jù)服務(wù)器客戶機(jī)1客戶機(jī)n打印機(jī)
圖15 部署關(guān)系圖
第三篇:UML食堂售飯系統(tǒng)分析與設(shè)計(jì)
食堂售飯系統(tǒng)分析與設(shè)計(jì)
目錄
1.需求分析與描述.............................................................................1 1.1 需求分析.................................................................................1 1.2 用例分析.................................................................................1 1.3 用例模型圖.............................................................................3 1.4 用例事件流描述.....................................................................4 2.領(lǐng)域模型分析...................................................................................7 3.工作流程分析...................................................................................8
食堂售飯系統(tǒng)分析與設(shè)計(jì)
1.需求分析與描述
1.1 需求分析
? 持卡人:辦理新飯卡,給飯卡充值,注銷飯卡,掛失/撤銷掛失飯卡,補(bǔ)辦新卡,退還飯卡,使用飯卡消費(fèi),查看個(gè)人消費(fèi)的明細(xì)。? 管理部門:通過計(jì)算機(jī)系統(tǒng)具體實(shí)現(xiàn)持卡人需求中的項(xiàng)目。
? 食堂工作人員:通過自動(dòng)售飯機(jī)輸入飯菜的金額,通過計(jì)算機(jī)系統(tǒng)對(duì)當(dāng)天的營(yíng)業(yè)情況進(jìn)行匯總統(tǒng)計(jì)。
1.2 用例分析
1)系統(tǒng)的邊界
對(duì)于系統(tǒng)邊界,系統(tǒng)首先會(huì)包含需求分析中所需要軟件實(shí)現(xiàn)的各項(xiàng)功能,此外還須確定食堂售飯系統(tǒng)是否包括管理部門和食堂工作人員。
就食堂售飯系統(tǒng)而言,其主要功能是讓用戶(即持卡人)享受服務(wù)(即用飯卡使購(gòu)買飯菜的過程繞過了付款及找零的環(huán)節(jié),提高了服務(wù)效率),而管理部門和食堂工作人員的作用都是為了使用戶免于對(duì)系統(tǒng)的直接操作而設(shè)置的,因而此兩者應(yīng)歸為食堂售飯系統(tǒng)的內(nèi)部,相當(dāng)于用戶和具體的計(jì)算機(jī)軟硬件系統(tǒng)之間的接口。
2)系統(tǒng)的執(zhí)行者
持卡人需要通過食堂售飯系統(tǒng)來(lái)使用其所持有飯卡買飯,因而是整個(gè)系統(tǒng)的執(zhí)行者;
管理部門根據(jù)持卡人的需求操作計(jì)算機(jī)系統(tǒng)從而實(shí)現(xiàn)與飯卡相關(guān)信息的管理,相當(dāng)于其中飯卡信息管理子系統(tǒng)的使用者,是位于食堂售飯系統(tǒng)內(nèi)部的執(zhí)行者;
食堂工作人員同樣通過操作計(jì)算機(jī)系統(tǒng)來(lái)實(shí)現(xiàn)購(gòu)買飯菜過程中的扣費(fèi)
食堂售飯系統(tǒng)分析與設(shè)計(jì)
功能以及對(duì)營(yíng)業(yè)情況進(jìn)行的匯總統(tǒng)計(jì)的功能,相當(dāng)于其中消費(fèi)處理與統(tǒng)計(jì)子系統(tǒng)的使用者,也是位于食堂售飯系統(tǒng)內(nèi)部的執(zhí)行者。
這樣得到了系統(tǒng)中的執(zhí)行者: ? 持卡人 ? 管理部門 ? 食堂工作人員
3)系統(tǒng)的用例
根據(jù)用戶需求及執(zhí)行者的分析,得到系統(tǒng)的用例如下: ? 辦理新飯卡 ? 飯卡充值 ? 注銷飯卡
? 掛失/撤銷掛失飯卡 ? 補(bǔ)辦飯卡 ? 退還飯卡
? 查看個(gè)人消費(fèi)的明細(xì)
? 扣除飯卡費(fèi)用(對(duì)應(yīng)于持卡人使用飯卡消費(fèi))? 匯總統(tǒng)計(jì)
食堂售飯系統(tǒng)分析與設(shè)計(jì)
1.3 用例模型圖
根據(jù)前面的分析,可以得到系統(tǒng)的用例模型圖,如上圖所示。對(duì)其中3個(gè)執(zhí)行者和8個(gè)用例的簡(jiǎn)單描述如下:
執(zhí)行者:
? 持卡人:飯卡的持有者,通過食堂工作人員的操作直接使用飯卡進(jìn)行消費(fèi),并通過管理部門對(duì)其飯卡進(jìn)行管理。
? 管理部門:負(fù)責(zé)根據(jù)持卡人的需求操作計(jì)算機(jī)系統(tǒng),從而實(shí)現(xiàn)辦新卡、充值、注銷、掛失/撤銷掛失,補(bǔ)卡、退卡、查看消費(fèi)明細(xì)等功能。? 食堂工作人員:負(fù)責(zé)根據(jù)飯菜的金額操作自動(dòng)售飯機(jī)實(shí)現(xiàn)扣費(fèi)功能,沒隔一段時(shí)間對(duì)營(yíng)業(yè)情況進(jìn)行匯總統(tǒng)計(jì)并打印出相關(guān)文檔。
食堂售飯系統(tǒng)分析與設(shè)計(jì)
用例:
? 辦理新飯卡:管理部門人員負(fù)責(zé)在用戶申請(qǐng)新卡時(shí)替用戶辦理新飯卡。? 飯卡充值:管理部門人員負(fù)責(zé)根據(jù)持卡人所給的金額向飯卡中追加存款金額。
? 注銷飯卡:管理部門人員負(fù)責(zé)在持卡人補(bǔ)辦新卡或退卡時(shí)注銷其原有飯卡。
? 掛失/撤銷掛失飯卡:管理部門人員負(fù)責(zé)在持卡人因飯卡遺失申請(qǐng)掛失時(shí)進(jìn)行掛失飯卡操作,在其找回飯卡時(shí)撤銷對(duì)飯卡的掛失。
? 補(bǔ)辦飯卡:管理部門人員負(fù)責(zé)在持卡人確認(rèn)飯卡丟失或者損壞時(shí)替其補(bǔ)辦飯卡,更改飯卡版本號(hào),并實(shí)現(xiàn)只能使用最新版本號(hào)的飯卡。? 退還飯卡:管理部門人員負(fù)責(zé)在持卡人申請(qǐng)退卡時(shí)清除卡內(nèi)信息,退還剩余金額和押金。
? 查看個(gè)人消費(fèi)的明細(xì):管理部門人員負(fù)責(zé)在持卡人申請(qǐng)查看其消費(fèi)明細(xì)時(shí)執(zhí)行次操作。
? 扣除飯卡費(fèi)用:食堂工作人員負(fù)責(zé)在持卡人持卡消費(fèi)時(shí)根據(jù)飯菜的價(jià)格對(duì)飯卡進(jìn)行扣費(fèi)操作。
? 匯總統(tǒng)計(jì):食堂工作人員負(fù)責(zé)在每天營(yíng)業(yè)結(jié)束后對(duì)營(yíng)業(yè)情況進(jìn)行匯總統(tǒng)計(jì)并打印相關(guān)報(bào)表。
1.4 用例事件流描述
1.辦理新飯卡
? 基本流
1.用戶申請(qǐng)辦理新飯卡
2.管理部門收取其押金和存款,記錄持卡人相關(guān)信息 3.管理部門創(chuàng)建新飯卡的相關(guān)信息 4.用戶領(lǐng)取新飯卡 ? 備選流
無(wú)
食堂售飯系統(tǒng)分析與設(shè)計(jì)
2.飯卡充值
? 基本流
1.持卡人申請(qǐng)對(duì)飯卡充值 2.管理部門向持卡人收取現(xiàn)金
3.管理部門根據(jù)持卡人要求向飯卡中充值 ? 備選流
3.a 如果收取現(xiàn)金金額大于充值額度,管理部門向持卡人找零
3.注銷飯卡
? 基本流
1.持卡人申請(qǐng)注銷飯卡 2.管理部門注銷飯卡 ? 備選流
無(wú)
4.掛失/撤銷掛失飯卡
? 基本流
1.持卡人申請(qǐng)掛失/撤銷掛失飯卡 2.管理部門執(zhí)行相應(yīng)操作 ? 備選流
無(wú)
5.補(bǔ)辦新卡
? 基本流
1.持卡人申請(qǐng)補(bǔ)辦新卡
2.管理部門注銷持卡人原有飯卡,讀出余額,清除卡內(nèi)信息 3.管理部門創(chuàng)建新飯卡的相關(guān)信息 4.管理部門更新持卡人的相關(guān)信息
食堂售飯系統(tǒng)分析與設(shè)計(jì)
5.持卡人領(lǐng)取新飯卡 ? 備選流
無(wú)
6.退還飯卡
? 基本流
1.持卡人申請(qǐng)退還飯卡 2.管理部門收回飯卡
3.管理部門將押金退還持卡人并清除卡內(nèi)信息 ? 備選流
2.a 如果卡內(nèi)有剩余金額,管理部門想持卡人退還相應(yīng)金額
7.查看個(gè)人消費(fèi)的明細(xì)
? 基本流
1.持卡人申請(qǐng)查看個(gè)人消費(fèi)的明細(xì) 2.管理部門讓持卡人輸入飯卡密碼 3.持卡人查看其消費(fèi)的明細(xì) ? 備選流
2.a 如果飯卡密碼錯(cuò)誤,給出提示,結(jié)束
8.扣除飯卡費(fèi)用(對(duì)應(yīng)于持卡人使用飯卡消費(fèi))
? 基本流
1.持卡人購(gòu)買飯菜,將飯卡放到自動(dòng)售飯機(jī)上 2.食堂工作人員在自動(dòng)售飯機(jī)上輸入飯菜的金額 3.自動(dòng)售飯機(jī)查詢飯卡余額 4.卡內(nèi)金額扣除 ? 備選流
3.a 如果卡中金額不夠用,給出提示,結(jié)束 4.a 如果卡內(nèi)金額低于底線,給出提示,結(jié)束
食堂售飯系統(tǒng)分析與設(shè)計(jì)
9.匯總統(tǒng)計(jì)
? 基本流
1.食堂工作人員按需求對(duì)營(yíng)業(yè)情況進(jìn)行匯總統(tǒng)計(jì) 2.打印相關(guān)報(bào)表 ? 備選流
無(wú)
2.領(lǐng)域模型分析
食堂售飯系統(tǒng)分析與設(shè)計(jì)
3.工作流程分析
辦理新卡
飯卡充值
食堂售飯系統(tǒng)分析與設(shè)計(jì)
掛失/撤銷掛失飯卡
補(bǔ)辦飯卡
食堂售飯系統(tǒng)分析與設(shè)計(jì)
查看個(gè)人信息明細(xì)
注銷飯卡
食堂售飯系統(tǒng)分析與設(shè)計(jì)
退還飯卡
扣除金額
食堂售飯系統(tǒng)分析與設(shè)計(jì)
匯總統(tǒng)計(jì)
第四篇:圖書管理系統(tǒng)UML分析與設(shè)計(jì)
1.系統(tǒng)需求
系統(tǒng)的功能性需求描述如下:
·
圖書管理系統(tǒng)為管理員提供主功能界面。
·
圖書管理系統(tǒng)在啟動(dòng)時(shí)要求管理員輸人口令,只有口令正確,才可以進(jìn)入系統(tǒng)的主功能界面。
·
管理員負(fù)責(zé)對(duì)圖書管理系統(tǒng)的維護(hù)工作,因此系統(tǒng)應(yīng)賦予管理員對(duì)圖書信息、讀者信息和出版社信息進(jìn)行錄入、修改、查詢和刪除等功能的操作權(quán)限。
·
管理員作為讀者的代理實(shí)現(xiàn)借書與還書業(yè)務(wù)。
·
圖書信息、讀者信息和出版社信息保存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)表中。
在上述功能性需求分析的基礎(chǔ)上,可以寫出較為詳細(xì)的需求規(guī)格說明書,作為進(jìn)行系統(tǒng)分析、設(shè)計(jì)和實(shí)現(xiàn)的依據(jù)。需求分析規(guī)格說明書由系統(tǒng)最終用戶提出需求,系統(tǒng)分析人員負(fù)責(zé)編寫。圖書管理系統(tǒng)需求分析規(guī)格說明書如下:
·
這是一個(gè)圖書館圖書借閱管理的應(yīng)用系統(tǒng);
·
圖書管理系統(tǒng)負(fù)責(zé)將圖書、雜志借給讀者,前提條件是這些讀者在系統(tǒng)進(jìn)行了注冊(cè),圖書和雜志也在系統(tǒng)中進(jìn)行了注冊(cè);
·
圖書館負(fù)責(zé)新書的購(gòu)買,當(dāng)書和雜志已經(jīng)過時(shí)或者破舊不堪時(shí),可以將這些圖書和雜志從圖書館管理系統(tǒng)中刪除;
·
圖書管理員是圖書館的員工,負(fù)責(zé)與讀者打交道,并且是在系統(tǒng)提供的支持下開展工作;
·
圖書管理系統(tǒng)能夠容易地建立、修改和刪除系統(tǒng)中的信息,包括圖書信息、讀者信息、以及出版社信息等;
·
圖書管理系統(tǒng)能夠在所有流行的平臺(tái)環(huán)境(windows,uNIx等操作系統(tǒng))上運(yùn)行,并具有一個(gè)美觀的圖書用戶界面;
·
圖書管理系統(tǒng)容易擴(kuò)展新功能。
2.分析建模
? Use case diagram 分析
采用下列描述項(xiàng)撰寫用例的腳本。
· 用例名稱——表明用戶的意圖或用例的用途。
· 參與者——與該用例相關(guān)的參與者列表。
· 前置條件——一個(gè)條件列表,如果其中包含條件,則這些條件必須在訪問用例之前得到滿足。
· 后置條件——一個(gè)條件列表,如果其中包含條件,則這些條件將在用例完成以后得到滿足。
· 基本事件流——描述用例中各項(xiàng)活動(dòng)都正常進(jìn)行時(shí)用例的工作方式。
· 分支事件流——描述用例中某項(xiàng)活動(dòng)的子活動(dòng)各項(xiàng)工作都正常進(jìn)行時(shí)用例的工作式。
· 異常事件流——描述用例的變更工作方式,以及出現(xiàn)異?;虬l(fā)生錯(cuò)誤的情況下所執(zhí)行的路徑。
圖書管理系統(tǒng)中每個(gè)用例的腳本描述如下:
1.系統(tǒng)登錄
用例名稱:系統(tǒng)登錄
參與者:圖書管理員 1.1前置條件 無(wú)
1.2后置條件
如果用例成功,參與者可以啟動(dòng)系統(tǒng),使用系統(tǒng)提供的功能。反之,系統(tǒng)的狀態(tài)不發(fā)生變化。
1.3基本事件流
當(dāng)圖書管理員登錄系統(tǒng)時(shí),用例啟動(dòng)。
①系統(tǒng)提示用戶輸入用戶名和密碼。
②用戶輸入用戶名和密碼。
③系統(tǒng)驗(yàn)證輸入的用戶名和密碼,若正確,則用戶登錄到系統(tǒng)中。
1.4異常事件流
如果用戶輸入無(wú)效的用戶名/密碼,則系統(tǒng)顯示錯(cuò)誤信息。用戶可以選擇返回基本事件流的起始點(diǎn),重新輸入正確的用戶名/密碼;或者取消登錄,用例結(jié)束。
2.圖書借閱
用例名稱:借閱圖書
參與者:讀者,圖書管理員 2.1前置條件
在這個(gè)用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
2.2后置條件
如果這個(gè)用例成功實(shí)現(xiàn),則在系統(tǒng)中創(chuàng)建并存儲(chǔ)借閱記錄。2.3基本事件流
當(dāng)讀者借閱圖書時(shí),用例啟動(dòng)。
①登錄系統(tǒng)。
②輸人圖書ID和讀者ID。
③檢索讀者ID。
④檢索圖書ID。
⑤根據(jù)時(shí)間算法確定圖書借出日期和歸還日期。
⑥圖書館將圖書借給讀者。
⑦創(chuàng)建借閱記錄。
⑧存儲(chǔ)借閱記錄。2.4異常事件流
①如果讀者未注冊(cè),則系統(tǒng)顯示提示信息,用例被終止。
②如果要借圖書不存在,系統(tǒng)顯示提示信息,用例被終止。
③如果要借圖書都已借出,則系統(tǒng)提示信息,用例被終止。3.圖書歸還
用例名稱:圖書歸還
參與者:讀者,圖書管理員 3.1前置條件
在這個(gè)用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
3.2后置條件
如果這個(gè)用例成功實(shí)現(xiàn),則系統(tǒng)刪除借閱記錄;否則,系統(tǒng)的狀態(tài)不發(fā)生變化。3.3基本事件流
當(dāng)讀者歸還借閱的圖書時(shí),用例被啟動(dòng)。
①登錄系統(tǒng)。
②輸入圖書ID和讀者ID。③檢索圖書ID。
④檢索讀者ID。
⑤查詢圖書借閱記錄。⑥刪除借閱記錄。3.4異常事件流
①如果歸還圖書不存在,則系統(tǒng)顯示提示信息,用例被終止。②如果借閱記錄不存在,則系統(tǒng)顯示提示信息,用例被終止。4.讀者維護(hù)
用例名稱:讀者維護(hù) ‘ 參與者:圖書管理員 ’ 4.1前置條件
在這個(gè)用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。4.2后置條件
如果這個(gè)用例成功地實(shí)現(xiàn),則系統(tǒng)添加、修改或檢索讀者信息;否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
4.3基本事件流
當(dāng)圖書管理員維護(hù)讀者信息時(shí),用例被啟動(dòng)。①登錄系統(tǒng)。
②如果選擇的活動(dòng)是“添加讀者信息”,則執(zhí)行分支事件流4.3.1:添加讀者信息。③如果選擇的活動(dòng)是“修改讀者信息”,則執(zhí)行分支事件流4.3.2:修改讀者信息。④如果選擇的活動(dòng)是“檢索讀者信息”,則執(zhí)行分支事件流4.3.3:檢索讀者信息。4.3.1分支事件流
①提供讀者的信息,例如,讀者ID,讀者姓名、電話號(hào)碼等。②系統(tǒng)存儲(chǔ)讀者信息。4.3.2分支事件流 ①輸入讀者ID。
②查詢并顯示讀者信息。③更新系統(tǒng)中讀者信息。4.3.3分支事件流 ①輸入讀者ID。
②查詢并顯示讀者信息。4.4異常事件流
①如果讀者已經(jīng)存在,則系統(tǒng)顯示提示信息,用例被終止。②如果查詢不到讀者,則系統(tǒng)顯示提示信息,用例被終止。5.圖書維護(hù)
用例名稱:圖書維護(hù) 參與者:圖書管理員 5.1前置條件
在這個(gè)用例開始之前,圖書管理員必須登錄到系統(tǒng);否則,系統(tǒng)的狀態(tài)不發(fā)生變化。5.2后置條件
如果這個(gè)用例成功實(shí)現(xiàn),則系統(tǒng)添加、修改或檢索圖書信息;否則,系統(tǒng)的狀態(tài)不發(fā)生變化。
5.3基本事件流
當(dāng)圖書管理員維護(hù)圖書信息時(shí),用例被啟動(dòng)。①登錄系統(tǒng)。
②如果選擇的活動(dòng)是“添加圖書信息”,則執(zhí)行分支事件流5.3.1:添加圖書信息。③如果選擇的活動(dòng)是“修改圖書信息”,則執(zhí)行分支事件流5.3.2:修改圖書信息。④如果選擇的活動(dòng)是“檢索圖書信息”,則執(zhí)行分支事件流5.3.3:檢索圖書信息。5.3.1分支事件流
①提供圖書的信息,例如,圖書ID,圖書名稱、編著者、出版社、價(jià)格、出版年份籌 ②系統(tǒng)存儲(chǔ)圖書信息。5.3.2分支事件流 ①輸人圖書ID。
②查詢并顯示圖書信息。⑨更新系統(tǒng)中圖書信息。5.3.3分支事件流 ①輸入圖書ID。
②查詢并顯示圖書信息。5.4異常事件流
①如果該圖書已經(jīng)存在,則系統(tǒng)顯示提示信息,用例被終止。②如果查詢不到該圖書,則系統(tǒng)顯示提示信息,用例被終止。
系統(tǒng)總體功能結(jié)構(gòu)
? 根據(jù)用例圖定義分析包以及分析包(子系統(tǒng))之間的關(guān)系。
圖書管理系統(tǒng)分析包詳細(xì)結(jié)構(gòu)
? 定義類、用例實(shí)現(xiàn)(序列圖)、類關(guān)系圖(1)系統(tǒng)登錄
類圖:
系統(tǒng)登錄分析類圖
用例實(shí)現(xiàn):
登錄系統(tǒng)成功順序圖
登錄系統(tǒng)失敗順序圖
(2)登錄圖書信息
類圖:
登錄圖書信息分析類圖
用例實(shí)現(xiàn):
登錄圖書信息順序圖
(3)修改圖書信息
類圖:
修改圖書信息分析類圖
用例實(shí)現(xiàn):
修改圖書信息順序圖
(4)檢索圖書信息
類圖:
檢索圖書信息分析類圖
用例實(shí)現(xiàn):
檢索圖書信息順序圖
(5)借閱圖書 類圖:
借閱圖書分析類圖
用例實(shí)現(xiàn):
借閱圖書順序圖
(6)歸還圖書
類圖:
歸還圖書分析類圖
用例實(shí)現(xiàn):
歸還圖書順序圖
(7)借出圖書一覽表
類圖:
借出圖書一覽表分析類圖
用例實(shí)現(xiàn):
借出圖書一覽表順序圖
(8)類關(guān)系圖
系統(tǒng)實(shí)體類(業(yè)務(wù)類)之間的關(guān)系
(9)類的具體定義
1.圖書表類
編號(hào):A—l一0l
類名:圖書表
職責(zé):存放圖書館所能處理的所有圖書的基本信息
屬性:圖書代號(hào),圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁(yè)數(shù),價(jià)格,購(gòu)入日期,過期日期,書架代碼,備注
說明:該類存放所有圖書類的公用信息,它是“圖書借閱表”的父類。圖書也有身份,可以通過不同的ISBN相區(qū)別。在圖書管理系統(tǒng)中,圖書也有相關(guān)的行為,圖書因?yàn)槭褂闷谙薜瓤梢员讳N毀,所以圖書表也是系統(tǒng)中的一個(gè)對(duì)象。
2.登錄圖書界面類
編號(hào):A一1—02
類名:登錄圖書界面
職責(zé):提供輸入所有圖書信息的界面
屬性:圖書代號(hào),圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁(yè)數(shù),價(jià)格,購(gòu)入日期,過期日期,書架代碼,備注
說明:該類的所有屬性是非持久性的,但它為用戶保存永久性的圖書屬性提供了一個(gè)臨時(shí)的輸入接口。
3.登錄圖書信息控制類
編號(hào):A—l—03
類名:登錄圖書信息控制類
職責(zé):實(shí)現(xiàn)登錄圖書界面類與圖書表類所提供信息的交互。
屬性:圖書代號(hào),圖書名稱,編著者,ISBN代碼,出版社代碼,出版年份,頁(yè)數(shù),價(jià) 格,購(gòu)人日期,過期日期,書架代碼,備注
說明:該類的所有屬性是非持久性的,但它為用戶保存永久性的圖書屬性提供了一 個(gè)臨時(shí)的輸人接口。
4.出版社表類
編號(hào):B—l—01
類名:出版社表
職責(zé):存放圖書表所使用的所有圖書的出版單位
屬性:出版社代碼,出版社名稱
說明:該類與出版社表之間存在著單向關(guān)聯(lián)的關(guān)系。
5.讀者表類
編號(hào):C一1一Ol
類名:讀者表
職責(zé):存放圖書館的所有讀者的基本信息
屬性:讀者代碼,讀者名,聯(lián)絡(luò)電話
說明:該類類描述了物理借閱者的信息,代表了系統(tǒng)中存儲(chǔ)的物理借閱者的信息,即物理借閱者在系統(tǒng)中的賬戶。同時(shí),讀者表又是圖書借閱表的組成成分之一。
6.圖書借閱表類
編號(hào):D—l—01
類名:圖書借閱表
職責(zé):存放圖書館所能處理的所有圖書的基本信息
屬性:圖書代號(hào),讀者代號(hào),借書日期,還書日期,說明:該類描述了從圖書館借閱圖書的借閱記錄。一個(gè)該類的對(duì)象對(duì)應(yīng)一個(gè)借閱者和一本圖書。該類的對(duì)象的存在表示借閱者借閱了借閱記錄中記錄的物理圖書。當(dāng)圖書被歸還時(shí),要?jiǎng)h除借閱記錄(對(duì)象)。
? 形成系統(tǒng)分析規(guī)約(注意規(guī)約可能會(huì)有活動(dòng)圖、狀態(tài)圖等)
3.系統(tǒng)設(shè)計(jì)
設(shè)計(jì)模型的主要工作: 1).軟件平臺(tái)設(shè)計(jì)
軟件平臺(tái)是系統(tǒng)開發(fā)和運(yùn)行的環(huán)境。圖書管理系統(tǒng)的開發(fā)和運(yùn)行環(huán)境如下:
· 操作系統(tǒng)——操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中最重要的系統(tǒng)軟件。圖書管理系統(tǒng)可以運(yùn)行在Windows 95/98/2000/NT/Windows XP等桌面操作系統(tǒng)上。
· 支撐軟件——支撐軟件是協(xié)助人們開發(fā)和維護(hù)軟件的工具和環(huán)境軟件。數(shù)據(jù)庫(kù)系統(tǒng)、集成開發(fā)環(huán)境等都屬于支撐型軟件,例如,Delphi、Oracle、Java等。圖書管理系統(tǒng)使用的DBMS是Access 2003,數(shù)據(jù)庫(kù)中間件是JDBC。
· CASE平臺(tái)——采用CASE開發(fā)環(huán)境可保證系統(tǒng)開發(fā)質(zhì)量,提高開發(fā)效率,保證文檔的一致性。圖書管理系統(tǒng)的分析、設(shè)計(jì)j實(shí)現(xiàn)和部署模型是在Rose 2003建模環(huán)境下創(chuàng)建的,清晰地表達(dá)了在不同的開發(fā)階段的系統(tǒng)模型。2).結(jié)構(gòu)設(shè)計(jì)
結(jié)構(gòu)設(shè)計(jì)是把軟件分解成為多個(gè)子系統(tǒng),并確定出由各子系統(tǒng)及其接口構(gòu)成的軟件結(jié)構(gòu)。子系統(tǒng)是對(duì)軟件分解的一種中間形式,也是組織和描述軟件的一種方法。由多個(gè)子系統(tǒng)構(gòu)成系統(tǒng)軟件,每一個(gè)子系統(tǒng)又包括多個(gè)用例設(shè)計(jì)、設(shè)計(jì)類和接口。結(jié)構(gòu)設(shè)計(jì)具體要做的工作是將系統(tǒng)劃分成相對(duì)獨(dú)立、功能相對(duì)完整的子系統(tǒng)(包),將系統(tǒng)模型中的元素劃分到不同的包中,說明在什么地方定義包,各個(gè)包之間的依賴性和主要通信機(jī)制。從而得到盡可能簡(jiǎn)單和清晰的結(jié)構(gòu),各部分之間的依賴盡可能的少,并盡量減少雙向的依賴關(guān)系。3).詳細(xì)設(shè)計(jì)與界面設(shè)計(jì)
詳細(xì)設(shè)計(jì)是對(duì)軟件結(jié)構(gòu)中確定出的各個(gè)子系統(tǒng)內(nèi)部的設(shè)計(jì),需要分析和確定每一個(gè)子系統(tǒng)中的用例設(shè)計(jì)、設(shè)計(jì)類和接口。詳細(xì)設(shè)計(jì)還要描述每個(gè)類的細(xì)節(jié),并用動(dòng)態(tài)模型描述類的實(shí)例在具體環(huán)境中的行為。
界面設(shè)計(jì)是對(duì)人和外部系統(tǒng)與系統(tǒng)之間交互界面的設(shè)計(jì),包括輸入界面、輸出界面和輸入/輸出界面的設(shè)計(jì)。另外,界面設(shè)計(jì)還涉及到人機(jī)交互方式、人機(jī)交互流程、輸入輸出設(shè)備和媒體等內(nèi)容。4).?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)是系統(tǒng)存儲(chǔ)和管理數(shù)據(jù)的主要技術(shù)手段,數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)是根據(jù)給定的系統(tǒng)應(yīng)用需求和系統(tǒng)環(huán)境,設(shè)計(jì)出合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)。數(shù)據(jù)庫(kù)設(shè)計(jì)可分為概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)3個(gè)階段。用UML進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的主要思想,是利用UML的擴(kuò)展機(jī)制定義一些版型,用于表示與數(shù)據(jù)庫(kù)相關(guān)的一些概念。Rose 2003提供了對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)的支持,所設(shè)計(jì)的模型可以直接生成具體數(shù)據(jù)庫(kù)中的表、觸發(fā)器、存儲(chǔ)過程等。
? 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)框架視圖
· 用戶界面包(User Interface Package)——用于描述整個(gè)用戶界面使用的類,這些類提供的操作允許用戶瀏覽系統(tǒng)中的數(shù)據(jù),允許用戶輸入新數(shù)據(jù)。用戶界面類基于Java AWT包設(shè)計(jì),AWT包是Java語(yǔ)言中用于編寫用戶界面應(yīng)用程序的一個(gè)標(biāo)準(zhǔn)庫(kù)。用戶界面包與業(yè)務(wù)模型包相互協(xié)作,調(diào)用業(yè)務(wù)模型包中類實(shí)例的方法對(duì)圖書信息進(jìn)行檢索和插入操作。
。業(yè)務(wù)模型包(Business Model Package)——包含分析階段主要的類(借閱圖書類、歸還圖書類、圖書類、讀者類、出版社類)。在設(shè)計(jì)階段將進(jìn)一步細(xì)化這些類,從而完整地定義它們的操作,并為它們?cè)黾佑谰眯源鎯?chǔ)支持。業(yè)務(wù)模型包與數(shù)據(jù)庫(kù)包相互協(xié)作,訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù)?!?數(shù)據(jù)庫(kù)包(Database Package)——為業(yè)務(wù)模型包中的類提供數(shù)據(jù)存取服務(wù),以便這些類能夠?qū)崿F(xiàn)數(shù)據(jù)的永久性存儲(chǔ)功能。
。組件包(Utility Package)——包含一些可以被系統(tǒng)中其他包所使用的服務(wù)。
? 界面設(shè)計(jì)
? 詳細(xì)設(shè)計(jì)
圖書信息管理詳細(xì)設(shè)計(jì):
1.設(shè)計(jì)類圖
“圖書信息管理’’是一個(gè)用例,在“圖書信息管理”用例所提取的3個(gè)概念類的基礎(chǔ)上,可以確定該用例有3個(gè)設(shè)計(jì)類:登錄圖書信息(LoginBook)、修改圖書信息(UpdateBook)、檢索圖書信息(SelectRook)。如圖13.2所示為“圖書信息管理”用例的設(shè)計(jì)類圖。
“圖書信息管理”用例設(shè)計(jì)類圖
·
BpFrame類——屬于用戶界面包,定義系統(tǒng)檢索與修改界面的框架。
·
BpSelectFrame類——屬于用戶界面包,繼承BpFrame類,定義檢索界面框架。
·
BpUpdateFrame類——屬于用戶界面包,繼承BpSelectFrame類,定義系統(tǒng)修改界面框架。
·
SelectBook類——屬于用戶界面包,繼承BpSelectFrame類,與DbChoice類相關(guān)聯(lián),顯示圖書信息檢索界面。
·
LoginBook類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,與DbChoice類相關(guān)聯(lián),實(shí)現(xiàn)圖書信息登錄功能。
·
UpdateBook類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,與DbChoice類相關(guān)聯(lián),實(shí)現(xiàn)圖書信息修改功能。
·
DbChoice類——屬于組件包,定義了用于數(shù)據(jù)庫(kù)操作的實(shí)例變量和實(shí)例方法。
2.順序圖
為實(shí)現(xiàn)用例的功能,每個(gè)用例要實(shí)現(xiàn)的功能要通過用例中各個(gè)類的對(duì)象的操作的相互協(xié)作完成,這就要在順序圖或協(xié)作圖中反映各個(gè)對(duì)象之間的消息調(diào)用過程。如圖13.3所示為添加的圖書ID不重復(fù)的情況下“登錄圖書信息”用例的順序圖。
“登錄圖書信息”順序圖
3.屬性和方法設(shè)計(jì)
用例設(shè)計(jì)中識(shí)別出了大量的設(shè)計(jì)類,接下來(lái)要詳細(xì)地設(shè)計(jì)所識(shí)別出來(lái)的每一個(gè)設(shè)計(jì)類,即設(shè)計(jì)類的屬性和方法。屬性設(shè)計(jì)應(yīng)該注意的問題是:一要補(bǔ)充屬性分析時(shí)沒有考慮到的屬性,確定屬性的全部?jī)?nèi)容,其中包括屬性名、可視性、范圍、類型、初始值;二要盡量采用系統(tǒng)采用的程序設(shè)計(jì)語(yǔ)言的語(yǔ)法規(guī)范描述屬性。
方法設(shè)計(jì)包括數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、算法設(shè)計(jì)和流程設(shè)計(jì)。方法設(shè)計(jì)要注意的是:一要立足于所采用的程序設(shè)計(jì)語(yǔ)言;二所選用的程序設(shè)計(jì)語(yǔ)言應(yīng)該能夠提供豐富的數(shù)據(jù)結(jié)構(gòu);三要根據(jù)所實(shí)現(xiàn)的功能確定算法設(shè)計(jì);四是可以用程序流程圖或活動(dòng)圖來(lái)描述流程設(shè)計(jì)的結(jié)果。
如圖所示為添加了屬性和方法“圖書信息管理”用例的設(shè)計(jì)類圖。
添加屬性和方法后的“圖書信息管理”類圖
LoginBook類的屬性和方法設(shè)計(jì)如下:
·
sql屬性——定義執(zhí)行插人操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
LoginBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫(kù)連接等功能;②提供添加圖書信息界面。
·
cheekInsea()方法——①檢查各輸入項(xiàng)的輸人格式是否正確;②檢查圖書ID是否重復(fù)。
·
makelnsertStmt()方法——定義執(zhí)行插人操作的SQL命令字符串。
·
afterlnsert()方法——清空登錄圖書界面的各輸入項(xiàng)。
SelectBook類的屬性和方法設(shè)計(jì)如下:
·
sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
SelectBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫(kù)連接等功能;②提供檢索圖書界面。
·
checkSelect()方法——檢查是否輸入要檢索的圖書ID。
·
makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
·
setSelectedData()方法——顯示檢索圖書的結(jié)果。
·
clear()方法——清空?qǐng)D書檢索界面各檢索項(xiàng)。
UpdateBook類的屬性和方法設(shè)計(jì)如下:
·
sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
·
chpublish_id屬性——定義出版社ID。
·
UpdateBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫(kù)連接等功能;②提供檢索圖書界面;③提供修改圖書功能。
·
checkSelect()方法——檢查是否輸人要檢索的圖書ID。
·
makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
·
setSelectedData()方法——顯示檢索圖書的結(jié)果。
·
clear()方法——清空?qǐng)D書修改界面各修改項(xiàng)。
·
checkUpdate()方法——檢查各修改項(xiàng)的修改格式是否正確。
·
makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串。
讀者信息管理詳細(xì)設(shè)計(jì): 1.設(shè)計(jì)類圖
“讀者信息管理”是一個(gè)用例,在“讀者信息管理”用例確定了3個(gè)概念類:添加讀者信息、修改讀者信息、檢索讀者信息。但是,該用例的功能相對(duì)比較簡(jiǎn)單??梢杂?個(gè)設(shè)計(jì)類Borrow實(shí)現(xiàn)這3個(gè)概念類的功能。如圖所示為“讀者信息管理”用例的設(shè)計(jì)類圖。
圖13.5 “讀者信息管理”用例設(shè)計(jì)類圖
· Borow類——屬于業(yè)務(wù)模型包,繼承BpupdateFrame類,實(shí)現(xiàn)讀者信息添加修改和檢索功能。
2.順序圖
如圖13.6所示為添加的讀者ID不重復(fù)的情況下“添加讀者信息”用例的順序圖。
“添加讀者信息”順序圖
通過分析如圖所示的順序圖,可以得到下圖所示為“讀者信息管理”用例的設(shè)計(jì)類圖。
圖優(yōu)化后的“讀者信息管理”用例設(shè)計(jì)類圖
3.屬性和方法設(shè)計(jì)
如下圖所示為添加了屬性和方法“讀者信息管理”用例的設(shè)計(jì)類圖。
添加屬性和方法后的“讀者信息管理”類圖
Borrow類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· Borrow()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫(kù)連接等功能;②提供添加、修改和檢索讀者信
息界面。
· checkSelect()方法——檢查是否輸入要檢索的讀者ID。
· makeSeleetStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索讀者的結(jié)果。
· ehecklnsert()方法——檢查是否可執(zhí)行插入操作。
· makeInsertStmt()方法——定義執(zhí)行插入操作的SQL命令字符串。
· afterlnsert()方法——清空各輸入項(xiàng)。
· checkUpdate()方法——檢查是否可執(zhí)行修改操作。
· makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串。
· checkData()方法——檢查各輸入項(xiàng)的輸人格式是否正確。
· clear()方法——清空各文本框。
出版社信息管理詳細(xì)設(shè)計(jì): 1.設(shè)計(jì)類圖
“出版社信息管理”是一個(gè)用例,可以用1個(gè)設(shè)計(jì)類Publish實(shí)現(xiàn)添加出版社信息、修改出版社信息、檢索出版社信息3個(gè)概念類。如圖13.9所示為“出版社信息管理”用例的設(shè)計(jì)類圖。
圖13.9 “出版社信息管理”用例設(shè)計(jì)類圖
· Publish類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,實(shí)現(xiàn)出版社信息添加、修改和檢索功能。
2.順序圖
如圖13.10所示為添加的出版社ID不重復(fù)情況下“添加出版社信息”用例的順序圖。
圖13.10 “添加出版社信息”順序圖
3.屬性和方法設(shè)計(jì)
如圖13.1l所示為添加了屬性和方法“出版社信息管理”用例的設(shè)計(jì)類圖。
圖13.11 添加屬性和方法后的“出版社信息管理”類圖
Publish類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· Publish()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫(kù)連接等功能;②提供添加、修改和檢索出版社信息界面。
· checkSelect()方法——檢查是否輸入要檢索的出版社ID。
· makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串?!?setSelectedData()方法——顯示檢索出版社的結(jié)果。· checklnsert()方法——檢查是否可執(zhí)行插入操作。
· makeInsertStmt()方法——定義執(zhí)行插入操作的SQL命令字符串?!?afterInsert()方法——清空各輸人項(xiàng)。
· checkUpdate()方法——檢查是否可執(zhí)行修改操作。
· makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串。· checkData()方法——檢查各輸入項(xiàng)的輸人格式是否正確?!?clear()方法——清空各文本框。
圖書借還信息管理詳細(xì)設(shè)計(jì): 1.設(shè)計(jì)類圖
“圖書借還信息管理”是一個(gè)用例,在“圖書信息管理”用例所提取的4個(gè)概念類的基礎(chǔ)上,可以確定該用例有4個(gè)設(shè)計(jì)類:借閱圖書(BorrowBook)、歸還圖書(RetumBook)、借出圖書一覽表(BorrowBookList)和未按期歸還圖書一覽表(OverdueList)。如圖所示為“圖書借還信息管理”用例的設(shè)計(jì)類圖。
圖“圖書借還信息管理”用例設(shè)計(jì)類圖
· BorrowBook類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,與DbChoice類相關(guān)聯(lián),實(shí)現(xiàn)圖書借閱功能。
· ReturnBook類——屬于業(yè)務(wù)模型包,繼承BpUpdateFrame類,與DbChoice類相關(guān)聯(lián),實(shí)現(xiàn)圖書歸還功能。
· BorrowBookList類——屬于業(yè)務(wù)模型包,繼承BpSelectFrame類,與DbChoice類相關(guān)聯(lián),顯示借出圖書清單一覽表。
· OverdueList類——屬于業(yè)務(wù)模型包,繼承BpSelectFrame類,與DbChoice類相關(guān)聯(lián),顯示未按期歸還圖書與讀者清單一覽表。
2.順序圖
如圖所示為讀者ID與圖書ID都存在情況下的“借閱圖書”用例的順序圖。
“登錄圖書信息”順序圖
3.屬性和方法設(shè)計(jì)
如圖所示為添加了屬性和方法“圖書借還信息管理”用例的設(shè)計(jì)類圖。
添加屬性和方法后的“圖書借還信息管理”類圖
BorrowBook類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· BorrowBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫(kù)連接等功能;②提供添加圖書信息界面。· checklnsert()方法——①檢查各輸入項(xiàng)的輸入格式是否正確;②檢查借閱圖書ID是否存在。
· makeInsertStmt()方法——定義執(zhí)行插入操作的SQL命令字符串。
· afterInsert()方法——清空借閱圖書界面的各輸入項(xiàng)。
· checkSelect()方法——檢查是否輸入讀者ID和圖書ID。
· makeSelectStmt()方法——顯示檢索結(jié)果。
· checkDelete()方法——檢查是否可執(zhí)行刪除操作。
· makeDeleteStmt()方法——定義執(zhí)行刪除操作的SQL命令字符串。
· afterDelete()方法——清空刪除操作后的各輸入項(xiàng)。
· clear()方法——清空所有的文本框。ReturnBook類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插人操作的SQL命令字符串。
· RetumBook()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫(kù)連接等功能;②提供圖書歸還界面。
· checkUpdate()方法——檢查各修改項(xiàng)的修改格式是否正確。
· makeUpdateStmt()方法——定義執(zhí)行修改操作的SQL命令字符串。· afterUpdate()方法——清空所有的文本框。BorrowBookList類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· BorrowBookList()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫(kù)連接等功能;②提供實(shí)現(xiàn)“借出圖書一覽表”功能的界面。
· makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索結(jié)果。OverdueList類的屬性和方法設(shè)計(jì)如下:
· sql屬性——定義執(zhí)行插入操作的SQL命令字符串。
· xOverdueList()方法——類的構(gòu)造方法。①調(diào)用DbChoice類的對(duì)象實(shí)例,以實(shí)現(xiàn)加載JDBC驅(qū)動(dòng)程序,創(chuàng)建數(shù)據(jù)庫(kù)連接等功能;②提供實(shí)現(xiàn)“未按期歸還圖書一覽表”功能的界面。
· makeSelectStmt()方法——定義執(zhí)行檢索操作的SQL命令字符串。
· setSelectedData()方法——顯示檢索結(jié)果。
組件包設(shè)計(jì):
組件包包含被所有其他包使用的通用組件,圖書管理系統(tǒng)的組件包由Const、DbChoice、BpUtil三個(gè)類組成,這三個(gè)類定義了系統(tǒng)所有其他類所使用的公共常量與公共方法。另外,IconCanvas(加載系統(tǒng)界面所使用的圖標(biāo))、MsgDialog(信息顯示對(duì)話框)、SQLExceptionDialog(顯示數(shù)據(jù)庫(kù)異常信息對(duì)話框)3個(gè)類也為系統(tǒng)所有其他類所公共使用。在此與組件包中的類一起進(jìn)行說明。1.Const類
Const類定義了系統(tǒng)所使用的公共名稱等常量,其類圖如圖所示。
Const類的類圖
2.BpUtil類
BpUtil類定義了系統(tǒng)使用的公共方法,其類圖如圖所示。
BpUtil類的類圖
BpUtil類的方法設(shè)計(jì)如下:
· repeateString()方法——返回指定個(gè)數(shù)的字符串對(duì)象。
· varchar2text()方法——返回按照指定長(zhǎng)度調(diào)整的字符串對(duì)象。
· setComp()方法——在組件上按照CridBagConstraints布局配置Panel。· checkWaming()方法——檢查數(shù)據(jù)庫(kù)連接操作是否出現(xiàn)異常?!?isNumeric()方法——驗(yàn)證字符串能否轉(zhuǎn)換為數(shù)值。
· getToday()方法——以YYYY/MM/DD的格式返回今日的日期。
· getToday()方法——返回以今日為基點(diǎn)的指定為YYYY/MM/DD格式的日期?!?isYMD()方法——驗(yàn)證能否識(shí)別YYYY/MM/DD格式的字符串。· GB2312Unicode()方法——GB2312轉(zhuǎn)換為Unicode?!?UnicodeGB2312()方法——Unicode轉(zhuǎn)換為GB2312。
· getRowCount()方法——求數(shù)據(jù)表中滿足條件的記錄數(shù)。
· convYMD()方法——Java.util.Date類型數(shù)據(jù)轉(zhuǎn)換為YYYY/MM/DD格式。
3.DbChoice類
DbChoice類定義了用于數(shù)據(jù)庫(kù)操作的實(shí)例變量與實(shí)例方法,其類圖如圖所 示。
DbChoice類的類圖
DbChoice類的屬性和方法設(shè)計(jì)如下:
· con屬性——定義用于數(shù)據(jù)庫(kù)連接的實(shí)例變量?!?query屬性——定義用于SELECT語(yǔ)句的實(shí)例變量?!?displayCol屬性——定義用于檢索結(jié)果的列數(shù)。
· valueCol屬性——定義方法getSelectedVal()返回值的列數(shù)。
· vItem屬性——定義用于保存方法getSelectedVal()返回值的Vector · DbChoice()方法——構(gòu)造方法,用于初始化實(shí)例變量。· setQueryData()方法——執(zhí)行檢索操作?!?getSelectedVal()方法——返回檢索結(jié)果?!?setValueCol()方法——設(shè)置列的值?!?getValueCol()方法——返回列的值。
· setDisplayCol()方法——設(shè)置顯示列的值?!?getDisplayCol()方法——返回顯示列的值。
· setDisplayhem()方法——設(shè)置顯示項(xiàng)的列的值。4.IconCanvas類
IconCanvas類用于完成加載系統(tǒng)界面所使用圖標(biāo)的功能,其類圖如圖所示。
IconCanvas類的類圖
IconCanvas類的方法設(shè)計(jì)如下:
· IconCanvas()方法——構(gòu)造方法,用于完成加載圖像文件的功能?!?paint()方法——用于完成顯示圖像文件的功能。5.MsgDialog類
MsgDialog類用于完成顯示系統(tǒng)界面所使用的信息對(duì)話框功能,其類圖如圖13.19所 示。
MsgDialog類的類圖
MsgDialog類的屬性和方法設(shè)計(jì)如下:
· MsgDialog()方法——構(gòu)造方法,用于生成信息顯示區(qū)域,定義信息對(duì)話框的標(biāo)題、布局管理器等功能。
· actionPerformed()方法——用于處理發(fā)生的事件。
6.SQLExceptionDialog類
當(dāng)發(fā)生數(shù)據(jù)庫(kù)異常時(shí),SQLExceptionDialog類定義了用于顯示數(shù)據(jù)庫(kù)異常信息對(duì)話框,其類圖如圖所示。
SQLExceptionDialog類的類圖
SQLExceptionDialog類的屬性和方法設(shè)計(jì)如下:
· SQLExceptionDialog()方法——構(gòu)造方法,用于定義發(fā)生的SQL異常?!?actionPerformed()方法——用于處理發(fā)生的事件。· setMessage()、方法——用于顯示發(fā)生的異常信息。系統(tǒng)管理詳細(xì)設(shè)計(jì):
系統(tǒng)管理由Bookplate和LoginDialog兩個(gè)類組成,Bookplate類用于顯示系統(tǒng)主功能界面,LoginDialog類用于顯示用戶登錄對(duì)話框界面。Bookplate類與LoginDialog類之間有單向關(guān)聯(lián)關(guān)系,即Bookplate類中定義的實(shí)例變量dialog可以調(diào)用LoginDialog類的構(gòu)造函數(shù),以實(shí)現(xiàn)系統(tǒng)登錄界面的顯示,描述兩者之間關(guān)系的類圖如圖所示。
“系統(tǒng)管理”用例設(shè)計(jì)類圖
Bookplate類的方法設(shè)計(jì)如下:
· main()方法——系統(tǒng)執(zhí)行的入口點(diǎn),用于顯示系統(tǒng)主功能界面。
· Bookplate()——構(gòu)造方法,用于設(shè)置系統(tǒng)框架(Frame)、標(biāo)題、菜單、按鈕布局、標(biāo)簽等系統(tǒng)組件。
· aetionPerformed()——當(dāng)用鼠標(biāo)左鍵點(diǎn)擊各功能按鈕時(shí),分別調(diào)用各個(gè)子功能系統(tǒng),同時(shí)實(shí)現(xiàn)生成、顯示和隱藏對(duì)應(yīng)的框架的功能。LoginDialog類的方法設(shè)計(jì)如下:
· LoginDialog()方法——構(gòu)造方法,用于設(shè)置用戶登錄對(duì)話框界面的標(biāo)題、顯示信息區(qū)域、設(shè)置標(biāo)簽和文本域、生成按鈕等功能。
· actionPerformed()——當(dāng)用鼠標(biāo)左鍵點(diǎn)擊功能按鈕時(shí),處理所觸發(fā)的事件?!?getStatus()——返回按鈕的狀態(tài)值?!?getUserID()——返回用戶ID?!?getPassword()——返回用戶口令。
? 數(shù)據(jù)庫(kù)設(shè)計(jì)(表略)
? 完成設(shè)計(jì)規(guī)約
第五篇:基于UML的圖書管理系統(tǒng)的分析與設(shè)計(jì)
基于UML的圖書管理系統(tǒng)的需求分析與設(shè)計(jì)
摘要:本文對(duì)面向?qū)ο蟮母拍?、UML產(chǎn)生的背景及其基本內(nèi)容進(jìn)行了闡述,在對(duì)圖書館圖書管理系統(tǒng)進(jìn)行功能描述和需求分析的基礎(chǔ)上,結(jié)合軟件工程和面向?qū)ο笮枨蠓治?,設(shè)計(jì)了基于UML的用例圖、包圖和順序圖,狀態(tài)圖等語(yǔ)言機(jī)制的圖書館圖書管理系統(tǒng)模型。關(guān)鍵詞: UML;建模語(yǔ)言;面向?qū)ο?;需求分析;圖書管理系統(tǒng) 1關(guān)于面向?qū)ο?/p>
面向?qū)ο笫且环N的程序設(shè)計(jì)方法,或者說它是一種程序設(shè)計(jì)類型,其基本思想是使用對(duì)象,類,繼承,封裝,消息等基本概念來(lái)進(jìn)行程序設(shè)計(jì)。它是從現(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā)來(lái)構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類的自然思維方式,強(qiáng)調(diào)直接以問題域(現(xiàn)實(shí)世界)中的事物為中心來(lái)思考問題,認(rèn)識(shí)問題,并根據(jù)這些事物的本質(zhì)特點(diǎn),把它們抽象地表示為系統(tǒng)中的對(duì)象,作為系統(tǒng)的基本構(gòu)成單位(而不是用一些與現(xiàn)實(shí)世界中的事物相關(guān)比較遠(yuǎn),并且沒有對(duì)應(yīng)關(guān)系的其它概念來(lái)構(gòu)造系統(tǒng))。這可以使系統(tǒng)直接地映射問題域,保持問題域中事物及其相互關(guān)系的本來(lái)面貌。它可以有不同層次的理解:
(1)從世界觀的角度可以認(rèn)為:面向?qū)ο蟮幕菊軐W(xué)是認(rèn)為世界是由各種各樣具有自己的運(yùn)動(dòng)規(guī)律和內(nèi)部狀態(tài)的對(duì)象所組成的;不同對(duì)象之間的相互作用和通訊構(gòu)成了完整的現(xiàn)實(shí)世界。因此,人們應(yīng)當(dāng)按照現(xiàn)實(shí)世界這個(gè)本來(lái)面貌來(lái)理解世界,直接通過對(duì)象及其相互關(guān)系來(lái)反映世界。這樣建立起來(lái)的系統(tǒng)才能符合現(xiàn)實(shí)世界的本來(lái)面目。
(2)從方法學(xué)的角度可以認(rèn)為:面向?qū)ο蟮姆椒ㄊ敲嫦驅(qū)ο蟮氖澜缬^在開發(fā)方法中的直接運(yùn)用。它強(qiáng)調(diào)系統(tǒng)的結(jié)構(gòu)應(yīng)該直接與現(xiàn)實(shí)世界的結(jié)構(gòu)相對(duì)應(yīng),應(yīng)該圍繞現(xiàn)實(shí)世界中的對(duì)象來(lái)構(gòu)造系統(tǒng),而不是圍繞功能來(lái)構(gòu)造系統(tǒng)。
(3)從程序設(shè)計(jì)的角度來(lái)看,面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言必須有描述對(duì)象及其相互之間關(guān)系的語(yǔ)言成分。這些程序設(shè)計(jì)語(yǔ)言可以歸納為以下幾類:系統(tǒng)中一切皆為對(duì)象;對(duì)象是屬性及其操作的封裝體;對(duì)象可按其性質(zhì)劃分為類,對(duì)象成為類的實(shí)例;實(shí)例關(guān)系和繼承關(guān)系是對(duì)象之間的靜態(tài)關(guān)系;消息傳遞是對(duì)象之間動(dòng)態(tài)聯(lián)系的唯一形式,也是計(jì)算的唯一形式;方法是消息的序列。
面向?qū)ο蟮姆椒▽W(xué)包括了以下核心概念:
對(duì)象(object):即指現(xiàn)實(shí)世界中各種各樣的實(shí)體。它可以指具體的事物也可以指抽象的事物。
類(class):類是具有相似內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律的實(shí)體的集合(或統(tǒng)稱、抽象)。類的概念來(lái)自于人們認(rèn)識(shí)自然、認(rèn)識(shí)社會(huì)的過程。
消息(Message): 消息是指對(duì)象間相互聯(lián)系和相互作用的方式。一個(gè)消息主要由5部分組成:發(fā)送消息的對(duì)象、接收消息的對(duì)象、消息傳遞辦法、消息內(nèi)容(參數(shù))、反饋。
封裝:對(duì)象間的相互聯(lián)系和相互作用過程主要通過消息機(jī)制得以實(shí)現(xiàn)。對(duì)象之間并不需要過多的了解對(duì)方內(nèi)部的具體狀態(tài)或運(yùn)動(dòng)規(guī)律。面向?qū)ο蟮念愂欠庋b良好的模塊,類定義將其說明(用戶可見的外部接口)與實(shí)現(xiàn)(用戶不可見的內(nèi)部實(shí)現(xiàn))顯式地分開,其內(nèi)部實(shí)現(xiàn)按其具體定義的作用域提供保護(hù)。類是封裝的最基本單位。封裝防止了程序相互依賴性而帶來(lái)的變動(dòng)影響。在類中定義的接收對(duì)方消息的方法稱為類的接口。
繼承:類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬,它表示類之間的內(nèi)在聯(lián)系,以及對(duì)屬性和操作的共享,即子類可以沿用父類的某些特征。
重載:重載是指類的同名方法在給其傳遞不同的參數(shù)是可以有不同的運(yùn)動(dòng)規(guī)律。在對(duì)象間相互作用時(shí),即使接收消息對(duì)象采用相同的接收辦法,但消息內(nèi)容的詳細(xì)程度不同,接收消息對(duì)象內(nèi)部的運(yùn)動(dòng)規(guī)律也可能不同。關(guān)于UML UML(Unified Modeling Language)是在Booch方法、OOSE方法和OMT方法的基礎(chǔ)上演化而來(lái)的基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語(yǔ)言。它統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語(yǔ)和圖示符號(hào),描述了建模過程中所必須遵循的基本步驟,提供了一整套描述軟件系統(tǒng)模型的概念和圖形表示法,可從不同的視角為系統(tǒng)建模。統(tǒng)一建模語(yǔ)言UML是一種語(yǔ)義豐富、通用、可視化的建模語(yǔ)言和事實(shí)上的國(guó)際工業(yè)標(biāo)準(zhǔn),易于理解和交流。UML提供的豐富的視圖從多個(gè)視角描述系統(tǒng)的不同側(cè)面,可以有效運(yùn)用于軟件的建模、分析與設(shè)計(jì)。標(biāo)準(zhǔn)建模語(yǔ)言UML的定義包括UML語(yǔ)義和UML表示法兩個(gè)部分。UML語(yǔ)義通過其元模型來(lái)嚴(yán)格地定義。UML表示法定義UML符號(hào)的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號(hào)和文本語(yǔ)法來(lái)建模提供標(biāo)準(zhǔn)。這些圖形符號(hào)和文字所表達(dá)的是應(yīng)用級(jí)的模型,在語(yǔ)義上它是UML元模型的實(shí)例。UML的主要內(nèi)容通常用用例圖、類圖、對(duì)象圖、狀態(tài)圖、活動(dòng)圖、構(gòu)件圖、配置圖、順序圖、協(xié)作圖和包圖等l0種圖來(lái)描述,它們從不同的角度和層次為系統(tǒng)建模提供支持,完全可以 描述系統(tǒng)的方方面面。
與傳統(tǒng)的軟件建模方法相比, UML 有如下一些特點(diǎn):(1)UML 是一個(gè)可視化建模語(yǔ)言, 是一種圖形化的面向?qū)ο蟮脑O(shè)計(jì)工具語(yǔ)言,而不是可視化程序設(shè)計(jì)語(yǔ)言,但用UML描述的模型可與各種編程語(yǔ)言直接相連,把UML 模型映射成編程語(yǔ)言。在不同程序中使用同樣的UML 圖表類型, 因?yàn)閁ML 具有任意程序的獨(dú)立性,定義一個(gè)標(biāo)準(zhǔn)程序不是一個(gè)UML 的目標(biāo)。
(2)UML 是一種可用于詳細(xì)描述的語(yǔ)言,其所建立的模型是精確、無(wú)歧義和完整的。同時(shí)UML是一種文檔化的語(yǔ)言,對(duì)其各建模元素可進(jìn)行詳細(xì)說明,并能生成所建模型的文檔。標(biāo)準(zhǔn)建模語(yǔ)言UML支持面向?qū)ο蟮姆治雠c設(shè)計(jì),定義良好、易于表達(dá)、功能強(qiáng)大。它的最大用途是利用圖形來(lái)描述真實(shí)世界各個(gè)對(duì)象的符合表示,讓所有系統(tǒng)設(shè)計(jì)者在構(gòu)建系統(tǒng)需求分析、對(duì)象模型化定義到對(duì)象設(shè)計(jì)的整個(gè)開發(fā)過程完全標(biāo)準(zhǔn)化。3 本課題的研究意義
一個(gè)圖書館的圖書資料庫(kù)在正常運(yùn)轉(zhuǎn)中總是面對(duì)大量的讀者信息、書籍信息以及兩者相互作用產(chǎn)生的借書信息、還書信息。圖書館作為一個(gè)信息資源的集散地,圖書和用戶借閱資料繁多,包含著很多的信息數(shù)據(jù)。以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書借閱情況(如借書天數(shù)、超過限定借書時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用人工檢查,對(duì)借閱者的借閱權(quán)限以及借閱天數(shù)等采用人工計(jì)算、手抄進(jìn)行,數(shù)據(jù)信息處理工作量大,容易出錯(cuò)和丟失。因此,建立一個(gè)智能化、系統(tǒng)化、信息化的圖書資料庫(kù)是十分重要的。使用計(jì)算機(jī)軟件對(duì)圖書進(jìn)行管理,是計(jì)算機(jī)應(yīng)用的一部分。充分利用計(jì)算機(jī)的功能,實(shí)現(xiàn)對(duì)讀者管理、書籍管理等自動(dòng)化控制,將會(huì)使圖書資料庫(kù)的工作強(qiáng)度大大減弱,可以實(shí)現(xiàn)圖書檢索迅速、可靠性高、存儲(chǔ)量大、壽命長(zhǎng)、成本低,能最大限度地提高圖書管理的效率,也是圖書管理信息化、正規(guī)化管理的必然趨勢(shì)。4 基于UML的圖書管理系統(tǒng)的需求分析與設(shè)計(jì)過程
圖書管理系統(tǒng)的開發(fā)和應(yīng)用主要通過兩個(gè)步驟來(lái)實(shí)現(xiàn):首先是基于系統(tǒng)功能的需求分析,其次是系統(tǒng)模型的設(shè)計(jì)和實(shí)現(xiàn)。
4.1需求分析
需求分析是軟件工程過程的一個(gè)重要階段,其中一個(gè)主要任務(wù)是確定系統(tǒng)的功能需求,采用面向?qū)ο蠓椒?基于UML的可視化系統(tǒng)需求分析,因?yàn)橛杏脩舻姆e極參與,既可以加快設(shè)計(jì)者對(duì)于問題的理解,又能夠在系統(tǒng)描述方面減少語(yǔ)義差異,保證分析的正確性。需求分析的目標(biāo)就是建立需求模型,即從功能需求出發(fā)建立用例模型, UML的用例視圖從用戶的需求中提取,以盒圖的方式描述待開發(fā)的系統(tǒng)的功能需求。每個(gè)用例都指定了客戶的需求即他們需要系統(tǒng)干什么。用例圖為設(shè)計(jì)活動(dòng)不僅記 錄需求而且還提供了一種挖掘的信息, 它記錄了需求到設(shè)計(jì)結(jié)果之間的映射關(guān)系,能夠確保設(shè)計(jì)結(jié)果具有明確的根據(jù)或者說具有可維護(hù)性,基于UML的軟件開發(fā)過程是以用例驅(qū)動(dòng)的。
首先我們進(jìn)行角色識(shí)別,角色識(shí)別的任務(wù)是找出所有可能與系統(tǒng)發(fā)生交互行為的外部實(shí)體、對(duì)象、系統(tǒng)。它們的行為不受系統(tǒng)控制,但是可以提供輸入給系統(tǒng)。對(duì)于一所大學(xué)的圖書管理系統(tǒng),基本的功能是完成圖書的借閱和相關(guān)信息的管理,服務(wù)的對(duì)象有本科生,研究生,教師,及其他學(xué)校的學(xué)生,還有社會(huì)人員,這些人可歸結(jié)為一類即讀者。而為幫助讀者順利完成借還書的可以是工作人員,可以是自動(dòng)借還書機(jī),他們可以歸結(jié)為一類即圖書管理人員。因此對(duì)于一個(gè)圖書管理系統(tǒng)主要有兩類角色,讀者、圖書管理員。
其次,在主要角色的基礎(chǔ)上,可以識(shí)別出與角色相應(yīng)的用例,從而得到系統(tǒng)的用例模型。與讀者相關(guān)的過程包括:借書、還書、預(yù)定、圖書信息檢索、借閱查詢(如查詢本人借書記錄、還書期限、是否超期)、個(gè)人相關(guān)信息查詢及修改(如學(xué)號(hào)、姓名、性別、年級(jí)、專業(yè)、家庭住址、聯(lián)系電話、出生日期、民族、政治面貌、身份證號(hào)等)。與圖書管理員相關(guān)的過程包括:辦理借書、辦理還書、解除預(yù)定、圖書訂購(gòu)、讀者信息管理(增加/刪除讀者、修改讀者權(quán)限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數(shù)目、圖書類別等相關(guān)信息的修改、流通情況)。系統(tǒng)管理(系統(tǒng)的登陸、退出、日志維護(hù)、系統(tǒng)更新)。以上分析中,與讀者,圖書管理員相關(guān)的過程構(gòu)成了本系統(tǒng)的基本用例。
4.2 系統(tǒng)的整體結(jié)構(gòu)
綜上所述一個(gè)圖書管理系統(tǒng)的整體結(jié)構(gòu)可以分為三大模塊:圖書管理模塊、讀者管理模塊、系統(tǒng)管理模塊。
(1)圖書管理模塊包括與圖書相關(guān)的一些過程,主要有圖書的借出、圖書的歸還、預(yù)定、圖書信息檢索、圖書訂購(gòu)、圖書相關(guān)信息管理。
(2)讀者管理模塊主要包括與讀者有聯(lián)系相關(guān)的過程,主要有增加/刪除讀者、修改讀者權(quán)限及密碼、借閱信息查詢、個(gè)人信息查詢及修該、借閱超期和丟失罰款。
(3)系統(tǒng)管理模塊包括系統(tǒng)的登陸、退出、系統(tǒng)維護(hù)、系統(tǒng)更新。綜上我們畫出系統(tǒng)的整體結(jié)構(gòu),如圖一所示:
圖書管理系統(tǒng)圖書管理讀者管理圖一 圖書管理系統(tǒng)的整體結(jié)構(gòu)
系統(tǒng)管理 4.3 圖書管理系統(tǒng)的用例圖
從以上分析中我們不難得出系統(tǒng)的基本用例圖,如圖二所示:
借書/還書預(yù)定/解除預(yù)定圖書檢索圖書信息管理圖書訂購(gòu)借閱信息查詢個(gè)人信息查詢/修改讀者信息管理 讀者借閱超期罰款 圖書管理員系統(tǒng)管理圖二 系統(tǒng)的基本用例圖
圖書管理和圖書管理是圖書管理系統(tǒng)的重要組成部分,為此我們按照前文所述將圖書管理模塊和讀者模塊以及系統(tǒng)管理模塊詳細(xì)精化得出如下的用例圖,如圖
三、圖
四、圖五所示:
按年代查詢圖書借入借出管理出版社查詢圖書購(gòu)入作者查詢圖書查詢書名查詢圖書管理模糊查詢圖書管理員圖書信息管理類別查詢信息刪除信息添加
圖三 圖書管理模塊的用例圖
信息修改增加/刪除讀者修改權(quán)限個(gè)人信息查詢/修改圖書管理員讀者管理讀者借閱信息查詢讀者辦理掛失圖四 讀者管理用例圖
超期/丟失罰款
登陸/退出軟件更新系統(tǒng)管理系統(tǒng)更新 管理員系統(tǒng)維護(hù)硬件更新日志維護(hù) 圖五 系統(tǒng)管理模塊的用例圖
4.4 圖書管理系統(tǒng)的行為圖
我們?cè)龠M(jìn)行動(dòng)態(tài)建模分析。對(duì)于圖書管理系統(tǒng)借書還書是兩個(gè)重要的過程,我們先來(lái)分析一下借書、還書的一般過程,并由借書的一般過程畫出其順序圖、協(xié)作圖以及活動(dòng)圖。
(1)借書的過程:讀者刷卡進(jìn)入圖書館,或者先查詢圖書及個(gè)人借閱信息,或者直接去挑選圖書,選擇好圖書后進(jìn)入借書程序,管理員先檢查讀者的借書證件,查驗(yàn)?zāi)芊窠栝啠热纾鹤C件是否無(wú)效或書籍是否已經(jīng)借滿等,即檢驗(yàn)其借書的合法性和有效性,如果是非法用戶或借書數(shù)量范圍外,則該讀者不能借閱圖書。如果滿足借閱要求,則再獲取所借書的標(biāo)題以進(jìn)行庫(kù)內(nèi)搜索,獲取書目查詢此書的數(shù)量,看是否還有此書,如果沒有則阻止其他借書者可能進(jìn)行的預(yù)訂活動(dòng),將此書借出,根據(jù)書號(hào)將此書的借閱標(biāo)志位取反以表示此書已借出,并將此書的書目減1。并為此讀者記錄借閱日期,以及歸還日期,在歸還日期內(nèi)未能歸還和續(xù)借的,并為其記錄超借天數(shù)及罰款數(shù)額。
(2)還書過程:在返還圖書的過程中,管理員首先獲取讀者的借閱信息和被歸還的書籍的信息,如書標(biāo)題信息,數(shù)量等,并一一審核每本書的歸還日期是否超過應(yīng)歸還日期。在完成階段,將此書的書號(hào)登記并設(shè)計(jì)標(biāo)志位為已歸還,以便讀者網(wǎng)上預(yù)訂和繼續(xù)借閱,同時(shí)將此類圖書的數(shù)量加1,如果讀者超期或丟失所借書籍,則要進(jìn)行賠償處理。
所以我們不難畫出借書一般過程的順序圖,如圖六所示:
圖書管理員讀者信息圖書信息修改圖書借出刷卡進(jìn)入并選書核對(duì)讀者信息 圖書掃描并消磁修改讀者借閱信息圖六 借書一般過程的順序圖
有順序圖可得到協(xié)作圖,如圖七所示。仔細(xì)分析借書過程的細(xì)節(jié),可以畫出如圖八所示的活動(dòng)圖,它表示了復(fù)雜算法的過程,尤其是過程中的判斷、并發(fā)和同步。
刷卡進(jìn)入 讀者挑選圖書圖書管理員 核對(duì)信息圖書信息修改圖書掃描 消磁讀者借閱信息 修改讀者信息圖書借出
圖七 借書一般過程的協(xié)作圖
讀者 管理系統(tǒng)N禁止入內(nèi)刷卡是否為本館服務(wù)對(duì)象Y輸入卡號(hào)/密碼選擇圖書N卡號(hào)密碼正確?Y個(gè)人信息查詢/修改Y借閱信息查詢圖書檢索刷條形碼顯示讀者相關(guān)信息能否借閱N確定借書NY刷圖書條碼更改改讀者及圖書的借閱信息退出是否借閱完畢YN圖八 借書過程活動(dòng)圖
以上我們用多種語(yǔ)言機(jī)制分析了讀者的主要相關(guān)事件流,下面我們繪制圖書管理員使用系統(tǒng)的狀態(tài)圖分析圖書管理員的主要事件流。從以上分析可知,圖書管理員相關(guān)的過程包括:辦理借書、辦理還書、解除預(yù)定、圖書訂購(gòu)、讀者信息管理(增加/刪除讀者、修改讀者權(quán)限及密碼、借閱超期罰款)、圖書信息管理(增加/刪除數(shù)目、圖書類別等相關(guān)信息的修改、流通情況)。由此我們可繪制如圖九所示的圖書管理員使用系統(tǒng)的狀態(tài)圖:
登陸關(guān)閉辦理借書修改圖書信息辦理還書增加數(shù)目圖書預(yù)留取消增加加讀者解除預(yù)定刪除讀者查詢數(shù)目存儲(chǔ)信息修改讀者權(quán)限查詢讀者信息圖九圖書管理員使用系統(tǒng)的狀態(tài)圖
4.5 圖書管理系統(tǒng)的靜態(tài)圖
定義并描述了各個(gè)類后,我們可以根據(jù)實(shí)際情況引入包來(lái)管理類,本圖書館管理系統(tǒng)可以劃分為四個(gè)包:用戶管理:對(duì)系統(tǒng)用戶進(jìn)行管理,為用戶提供信息服務(wù)接口,便于對(duì)系統(tǒng)進(jìn)行操作。借閱管理包括借書處理,還書處理和罰款處理等。讀者管理包括對(duì)讀者圖書等信息進(jìn)行維護(hù),主要有讀者信息的增刪,對(duì)圖書更新資料進(jìn)行維護(hù)。系統(tǒng)服務(wù):包括系統(tǒng)登錄檢查,安全維護(hù)等。系統(tǒng)的包圖如圖十所示:
用戶管理借閱管理讀者及圖書管理系統(tǒng)服務(wù) 圖十 系統(tǒng)包圖 4.6 圖書管理系統(tǒng)的實(shí)現(xiàn)
經(jīng)過系統(tǒng)分析和設(shè)計(jì)后,就可以根據(jù)設(shè)計(jì)模型在具體的環(huán)境中實(shí)現(xiàn)系統(tǒng),生成系統(tǒng)的源代碼、可執(zhí)行程序和相應(yīng)的軟件文檔,建立一個(gè)可執(zhí)行系統(tǒng)。進(jìn)而需要對(duì)系統(tǒng)進(jìn)行測(cè)試和排錯(cuò),保證系統(tǒng)符合預(yù)定的要求,獲得一個(gè)無(wú)錯(cuò)的系統(tǒng)實(shí)現(xiàn)。測(cè)試結(jié)果將確認(rèn)所完成的系統(tǒng)可以真正使用。參考文獻(xiàn)
[1] 齊治昌.譚慶平.寧洪.軟件工程.北京:高等教育出版社 [2] 張海藩.軟件工程.北京:人民郵電出版社
[3] 董翔.基于UML的圖書管理系統(tǒng)的開發(fā)和應(yīng)用.科技情報(bào)開發(fā)與經(jīng)濟(jì)2008年第l8卷第l2期 [4] 吳開華.邢養(yǎng)曉.羅德撤
.數(shù)字圖書館元數(shù)據(jù)研究[J].中國(guó)圖書館學(xué)報(bào),2002,(3).
[5] 劉治國(guó).構(gòu)建基于B/S結(jié)構(gòu)的圖書管理系統(tǒng)[J].信息技術(shù),2005(3):72—73. [6] 管斌.袁國(guó)忠 譯.用例驅(qū)動(dòng)的UML對(duì)象建模應(yīng)用-范例分析.北京:人民郵電出版社 結(jié)束語(yǔ)
本文以一個(gè)圖書館圖書管理系統(tǒng)開發(fā)為背景,針對(duì)圖書館對(duì)圖書資源進(jìn)行有效利用和管理的功能需求,采用統(tǒng)一建模語(yǔ)言(UML)對(duì)圖書資源進(jìn)行面向?qū)ο蟮拿枋觯ㄟ^利用統(tǒng)一建模語(yǔ)言UML中的各種圖形,分析和設(shè)計(jì)圖書管理系統(tǒng),建起了圖書管理的面向?qū)ο竽P?,探討了基于UML的體系結(jié)構(gòu)建模及其實(shí)現(xiàn)問題。由建模過程可以看出UML在體系結(jié)構(gòu)建模方面存在很好的優(yōu)勢(shì),不但從整體上正確描述了該圖書管理系統(tǒng)的體系結(jié)構(gòu),并且可以充分利用UML面向?qū)ο蟮膬?yōu)勢(shì),從而實(shí)現(xiàn)整個(gè)軟件系統(tǒng)面向?qū)ο蟮姆治?、設(shè)計(jì)與開發(fā),大大縮短開發(fā)周期,最終使得項(xiàng)目成功完成,此管理系統(tǒng)節(jié)省了管理人員和讀者的大量時(shí)間,有利于信息處理效率的提高。鑒于篇幅有限,本文只對(duì)主要部分和主要過程做了介紹,限于水平,歡迎各位讀者對(duì)本文的缺點(diǎn)、錯(cuò)誤提出批評(píng)。