用例和用例圖_第1頁
用例和用例圖_第2頁
用例和用例圖_第3頁
用例和用例圖_第4頁
用例和用例圖_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、用例和用例圖用例和用例圖l 用例建模是用例建模是UML建模的一部分,它也是建模的一部分,它也是UML里最基里最基礎(chǔ)的部分;礎(chǔ)的部分; l 用例建模的最主要功能就是用來表達系統(tǒng)的功能性用例建模的最主要功能就是用來表達系統(tǒng)的功能性需求或行為;需求或行為;l 用例建??煞譃橛美龍D和用例描述;用例建模可分為用例圖和用例描述; l 用例圖用例圖是由軟件需求分析到最終實現(xiàn)的第一步,它是由軟件需求分析到最終實現(xiàn)的第一步,它描述人們?nèi)绾问褂靡粋€系統(tǒng),是外部參與者所能觀描述人們?nèi)绾问褂靡粋€系統(tǒng),是外部參與者所能觀察到的系統(tǒng)功能的模型圖,該圖呈現(xiàn)了一些參與者察到的系統(tǒng)功能的模型圖,該圖呈現(xiàn)了一些參與者和一些用例,

2、以及它們之間的關(guān)系,主要用于對系和一些用例,以及它們之間的關(guān)系,主要用于對系統(tǒng)、子系統(tǒng)或類的功能行為進行建模,用畫圖的方統(tǒng)、子系統(tǒng)或類的功能行為進行建模,用畫圖的方法來完成;法來完成;l 用例描述用例描述用來詳細(xì)描述用例圖中每個用例,用文本用來詳細(xì)描述用例圖中每個用例,用文本文檔來完成。文檔來完成。用例圖的作用用例圖的作用l 用例圖展示了用例之間以及用例與參與者之間是怎樣相互聯(lián)用例圖展示了用例之間以及用例與參與者之間是怎樣相互聯(lián)系的。用例圖對系統(tǒng)、子系統(tǒng)或類的行為進行了可視化,使系的。用例圖對系統(tǒng)、子系統(tǒng)或類的行為進行了可視化,使用戶能夠理解如何使用這些元素,并使開發(fā)者能夠?qū)崿F(xiàn)這些用戶能夠理解

3、如何使用這些元素,并使開發(fā)者能夠?qū)崿F(xiàn)這些元素。元素。l 用例圖主要用來描述用戶的功能需求。用例圖主要用來描述用戶的功能需求。UML側(cè)重從最終用戶側(cè)重從最終用戶的角度來理解軟件系統(tǒng)的需求,強調(diào)誰在使用系統(tǒng)、系統(tǒng)可的角度來理解軟件系統(tǒng)的需求,強調(diào)誰在使用系統(tǒng)、系統(tǒng)可以完成哪些功能。用例分析技術(shù)已經(jīng)是一種公認(rèn)有效的用戶以完成哪些功能。用例分析技術(shù)已經(jīng)是一種公認(rèn)有效的用戶需求獲取、分析和描述技術(shù)需求獲取、分析和描述技術(shù)用例圖的組成用例圖的組成用例圖用例圖由如下元素組成:由如下元素組成:參與者參與者(Actor)(Actor):也稱為參與者,它代表系統(tǒng)的用戶。:也稱為參與者,它代表系統(tǒng)的用戶。系統(tǒng)邊界系

4、統(tǒng)邊界(System Scope)(System Scope):它確定系統(tǒng)的范圍。:它確定系統(tǒng)的范圍。用例用例(Use Case)(Use Case):它代表系統(tǒng)提供的服務(wù)。:它代表系統(tǒng)提供的服務(wù)。關(guān)系關(guān)系(Association)(Association):關(guān)聯(lián)關(guān)系(:關(guān)聯(lián)關(guān)系(AssociationAssociation)、)、包含關(guān)系(包含關(guān)系(IncludeInclude)、擴展關(guān)系()、擴展關(guān)系(ExtendExtend)以及)以及泛化關(guān)系(泛化關(guān)系(GeneralizationGeneralization)。)。參與者參與者參與者參與者(actor)是指系統(tǒng)以外的、需要使用系統(tǒng)或與

5、系是指系統(tǒng)以外的、需要使用系統(tǒng)或與系統(tǒng)交互的事物統(tǒng)交互的事物, 包括包括: 人、設(shè)備、外部系統(tǒng)等人、設(shè)備、外部系統(tǒng)等. 其它譯其它譯名有名有: 活動者、執(zhí)行者、行動者、角色等;活動者、執(zhí)行者、行動者、角色等;參與者是系統(tǒng)外部的一個實體,參與者只可能存在于參與者是系統(tǒng)外部的一個實體,參與者只可能存在于邊界之外邊界之外,邊界之內(nèi)的所有人和事物都不是參與者。,邊界之內(nèi)的所有人和事物都不是參與者。 從圖中可以看出,所有的用例都放置在系統(tǒng)邊界內(nèi),表明從圖中可以看出,所有的用例都放置在系統(tǒng)邊界內(nèi),表明它屬于一個系統(tǒng)。參與者則放在系統(tǒng)邊界的外面,表明角色并它屬于一個系統(tǒng)。參與者則放在系統(tǒng)邊界的外面,表明角色

6、并不屬于系統(tǒng)。但是角色負(fù)責(zé)直接(或間接)驅(qū)動與之關(guān)聯(lián)的用不屬于系統(tǒng)。但是角色負(fù)責(zé)直接(或間接)驅(qū)動與之關(guān)聯(lián)的用例的執(zhí)行。例的執(zhí)行。UMLUML的用例圖示意的用例圖示意參與者有三大類:系統(tǒng)用戶、與所建造的系統(tǒng)交互的參與者有三大類:系統(tǒng)用戶、與所建造的系統(tǒng)交互的其它系統(tǒng)和一些可以運行的進程。其它系統(tǒng)和一些可以運行的進程。第一類參與者是真實的人,即用戶,命名這類參與者時,第一類參與者是真實的人,即用戶,命名這類參與者時,應(yīng)當(dāng)按照業(yè)務(wù)命名;應(yīng)當(dāng)按照業(yè)務(wù)命名;第二類參與者是其它的系統(tǒng),這類位于程序邊界之外的系第二類參與者是其它的系統(tǒng),這類位于程序邊界之外的系統(tǒng)也是參與者。統(tǒng)也是參與者。第三類參與者是一些

