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