《Java與UML面向?qū)ο蟪绦蛟O(shè)計(jì)-第4章》由會(huì)員分享,可在線閱讀,更多相關(guān)《Java與UML面向?qū)ο蟪绦蛟O(shè)計(jì)-第4章(29頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,*,Java,與,UML,面向?qū)ο蟪绦蛟O(shè)計(jì),第,4,章 用例圖,用例圖概述,用例圖,(,Use Case Diagram,)以每一個(gè)參與系統(tǒng)的人員都能理解的方式列舉系統(tǒng)的業(yè)務(wù)需求,它將系統(tǒng)、子系統(tǒng)和類(lèi)的行為可視化,以利于所有參與人員準(zhǔn)確理解這些元素,并確保軟件的開(kāi)發(fā)人員最終實(shí)現(xiàn)這些元素。,用例圖的建立處在,RUP,的第一階段,它是獲取需求的直接方法。,用例圖還是軟件測(cè)試人員進(jìn)行測(cè)試的指導(dǎo)。,用例圖中的標(biāo)記符元素,系統(tǒng)邊界;,參與者(,Actor,);,用例(,Use Case,);,用例間的關(guān)系(,Re
2、lationship,)。,用例圖示例,主體,主體(,Subject,)就是,UML,早期版本中的系統(tǒng)邊界,在,UML 2.0,中把主體作為系統(tǒng)邊界的正式術(shù)語(yǔ)。在開(kāi)發(fā)一個(gè)系統(tǒng)時(shí),首先要確定系統(tǒng)的主體,即決定什么是系統(tǒng)的組成部分,什么是系統(tǒng)的外部。,主體決定了誰(shuí)(參與者)使用系統(tǒng),系統(tǒng)能為誰(shuí)提供什么功能(用例)。這表面看起來(lái)顯而易見(jiàn),事實(shí)上,對(duì)于某些系統(tǒng)來(lái)說(shuō),其邊界很難確定。,UML,系統(tǒng)邊界表示法,參與者,參與者是指系統(tǒng)以外的,在使用系統(tǒng)或與系統(tǒng)交互中所扮演的角色。因此參與者可以是人,可以是事物,也可以是時(shí)間或其它系統(tǒng)等等。,參與者在建模過(guò)程中利用人形符號(hào)和命名來(lái)表示。由于參與者表示外部事物參
3、與系統(tǒng)的角色,因此參與者的命名一定要充分體現(xiàn)其功能特性。,用例圖中的參與者命名,參與者間的泛化關(guān)系,用例,用例(,Use Case,)最初由,Ivar,Jackboson,博士提出,后被綜合到,UML,規(guī)范之中。它用來(lái)表示參與者期望系統(tǒng)所要完成的功能。,系統(tǒng)執(zhí)行的一組動(dòng)作序列,這些動(dòng)作序列可以產(chǎn)生一個(gè)特定參與者可觀察的結(jié)果。簡(jiǎn)單來(lái)講,用例就是對(duì)系統(tǒng)功能的描述。不過(guò),一個(gè)用例描述的是整個(gè)系統(tǒng)功能的一部分(子功能模塊),若干個(gè)用例聯(lián)合起來(lái)描述了完整的系統(tǒng)功能。,用例主要有以下幾個(gè)特點(diǎn),用例總是由參與者來(lái)啟動(dòng)的。,用例必須為參與者提供數(shù)據(jù)。,用例的完整性。,用例圖中的通信關(guān)聯(lián),用例之間的關(guān)系,泛化(
4、,Generalization,)關(guān)系,包含(,Include,)關(guān)系,擴(kuò)展(,Extend,)關(guān)系,用例間的泛化關(guān)系,多級(jí)泛化關(guān)系,用例間的包含關(guān)系,用例包含關(guān)系示例,用例間的擴(kuò)展關(guān)系,建立用例模型,問(wèn)題描述,確定參與者,確定用例,用例描述,即時(shí)通信系統(tǒng)的參與者,即時(shí)通信系統(tǒng)用例圖,用例“注冊(cè)帳號(hào)”的描述,用例名稱(chēng),:,Register,參與者,:,客戶(hù)、數(shù)據(jù)庫(kù),簡(jiǎn)要描述,:,客戶(hù)在即時(shí)通信系統(tǒng)中注冊(cè)。,前置條件:,客戶(hù)端應(yīng)用程序主界面已經(jīng)啟動(dòng)。,基本事件流:,客戶(hù)點(diǎn)擊“注冊(cè)”按鈕。,系統(tǒng)彈出一個(gè)注冊(cè)交互對(duì)話(huà)框。,客戶(hù)輸入注冊(cè)信息:昵稱(chēng)、密碼等。,客戶(hù)按“提交”按鈕,發(fā)送注冊(cè)信息到數(shù)據(jù)庫(kù)。,
5、數(shù)據(jù)庫(kù)保存注冊(cè)信息,并自動(dòng)生成一個(gè)數(shù)字,ID,返回。,客戶(hù)端彈出對(duì)話(huà)框顯示注冊(cè)的,ID,,提示注冊(cè)成功。,用例終止。,可選事件流,:,在“提交”按鈕前,客戶(hù)可隨時(shí)點(diǎn)擊“取消”按鈕,關(guān)閉注冊(cè)窗口,返回客戶(hù)端主界面。,異常事件流,:,提示注冊(cè)錯(cuò)誤,請(qǐng)稍后再試,客戶(hù)確認(rèn),然后返回客戶(hù)端主界面。,后置條件,:,客戶(hù)獲得一個(gè),ID,,可用此,ID,登錄系統(tǒng)開(kāi)始即時(shí)通信。,用例“登錄系統(tǒng)”的描述,用例名稱(chēng),:,Log in,參與者,:,客戶(hù)、服務(wù)器,簡(jiǎn)要描述,:,客戶(hù)登錄即時(shí)通信系統(tǒng)。,前置條件:,客戶(hù)端應(yīng)用程序主界面已經(jīng)啟動(dòng),并且已經(jīng)有了注冊(cè),ID,。,基本事件流:,客戶(hù)點(diǎn)擊應(yīng)用程序主界面上的“登錄”按
6、鈕。,系統(tǒng)彈出一個(gè)登錄交互對(duì)話(huà)框。,客戶(hù)輸入,ID,和密碼。,客戶(hù)按“登錄”按鈕,發(fā)送登錄請(qǐng)求到服務(wù)器(包含,ID,、密碼和用戶(hù)的網(wǎng)絡(luò)通信參數(shù))。,服務(wù)器執(zhí)行“驗(yàn)證用戶(hù)”用例,將登錄請(qǐng)求中的信息(,ID,和密碼)發(fā)送給數(shù)據(jù)庫(kù)。,數(shù)據(jù)庫(kù)將,ID,和密碼與數(shù)據(jù)庫(kù)中的注冊(cè)紀(jì)錄比對(duì)。,如果用戶(hù)信息合法,數(shù)據(jù)庫(kù)發(fā)送合法消息、用戶(hù)的詳細(xì)注冊(cè)資料和用戶(hù)不在線期間收到的離線消息給服務(wù)器,否則進(jìn)入可選事件流。,服務(wù)器將客戶(hù)加入在線用戶(hù)列表(列表維護(hù)了用戶(hù)的一切注冊(cè)資料和網(wǎng)絡(luò)通信參數(shù)),返回登錄成功消息和離線消息給客戶(hù),并將在線用戶(hù)列表發(fā)送給所有的在線用戶(hù)。,提示登錄成功,更新好友列表的狀態(tài)信息并顯示離線消息。,
7、用例終止。,可選事件流,:,將用戶(hù)不合法消息發(fā)送給客戶(hù),提示重新登錄。,異常事件流,:,提示登錄失敗,請(qǐng)稍后再試,客戶(hù)確認(rèn),然后返回客戶(hù)端主界面。,后置條件,:,主界面顯示用戶(hù)好友及好友的在線狀態(tài)。,用例“發(fā)送消息”的描述,用例名稱(chēng),:,Send Message,參與者,:,客戶(hù)、數(shù)據(jù)庫(kù),簡(jiǎn)要描述,:,客戶(hù)給自己好友(在線好友和離線好友)發(fā)送消息。,前置條件:,客戶(hù)已成功登錄即時(shí)通信系統(tǒng)。,基本事件流:,客戶(hù)選擇一個(gè)好友。,系統(tǒng)激活主界面消息編輯文本框。,客戶(hù)在文本框中輸入、編輯消息,然后單擊“發(fā)送”按鈕。,如果好友不在線,發(fā)送消息給數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)保存該聊天記錄;否則執(zhí)行可選事件流。,數(shù)據(jù)庫(kù)返
8、回聊天記錄已保存通知。,系統(tǒng)提示“對(duì)方在登錄時(shí)會(huì)看到您發(fā)的消息”。,用例終止。,可選事件流,:,從好友列表中讀出此用戶(hù)的通信參數(shù),將消息直接發(fā)送給用戶(hù)。,用戶(hù)返回消息收到通知。,系統(tǒng)提示客戶(hù)“消息已成功發(fā)送到對(duì)方”。,異常事件流,:,提示消息發(fā)送失敗,請(qǐng)稍后再試,客戶(hù)確認(rèn),然后返回客戶(hù)端主界面。,后置條件,:,客戶(hù)返回登錄后的主界面狀態(tài)。,用例“添加好友”的描述,用例名稱(chēng),:,Add Friends,參與者,:,客戶(hù)、數(shù)據(jù)庫(kù)、服務(wù)器,簡(jiǎn)要描述,:,客戶(hù)端查詢(xún)數(shù)據(jù)庫(kù)客戶(hù)列表并選擇添加好友。,前置條件:,客戶(hù)已成功登錄即時(shí)通信系統(tǒng)。,基本事件流:,客戶(hù)點(diǎn)擊“添加好友”按鈕。,系統(tǒng)彈出用戶(hù)瀏覽對(duì)話(huà)框
9、。,客戶(hù)端發(fā)送查詢(xún)請(qǐng)求給數(shù)據(jù)庫(kù)。,數(shù)據(jù)庫(kù)返回用戶(hù)信息給用戶(hù)瀏覽對(duì)話(huà)框。,客戶(hù)選擇需要添加的好友,并點(diǎn)擊“添加”按鈕。,系統(tǒng)更新客戶(hù)的好友列表,新添加的好友暫時(shí)為離線狀態(tài)。,客戶(hù)發(fā)送剛添加的好友信息給服務(wù)器。,服務(wù)器查詢(xún)?cè)诰€用戶(hù)列表,如果用戶(hù)在線,返回消息給客戶(hù),否則執(zhí)行可選事件流。,客戶(hù)端將好友列表中此用戶(hù)更改為在線狀態(tài)。,用例終止。,可選事件流,:,服務(wù)器發(fā)送消息給數(shù)據(jù)庫(kù)。,數(shù)據(jù)庫(kù)將此用戶(hù)被添加為好友的消息保存為用戶(hù)的離線消息。,異常事件流,:,提示添加好友失敗,請(qǐng)稍后再試,客戶(hù)確認(rèn)后返回客戶(hù)端主界面。,后置條件,:,返回用戶(hù)瀏覽對(duì)話(huà)框,讓用戶(hù)選擇“繼續(xù)添加好友”或者“返回”。,用例“刪除好
10、友”的描述,用例名稱(chēng),:,Delete Friends,參與者,:,客戶(hù),簡(jiǎn)要描述,:,客戶(hù)刪除自己好友列表中的好友。,前置條件:,客戶(hù)已成功登錄即時(shí)通信系統(tǒng)。,基本事件流:,客戶(hù)點(diǎn)擊“刪除好友”按鈕。,系統(tǒng)彈出好友瀏覽對(duì)話(huà)框。,客戶(hù)選擇要?jiǎng)h除的好友。,系統(tǒng)詢(xún)問(wèn)是否確定刪除。,客戶(hù)選擇“是”確定刪除,否則執(zhí)行可選事件流。,系統(tǒng)從好友列表中刪除選中的好友。,用例終止。,可選事件流,:,系統(tǒng)返回好友瀏覽對(duì)話(huà)框,讓用戶(hù)重新選擇好友。,異常事件流,:,提示刪除好友失敗,請(qǐng)稍后再試,客戶(hù)確認(rèn)后返回客戶(hù)端主界面。,后置條件,:,返回好友瀏覽界面,提示用戶(hù)繼續(xù)刪除或者返回主界面。,用例“查詢(xún)聊天記錄”的描述
11、,用例名稱(chēng),:,Query Record,參與者,:,客戶(hù)、數(shù)據(jù)庫(kù),簡(jiǎn)要描述,:,客戶(hù)查詢(xún)與某個(gè)好友的聊天記錄。,前置條件:,客戶(hù)已成功登錄即時(shí)通信系統(tǒng)。,基本事件流:,客戶(hù)從好友列表中選擇好友,點(diǎn)擊“查詢(xún)聊天記錄”按鈕。,系統(tǒng)彈出聊天記錄瀏覽對(duì)話(huà)框。,客戶(hù)端發(fā)送查詢(xún)請(qǐng)求給數(shù)據(jù)庫(kù)。,數(shù)據(jù)庫(kù)將保存的聊天記錄發(fā)送給聊天記錄查詢(xún)窗口顯示。,用例終止。,可選事件流,:,客戶(hù)點(diǎn)擊“返回”按鈕,從聊天記錄對(duì)話(huà)框返回主界面。,異常事件流,:,提示聊天記錄查詢(xún)失敗,請(qǐng)稍后再試,客戶(hù)確認(rèn)后返回客戶(hù)端主界面。,后置條件,:,返回客戶(hù)端主界面。,用例“退出系統(tǒng)”的描述,用例名稱(chēng),:,Log out,參與者,:,客戶(hù)、服務(wù)器,簡(jiǎn)要描述,:,客戶(hù)退出系統(tǒng)。,前置條件:,客戶(hù)已成功登錄即時(shí)通信系統(tǒng)。,基本事件流:,客戶(hù)點(diǎn)擊“退出”按紐。,系統(tǒng)彈出退出確認(rèn)對(duì)話(huà)框,用戶(hù)如果選擇“確認(rèn)”,則退出系統(tǒng),如果選“取消”則執(zhí)行可選事件流。,客戶(hù)端發(fā)送退出請(qǐng)求給服務(wù)器。,服務(wù)器更新在線用戶(hù)列表,并發(fā)送給所有在線用戶(hù)。,客戶(hù)端關(guān)閉主界面。,用例終止。,可選事件流,:,從退出確認(rèn)對(duì)話(huà)框返回主界面。,異常事件流,:,提示網(wǎng)絡(luò)通訊錯(cuò)誤。,后置條件,:,程序關(guān)閉。,檢查用例模型,功能需求的完備性,模型是否易于理解,是否存在不一致性,避免二義性語(yǔ)義,根據(jù)以上檢查,如果發(fā)現(xiàn)用例模型符合要求,則完成了系統(tǒng)的用例建模。,