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