邱紅麗 李軍豪
(河南質(zhì)量工程職業(yè)學(xué)院 信息工程系,河南 平頂山 467000)
基于UML的系統(tǒng)分析與設(shè)計(jì)
邱紅麗 李軍豪
(河南質(zhì)量工程職業(yè)學(xué)院 信息工程系,河南 平頂山 467000)
目前,面向?qū)ο蠹夹g(shù)成為軟件設(shè)計(jì)的主流設(shè)計(jì)思想。UML作為一種面向?qū)ο蟮目梢暬慕y(tǒng)一建模語言,在軟件的整個分析與設(shè)計(jì)過程中起著非常重要的作用,它的各個模型可以幫助開發(fā)人員更好地理解業(yè)務(wù)流程,建立更可靠、更完善的系統(tǒng)模型。本文以網(wǎng)上訂餐系統(tǒng)為例,探討了在系統(tǒng)的整個開發(fā)過程中,如何使用UML作為建模語言進(jìn)行系統(tǒng)的分析與設(shè)計(jì)。
面向?qū)ο?;UML;建模;訂餐系統(tǒng);分析與設(shè)計(jì)
UML(Unified Modeling Language)作為一種通用的建模語言,融入了軟件工程領(lǐng)域的新思想、新方法、新技術(shù),在軟件開發(fā)的不同階段可以采用相同的一套概念和表示法,在同一個模型中它們可以混合使用,具有定義良好、易于表達(dá)、功能強(qiáng)大等優(yōu)勢。網(wǎng)上訂餐系統(tǒng)作為一個WEB應(yīng)用系統(tǒng),它的分析、設(shè)計(jì)是一個復(fù)雜的過程,因此采用UML對訂餐系統(tǒng)的分析和設(shè)計(jì)進(jìn)行建模。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,人們對網(wǎng)絡(luò)也有了越來越多的要求。餐飲業(yè)是一種個性化、多樣化的服務(wù)產(chǎn)業(yè),這種方便、快捷、個性化的網(wǎng)上訂餐正在進(jìn)入人們的生活。
1.UML簡介
UML又稱統(tǒng)一建模語言,是一個支持模型化的圖形化語言,為軟件開發(fā)的所有階段提供模型化和可視化支持。無論分析、設(shè)計(jì)和開發(fā)人員采取何種不同的方法,他們遞交的設(shè)計(jì)產(chǎn)品都是用UML來描述的,有利于促進(jìn)相互的理解。UML能夠描述系統(tǒng)的靜態(tài)結(jié)構(gòu)和動態(tài)行為:靜態(tài)結(jié)構(gòu)定義了系統(tǒng)中重要對象的屬性和操作以及這些對象之間的相互關(guān)系;動態(tài)行為定義了對象的時間特性和對象為完成目標(biāo)任務(wù)而相互進(jìn)行通信的機(jī)制。UML共提供了九種不同的圖形,靜態(tài)圖包括用例圖、類圖、對象圖、組件圖、部署圖;動態(tài)圖包括序列圖、協(xié)作圖、狀態(tài)圖和活動圖。
2.UML的開發(fā)過程
UML的開發(fā)過程大致包括需求分析、系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測試幾個階段。在需求階段,主要是建立用例圖,它表述了系統(tǒng)參與者希望系統(tǒng)提供的功能。通過確定系統(tǒng)邊界、確定參與者、確定用例和確定參與者與用例的關(guān)系四個步驟建立用例圖。另外,還可以對子用例畫出活動圖。而系統(tǒng)設(shè)計(jì)階段,是找出系統(tǒng)所需的類及對象,定義這些對象的屬性和操作,以及它們之間靜態(tài)和動態(tài)關(guān)系,其主要工作是:識別對象、為對象分類、確定類的發(fā)生和操作、確定類之間的關(guān)系、確定對象之間的交互、確定對象狀態(tài)變化等,并根據(jù)實(shí)體類及其關(guān)系進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。并且,要確立時序圖,主要顯示具體用例的詳細(xì)流程和不同對象之間的調(diào)用關(guān)系,同時,根據(jù)用例圖確定系統(tǒng)中使用的其他類和頁面。實(shí)現(xiàn)是進(jìn)行編程的過程,在此過程中,要進(jìn)行單元測試。功能實(shí)現(xiàn)后,要進(jìn)行集成測試和系統(tǒng)測試,測試主要是以用例定義的描述為依據(jù),驗(yàn)證開發(fā)的系統(tǒng)是否滿足要求。
1.系統(tǒng)簡介
該系統(tǒng)以實(shí)用為目標(biāo),給客戶的感覺是簡單易用。需要實(shí)現(xiàn)的功能如下:(1)前臺頁面:瀏覽菜譜,查看餐品詳情,用戶登錄,用戶退出,用戶注冊,查看購物車,添加購物車,對購物車中的食品數(shù)量進(jìn)行更改,添加訂單,查看上一次訂單。(2)后臺管理:對其食品、食品類型進(jìn)行增刪改查,對所有提交的訂單進(jìn)行查看和處理,即根據(jù)訂單狀態(tài)(未處理,正在處理,已處理)查看、編輯和刪除訂單。
2.需求分析
需求分析階段主要的任務(wù)就是畫出系統(tǒng)用例圖和子用例圖,并對其進(jìn)行分析。
(1)系統(tǒng)用例圖。系統(tǒng)用例圖見圖1與圖2。
(2)子用例說明及用例活動圖。系統(tǒng)用例圖設(shè)計(jì)之后,要進(jìn)行子用例圖的分析,同時畫出子用例圖的活動圖,闡明業(yè)務(wù)用例實(shí)現(xiàn)的工作流程。以添加購物車用例為例:用戶登錄之后,如果要訂購食品,就可以把要買的食品添加到購物車中,見圖3。
3.系統(tǒng)設(shè)計(jì)
需求分析做好后,就要根據(jù)用例的分析進(jìn)行系統(tǒng)設(shè)計(jì)。系統(tǒng)設(shè)計(jì)階段主要包括:提取關(guān)鍵類圖、設(shè)計(jì)用例時序圖、設(shè)計(jì)數(shù)據(jù)庫、界面設(shè)計(jì)。
(1)提取關(guān)鍵類圖。關(guān)鍵類圖就是整個系統(tǒng)中用到的實(shí)體類圖,提取關(guān)鍵類圖的根據(jù)就是各個子用例。從用例圖中我們可以分析出需要以下實(shí)體類:
User(客戶)類:包括用戶姓名和密碼,用戶名唯一。
Food(食品)類:包括食品編號、名稱、簡介、價格、描述、圖片和所屬類型id。
FoodOrder(訂單)類:包括訂單id號、訂餐人、送餐地址、郵政編碼、聯(lián)系電話、訂單附言、付款總金額、提交訂單時間、處理狀態(tài)和用戶id。
FoodType(食品類型)類:包括typeId號、食品類型名稱。
CartItem(訂單項(xiàng))類:訂單中的訂單項(xiàng)。包括此訂單項(xiàng)的id號、訂單項(xiàng)的食品id、和此食品的數(shù)量,訂單項(xiàng)所屬訂單的id號。
最后畫出類圖,并根據(jù)各個實(shí)體類之間的關(guān)系,畫出實(shí)體之間的關(guān)系圖。
(2)時序圖設(shè)計(jì)。時序圖是UML進(jìn)行系統(tǒng)設(shè)計(jì)的重要環(huán)節(jié),它用來顯示對象之間的關(guān)系,并強(qiáng)調(diào)對象之間消息的時間順序,同時顯示了對象之間的交互。還以添加購物車用例為例,來說明如何使用UML語言畫時序圖。
描述:消費(fèi)者在details.jsp或show.jsp頁面上點(diǎn)擊“訂購”按鈕,如果未登錄跳轉(zhuǎn)到login.jsp頁面,否則提交請求給AddToShopCart。若按正常流程,AddToShopCart得到要添加的食品,并加入到購物車中。然后轉(zhuǎn)到購物車shoppingCart.jsp頁面,顯示購物車中的所有食品。
(3)系統(tǒng)其他類和頁面。設(shè)計(jì)好時序圖之后,可以得到整個系統(tǒng)用到的其他的類和頁面。比如,從圖4我們可以得到控制層的AddToShopCart.java 和視圖層的 details.jsp、show.jsp、login.jsp 和shoppingCart.jsp。同理,根據(jù)其他的時序圖得到其他的類和頁面。
(4)數(shù)據(jù)庫設(shè)計(jì)。設(shè)計(jì)完實(shí)體類及其關(guān)系圖之后,可以得到數(shù)據(jù)庫表。如下圖所示數(shù)據(jù)庫關(guān)系圖,進(jìn)而設(shè)計(jì)各個數(shù)據(jù)庫表。
(5)界面設(shè)計(jì)。使用UML設(shè)計(jì)中,界面設(shè)計(jì)也是一個很重要的環(huán)節(jié)。界面必須按照用戶的需求進(jìn)行設(shè)計(jì),界面精致、風(fēng)格統(tǒng)一且具有友好性。
使用UML進(jìn)行軟件的分析設(shè)計(jì)不是一個固定的模式,隨著系統(tǒng)的不同整個過程也會有所變化。本文是根據(jù)自己的開發(fā)經(jīng)驗(yàn),以網(wǎng)上訂餐系統(tǒng)為例,簡要講述了使用UML進(jìn)行系統(tǒng)分析與設(shè)計(jì)的過程。
[1]楊明.面向?qū)ο蟮姆治雠c設(shè)計(jì)[M].北京:科學(xué)技術(shù)文獻(xiàn)出版社,2006.
[2]嚴(yán)悍,劉冬梅.UML2軟件建模概念、規(guī)范與方法[M].北京:國防工業(yè)出版社,2009.
[3]徐袛祥.開發(fā)基于JSP/Servlet/JavaBean的網(wǎng)上交易系統(tǒng)[M].北京:科學(xué)技術(shù)文獻(xiàn)出版社,2008.
TP311
A
1671-2862(2010)02-0111-02
2010-01-19
邱紅麗,女,河南葉縣人,碩士,研究方向:軟件工程。