【UML建模案例】小型网上书店系统
小型網(wǎng)上書店系統(tǒng)
- 前言
- 一、案例簡(jiǎn)介
- 二、使用工具
- 三、軟件過(guò)程
- 四、系統(tǒng)的UML基本模型
- 總結(jié)
前言
最近上半年的浙江軟考已經(jīng)取消,于是開始高強(qiáng)度系統(tǒng)復(fù)習(xí)Java面向?qū)ο蟮母鱾€(gè)知識(shí)點(diǎn),順便將UML的系統(tǒng)性學(xué)習(xí)提上日程。
這里先附上本項(xiàng)目的.eap工程文件(須用Enterprise Architect打開)、生成的Java代碼以及參考教材存放的github倉(cāng)庫(kù)地址
https://github.com/2820881540/online_book_store_system_UML.git
PS: 學(xué)校對(duì)于UML的教學(xué)很不重視,只給了2個(gè)選修學(xué)分,選不上就只能自學(xué)了
一、案例簡(jiǎn)介
這里對(duì)于UML的重要性和一些基礎(chǔ)的定義不再贅述,詳細(xì)內(nèi)容可參考呂云翔教授的《UML與Rose建模實(shí)用教程》,本案例就以該教材第15章的內(nèi)容"小型網(wǎng)上書店系統(tǒng)"為例,通過(guò)一個(gè)簡(jiǎn)單但完整軟件過(guò)程進(jìn)行UML建模實(shí)踐學(xué)習(xí)。
二、使用工具
關(guān)于建模工具除了教材中展示的Rose之外,還可選擇PowerDesigner、Visio或 Enterprise Architect。
其中Rose過(guò)于古老而且安裝破解很麻煩。
PowerDesigner雖上手容易但我對(duì)該軟件的審美不敢恭維。
最后還是選擇功能最強(qiáng)大的Enterprise Architect來(lái)進(jìn)行建模
三、軟件過(guò)程
1、 項(xiàng)目背景描述
隨著互聯(lián)網(wǎng)時(shí)代的到來(lái),相對(duì)于實(shí)體書店,很多人選擇網(wǎng)絡(luò)購(gòu)書。某公司計(jì)劃建立一個(gè)網(wǎng)上書店,需要本軟件團(tuán)隊(duì)來(lái)為公司開發(fā)一款“小型網(wǎng)上書店系統(tǒng)”。
系統(tǒng)的主要功能是實(shí)現(xiàn)用戶通過(guò)互聯(lián)網(wǎng)的圖書購(gòu)買。未注冊(cè)的用戶(以下稱為游客)可以通過(guò)本系統(tǒng)搜索圖書,并可以查看圖書的書名、作者、價(jià)格等一系列基本圖書信息,還可以通過(guò)注冊(cè)來(lái)成為網(wǎng)上書店的會(huì)員(注冊(cè)用戶)。會(huì)員仍然具有游客除了注冊(cè)之外的所有功能,還可以進(jìn)行圖書的購(gòu)買操作。購(gòu)買行為又稱作交易, 每一次交易對(duì)應(yīng)著一張訂單。
為了方便,本系統(tǒng)擬提供會(huì)員對(duì)已下訂單的管理功能。 一個(gè)典型的會(huì)員購(gòu)買流程如下。
?用戶(注冊(cè)并)登錄; ?用戶在瀏覽圖書時(shí)選擇其中一本; ?填寫姓名、收貨地址、手機(jī)號(hào)等必要信息;(在這一步生成訂單) ?用戶確認(rèn)訂單,并通過(guò)第三方支付平臺(tái)進(jìn)行支付; ?支付成功,通知書店發(fā)貨; ?書店發(fā)貨; ?用戶收貨,并確認(rèn)收貨。(訂單生命周期結(jié)束)考慮到網(wǎng)絡(luò)交易的非實(shí)時(shí)性,訂單的處理情況可能比較復(fù)雜(尤其是涉及取消訂單和退貨問題時(shí)),在實(shí)現(xiàn)時(shí)需要注意這一點(diǎn)。
2、系統(tǒng)需求分析
使用以下包含4個(gè)步驟的建模方法進(jìn)行該項(xiàng)目的需求分析。
3、用戶管理模塊
用戶管理選塊的核心任務(wù)是提供用戶的注冊(cè)、登錄、個(gè)人信息添加和修改等功能。 本模塊涉皮的參與者包括游客、會(huì)員和管理員。對(duì)于三種不同的參與者分別存在以下功能。
?游客可以通過(guò)本模塊進(jìn)行注冊(cè)和登錄;?會(huì)員可以通過(guò)本模塊添加個(gè)人信息、修改個(gè)人信息;個(gè)人信息包括昵稱、密碼、個(gè)人描述、 常用收貨地址等。?管理員通過(guò)本模塊對(duì)已注冊(cè)用戶(會(huì)員)進(jìn)行管理,包括對(duì)一些常常進(jìn)行非法操作的賬號(hào)進(jìn)行封禁和銷號(hào)等。4、訂單管理模塊
訂單管理模塊的主要任務(wù)是管理用戶的訂單,即已確認(rèn)和未確認(rèn)的購(gòu)買記錄。本模塊涉及的參與者主要為會(huì)員。
會(huì)員可以通過(guò)本模塊對(duì)指定圖書進(jìn)行購(gòu)買操作,生成訂單;可以對(duì)已有的訂單進(jìn)行管理;可以取消一份未確認(rèn)的訂單。
5、書目管理模塊
書目管理模塊的主要功能是管理網(wǎng)上書店的書目信息。本模塊設(shè)計(jì)的參與者為管理員。管理員可以通過(guò)本模塊進(jìn)行圖書上新、下架、信息修改等工作。
四、系統(tǒng)的UML基本模型
1、需求分析階段模型
小型網(wǎng)上書店系統(tǒng)的整體用例圖如下。通過(guò)對(duì)項(xiàng)目背景進(jìn)行需求分析,得到用戶管理模塊的主要業(yè)務(wù)參與者有游客、會(huì)員和管理員。另外還有一個(gè)外部服務(wù)參與者——第三方支付系統(tǒng)。
2、基本動(dòng)態(tài)模型
(1)用戶登錄活動(dòng)圖 用戶登錄的主要過(guò)程為:?用戶進(jìn)入登錄界面; ?輸入用戶名、密碼、驗(yàn)證碼; ?單擊登錄; ?系統(tǒng)對(duì)輸入信息進(jìn)行驗(yàn)證; ?驗(yàn)證成功則用戶以會(huì)員身份進(jìn)入網(wǎng)站,否則返回跳轉(zhuǎn)至重新進(jìn)行登錄驗(yàn)證。 (2)取消訂單活動(dòng)圖 在本系統(tǒng)中,取消訂單是一個(gè)比較復(fù)雜的用例。 在訂單處于不同狀態(tài)時(shí)取消訂單的用例事件流有比較大的變化, 對(duì)這樣經(jīng)常需要根據(jù)條件變化的事件過(guò)程適宜建立活動(dòng)圖。 (3)提交訂單協(xié)作圖 提交訂單用例涉及用戶界面、訂單控制和數(shù)據(jù)庫(kù)管理三個(gè)對(duì)象,以及一個(gè)數(shù)據(jù)庫(kù)組件。 會(huì)員通過(guò)用戶界面來(lái)新建訂單、填寫必要信息并提交; 訂單提交到訂單控制對(duì)象時(shí)需要經(jīng)過(guò)信息校驗(yàn), 校驗(yàn)成功后通過(guò)數(shù)據(jù)庫(kù)管理類來(lái)向數(shù)據(jù)庫(kù)中記錄訂單信息, 數(shù)據(jù)庫(kù)將成功消息沿著各個(gè)類反向傳遞回用戶界面。 (4)訂單實(shí)體狀態(tài)圖 訂單實(shí)體在本系統(tǒng)中存在未確認(rèn)、已確認(rèn)、已發(fā)出、已取消和已確認(rèn)收貨五個(gè)狀態(tài), 不同狀態(tài)的語(yǔ)義如下:?未確認(rèn):用戶選擇了購(gòu)買商品,輸入了必要的信息(如收貨地址等),但沒有確認(rèn)購(gòu)買; ?已確認(rèn):用戶確認(rèn)購(gòu)買并付款,網(wǎng)站正在對(duì)訂單進(jìn)行處理或剛剛處理完畢,書店方面沒有發(fā)貨;?已發(fā)出:書店已經(jīng)發(fā)貨,此時(shí)不支持從網(wǎng)站退貨,若退貨則需要另行和工作人員聯(lián)系; ?已取消:未發(fā)貨的訂單被取消,交易結(jié)束;?已確認(rèn)收貨:用戶確認(rèn)收到了商品,交易結(jié)束。 (5)添加圖書順序圖添加圖書的基本步驟如下。?管理員在圖書管理界面中選擇“添加圖書”; ?界面類返回一個(gè)添加圖書的操作界面; ?管理員錄入新圖書的各個(gè)信息并單擊“提交”按鈕; ?界面類向圖書管理控制類發(fā)出添加圖書請(qǐng)求,并將圖書信息傳給控制類; ?控制類收到添加圖書請(qǐng)求,執(zhí)行一定方法,通過(guò)圖書數(shù)據(jù)管理類向數(shù)據(jù)庫(kù)中錄入信息; ?圖書數(shù)據(jù)管理類錄入成功,向控制類返回成功信息; ?控制類返回成功信息,由界面類向管理員呈現(xiàn)最終的成功界面。3、類的設(shè)計(jì)與實(shí)現(xiàn)
(1)系統(tǒng)設(shè)計(jì)類
4、系統(tǒng)的組件圖
5、系統(tǒng)的部署圖
總結(jié)
依照教材,使用 Enterprise Architect 針對(duì)本管理系統(tǒng)共繪制了9幅UML圖,其中最核心的是類圖、用例圖、順序圖,這三者分別描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)、系統(tǒng)開發(fā)的驅(qū)動(dòng)因素以及系統(tǒng)動(dòng)態(tài)的時(shí)間結(jié)構(gòu)。
通過(guò)對(duì)UML建模的初步學(xué)習(xí),幫助我有效完善了對(duì)軟件過(guò)程的理解,相信之后在參與真實(shí)的項(xiàng)目時(shí)不至于無(wú)從下手。
另外,本模型是筆者在短期內(nèi)使用操作較為復(fù)雜的Architect繪制的UML圖倉(cāng)促趕制的,必然會(huì)存在各種各樣的缺陷和不足之處(如對(duì)于各種類、接口關(guān)聯(lián)類型的選擇和構(gòu)造型的設(shè)置問題),希望大家能多多提供批評(píng)和建議。
總結(jié)
以上是生活随笔為你收集整理的【UML建模案例】小型网上书店系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020软考程序员考试大纲要求的必会单词
- 下一篇: HTML网上书店代码,jsp网上书店系统