需求分析——掌握UML建模语言的用例图
在前面的課程中,我們主要討論了人脈V1.0系統的角色及角色間的關系,也討論了角色的屬性和行為。在這節課中,我們將使用UML建模語言的用例圖對人脈V1.0系統的角色及角色行為建立系統功能模型。
?
在建模之前,先簡單介紹一下什么是UML建模語言。
UML是面向對象開發的建模語言,由OMG(OMG是一個世界性的計算機標準協會),該協會致力于發展和傳播面向對象系統,OMG在1997年公布了UML建模語言標準。UML定義了9種模型圖,為軟件開發過程的需求分析、系統設計、系統部署階段提供建模支持,這9種模型圖分別是用例圖、類圖、對象圖、狀態圖、活動圖、序列圖、協作圖、構件圖和部署圖。這些模型圖從不同的側面對系統進行建模。
?
在需求分析階段,UML使用用例圖、類圖、協作圖、順序圖和狀態圖從面向對象的角度出發來定義應用需求。在大多數情況下,為了得到一個完整的業務需求定義,這5種模型都要使用。但在系統功能相對簡單的情況下,可以只使用用例圖、類圖、順序圖來定義需求。
?
用例描述了角色在系統中承擔的職責,用例從系統角色的角度對系統功能進行建模。也可以說用例是事件表的延伸,事件表最先捕捉到系統需要響應的事件,然后通過事件表分析出系統角色,確定角色的屬性和行為,最后再通過用例圖對系統功能建模。
下圖顯示了一個用戶注冊的用例。一個簡單的小人圖形表示系統角色。這個小人圖形有一個可以表示其角色的名字。用例用一個在里面標有名稱的橢圓所代表,角色與用例之間的線條表示了角色參與哪些用例。
?
圖 1 有一個角色的簡單用例
用例表明了角色與系統如何交互來完成業務活動,用例包含完成這個業務活動的所有步驟,這些活動步驟需要在用例中完整描述出來。一個用例可能會對應不同的活動場景,例如用戶注冊可能會對應在手機端注冊和電腦端注冊兩種活動場景。所以,場景是對用例內部活動的識別和描述。
繪制用例圖時,我們需要明確角色和用例,用例和用例之間的關系。角色和用例是關聯關系,也就是角色參與到這個用例中,關聯關系是一條直線(有些UML繪圖工具也使用帶單向箭頭的直線),用于連接角色和用例。
?
圖 2 角色和用例的關聯關系
用例和用例之間主要是包含關系、擴展關系和依賴關系。
?
包含關系
包含關系是指一個用例在執行過程中,會調用另外一個用例來完成相關任務,也就是在一個用例的內部包含了另外一個用例。例如,用戶注冊和用戶登錄用例都需要調用數據庫角色的存儲用戶信息用例,在這種情況下,就可以把數據庫角色的存儲用戶信息用例包含到用戶注冊和用戶登錄用例中。
?
圖 3 用例和用例間的包含關系
?
擴展關系
擴展關系是一個用例對另一個用例功能的擴展。例如,用戶注冊有手機端注冊和電腦端注冊兩個注冊場景,則可以把用戶注冊作為基本用例,手機端注冊和電腦端注冊作為擴展用例。
?
圖 4 用例和用例間的擴展關系
?
依賴關系
依賴關系是一個用例在活動執行過程中,要依賴另一個用例的執行。例如,A用例依賴B用例,A用例或使用B用例執行后的返回結果,或使用B用例執行部分功能。依賴關系類似于包含關系,都是在用例執行過程中,調用其它用例來完成部分任務。
了解了用例的關系和繪制方法后,我們就可以根據前面給出的角色表來繪制人脈V1.0系統的用例圖。
?
繪制用例圖使用的工具有很多,在這里我使用Visio工具繪制用例圖。我們分別繪制用戶角色、名片角色和數據庫角色的用例圖。
?
用戶角色用例圖
下圖是用戶角色用例圖,用戶角色用例有注冊、登錄、添加名片、編輯名片、刪除名片、查看名片和翻閱名片用例。虛線橢圓的用例是數據庫角色和名片角色的用例,這些用例被用戶角色的用例所使用。例如,下圖的添加名片用例使用了名片角色的存儲名片用例,而名片角色的存儲名片用例又使用了數據庫角色的存儲名片信息用例。
其中注冊用例沒有按注冊場景分,這是因為在V1.0版我們主要考慮在電腦端注冊。
?
圖 5 用戶角色用例圖
?
名片角色用例圖
下圖是名片角色用例圖。名片角色用例有存儲名片、獲取名片、查詢名片、刪除名片和展示名片用例。
?
圖 6 名片角色用例圖
?
數據庫角色用例圖
下圖是數據庫角色用例圖。數據庫角色用例圖有存儲用戶信息、存儲名片信息、獲取用戶信息、獲取名片信息、名片查詢和刪除名片用例。
?
圖 7 數據庫角色用例圖
至此,我們已經完成了人脈項目V1.0系統用戶角色、名片角色、數據庫角色用例圖的繪制,建立了人脈項目V1.0系統功能需求模型。下節課我們將對每個用例配置用例規約。
總結
以上是生活随笔為你收集整理的需求分析——掌握UML建模语言的用例图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL高可用架构对比
- 下一篇: 小白1