7、可以運行的進程,如時間。當(dāng)經(jīng)過一第三類參與者是一些可以運行的進程,如時間。當(dāng)經(jīng)過一定的時間觸發(fā)系統(tǒng)中的某個事件時,時間就成了參與者。定的時間觸發(fā)系統(tǒng)中的某個事件時,時間就成了參與者。l 怎樣識別參與者怎樣識別參與者誰向系統(tǒng)提供信息?誰向系統(tǒng)提供信息?誰從系統(tǒng)獲?。ㄊ褂茫┬畔??誰從系統(tǒng)獲?。ㄊ褂茫┬畔??誰管理這個系統(tǒng)?誰管理這個系統(tǒng)?誰維護這個系統(tǒng)?誰維護這個系統(tǒng)?系統(tǒng)要使用哪些外部資源?(系統(tǒng)啟動打印機、掃描儀)系統(tǒng)要使用哪些外部資源?(系統(tǒng)啟動打印機、掃描儀)系統(tǒng)是否和已經(jīng)存在的系統(tǒng)交互?(跨行轉(zhuǎn)賬的外部銀行系統(tǒng)是否和已經(jīng)存在的系統(tǒng)交互?(跨行轉(zhuǎn)賬的外部銀行系統(tǒng)、時間到了定時啟動系統(tǒng)某功能)

8、系統(tǒng)、時間到了定時啟動系統(tǒng)某功能)查找參與者時請注意,參與者一定是直接并且主動的查找參與者時請注意,參與者一定是直接并且主動的向系統(tǒng)發(fā)出動作并獲得反饋的,否則就不是參與者。向系統(tǒng)發(fā)出動作并獲得反饋的,否則就不是參與者。下面對機票預(yù)訂系統(tǒng)進行分情況討論:下面對機票預(yù)訂系統(tǒng)進行分情況討論:情況一:機票購買者通過登錄網(wǎng)站購買機票,那么誰情況一:機票購買者通過登錄網(wǎng)站購買機票,那么誰是參與者?是參與者?情況二:假如機票購買者通過呼叫中心,由人工座席情況二:假如機票購買者通過呼叫中心,由人工座席操作訂票系統(tǒng)購買機票,那么誰是參與者?操作訂票系統(tǒng)購買機票,那么誰是參與者?情況三:如果機票購買者通過呼叫中心

9、的自動語音預(yù)情況三:如果機票購買者通過呼叫中心的自動語音預(yù)定機票而不是通過人工座席,那么誰是參與者?定機票而不是通過人工座席,那么誰是參與者?情況四:如果擴大系統(tǒng)邊界,讓呼叫中心成為機票預(yù)情況四:如果擴大系統(tǒng)邊界,讓呼叫中心成為機票預(yù)定系統(tǒng)的一個子系統(tǒng),并且假設(shè)機票購買者將可以定系統(tǒng)的一個子系統(tǒng),并且假設(shè)機票購買者將可以自主選擇是通過人工座席還是自動語音登錄網(wǎng)站預(yù)自主選擇是通過人工座席還是自動語音登錄網(wǎng)站預(yù)訂機票,那么誰是參與者?訂機票,那么誰是參與者?在對參與者建模的過程中,注意以下幾點:在對參與者建模的過程中,注意以下幾點:(1)參與者表示人和事物與系統(tǒng)發(fā)生交互時所扮演的)參與者表示人和事

10、物與系統(tǒng)發(fā)生交互時所扮演的角色,而不是特定的人或特定的事物;角色,而不是特定的人或特定的事物;(2)每個參與者需要一個具有業(yè)務(wù)一樣的名字;)每個參與者需要一個具有業(yè)務(wù)一樣的名字;(3)一個人或事物在與系統(tǒng)交互時,可以同時或不同)一個人或事物在與系統(tǒng)交互時,可以同時或不同時扮演多個角色。時扮演多個角色。UML中的中的Actor實際上是一個版型化的類實際上是一個版型化的類, 可以有三種可以有三種表示形式表示形式Icon形式形式Label形式形式Decoration形式形式由于由于Actor實際上是一個類實際上是一個類, 因此它們之間可以存在因此它們之間可以存在一定的關(guān)系一定的關(guān)系,參與者之間的關(guān)系

11、一般表現(xiàn)為特殊參與者之間的關(guān)系一般表現(xiàn)為特殊/一一般化關(guān)系,即,泛化關(guān)系。般化關(guān)系,即,泛化關(guān)系。思考:思考:1、這樣一個需求:每天自動統(tǒng)計網(wǎng)頁訪問量,、這樣一個需求:每天自動統(tǒng)計網(wǎng)頁訪問量,生成統(tǒng)計報表,并發(fā)送至管理員信箱。這個生成統(tǒng)計報表,并發(fā)送至管理員信箱。這個需求的參與者是誰?需求的參與者是誰?2、自動售貨機的參與者是誰?、自動售貨機的參與者是誰?用例用例用例用例(use case)是是Ivar Jacobson發(fā)明的發(fā)明的. 其它的中其它的中文譯名有文譯名有: 用況、用案等用況、用案等.定義定義1: 用例是對一個活動者用例是對一個活動者(actor)使用系統(tǒng)的一項使用系統(tǒng)的一項功能時

