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