邱紅麗 李軍豪
(河南質量工程職業學院 信息工程系,河南 平頂山 467000)
基于UML的系統分析與設計
邱紅麗 李軍豪
(河南質量工程職業學院 信息工程系,河南 平頂山 467000)
目前,面向對象技術成為軟件設計的主流設計思想。UML作為一種面向對象的可視化的統一建模語言,在軟件的整個分析與設計過程中起著非常重要的作用,它的各個模型可以幫助開發人員更好地理解業務流程,建立更可靠、更完善的系統模型。本文以網上訂餐系統為例,探討了在系統的整個開發過程中,如何使用UML作為建模語言進行系統的分析與設計。
面向對象;UML;建模;訂餐系統;分析與設計
UML(Unified Modeling Language)作為一種通用的建模語言,融入了軟件工程領域的新思想、新方法、新技術,在軟件開發的不同階段可以采用相同的一套概念和表示法,在同一個模型中它們可以混合使用,具有定義良好、易于表達、功能強大等優勢。網上訂餐系統作為一個WEB應用系統,它的分析、設計是一個復雜的過程,因此采用UML對訂餐系統的分析和設計進行建模。隨著網絡技術的不斷發展,人們對網絡也有了越來越多的要求。餐飲業是一種個性化、多樣化的服務產業,這種方便、快捷、個性化的網上訂餐正在進入人們的生活。
1.UML簡介
UML又稱統一建模語言,是一個支持模型化的圖形化語言,為軟件開發的所有階段提供模型化和可視化支持。無論分析、設計和開發人員采取何種不同的方法,他們遞交的設計產品都是用UML來描述的,有利于促進相互的理解。UML能夠描述系統的靜態結構和動態行為:靜態結構定義了系統中重要對象的屬性和操作以及這些對象之間的相互關系;動態行為定義了對象的時間特性和對象為完成目標任務而相互進行通信的機制。UML共提供了九種不同的圖形,靜態圖包括用例圖、類圖、對象圖、組件圖、部署圖;動態圖包括序列圖、協作圖、狀態圖和活動圖。
2.UML的開發過程
UML的開發過程大致包括需求分析、系統設計、實現和測試幾個階段。在需求階段,主要是建立用例圖,它表述了系統參與者希望系統提供的功能。通過確定系統邊界、確定參與者、確定用例和確定參與者與用例的關系四個步驟建立用例圖。另外,還可以對子用例畫出活動圖。而系統設計階段,是找出系統所需的類及對象,定義這些對象的屬性和操作,以及它們之間靜態和動態關系,其主要工作是:識別對象、為對象分類、確定類的發生和操作、確定類之間的關系、確定對象之間的交互、確定對象狀態變化等,并根據實體類及其關系進行數據庫設計。并且,要確立時序圖,主要顯示具體用例的詳細流程和不同對象之間的調用關系,同時,根據用例圖確定系統中使用的其他類和頁面。實現是進行編程的過程,在此過程中,要進行單元測試。功能實現后,要進行集成測試和系統測試,測試主要是以用例定義的描述為依據,驗證開發的系統是否滿足要求。
1.系統簡介
該系統以實用為目標,給客戶的感覺是簡單易用。需要實現的功能如下:(1)前臺頁面:瀏覽菜譜,查看餐品詳情,用戶登錄,用戶退出,用戶注冊,查看購物車,添加購物車,對購物車中的食品數量進行更改,添加訂單,查看上一次訂單。(2)后臺管理:對其食品、食品類型進行增刪改查,對所有提交的訂單進行查看和處理,即根據訂單狀態(未處理,正在處理,已處理)查看、編輯和刪除訂單。
2.需求分析
需求分析階段主要的任務就是畫出系統用例圖和子用例圖,并對其進行分析。
(1)系統用例圖。系統用例圖見圖1與圖2。
(2)子用例說明及用例活動圖。系統用例圖設計之后,要進行子用例圖的分析,同時畫出子用例圖的活動圖,闡明業務用例實現的工作流程。以添加購物車用例為例:用戶登錄之后,如果要訂購食品,就可以把要買的食品添加到購物車中,見圖3。
3.系統設計
需求分析做好后,就要根據用例的分析進行系統設計。系統設計階段主要包括:提取關鍵類圖、設計用例時序圖、設計數據庫、界面設計。
(1)提取關鍵類圖。關鍵類圖就是整個系統中用到的實體類圖,提取關鍵類圖的根據就是各個子用例。從用例圖中我們可以分析出需要以下實體類:
User(客戶)類:包括用戶姓名和密碼,用戶名唯一。
Food(食品)類:包括食品編號、名稱、簡介、價格、描述、圖片和所屬類型id。
FoodOrder(訂單)類:包括訂單id號、訂餐人、送餐地址、郵政編碼、聯系電話、訂單附言、付款總金額、提交訂單時間、處理狀態和用戶id。
FoodType(食品類型)類:包括typeId號、食品類型名稱。
CartItem(訂單項)類:訂單中的訂單項。包括此訂單項的id號、訂單項的食品id、和此食品的數量,訂單項所屬訂單的id號。
最后畫出類圖,并根據各個實體類之間的關系,畫出實體之間的關系圖。

(2)時序圖設計。時序圖是UML進行系統設計的重要環節,它用來顯示對象之間的關系,并強調對象之間消息的時間順序,同時顯示了對象之間的交互。還以添加購物車用例為例,來說明如何使用UML語言畫時序圖。
描述:消費者在details.jsp或show.jsp頁面上點擊“訂購”按鈕,如果未登錄跳轉到login.jsp頁面,否則提交請求給AddToShopCart。若按正常流程,AddToShopCart得到要添加的食品,并加入到購物車中。然后轉到購物車shoppingCart.jsp頁面,顯示購物車中的所有食品。
(3)系統其他類和頁面。設計好時序圖之后,可以得到整個系統用到的其他的類和頁面。比如,從圖4我們可以得到控制層的AddToShopCart.java 和視圖層的 details.jsp、show.jsp、login.jsp 和shoppingCart.jsp。同理,根據其他的時序圖得到其他的類和頁面。
(4)數據庫設計。設計完實體類及其關系圖之后,可以得到數據庫表。如下圖所示數據庫關系圖,進而設計各個數據庫表。


(5)界面設計。使用UML設計中,界面設計也是一個很重要的環節。界面必須按照用戶的需求進行設計,界面精致、風格統一且具有友好性。
使用UML進行軟件的分析設計不是一個固定的模式,隨著系統的不同整個過程也會有所變化。本文是根據自己的開發經驗,以網上訂餐系統為例,簡要講述了使用UML進行系統分析與設計的過程。
[1]楊明.面向對象的分析與設計[M].北京:科學技術文獻出版社,2006.
[2]嚴悍,劉冬梅.UML2軟件建模概念、規范與方法[M].北京:國防工業出版社,2009.
[3]徐袛祥.開發基于JSP/Servlet/JavaBean的網上交易系統[M].北京:科學技術文獻出版社,2008.
TP311
A
1671-2862(2010)02-0111-02
2010-01-19
邱紅麗,女,河南葉縣人,碩士,研究方向:軟件工程。