UML建模方法之名師指導
在學習UML的過程中,你經常會遇到UML建模問題,這里就向大家簡單介紹一下UML建模方法。希望通過本節的學習你對UML建模方法一個大致的了解。
軟件工程中的UML建模
在軟件工程的全部實施過程中都采用模型的方式而非文字的表達方式來進行描述,這樣的實現過程稱之為全程建模。全程建模的特點是:模型相互之間是有關聯的,模型成為軟件工程過程各階段展現的主體而不是文字描述作為主體存在。通過建模的方式將原來純文字加圖形描述的各種文檔模型化,使得從需求到代碼能夠統一起來,實現需求的變動直接影響到代碼的變化。提高代碼對需求的有效性聯系,同時,解決過去經常出現的:編碼改動,文檔就失效的問題。
軟件工程中UML建模方法有很多種,至今為止最廣泛使用的是UML。UML是UnifiedModelingLanguage,統一建模語言,主要由Booch、Rumbaugh及Jacobson三人提出,他們三人把自己分別提出的建模方法Booch、OMT、OOSE融合為一種方法稱為UML。Booch在《TheUnifiedModelingLanguageUserGuide》中對UML的定義是“UML是對軟件密集型系統中的制品進行可視化、詳述、構造和文檔化的語言”。可以簡單的理解UML是軟件建模的一種語言,它的特色是使用圖形化的方法來進行軟件建模。UML的特點如下:統一的標準,UML已經被OMG接受為標準的建模語言,而且越來越多的開發人員使用ULM語言進行開發;UML是支持面向對象技術的建模語言;可視化、表示能力強大;獨立于過程,UML不依賴于特定的軟件開發過程;概念明確,建模表示法簡潔,圖形結構清晰,容易掌握和使用。
UML能夠用來為系統進行面向對象建模,但是并沒有指定應用UML建模的過程,它僅僅是一種語言,它是獨立于任何過程的。如果想要成功的應用UML一個好的過程是必要的。合理的過程能夠有效的測度工作進度,控制和改善工作效率。RUP是一個很好的軟件過程,它的核心就是解決可操作性的問題,可以幫助開發人員完成使用UML全程建模的問題。RUP雖好,但是RUP十分龐大對于一些小的項目實施起來比較困難。所以有很多人一直在探討敏捷UML建模方法。
本人參考了RUP、青潤的《軟件工程之全程建模實現》及尤克濱的《UML應用建模實踐過程》并結合自己的工作經驗形成敏捷建模的過程,在此將它分享出來,希望對大家有所幫助,另外也希望大家多提包括意見,讓我成長。這個過程應用在以前我參與的一個軟件項目開發過程中,為了方便表達將該系統稱為A系統。下面的內容包括5節:需求模型、分析模型、設計模型、物理架構模型、代碼導出。由于內容太長將分幾次上傳。
1需求模型
1.1用例模型
1.用例及用例圖
UML建模方法介紹中用例是一個角色使用系統的某項功能時交互過程的文字描述。用例的本質是系統中各個相關人員之間就系統的行為所達成的契約,是系統的功能性需求。用例從使用系統的角度描述系統中的信息,即站在系統外部觀看系統的功能,而不考慮系統內部對該功能的具體實現方式。用例描述了用戶提出的一些可能需求,對應一個具體的用戶目標,用例可以促進與用戶溝通、理解正確的需求,同時也可以用來劃分系統與外部實體的界限,是面向對象系統設計的起點,是類、對象、操作的來源。用例圖主要用于描述擬建系統和外部環境的關系。用例圖中主要包括用例、角色及用例間的關系。用例間的關系通常有包含、范化、擴展。
如何實現用例模型呢?用例圖包括角色、系統邊界、用例以及元素間的關聯。首先識別出角色,根據角色再識別用例。建立用例模型的主要工作:找出角色;找出用例;描述用例;用例間的關系處理;驗證模型,通過這樣的一些步驟就可以建立用例模型。
2.識別角色
角色不僅僅是使用系統的用戶也可以是硬件、外部系統等等。角色應該和系統具有交互行為,即角色向用例發送消息或者接收用例反饋的消息。角色之間存在繼承關系。UML建模方法通過回答以下6個問題來識別A系統的角色:
(1)誰使用系統的主要功能。
回答:質監人員。
(2)誰需要系統的支持以完成日常工作。
回答:質監人員。
(3)誰負責維護、管理并保持系統正常運行。
回答:質量監督結構的管理員。
(4)系統需要應付哪些設備。
回答:不需要。
(5)系統需要和哪些外部系統交互。
回答:無。
(6)誰或什么對系統運行結果感興趣。
回答:質監人員。
綜上所述我們分析出來的A系統角色有質監人員、管理員。
3.識別用例
UML建模方法中識別用例時由于角色已經識別出來,所以我們主要根據角色來識別用例,識別用例的人為因素很大,不同的人針對同一個需求識別出的用例不一定是相同的,用例識別和經驗關系很大。我們以角色“管理員”為例,根據這個角色來識別相關的用例。
(1)某個角色要求系統為其提供什么功能?該角色需要做哪些工作?
回答:管理員登錄軟件以后主要進行用戶管理。另外系統的新建數據庫、連接數據庫這些工作也主要由管理員來做。
(2)角色需要閱讀、創建、銷毀、更新或存儲系統中某些信息嗎?
回答:管理員需要創建、刪除、修改用戶信息,進行用戶管理。
將這個角色涉及到的用例進行分析得到和這個角色相關的用例:管理用戶、選擇數據庫、建立數據庫、登錄。采用類似的方法還可以分析出系統的其他用例。
4.用例圖
通過上面的分析我們獲得初步UML建模的用例圖。我們還需要對用例進行拆分或合并。根據以上分析的結果繪制該軟件的用例圖。
1.1用例描述
用例描述是通過文字語言描述用戶的實際需求,用例采用自然語言描述角色和系統進行交互時雙方的行為,不追求形式化的語言。用例描述沒有一個統一的標準,但一般應該包括以下的內容:用例的目的;用例是怎樣啟動的;角色和用例之間的消息是如何傳送的;用例中除了主要路徑外,其他路徑是什么;用例結束后系統的狀態;其他需要描述的內容。表1是一個用例描述的示例。
【編輯推薦】
- UML建模工具EA與Rose比較摘錄
- 三大UML建模工具Visio、Rational Rose、PowerDesign的區別
- 學習筆記 UML建模語言的特點和應用領域
- 免費UML建模工具盡情體驗
- 幾款常用UML建模工具解析