用例圖與用例描述

統(tǒng)一建模語言(UML):是面向對象分析的主要模型技術。

UML是很多種技術的綜合體,包括類圖、用例圖、交互圖(順序圖)、狀態(tài)圖和對象約束語言(OCL)。

本篇只介紹用例圖與用例描述,首先認識一下UML定義的用例“在系統(tǒng)(或者子系統(tǒng)或者類)和外部對象的交互中所執(zhí)行的行為序列的描述,包括各種不同的序列和錯誤的序列,它們能夠聯(lián)合提供一種有價值的服務?!薄綬umbaugh2004】。換言之,每個用例是對相關場景的集合,這些場景是用戶和系統(tǒng)之間的交互行為序列,幫助實現(xiàn)用戶的目的。

用例圖

用例模型就是以用例為基本單位建立的一個系統(tǒng)功能展示模型,它是系統(tǒng)所有用例的集合,以統(tǒng)一、圖形化的方式展示系統(tǒng)的功能和行為特性。

1.基本元素

用例圖的基本元素有4種:用例、參與者、關系和系統(tǒng)邊界。

用例:水平的橢圓表示,是用例模型最重要的元素。

參與者:圖示是一個小人,是發(fā)起或參與一個用例的外部用戶以及其他軟件系統(tǒng)等角色。代表同系統(tǒng)進行交互的角色,不是一個人或者工作職務;也不必非得是實際用戶,也可以是一個組織、另一個系統(tǒng)、外部設備、時鐘等。

關系:關聯(lián)、泛化、包含、擴展。

1)關聯(lián):表示參與者與用例之間的通信,任何一方都可發(fā)送或接受消息。

【箭頭指向】:指向消息接收方

關聯(lián)

2)泛化:一個用例可以被特別列舉為一個或多個子用例,類似通常理解的繼承關系,子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結構、行為和關系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。

【箭頭指向】:指向父用例


泛化

3)包含:用來把一個較復雜用例所表示的功能分解成較小的步驟;基礎用例可以看到包含用例,并依賴于包含用例的執(zhí)行結果。但是二者不能訪問對方的屬性。

【箭頭指向】:指向分解出來的功能用例(即被包含的用例)。

? 表示方法:虛線箭頭+<<include>>字樣。


包含

4)擴展:指用例功能的延伸,把新行為插入到已有用例,相當于為基礎用例提供一個附加功能。

【箭頭指向】:指向基礎用例(即被擴展的用例)

?表示方法:虛線箭頭+<<extend>>字樣。


擴展

系統(tǒng)邊界:一個矩形框表示,來顯示系統(tǒng)的上下文環(huán)境,是指一個系統(tǒng)所包含的系統(tǒng)成分與系統(tǒng)外事物的分界線。

2.建立用例圖步驟

a. 進行目標分析與確定解決方向。

? ? 進行目標分析,確定項目的目標,定義高層次解決方案的系統(tǒng)特性。

b. 尋找參與者。

? ? 根據(jù)a中確定的目標與系統(tǒng)特性,發(fā)現(xiàn)與系統(tǒng)功能相關的參與者。

c. 尋找用例。

? ? 可根據(jù)找到的參與者來尋找用例,每個參與者的一個目標(或任務)就是一個系統(tǒng)用例。參與的目標(或任務)必須與項目的目標與系統(tǒng)特性相一致,否則就不能為其建立用例。該步驟會將系統(tǒng)所有用例都表示在一個用例圖中,即系統(tǒng)用例圖。如下圖所示:


系統(tǒng)用例圖

d. 細化用例。

????簡單情況,c步驟就可以結束了;復雜系統(tǒng)開發(fā)中,往往因為系統(tǒng)用例圖中用例粒度不適宜而需要進一步細化用例。用例粒度合適的判斷標準:用例描述了為應對一個業(yè)務事件,由一個用戶發(fā)起,并在一個連續(xù)時間段內完成,可以增加業(yè)務價值的任務?!綥arman2002】

以上面系統(tǒng)用例圖為例,“特價策略制定”、“贈送策略制定”兩個用例的業(yè)務目的、發(fā)起源和過程基本相同的,僅僅業(yè)務數(shù)據(jù)不同的可以合并成一個用例;“會員管理”用例有兩個明顯不同的業(yè)務事件,可以被細化為“發(fā)展會員”和“禮品贈送”兩個更細粒度的用例;“庫存處理”有三個不同業(yè)務目標:出庫、入庫、庫存分析。最終調整和細化后如下圖:

調整和細化后的系統(tǒng)用例圖

細化時注意點:

1)不要將粒度細化得過小,不要將用例細化為單個操作,因為它們聯(lián)合起來才能體現(xiàn)出業(yè)務價值;

2)不要將同一業(yè)務目標細化為不同用例;

3)不要將沒有業(yè)務價值的內容作為用例,常見錯誤有“登錄”(應描述為安全性質量需求)、“數(shù)據(jù)驗證”(應描述為數(shù)據(jù)需求)、“連接數(shù)據(jù)庫”(屬于軟件內部實現(xiàn)而不是需求)等。

用例描述

用文本的方式將用例的參與者、目標、場景等信息描述出來。

簡單的用例描述模板

在描述用例時一定要注意:

1)圍繞“交互”進行場景描述。

2)保持“規(guī)格說明”級別,盡可能不要涉及界面、按鈕、方法等軟件系統(tǒng)的內部構造機制。

3)正常流程中,注意交互序列的完整性,用戶操作與系統(tǒng)反應都應該寫出來。

圖書借閱用例描述示例

參考文獻

[1] 軟件工程與計算(卷二) 北京:機械工程出版社

[2] 軟件工程與計算(卷三) 北京:機械工程出版社

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容