12、所進行的交互過程的一個文字描述序列功能時所進行的交互過程的一個文字描述序列.定義定義2: 用例是系統(tǒng)、子系統(tǒng)或類和外部參與者交互用例是系統(tǒng)、子系統(tǒng)或類和外部參與者交互的動作序列的說明的動作序列的說明, 包括可選的動作序列和會出現(xiàn)包括可選的動作序列和會出現(xiàn)異常的動作序列異常的動作序列.用例是代表系統(tǒng)中各個項目相關(guān)人員之間就系統(tǒng)的用例是代表系統(tǒng)中各個項目相關(guān)人員之間就系統(tǒng)的行為所達成的契約行為所達成的契約, 軟件開發(fā)過程是用例驅(qū)動的軟件開發(fā)過程是用例驅(qū)動的.什么是用例?什么是用例?用例是一種需求方法學(xué)用例是一種需求方法學(xué)把用例解釋為某個參與者把用例解釋為某個參與者(actor)要做的一件事,這樣要

13、做的一件事,這樣的一件事有以下幾個特征:的一件事有以下幾個特征: 1、這件事是相對獨立的;、這件事是相對獨立的;2、這件事的執(zhí)行結(jié)果對參與者來說是可觀測的和有意義的;、這件事的執(zhí)行結(jié)果對參與者來說是可觀測的和有意義的;3、這件事必須由一個參與者發(fā)起、這件事必須由一個參與者發(fā)起 ;不存在沒有參與者的用;不存在沒有參與者的用例,用例不應(yīng)該自動啟動,也不應(yīng)該主動啟動另一個用例。例,用例不應(yīng)該自動啟動,也不應(yīng)該主動啟動另一個用例。用例總是由一個參與者發(fā)起,并且滿足特征二;用例總是由一個參與者發(fā)起,并且滿足特征二;4、這件事必然是以動賓短語形式出現(xiàn)的、這件事必然是以動賓短語形式出現(xiàn)的 。l 怎樣識別用例

14、怎樣識別用例參與者希望系統(tǒng)執(zhí)行什么任務(wù)?參與者希望系統(tǒng)執(zhí)行什么任務(wù)?參與者在系統(tǒng)中訪問哪些信息?(創(chuàng)建、存儲、修改、刪參與者在系統(tǒng)中訪問哪些信息?(創(chuàng)建、存儲、修改、刪除等)除等)需要將外界的哪些信息提供給系統(tǒng)?需要將外界的哪些信息提供給系統(tǒng)?需要將系統(tǒng)的哪個事件告訴參與者?需要將系統(tǒng)的哪個事件告訴參與者?如何維護系統(tǒng)?如何維護系統(tǒng)?如何判斷一個用例是否是一個優(yōu)秀的用例呢?如何判斷一個用例是否是一個優(yōu)秀的用例呢?l 用例是否描述了應(yīng)該做什么,而不是如何做?用例是否描述了應(yīng)該做什么,而不是如何做?l 用例的描述是否采取了參與者的視點?用例的描述是否采取了參與者的視點?l 用例是否對參與者有價值?

15、用例是否對參與者有價值?l 用例描述的時間流是否是一個完整場景?用例描述的時間流是否是一個完整場景? 是否所有的參與者、用例都有相應(yīng)的關(guān)聯(lián)用例或關(guān)是否所有的參與者、用例都有相應(yīng)的關(guān)聯(lián)用例或關(guān)聯(lián)參與者?聯(lián)參與者?l 怎樣確定用例的粒度?怎樣確定用例的粒度?(用例規(guī)模的大小)(用例規(guī)模的大?。┯美牧6瓤纱罂尚?,一般一個系統(tǒng)控制在用例的粒度可大可小,一般一個系統(tǒng)控制在20個左右,但個左右,但沒有嚴(yán)格規(guī)定沒有嚴(yán)格規(guī)定用例是系統(tǒng)級的、抽象的描述,不是細(xì)化的(考慮的是用例是系統(tǒng)級的、抽象的描述,不是細(xì)化的(考慮的是“做什么做什么what”,而不是,而不是“怎樣做怎樣做how”)對復(fù)雜的系統(tǒng)可以劃分為若干

16、子系統(tǒng)處理對復(fù)雜的系統(tǒng)可以劃分為若干子系統(tǒng)處理l 實際上,用例粒度的劃分依據(jù)最標(biāo)準(zhǔn)的方法是一個實際上,用例粒度的劃分依據(jù)最標(biāo)準(zhǔn)的方法是一個用例的粒度是否合適,是以該用例是否完成了參與用例的粒度是否合適,是以該用例是否完成了參與者的某個目的為依據(jù)的。者的某個目的為依據(jù)的。UML中用例用橢圓表示中用例用橢圓表示, 使用動賓結(jié)構(gòu)或主謂結(jié)構(gòu)命使用動賓結(jié)構(gòu)或主謂結(jié)構(gòu)命名名.例例: 字處理程序中字處理程序中, “置正文為黑置正文為黑體體”和和”創(chuàng)建索引創(chuàng)建索引”都可以是用都可以是用例例.使用用例進行需求分析的特點使用用例進行需求分析的特點: 用例從使用系統(tǒng)的角度描述系統(tǒng)中的信息用例從使用系統(tǒng)的角度描述系統(tǒng)

17、中的信息. 用例描述用戶提出的一些可見需求用例描述用戶提出的一些可見需求, 對應(yīng)一個具體的用戶目標(biāo)對應(yīng)一個具體的用戶目標(biāo). 用例是對系統(tǒng)行為的描述用例是對系統(tǒng)行為的描述, 屬于屬于UML的動態(tài)建模部分的動態(tài)建模部分.使用用例時注意的問題使用用例時注意的問題: 不要將所有的需求都以用例的形式表示出來不要將所有的需求都以用例的形式表示出來. 用例只描述系統(tǒng)功能性方面的需求用例只描述系統(tǒng)功能性方面的需求, 它只是全部需求的一部分它只是全部需求的一部分. 本質(zhì)上用例分析是功能分解技術(shù)本質(zhì)上用例分析是功能分解技術(shù), 但目前是但目前是OO開發(fā)的第一步開發(fā)的第一步. 用例是與實現(xiàn)無關(guān)的關(guān)于系統(tǒng)功能的描述用例

18、是與實現(xiàn)無關(guān)的關(guān)于系統(tǒng)功能的描述.思考:思考:l 網(wǎng)上選課系統(tǒng)網(wǎng)上選課系統(tǒng)腳本腳本其它譯名其它譯名: 情景、情景、場景場景、情節(jié)、劇本、情節(jié)、劇本.腳本就是用例的一次完整的、具體的執(zhí)行過程。用例腳本就是用例的一次完整的、具體的執(zhí)行過程。用例與腳本的關(guān)系,如同類與對象的關(guān)系。與腳本的關(guān)系,如同類與對象的關(guān)系。每個用例有一系列腳本每個用例有一系列腳本, 包括一個主要腳本包括一個主要腳本, 以及幾個以及幾個次要腳本次要腳本. 相對于主要腳本相對于主要腳本, 次要腳本描述了執(zhí)行路徑次要腳本描述了執(zhí)行路徑中的異?;蚩蛇x擇的情況中的異常或可選擇的情況.例:在例:在“訂貨訂貨”用例中包括幾個相關(guān)腳本:用例中

19、包括幾個相關(guān)腳本: 訂貨順利進行的腳本訂貨順利進行的腳本; 相關(guān)貨源不足時的腳本相關(guān)貨源不足時的腳本; 購貨者的信用卡被拒絕時的腳本購貨者的信用卡被拒絕時的腳本; l 關(guān)聯(lián)(關(guān)聯(lián)(accociation)l 包含(包含(include)l 擴展(擴展(extend)l 泛化(泛化(generalization)用例圖中的關(guān)系用例圖中的關(guān)系l 關(guān)聯(lián)(關(guān)聯(lián)(accociation)每個用例都有參與者啟動(每個用例必須和一個參與者關(guān)每個用例都有參與者啟動(每個用例必須和一個參與者關(guān)聯(lián),有一個參與者來參與),聯(lián),有一個參與者來參與),除包含和擴展用例除包含和擴展用例用例和參與者之間是關(guān)聯(lián)關(guān)系,有三種形

20、式。用例和參與者之間是關(guān)聯(lián)關(guān)系,有三種形式。泛化關(guān)系泛化關(guān)系泛化關(guān)系代表一般與特殊的關(guān)系泛化關(guān)系代表一般與特殊的關(guān)系, 與繼承類似與繼承類似.在泛化關(guān)系中在泛化關(guān)系中, 子用例繼承了父用例的行為和含義子用例繼承了父用例的行為和含義, 子用例也可以增加新的行為和含義或覆蓋父用例中子用例也可以增加新的行為和含義或覆蓋父用例中的行為和含義的行為和含義.包含關(guān)系包含關(guān)系l 包含(包含(include) (是一種依賴關(guān)系,加了版型(是一種依賴關(guān)系,加了版型)兩個以上用例有共同功能,可分解到單獨用例,形成包含兩個以上用例有共同功能,可分解到單獨用例,形成包含依賴;依賴;箭頭方向由基本用例指向被包含用例;箭

21、頭方向由基本用例指向被包含用例;執(zhí)行基本用例時,每次都必須調(diào)用被包含的用例(吃飯前執(zhí)行基本用例時,每次都必須調(diào)用被包含的用例(吃飯前洗手);洗手);被包含用例也可以單獨執(zhí)行;被包含用例也可以單獨執(zhí)行;l 包含(包含(include)一個用例功能過多,可分解成小用例,構(gòu)成包含依賴一個用例功能過多,可分解成小用例,構(gòu)成包含依賴本例中,被包含用例不能單獨執(zhí)行,沒有本例中,被包含用例不能單獨執(zhí)行,沒有Actor直接指向直接指向它們它們擴展關(guān)系擴展關(guān)系l 擴展(擴展(extend) (是一種依賴關(guān)系,加了版型是一種依賴關(guān)系,加了版型)一個用例(在某些一個用例(在某些擴展點擴展點extension poi

22、nt上)擴展另一個上)擴展另一個用例的功能,構(gòu)成新用例;箭頭方向由擴展用例指向被擴用例的功能,構(gòu)成新用例;箭頭方向由擴展用例指向被擴展用例(即基本用例);展用例(即基本用例);擴展用例依賴于被擴展用例(基本用例),只是部分片段擴展用例依賴于被擴展用例(基本用例),只是部分片段組成,不是完整的獨立用例,無法單獨執(zhí)行;組成,不是完整的獨立用例,無法單獨執(zhí)行;擴展用例不一定每次都被執(zhí)行和調(diào)用。(吃飯前也可以不擴展用例不一定每次都被執(zhí)行和調(diào)用。(吃飯前也可以不洗手),而被包含用例每次必須執(zhí)行。洗手),而被包含用例每次必須執(zhí)行??隙]有參與者指向擴展用例,因為擴展用例依賴基本用肯定沒有參與者指向擴展用例

23、,因為擴展用例依賴基本用例。例。幾種關(guān)系的比較幾種關(guān)系的比較泛化和擴展表示用例之間的泛化和擴展表示用例之間的 “is a”, 包含關(guān)系表示包含關(guān)系表示用例之間的用例之間的“has a”.擴展關(guān)系的基本用例是擴展關(guān)系的基本用例是 well formed 的的. 一個基本用一個基本用例執(zhí)行時例執(zhí)行時, 可以執(zhí)行或不執(zhí)行擴展用例可以執(zhí)行或不執(zhí)行擴展用例.包含關(guān)系的基本用例可以不是或是包含關(guān)系的基本用例可以不是或是 well formed 的的. 執(zhí)行基本用例時執(zhí)行基本用例時, 一定會執(zhí)行被包含用例一定會執(zhí)行被包含用例.需要重復(fù)處理兩個或多個用例時需要重復(fù)處理兩個或多個用例時, 可以考慮包含關(guān)系可以考

24、慮包含關(guān)系.處理正常行為的變型且只是偶而描述時處理正常行為的變型且只是偶而描述時, 可以考慮只可以考慮只使用泛化關(guān)系使用泛化關(guān)系.處理正常行為的變型且希望采用更多控制方式時處理正常行為的變型且希望采用更多控制方式時, 可可以在基本用例中設(shè)置擴展點以在基本用例中設(shè)置擴展點, 使用擴展關(guān)系使用擴展關(guān)系.幾種關(guān)系的比較幾種關(guān)系的比較關(guān)系類型關(guān)系類型說明說明表示符號表示符號關(guān)聯(lián)關(guān)聯(lián)actor與與use case之間之間泛化泛化actor之間或之間或use case之之間間包含包含use case之間之間擴展擴展use case之間之間思考:思考:需求建模需求建模用例圖用例圖 用例圖用例圖需求分析的第一

25、步是確定系統(tǒng)能夠做什么,誰來使用需求分析的第一步是確定系統(tǒng)能夠做什么,誰來使用這個系統(tǒng)。這個系統(tǒng)。用例圖用例圖(use case diagram)是顯示一組用例、參與者是顯示一組用例、參與者以及它們之間的關(guān)系的圖。以及它們之間的關(guān)系的圖。用戶、項目管理員、分析人員、開發(fā)人員、質(zhì)保人員用戶、項目管理員、分析人員、開發(fā)人員、質(zhì)保人員都可以通過用例圖了解系統(tǒng)功能。都可以通過用例圖了解系統(tǒng)功能。 實例實例1:圖書館管理系統(tǒng)中的用例圖:圖書館管理系統(tǒng)中的用例圖1.確定系統(tǒng)涉及的總體信息確定系統(tǒng)涉及的總體信息 圖書館管理系統(tǒng)是對書籍的借閱及讀者信息進行統(tǒng)圖書館管理系統(tǒng)是對書籍的借閱及讀者信息進行統(tǒng)一管理的

26、系統(tǒng),具體包括讀者的借書、還書,書籍一管理的系統(tǒng),具體包括讀者的借書、還書,書籍預(yù)訂;圖書館管理員的書籍借出處理、書籍歸還處預(yù)訂;圖書館管理員的書籍借出處理、書籍歸還處理、預(yù)訂信息處理;還有系統(tǒng)管理員的系統(tǒng)維護,理、預(yù)訂信息處理;還有系統(tǒng)管理員的系統(tǒng)維護,包括增加書目、刪除或更新書目、增加書籍、減少包括增加書目、刪除或更新書目、增加書籍、減少書籍、增加讀者賬戶信息、刪除或更新讀者賬戶信書籍、增加讀者賬戶信息、刪除或更新讀者賬戶信息、書籍信息查詢、讀者信息查詢等。息、書籍信息查詢、讀者信息查詢等。2.確定系統(tǒng)的參與者確定系統(tǒng)的參與者根據(jù)圖書館管理系統(tǒng)的需求分析,可以確定如下幾點:根據(jù)圖書館管理系

27、統(tǒng)的需求分析,可以確定如下幾點:(1)作為一個圖書館管理系統(tǒng),首先需要借閱者的參與,借閱)作為一個圖書館管理系統(tǒng),首先需要借閱者的參與,借閱者可以登錄系統(tǒng)查詢所需要的書籍,查到所需書籍后可以考者可以登錄系統(tǒng)查詢所需要的書籍,查到所需書籍后可以考慮預(yù)訂,當(dāng)然最重要的是借書、還書操作。慮預(yù)訂,當(dāng)然最重要的是借書、還書操作。(2)對于系統(tǒng)來說,借閱者發(fā)起的借書、還書等操作最終還需)對于系統(tǒng)來說,借閱者發(fā)起的借書、還書等操作最終還需要圖書館管理員來處理,他們還可以負(fù)責(zé)圖書的預(yù)訂取消。要圖書館管理員來處理,他們還可以負(fù)責(zé)圖書的預(yù)訂取消。(3)對于圖書館管理系統(tǒng)來說,系統(tǒng)的維護操作也是相當(dāng)重要)對于圖書館

28、管理系統(tǒng)來說,系統(tǒng)的維護操作也是相當(dāng)重要的,維護操作主要包括增加書目、刪除或更新書目、增加書的,維護操作主要包括增加書目、刪除或更新書目、增加書籍、減少書籍等操作。籍、減少書籍等操作。 系統(tǒng)的參與者主要有:借閱者、圖書館管理員、圖書館管理系統(tǒng)的參與者主要有:借閱者、圖書館管理員、圖書館管理系統(tǒng)維護者。系統(tǒng)維護者。3.確定系統(tǒng)用例確定系統(tǒng)用例識別用例最好的方法就是從分析系統(tǒng)的參與者開始,識別用例最好的方法就是從分析系統(tǒng)的參與者開始,考慮每個參與者是如何使用系統(tǒng)的。考慮每個參與者是如何使用系統(tǒng)的。(1)借閱者請求服務(wù)的用例)借閱者請求服務(wù)的用例l 登錄系統(tǒng);登錄系統(tǒng);l 查詢自己的借閱信息;查詢自

29、己的借閱信息;l 查詢書籍信息;查詢書籍信息;l 預(yù)訂書籍;預(yù)訂書籍;l 借閱書籍;借閱書籍; 歸還書籍。歸還書籍。 (2)圖書館管理員處理借書、還書等的用例)圖書館管理員處理借書、還書等的用例l 處理書籍借閱;處理書籍借閱;l 處理書籍歸還;處理書籍歸還; 刪除預(yù)訂信息。刪除預(yù)訂信息。(3)系統(tǒng)管理員進行系統(tǒng)維護的用例)系統(tǒng)管理員進行系統(tǒng)維護的用例l 查詢借閱者信息;查詢借閱者信息;l 查詢書籍信息;查詢書籍信息;l 增加書目;增加書目;l 刪除或更新書目;刪除或更新書目;l 增加書籍;增加書籍;l 刪除書籍;刪除書籍;l 添加借閱者賬戶;添加借閱者賬戶; 刪除或更新借閱者賬戶。刪除或更新借

30、閱者賬戶。4.使用使用Rose繪制用例圖繪制用例圖使用使用Rose繪制用例圖的步驟:繪制用例圖的步驟:1.創(chuàng)建用例圖創(chuàng)建用例圖2.添加參與者與用例添加參與者與用例3.添加參與者與用例之間的關(guān)系添加參與者與用例之間的關(guān)系4.添加用例之間的關(guān)系添加用例之間的關(guān)系Rational Rose 介紹介紹選擇實現(xiàn)語言選擇實現(xiàn)語言l J2EEl J2SEl JDKl VB6l VC6l Oraclel RUPRational Rose IDE 環(huán)境環(huán)境瀏覽器瀏覽器l 四個視圖四個視圖用例視圖用例視圖邏輯視圖邏輯視圖組件視圖組件視圖部署視圖部署視圖1. 用例視圖用例視圖l 包含內(nèi)容包含內(nèi)容PackageUse

31、 caseActorClassUse case diagramClass diagramCollaboration diagramSequence diagramStatechart diagramActivity diagram2. 邏輯視圖邏輯視圖l 包含內(nèi)容包含內(nèi)容ClassClass UtilityUse caseInterfacePackageClass diagramUse case diagram 盡量不用盡量不用Collaboration diagramSequence diagramStatechart diagramActivity diagram3. 組件視圖組件視圖l

32、包含內(nèi)容包含內(nèi)容PackageComponentComponent diagram4. 部署視圖部署視圖l 包含內(nèi)容包含內(nèi)容ProcessorDeviceDeployment diagram文檔窗口文檔窗口l 可以為任何當(dāng)前可以為任何當(dāng)前UML元素添加注釋、說明元素添加注釋、說明或簡單定義等。或簡單定義等。l 導(dǎo)出發(fā)布模型時,這導(dǎo)出發(fā)布模型時,這里的文字也會自動輸里的文字也會自動輸出。出。標(biāo)準(zhǔn)工具欄標(biāo)準(zhǔn)工具欄l 基本的新建、打開、保存工具基本的新建、打開、保存工具l 瀏覽類圖、瀏覽交互圖、瀏覽組件圖、瀏覽狀態(tài)圖、瀏覽類圖、瀏覽交互圖、瀏覽組件圖、瀏覽狀態(tài)圖、瀏覽部署圖以及放大、縮小等方便查看的

33、功能瀏覽部署圖以及放大、縮小等方便查看的功能l 可以可以Ctrl+D刪除任意元素。刪除任意元素。視圖工具欄視圖工具欄l 根據(jù)不同的視圖環(huán)境,根據(jù)不同的視圖環(huán)境,顯示不同的工具顯示不同的工具用例視圖用例視圖邏輯視圖邏輯視圖組件視圖組件視圖部署視圖部署視圖視圖工具欄視圖工具欄l 用戶可以自己定制工具用戶可以自己定制工具欄內(nèi)容欄內(nèi)容修改模型屬性修改模型屬性l Tools菜單中選擇菜單中選擇“Options”創(chuàng)建元素創(chuàng)建元素l 命名命名l 文檔區(qū)加注釋文檔區(qū)加注釋l 缺省的主用例圖缺省的主用例圖mainl 缺省的主類圖缺省的主類圖mainl 缺省的主組件圖缺省的主組件圖mainl 缺省的主部署圖缺省的

34、主部署圖main實例實例2:分析:分析:1.參與者參與者管理員管理員2.用例用例管理圖書:新增書籍、查詢書籍、修改書籍管理圖書:新增書籍、查詢書籍、修改書籍管理外借:登記外借、查詢外借管理外借:登記外借、查詢外借統(tǒng)計信息統(tǒng)計信息推薦方案推薦方案 PK 可選方案可選方案優(yōu)化方案優(yōu)化方案1 優(yōu)化方案優(yōu)化方案2用例的描述用例的描述用例描述是指對一個用例的功能進行的文字描述用例描述是指對一個用例的功能進行的文字描述, 是是參與者與系統(tǒng)交互動作序列的說明參與者與系統(tǒng)交互動作序列的說明.用例描述才是用例的主要部分用例描述才是用例的主要部分, 是后續(xù)的是后續(xù)的交互圖分析和類圖分析必不可少的部分交互圖分析和類

35、圖分析必不可少的部分.用例采用自然語言描述參與者與系統(tǒng)的交互行為用例采用自然語言描述參與者與系統(tǒng)的交互行為,要要易于理解。其讀者是開發(fā)人員、用戶、項目經(jīng)理、易于理解。其讀者是開發(fā)人員、用戶、項目經(jīng)理、測試人員等。測試人員等。用例描述的是一個系統(tǒng)做什么(用例描述的是一個系統(tǒng)做什么(whatwhat)的信息,并)的信息,并不說明怎么做(不說明怎么做(howhow),怎么做是設(shè)計模型的事。),怎么做是設(shè)計模型的事。用例描述模板用例描述模板為了說明一個用例的行為,描述一個用例的關(guān)鍵要為了說明一個用例的行為,描述一個用例的關(guān)鍵要素包括:用例何時開始(前置條件)、何時結(jié)束素包括:用例何時開始(前置條件)、

36、何時結(jié)束(后置條件)、參與者何時與用例交互、交互了什(后置條件)、參與者何時與用例交互、交互了什么信息,以及用例執(zhí)行的基本事件流和擴展事件流。么信息,以及用例執(zhí)行的基本事件流和擴展事件流。1. 1. 事件流事件流事件流就是一個用例在執(zhí)行時參與者與系統(tǒng)之間的交互過程。事件流就是一個用例在執(zhí)行時參與者與系統(tǒng)之間的交互過程。事件流的目的是為用例的邏輯流程建立文檔,這個文檔詳細(xì)事件流的目的是為用例的邏輯流程建立文檔,這個文檔詳細(xì)描述系統(tǒng)用戶的工作和系統(tǒng)本身的工作。描述系統(tǒng)用戶的工作和系統(tǒng)本身的工作。事件流分為基本事件流和擴展事件流兩種。事件流分為基本事件流和擴展事件流兩種。2. 2. 用例描述模板用例

37、描述模板 用例描述有兩種格式:一種是純文本格式,另一種是表格形用例描述有兩種格式:一種是純文本格式,另一種是表格形式。式。描述項描述項說明說明用例名稱用例名稱表明用戶的意圖或用例的用途,與用例圖相符表明用戶的意圖或用例的用途,與用例圖相符標(biāo)識符標(biāo)識符可選可選惟一標(biāo)識符惟一標(biāo)識符, 便于引用該用例便于引用該用例用例描述用例描述概述用例的幾句話概述用例的幾句話參與者參與者與此用例相關(guān)的參與者與此用例相關(guān)的參與者優(yōu)先級優(yōu)先級一個有序的排列一個有序的排列, 1代表優(yōu)先級最高代表優(yōu)先級最高狀態(tài)狀態(tài)可選可選用例狀態(tài)用例狀態(tài), 可以是可以是: 進行中進行中, 等待審查等待審查, 通過審查通過審查, 未通過審

38、未通過審查查前置條件前置條件一個條件列表一個條件列表, 這些條件必須在訪問用例前得到滿足這些條件必須在訪問用例前得到滿足后置條件后置條件一個條件列表一個條件列表, 這些條件必須在用例完成之后得到滿足這些條件必須在用例完成之后得到滿足基本操作流程基本操作流程描述用例中各項工作都順利進行時用例的工作方式描述用例中各項工作都順利進行時用例的工作方式可選操作流程可選操作流程描述變異工作方式、出現(xiàn)異?;虬l(fā)生錯誤的情況下的路徑描述變異工作方式、出現(xiàn)異?;虬l(fā)生錯誤的情況下的路徑用例的描述格式用例的描述格式描述項描述項說明說明被泛化的用例被泛化的用例此用例所泛化的用例列表此用例所泛化的用例列表被包含的用例被包

39、含的用例此用例所包含的用例列表此用例所包含的用例列表被擴展的用例被擴展的用例此用例所擴展的用例列表此用例所擴展的用例列表修改歷史記錄修改歷史記錄可選可選關(guān)于用例的修改時間、修改原因、修改人的詳細(xì)信息關(guān)于用例的修改時間、修改原因、修改人的詳細(xì)信息問題問題可選可選與此用例的開發(fā)有關(guān)的問題列表與此用例的開發(fā)有關(guān)的問題列表決策決策可選可選關(guān)鍵決策的列表關(guān)鍵決策的列表, 將這些決策信息記錄下來以便維護時將這些決策信息記錄下來以便維護時使用使用頻率頻率可選可選參與者訪問此用例的頻率參與者訪問此用例的頻率, 如如: 每日一次每日一次/每月一次等每月一次等用例的描述格式用例的描述格式(續(xù)表續(xù)表)用例的描述用例

40、的描述描述用例時易出現(xiàn)的錯誤:描述用例時易出現(xiàn)的錯誤:只描述系統(tǒng)的行為只描述系統(tǒng)的行為, 沒有描述參與者的行為沒有描述參與者的行為只描述參與者的行為只描述參與者的行為, 沒有描述系統(tǒng)的行為沒有描述系統(tǒng)的行為在用例描述中就設(shè)定了對用戶界面的設(shè)計的要求在用例描述中就設(shè)定了對用戶界面的設(shè)計的要求描述過于冗長描述過于冗長Use case: Withdraw cashActor: customer主事件流:主事件流:儲戶插入儲戶插入ATM卡卡,并輸入密碼并輸入密碼儲戶按儲戶按“取款取款”按鈕按鈕,并輸入并輸入取款數(shù)目取款數(shù)目儲戶取走現(xiàn)金儲戶取走現(xiàn)金/ATM卡卡/收據(jù)收據(jù)(1)儲戶離開儲戶離開Use ca

41、se: Withdraw cashActor: customer主事件流:主事件流:ATM系統(tǒng)獲得系統(tǒng)獲得ATM卡和密碼卡和密碼設(shè)置交易類型為設(shè)置交易類型為“取款取款”ATM系統(tǒng)獲得取款金額系統(tǒng)獲得取款金額輸出現(xiàn)金、收據(jù)和輸出現(xiàn)金、收據(jù)和ATM卡卡系統(tǒng)復(fù)位系統(tǒng)復(fù)位用例的描述用例的描述ATM系統(tǒng)系統(tǒng)“取款取款”用例的兩個錯誤描述:用例的兩個錯誤描述:只描述了只描述了actor的行為的行為只描述了只描述了System的行為的行為用例的描述用例的描述Use case: Withdraw cashActor: customer主事件流:主事件流:儲戶通過讀卡機插入儲戶通過讀卡機插入ATM卡卡ATM系統(tǒng)

42、從卡上讀取銀行系統(tǒng)從卡上讀取銀行ID、賬號、加密密碼、賬號、加密密碼, 并通過主銀行并通過主銀行系統(tǒng)驗證銀行系統(tǒng)驗證銀行ID和賬號和賬號儲戶輸入密碼儲戶輸入密碼, ATM系統(tǒng)根據(jù)加密密碼對輸入密碼進行驗證系統(tǒng)根據(jù)加密密碼對輸入密碼進行驗證儲戶按儲戶按 “取款取款”按鈕按鈕, 并輸入取款數(shù)目并輸入取款數(shù)目, 該數(shù)目應(yīng)該為該數(shù)目應(yīng)該為100的倍的倍數(shù)數(shù)ATM系統(tǒng)通知主銀行系統(tǒng)系統(tǒng)通知主銀行系統(tǒng), 傳遞賬號和金額傳遞賬號和金額, 并接收返回的確并接收返回的確認(rèn)信息和賬戶余額認(rèn)信息和賬戶余額ATM系統(tǒng)輸出現(xiàn)金、系統(tǒng)輸出現(xiàn)金、ATM卡和收據(jù)卡和收據(jù)ATM系統(tǒng)記錄交易到日志文件系統(tǒng)記錄交易到日志文件ATM

43、系統(tǒng)系統(tǒng)“取款取款”用例的正確描述:用例的正確描述:找出系統(tǒng)外部的參與者和外部系統(tǒng)找出系統(tǒng)外部的參與者和外部系統(tǒng), 確定系統(tǒng)邊界和范圍確定系統(tǒng)邊界和范圍確定每一個參與者所期望的系統(tǒng)行為確定每一個參與者所期望的系統(tǒng)行為把這些系統(tǒng)行為命名為用例把這些系統(tǒng)行為命名為用例使用泛化、包含、擴展等關(guān)系處理系統(tǒng)行為的公共或變使用泛化、包含、擴展等關(guān)系處理系統(tǒng)行為的公共或變更部分更部分編制每一個用例的腳本編制每一個用例的腳本繪制用例圖繪制用例圖區(qū)分主要事件流和異常事件流區(qū)分主要事件流和異常事件流, 如果需要如果需要, 可以把異常事可以把異常事件流處理為單獨的用例件流處理為單獨的用例細(xì)化用例圖細(xì)化用例圖, 解決

44、用例間重復(fù)與沖突的問題解決用例間重復(fù)與沖突的問題.用例分析的基本步驟:用例分析的基本步驟:實例分析:語音郵箱系統(tǒng)實例分析:語音郵箱系統(tǒng)目標(biāo):構(gòu)建一個語音郵箱系統(tǒng)目標(biāo):構(gòu)建一個語音郵箱系統(tǒng)問題描述:問題描述: 語音郵箱系統(tǒng)中語音郵箱系統(tǒng)中,可以為每個系統(tǒng)用戶可以為每個系統(tǒng)用戶(郵箱主人郵箱主人)分配一個分配一個語音郵箱號碼。語音郵箱號碼。 進行留言時,撥打語音郵箱系統(tǒng)的主號碼,進行留言時,撥打語音郵箱系統(tǒng)的主號碼, 在聽到提示音在聽到提示音“請輸入郵箱號請輸入郵箱號”后,輸入語音郵箱號,聽到主人設(shè)定的問后,輸入語音郵箱號,聽到主人設(shè)定的問候語后,進行留言然后掛斷電話。候語后,進行留言然后掛斷電話

45、。 郵箱主人撥打語音郵箱系統(tǒng)的主號碼,在聽到提示音郵箱主人撥打語音郵箱系統(tǒng)的主號碼,在聽到提示音“請請輸入郵箱號輸入郵箱號”后,輸入語音郵箱號,聽到主人設(shè)定的問候語后,輸入語音郵箱號,聽到主人設(shè)定的問候語后,后, 輸入密碼輸入密碼+#進行郵箱管理。此時系統(tǒng)提供三種服務(wù):進行郵箱管理。此時系統(tǒng)提供三種服務(wù):1.接收信息;接收信息;2.更改問候語;更改問候語;3.更改密碼。其中接收留言包括收更改密碼。其中接收留言包括收聽新留言、存儲留言、刪除留言等。聽新留言、存儲留言、刪除留言等。實例分析:語音郵箱系統(tǒng)實例分析:語音郵箱系統(tǒng)1. 找出找出actor和外部系統(tǒng),確定系統(tǒng)邊界。和外部系統(tǒng),確定系統(tǒng)邊界

46、。參與者:留言人、郵箱主人參與者:留言人、郵箱主人2. 主要功能分析主要功能分析(參與者期望的系統(tǒng)行為等參與者期望的系統(tǒng)行為等)(1)留言人保留信息留言人保留信息(留言留言)。(2)郵箱主人管理信息:收聽郵箱主人管理信息:收聽/存儲存儲/刪除。刪除。(3)郵箱主人更改問候語。郵箱主人更改問候語。(4)郵箱主人更改密碼。郵箱主人更改密碼。實例分析:語音郵箱系統(tǒng)實例分析:語音郵箱系統(tǒng)3. 初步找到的用例初步找到的用例留言人:保留信息留言人:保留信息郵箱主人:接收信息、更改問候語、更改密碼郵箱主人:接收信息、更改問候語、更改密碼4. 進一步尋找用例進一步尋找用例郵箱主人:登錄郵箱郵箱主人:登錄郵箱留

47、言人、郵箱主人:撥打郵箱號碼留言人、郵箱主人:撥打郵箱號碼5. 分析用例之間的關(guān)系分析用例之間的關(guān)系本例較為簡單,只使用本例較為簡單,只使用“包含關(guān)系包含關(guān)系”即可。即可。實例分析:語音郵箱系統(tǒng)實例分析:語音郵箱系統(tǒng)6. 繪制初步用例圖繪制初步用例圖實例分析:語音郵箱系統(tǒng)實例分析:語音郵箱系統(tǒng)7. 編寫每一個用例的腳本編寫每一個用例的腳本8. 區(qū)分腳本中的主事流或異常情況事件流區(qū)分腳本中的主事流或異常情況事件流9. 細(xì)化用例圖,完成用例模型細(xì)化用例圖,完成用例模型(略略)實例分析:語音郵箱系統(tǒng)實例分析:語音郵箱系統(tǒng)-用例腳本用例腳本用例用例1:撥打郵箱號:撥打郵箱號1. 呼叫者撥打語音郵件系統(tǒng)的主號碼。呼叫者撥打語音郵件系統(tǒng)的主號碼。2. 語音郵件系統(tǒng)發(fā)出提示音:輸入郵箱號碼并加語音郵件系統(tǒng)發(fā)出提示音:輸入郵箱號碼并加#號。號。3. 呼叫者輸入接收者的郵箱號。呼叫者輸入接收者的郵箱號。4. 語音郵件系統(tǒng)發(fā)出問候語:已進入語音郵件系統(tǒng)發(fā)出問候語:已進入XX的郵箱,請留言。的郵箱,請留言。用例用例2: 保留信息保留信息1. 呼叫者完成郵箱號輸入操作呼叫者完成郵箱號輸入操作.2. 呼叫者說出信息呼叫者說出信息.3. 呼叫者掛斷電話呼叫者掛斷電話.4. 語音郵件系統(tǒng)將記錄的信息存放在接收者的郵箱中語音郵件系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論