




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、用例高天迎 用例n1 用例的概念n2 用例建模技術(shù)n3 實(shí)例圖書(shū)館管理系統(tǒng)中的用例需求分析n需求分析的任務(wù)是確定所開(kāi)發(fā)的軟件的功能、性能、數(shù)據(jù)等各個(gè)方面的要求。主要解決系統(tǒng)“做什么”的問(wèn)題。n需求分析是軟件整個(gè)開(kāi)發(fā)過(guò)程中的一個(gè)關(guān)鍵過(guò)程。n需求分析中的“溝通鴻溝”: 需求分析需要各方面人員(如分析人員、開(kāi)發(fā)人員、客戶等)的參與,而這些人員有著不同的知識(shí)背景,對(duì)目標(biāo)系統(tǒng)的認(rèn)知程度也各不相同,這種差異導(dǎo)致各方面人員之間溝通困難,人為的給需求分析的實(shí)施增加了難度。需求規(guī)格說(shuō)明書(shū)的目錄框架參考需求n需求定義:需求定義:需求(requirement)就是系統(tǒng)(更廣義的說(shuō)法是項(xiàng)目)必須提供的能力和必須遵從的
2、條件。n需求分類:需求分類: n功能性功能性(行為的),有具體的完成內(nèi)容的需求。n客戶登錄、郵箱網(wǎng)站的收發(fā)收發(fā)郵件、論壇網(wǎng)站的發(fā)帖留言等。n用戶能夠搜索所有的數(shù)據(jù)集合n每一個(gè)訂單需要分配一個(gè)唯一標(biāo)識(shí)符,用戶可以永久保存起來(lái)需求n非功能性非功能性(其它所有的行為) ,軟件產(chǎn)品為滿足用戶業(yè)務(wù)需求而必須具有且除功能需求以外的特性,包括系統(tǒng)的性能、可靠性、可維護(hù)性、可擴(kuò)充性和對(duì)技術(shù)和對(duì)業(yè)務(wù)的適應(yīng)性等。 n性能要求:要求系統(tǒng)能滿足100個(gè)人同時(shí)使用,頁(yè)面反應(yīng)時(shí)間不能超過(guò)6秒;n可靠性: 系統(tǒng)能724小時(shí)連續(xù)運(yùn)行,年非計(jì)劃宕機(jī)時(shí)間不能高于8小時(shí)。要求能快速的部署,特別是在系統(tǒng)出現(xiàn)故障時(shí),能夠快速的切換到備
3、用機(jī)。n領(lǐng)域規(guī)則,法律,知識(shí)產(chǎn)權(quán)需求n在統(tǒng)一過(guò)程(UP)中,需求按照“FURPS+”模型進(jìn)行分類。 n功能性(Functional):特性、功能、安全性; n可用性(Usability):人性化因素、幫助、文檔; n可靠性(Reliability):故障頻率、可恢復(fù)性、可預(yù)測(cè)性; n性能(Performance):響應(yīng)時(shí)間、吞吐量、準(zhǔn)確性、有效性、資源利用率; n可支持性(Supportability):適應(yīng)性、可維護(hù)性、國(guó)際化、可配置性。 需求n“FURPS+”中的“+”是指一些輔助性的和次要的因素,比如:n實(shí)現(xiàn)(Implementation):資源限制、語(yǔ)言和工具、硬件等; n接口(Int
4、erface);強(qiáng)加于外部系統(tǒng)接口之上的約束; n操作(Operation):對(duì)其操作設(shè)置的系統(tǒng)管理; n包裝(Packaging)例如物理的包裝盒; n授權(quán)(Legal):許可證或其他方式。需求問(wèn)題的代價(jià)想改進(jìn)就能改進(jìn)嗎?需求石頭問(wèn)題需求問(wèn)題對(duì)策1. 概念n1.1 概述n1.2 參與者n1.3 用例n1.4 用例之間的關(guān)系1.1 概述 n用例圖顯示誰(shuí)將是相關(guān)的用戶、用戶希望系統(tǒng)提供什么服務(wù)以及用戶需要為系統(tǒng)提供的服務(wù)。n用例圖最常用來(lái)描述系統(tǒng)以及子系統(tǒng)。 1.1 概述 n用例圖包含6個(gè)元素:n參與者(Actor)n用例(Use Case)n關(guān)聯(lián)關(guān)系(Association)n包含關(guān)系(Inc
5、lude)n擴(kuò)展關(guān)系(Extend)n泛化關(guān)系(Generalization) 1.2 參與者 n定義:Actor是指系統(tǒng)以外的,需要使用系統(tǒng)或與系統(tǒng)交互的東西,包括人,設(shè)備和其它系統(tǒng)。Actor有不同的譯名,如:參與者, 活動(dòng)者, 執(zhí)行者, 行動(dòng)者等。n系統(tǒng)外部的一個(gè)實(shí)體。n參與用例的執(zhí)行過(guò)程。n通過(guò)向系統(tǒng)輸入或請(qǐng)求系統(tǒng)輸入某些事件來(lái)觸發(fā)系統(tǒng)的執(zhí)行。n由參與用例時(shí)所擔(dān)當(dāng)?shù)慕巧珌?lái)表示。n每個(gè)參與者可以參與一個(gè)或多個(gè)用例。 1.2 參與者n參與者的種類:n系統(tǒng)用戶n與所建造的系統(tǒng)交互的其他系統(tǒng)n一些可以運(yùn)行的進(jìn)程 確定參與者n如何尋找系統(tǒng)的參與者 n誰(shuí)使用系統(tǒng)的主要功能?n誰(shuí)改變系統(tǒng)的數(shù)據(jù)n誰(shuí)從
6、系統(tǒng)獲取信息n誰(shuí)需要系統(tǒng)的支持以完成日常工作任務(wù)?n誰(shuí)負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)正常運(yùn)行?n系統(tǒng)需要應(yīng)付(處理)哪些硬設(shè)備?n系統(tǒng)需要和哪些外部系統(tǒng)交互?n誰(shuí)(或什么)對(duì)系統(tǒng)運(yùn)行產(chǎn)生的結(jié)果感興趣?n有沒(méi)有自動(dòng)發(fā)生的事件確定參與者n對(duì)參與者建模的過(guò)程中需要注意的問(wèn)題n參與者對(duì)于系統(tǒng)而言總是外部的n參與者可以直接或間接的同系統(tǒng)交互n一個(gè)人或事物在與系統(tǒng)交互時(shí),可以扮演多個(gè)角色n每一個(gè)參與者必須有簡(jiǎn)短的描述參與者間的關(guān)系n參與者(actor)之間可以存在泛化泛化關(guān)系,表示一個(gè)一般性的參與者與另一個(gè)更為特殊的參與者之間的聯(lián)系。n參與者間的泛化關(guān)系示例:說(shuō)明n例:在線銀行系統(tǒng)的一些可能的參與者參與者n客戶
7、:從系統(tǒng)獲取信息并執(zhí)行金融交易。n管理人員:開(kāi)辦系統(tǒng)的用戶。獲取并更新信息。n廠商:接受作為轉(zhuǎn)帳支付結(jié)果的資金nmail系統(tǒng)說(shuō)明n責(zé)任類似或重疊泛化出一個(gè)抽象執(zhí)行者1.3 用例 nUse Case概念是Jacobson于60年代和70年代在愛(ài)立信公司開(kāi)發(fā)AKE,AXE系列系統(tǒng)時(shí)發(fā)明的,并在其博士論文(85年)和92年出版的論著中做了詳細(xì)論述。n在軟件開(kāi)發(fā)中采用Use Case驅(qū)動(dòng)是Jacobson對(duì)軟件界最重要的貢獻(xiàn)之一。 n自Jacobson的著作出版后,面向?qū)ο箢I(lǐng)域已廣泛接納了用例這一概念,并認(rèn)為它是第二代面向?qū)ο蠹夹g(shù)的標(biāo)志。UseCase驅(qū)動(dòng)use case對(duì)軟件開(kāi)發(fā)的意義實(shí)現(xiàn)實(shí)現(xiàn)測(cè)試測(cè)
8、試需求需求分析和設(shè)計(jì)分析和設(shè)計(jì)Use Cases 把所有這些過(guò)程綁到一起把所有這些過(guò)程綁到一起Use Case的定義n在一個(gè)workshop(專題討論會(huì))上,14位主要的OO專家對(duì)Use Case有14個(gè)定義。n定義1:use case是對(duì)一個(gè)活動(dòng)者活動(dòng)者(actor)使用系統(tǒng)的一項(xiàng)功能時(shí)所進(jìn)行的交互過(guò)程的一個(gè)文字描述序列。n定義2:The specification of sequences of actions, including variant sequences and error sequences, that a system, subsystem, or class can p
9、erform by interacting with outside actors.用例的三種常用形式n摘要簡(jiǎn)潔的一段概要,通常用于主成功場(chǎng)景n一般用于早期需求分析中n非正式非正式的幾個(gè)段落,覆蓋不同場(chǎng)景n一般用于早期需求分析中n詳述詳細(xì)編寫所有步驟及各種變化n以摘要的形式編寫了大量用例之后,詳細(xì)編寫其中少量重要的、高價(jià)值的用例摘要形式的用例n處理銷售n顧客攜帶所購(gòu)商品到達(dá)收銀臺(tái),收銀員使用POS系統(tǒng)記錄每件商品。系統(tǒng)連續(xù)顯示累計(jì)總額,并逐行顯示細(xì)目。顧客輸入支付信息,系統(tǒng)對(duì)支付信息進(jìn)行驗(yàn)證和記錄。系統(tǒng)更新庫(kù)存信息。顧客從系統(tǒng)獲得購(gòu)物小票,然后攜帶商品離開(kāi)。例:在線銀行系統(tǒng)的一些可能的用例:瀏
10、覽帳戶余額列出交易內(nèi)容劃撥資金支付帳款登錄退出系統(tǒng)編輯配置文件買進(jìn)證券賣出證券use case說(shuō)明: Use case從用戶的角度獲取操作性需求,可以促進(jìn)與用戶溝通,并不考慮系統(tǒng)內(nèi)部對(duì)該功能的具體實(shí)現(xiàn)方式。 用例是對(duì)系統(tǒng)的功能進(jìn)行清晰而一致的描述,代表系統(tǒng)中各個(gè)項(xiàng)目相關(guān)人員之間就系統(tǒng)的行為所達(dá)成的契約。 使用use case可以用來(lái)劃分系統(tǒng)與外部實(shí)體的界限,是OO系統(tǒng)設(shè)計(jì)的起點(diǎn),是類、對(duì)象、操作的來(lái)源。 用例的一些特點(diǎn):(1)用例描述了用戶提出的一些可見(jiàn)的需求;(2)用例可大可?。唬?)用例對(duì)應(yīng)一個(gè)具體的用戶目標(biāo)。爭(zhēng)論: 本質(zhì)上,Use Case分析是一種功能分解功能分解(functional
11、 decomposition)(functional decomposition)的技術(shù),沒(méi)有以對(duì)象觀點(diǎn)為中心,因而有人認(rèn)為Use Case 分析只是OOA/OOD的先導(dǎo)性工作,并非OOA/OOD過(guò)程的一部分;但也有人視其為OOA/OOD的一環(huán)。 不管怎樣,Use Case是UML的一部份,Use Case是OO開(kāi)發(fā)過(guò)程中的第一步。用例n為用例的邏輯流程建立文檔,詳細(xì)描述系統(tǒng)用戶的工作和系統(tǒng)本身的工作n用例的描述是獨(dú)立于實(shí)現(xiàn)方法的,描述系統(tǒng)“做什么”,而不是“怎么做”n1. 簡(jiǎn)要說(shuō)明n2. 前提條件n3. 事件流(主事件流、其他事件流、錯(cuò)誤流 )n4. 事后條件用例n用例的組成n簡(jiǎn)要說(shuō)明n與用
12、例相關(guān)的說(shuō)明,描述該用例的作用n應(yīng)包括執(zhí)行用例的不同類型用戶和通過(guò)這個(gè)用例要達(dá)到的結(jié)果n前提條件n列出用例執(zhí)行之前必須滿足的條件,例如另一個(gè)用例必須要先執(zhí)行n后置條件n用例執(zhí)行完畢后必須滿足的條件,例如必須執(zhí)行另一個(gè)用例n事件流程(主事件流、其他事件流、錯(cuò)誤流 )n從用戶角度描述執(zhí)行用例的具體步驟n包括用例的開(kāi)始和結(jié)束、用例如何與參與者交互、用例的正常流程、主事件流的變體以及錯(cuò)誤流用例n學(xué)生提交實(shí)驗(yàn)結(jié)果的用例描述 student提交實(shí)驗(yàn)結(jié)果用例用例名稱用例名稱提交實(shí)驗(yàn)結(jié)果提交實(shí)驗(yàn)結(jié)果參與者參與者學(xué)生學(xué)生假設(shè)假設(shè)學(xué)生完成了實(shí)驗(yàn)學(xué)生完成了實(shí)驗(yàn)前置條件前置條件學(xué)生已預(yù)約了實(shí)驗(yàn),并且完成實(shí)驗(yàn)學(xué)生已預(yù)約
13、了實(shí)驗(yàn),并且完成實(shí)驗(yàn)后置條件后置條件學(xué)生提交實(shí)驗(yàn)結(jié)果后,系統(tǒng)數(shù)據(jù)庫(kù)存儲(chǔ)實(shí)驗(yàn)結(jié)果學(xué)生提交實(shí)驗(yàn)結(jié)果后,系統(tǒng)數(shù)據(jù)庫(kù)存儲(chǔ)實(shí)驗(yàn)結(jié)果主事件流主事件流1.1.學(xué)生登錄系統(tǒng);學(xué)生登錄系統(tǒng);2.2.學(xué)生完成實(shí)驗(yàn)結(jié)果;學(xué)生完成實(shí)驗(yàn)結(jié)果;3.3.學(xué)生選擇該門實(shí)驗(yàn)課程點(diǎn)擊學(xué)生選擇該門實(shí)驗(yàn)課程點(diǎn)擊“上傳上傳”按鈕;按鈕;4.4.系統(tǒng)彈出上傳實(shí)驗(yàn)結(jié)果菜單;系統(tǒng)彈出上傳實(shí)驗(yàn)結(jié)果菜單;5.5.學(xué)生選擇自己的實(shí)驗(yàn)結(jié)果文件夾進(jìn)行上傳;學(xué)生選擇自己的實(shí)驗(yàn)結(jié)果文件夾進(jìn)行上傳;6.6.上傳成功之后系統(tǒng)提示提交成功;上傳成功之后系統(tǒng)提示提交成功;7.7.系統(tǒng)修改存儲(chǔ)學(xué)生是否提交實(shí)驗(yàn)結(jié)果的字段。系統(tǒng)修改存儲(chǔ)學(xué)生是否提交實(shí)驗(yàn)結(jié)果的字段。備選
14、事件流備選事件流1a.1a.非法用戶:提示用戶名或密碼錯(cuò)誤;非法用戶:提示用戶名或密碼錯(cuò)誤;5a.5a.學(xué)生的實(shí)驗(yàn)結(jié)果文件夾未按要求命名,不是以學(xué)期和學(xué)號(hào)兩部分組成學(xué)生的實(shí)驗(yàn)結(jié)果文件夾未按要求命名,不是以學(xué)期和學(xué)號(hào)兩部分組成:系統(tǒng)提示文件夾命名錯(cuò)誤;:系統(tǒng)提示文件夾命名錯(cuò)誤;5b.5b.學(xué)生所提交的實(shí)驗(yàn)結(jié)果文件夾是空:系統(tǒng)提示文件夾為空;學(xué)生所提交的實(shí)驗(yàn)結(jié)果文件夾是空:系統(tǒng)提示文件夾為空;6a.6a.在上傳實(shí)驗(yàn)結(jié)果的過(guò)程中突然中斷:系統(tǒng)要求學(xué)生重新上傳實(shí)驗(yàn)結(jié)果在上傳實(shí)驗(yàn)結(jié)果的過(guò)程中突然中斷:系統(tǒng)要求學(xué)生重新上傳實(shí)驗(yàn)結(jié)果;6b.6b.學(xué)生誤傳了實(shí)驗(yàn)結(jié)果,把其他課程的實(shí)驗(yàn)提交到該實(shí)驗(yàn)課,可以進(jìn)行學(xué)
15、生誤傳了實(shí)驗(yàn)結(jié)果,把其他課程的實(shí)驗(yàn)提交到該實(shí)驗(yàn)課,可以進(jìn)行刪除操作,重新上傳,重復(fù)刪除操作,重新上傳,重復(fù)3 37 7的操作;的操作;6c.6c.學(xué)生未按時(shí)提交實(shí)驗(yàn)結(jié)果:系統(tǒng)提示已過(guò)期;學(xué)生未按時(shí)提交實(shí)驗(yàn)結(jié)果:系統(tǒng)提示已過(guò)期;用例n只書(shū)寫“可觀測(cè)的”的n使用主動(dòng)語(yǔ)句n句子必須以執(zhí)行者或系統(tǒng)作為主語(yǔ)n每一句都要朝目標(biāo)邁進(jìn)n分支和循環(huán)n不要涉及界面細(xì)節(jié)用例用例用例用例用例用例用例Use Case的描述nuse case采用自然語(yǔ)言描述參與者與系統(tǒng)進(jìn)行交互時(shí)雙方的行為,不追求形式化的語(yǔ)言表達(dá)。n描述用例時(shí)的原則:盡可能寫得“充分”,而不是追求寫得形式化,完整,漂亮。n作為OOA文檔的一個(gè)組成部分,U
16、se Case的描述應(yīng)該有一定的規(guī)范格式。n在統(tǒng)一的標(biāo)準(zhǔn)出現(xiàn)之前,人們可以創(chuàng)造發(fā)明use case的不同表示形式,但至少在一個(gè)開(kāi)發(fā)組織內(nèi)部應(yīng)該采用統(tǒng)一的格式。Use Case的描述用例的一個(gè)描述格式:用例的一個(gè)描述格式: ( (用例模板用例模板) )n用例名稱用例名稱。表明用戶的意圖或use case的用途,如“劃撥資金”。 n標(biāo)識(shí)符標(biāo)識(shí)符 可選可選 。唯一標(biāo)識(shí)符,如 “UC1701”,在文檔的別處用標(biāo)識(shí)符來(lái)引用這個(gè)用例。 n用例描述用例描述。概述用例的幾句話。n參與者參與者。與此用例相關(guān)的參與者列表。n優(yōu)先級(jí)優(yōu)先級(jí)。一個(gè)有序的排列,1代表優(yōu)先級(jí)最高。n狀態(tài)狀態(tài) 可選可選 。用例的狀態(tài),通常為
17、以下幾種之一:進(jìn)行中、等待審查、通過(guò)審查或未通過(guò)審查。n前置條件前置條件。一個(gè)條件列表,如果其中包含條件,則這些條件必須在訪問(wèn)用例之前得到滿足。 n后置條件后置條件。一個(gè)條件列表,如果其中包含條件,則這些條件將在用例完成以后得到滿足。n基本操作流程基本操作流程。描述用例中各項(xiàng)工作都正常進(jìn)行時(shí)用例的工作方式 。 n可選操作流程可選操作流程。描述變更工作方式、出現(xiàn)異常或發(fā)生錯(cuò)誤的情況下所遵循的路徑。n被泛化的用例被泛化的用例 可選可選 。此用例所泛化的用例列表。n被包含的用例被包含的用例 可選可選 。此用例所包含的用例列表。n被擴(kuò)展的用例被擴(kuò)展的用例 可選可選 。此用例所擴(kuò)展的用例列表。 n修改歷
18、史記錄修改歷史記錄 可選可選 。關(guān)于用例的修改時(shí)間、修改原因和修改人的詳細(xì)信息。 n問(wèn)題問(wèn)題 可選可選 。與此用例的開(kāi)發(fā)相關(guān)的問(wèn)題的列表。 n決策決策 可選可選 。關(guān)鍵決策的列表,將這些決策記錄下來(lái)以便維護(hù)時(shí)使用。n頻率頻率 可選可選 。參與者訪問(wèn)此use case的頻率。如用戶每日訪問(wèn)一次或每月一次。例:用例模板n用例名稱用例名稱:處理訂單n標(biāo)識(shí)符標(biāo)識(shí)符:UC1701n用例描述用例描述:當(dāng)一個(gè)訂單初始化或者被查詢的時(shí)候這個(gè)用例開(kāi)始。它處理有關(guān)訂單的初始化定義和授權(quán)等問(wèn)題。當(dāng)訂單業(yè)務(wù)員完成了同一個(gè)顧客的對(duì)話的時(shí)候,它就結(jié)束了。n參與者參與者:訂單業(yè)務(wù)員n優(yōu)先級(jí)優(yōu)先級(jí):1n狀態(tài)狀態(tài):通過(guò)審查n前
19、置條件前置條件:訂單業(yè)務(wù)員登錄進(jìn)系統(tǒng)n后置條件后置條件:下訂單;庫(kù)存數(shù)目減少 n基本操作流程基本操作流程:n1. 顧客來(lái)訂購(gòu)一個(gè)吉他,并且提供信用卡作為支付手段。n2. .n可選操作流程可選操作流程:n顧客來(lái)訂購(gòu)一個(gè)吉他,并且使用匯票的方式。n顧客來(lái)訂購(gòu)一個(gè)風(fēng)琴,并且提供信用卡作為支付手段。n顧客使用信用卡下訂單,但那張信用卡是無(wú)效的。n顧客來(lái)下訂單,但他想要的商品沒(méi)有存貨。n被泛化的用例被泛化的用例:無(wú)n被包含的用例被包含的用例:登錄 (UC1706)。n被擴(kuò)展的用例被擴(kuò)展的用例:無(wú)n修改歷史記錄修改歷史記錄:nRene Becnel, 定義基本操作流程, 2002/10/3 nRene B
20、ecnel, 定義可選操作流程, 2002/10/6用例描述的一些常見(jiàn)錯(cuò)誤分析n在描述用例時(shí)易犯的錯(cuò)誤包括:n只描述系統(tǒng)的行為,沒(méi)有描述actor的行為。n只描述actor的行為,沒(méi)有描述系統(tǒng)的行為。n設(shè)定對(duì)用戶界面的設(shè)計(jì)的要求。n過(guò)于冗長(zhǎng)。n例1:下面是一個(gè)用例描述的片斷:Use Case: Withdraw Cash(提取現(xiàn)金)參與者:Customer主事件流:1. 儲(chǔ)戶插入ATM卡,并鍵入密碼。2. 儲(chǔ)戶按 “Withdrawal” 按鈕,并鍵入取款數(shù)目。3. 儲(chǔ)戶取走現(xiàn)金、ATM卡并拿走收據(jù)。4. 儲(chǔ)戶離開(kāi)。上述描述中存在的問(wèn)題:n只描述了參與者的動(dòng)作序列,沒(méi)有描述系統(tǒng)的行為。n改進(jìn)的
21、描述如下:Use Case: Withdraw Cash (提取現(xiàn)金)參與者: Account Holder主事件流:1. 通過(guò)讀卡機(jī),儲(chǔ)戶插入ATM卡。2. ATM系統(tǒng)從卡上讀取銀行ID、帳號(hào)、加密密碼、并用主銀行系統(tǒng)驗(yàn)證銀行ID和帳號(hào)。3. 儲(chǔ)戶鍵入密碼,ATM系統(tǒng)根據(jù)上面讀出的卡上加密密碼,對(duì)密碼進(jìn)行驗(yàn)證。4. 儲(chǔ)戶按“FASTCASH”按鈕,并鍵入取款數(shù)量,取款數(shù)量應(yīng)該是5美元的倍數(shù)。5. ATM系統(tǒng)通知主銀行系統(tǒng),傳遞儲(chǔ)戶帳號(hào)和取款數(shù)量,并接收返回的確認(rèn)信息和儲(chǔ)戶帳戶余額。6. ATM系統(tǒng)輸出現(xiàn)金,ATM卡和顯示帳戶余額的收據(jù)。7. ATM系統(tǒng)記錄事務(wù)到日志文件。n例2:下面是一個(gè)用
22、例描述的片斷:Use Case: Withdraw Cash參與者: Customer主事件流:1. ATM系統(tǒng)獲得ATM卡和密碼。2. 設(shè)置事務(wù)類型為 Withdrawal3. ATM系統(tǒng)獲取要提取的現(xiàn)金數(shù)目。4. 驗(yàn)證帳戶上是否有足夠儲(chǔ)蓄金額。5. 輸出現(xiàn)金,數(shù)據(jù)和ATM卡。6. 系統(tǒng)復(fù)位。上述描述中存在的問(wèn)題:n只描述了ATM系統(tǒng)的行為,而沒(méi)有描述參與者的行為。這樣的描述很難理解,驗(yàn)證和修改。n改進(jìn)的描述同例1。n例3:下面是一個(gè)用例描述的片斷:Use Case: Buy Something參與者: Customer主事件流:1. 系統(tǒng)顯示“ID and Password”屏幕。2. 顧
23、客鍵入ID和密碼,然后按OK按鈕。3. 系統(tǒng)驗(yàn)證顧客ID和密碼,并顯示“Personal Information”屏幕4. 顧客鍵入姓名、街道地址、城市、州、郵政編碼、電話號(hào)碼,然后按OK按鈕。5. 系統(tǒng)驗(yàn)證用戶是否為老顧客。6. 系統(tǒng)顯示可以賣的商品列表。7. 顧客在準(zhǔn)備購(gòu)買的商品圖片上點(diǎn)擊,并在圖片旁邊輸入要購(gòu)買的數(shù)量。選購(gòu)商品完畢后按“Done”按鈕。8. 系統(tǒng)通過(guò)庫(kù)存輔助系統(tǒng)驗(yàn)證要購(gòu)買的商品是否有足夠庫(kù)存。.etc.上述描述中存在的問(wèn)題:n對(duì)用戶界面的描述過(guò)于詳細(xì),對(duì)于需求文檔來(lái)說(shuō),詳細(xì)的UI描述對(duì)獲取需求獲取需求并無(wú)幫助。n改進(jìn)的描述可以如下所示:Use Case: Buy Some
24、thing參與者: Customer主事件流:1. 顧客使用ID和密碼進(jìn)入系統(tǒng)。2. 系統(tǒng)驗(yàn)證顧客身份。3. 顧客提供姓名、地址、電話號(hào)碼。4. 系統(tǒng)驗(yàn)證顧客是否為老顧客。5. 顧客選擇要購(gòu)買的商品和數(shù)量。6. 系統(tǒng)通過(guò)庫(kù)存輔助系統(tǒng)驗(yàn)證要購(gòu)買的商品是否有足夠庫(kù)存。. etc.n例4:下面是一個(gè)用例描述的片斷:Use Case: Buy Something參與者: user(或Customer)主事件流:1. 顧客使用ID和密碼進(jìn)入系統(tǒng)。2. 系統(tǒng)驗(yàn)證顧客身份。3. 顧客提供姓名。4. 顧客提供地址。5. 顧客提供電話號(hào)碼。6. 顧客選取商品。7. 顧客確定商品的數(shù)量。8. 系統(tǒng)驗(yàn)證顧客是否為老
25、顧客。9. 系統(tǒng)打開(kāi)到庫(kù)存系統(tǒng)的連接。10. 系統(tǒng)通過(guò)庫(kù)存系統(tǒng)請(qǐng)求當(dāng)前庫(kù)存量。11. 庫(kù)存系統(tǒng)返回當(dāng)前庫(kù)存量12. 系統(tǒng)驗(yàn)證購(gòu)買商品的數(shù)量是否小于庫(kù)存量。. etc.上述描述中存在的問(wèn)題:n對(duì)用例的描述過(guò)于冗長(zhǎng),可以采用更為簡(jiǎn)潔的描述方式,如合并類似的數(shù)據(jù)項(xiàng)(步驟3至步驟5),提供抽象的高層描述(步驟9至12)等。n改進(jìn)的描述可以如下所示:Use Case: Buy Something參與者: user(或Customer)主事件流:1. 顧客使用ID和密碼進(jìn)入系統(tǒng)。2. 系統(tǒng)驗(yàn)證顧客身份。3. 顧客提供個(gè)人信息(包括姓名、地址、電話號(hào)碼), 選擇要購(gòu)買的商品及數(shù)量。4. 系統(tǒng)驗(yàn)證顧客是否為老
26、顧客。5. 系統(tǒng)使用庫(kù)存系統(tǒng)驗(yàn)證要購(gòu)買的商品數(shù)量是否少于庫(kù)存量。. etc.如何發(fā)現(xiàn)用例n選擇系統(tǒng)邊界n在許多情形下,系統(tǒng)邊界是顯而易見(jiàn)的n尋找主要參與者n參與者可以使用戶,外部的硬件或者另外一個(gè)系統(tǒng)n為每個(gè)參與者確定他們的目標(biāo)n參與者-活動(dòng)列表如何發(fā)現(xiàn)用例n定義用例n一般而言,為每一個(gè)用戶目標(biāo)定義用例n定義用例需要交流和參與n領(lǐng)域?qū)<业膮⑴c非常重要n迭代開(kāi)發(fā)識(shí)別用例n業(yè)務(wù)語(yǔ)言而非技術(shù)語(yǔ)言識(shí)別用例n用戶觀點(diǎn)而非系統(tǒng)觀點(diǎn)識(shí)別用例n識(shí)別用例最好的方法就是從分析系統(tǒng)的參與者開(kāi)始,考慮每個(gè)參與者是如何使用系統(tǒng)的。 n特定參與者希望系統(tǒng)提供什么功能n系統(tǒng)是否存儲(chǔ)、檢索信息,如果是,由哪個(gè)參與者觸發(fā)n當(dāng)系
27、統(tǒng)狀態(tài)改變時(shí),是否通知參與者n是否存在影響系統(tǒng)的外部事件n那個(gè)參與者通知系統(tǒng)這些事件識(shí)別用例n用例的“粒度”n最常犯錯(cuò)誤把步驟當(dāng)作用例n把執(zhí)行者動(dòng)作當(dāng)作用例n把系統(tǒng)活動(dòng)當(dāng)作用例識(shí)別用例n用例的“粒度”: CRUDn警惕CRUD泛濫!n所有業(yè)務(wù)最終都會(huì)成為CRUD光CRUD能為actor提供價(jià)值嗎?識(shí)別用例n用例的“粒度”n一個(gè)用例背后可能隱藏著許多數(shù)據(jù)操作識(shí)別用例n用例的“粒度”:如果確實(shí)是純CRUDn如果CRUD不涉及復(fù)雜的交互,一個(gè)用例“管理”即可n不管是C、R、U、D,都是為了完成“管理”的目標(biāo)n甚至很多種基本數(shù)據(jù)的管理都可以用一個(gè)用例表示識(shí)別用例n用例的“粒度”n也可以把包含復(fù)雜交互的
28、路徑獨(dú)立出去形成用例討論n登錄?討論n幾個(gè)登錄?5.1.4 用例間的關(guān)系 nUse Case除了和參與者有關(guān)聯(lián)(association)外,Use Case之間也存在著一定的關(guān)系(relationship)。包括:泛化(generalization)關(guān)系、包含(include)關(guān)系、擴(kuò)展(extend)關(guān)系等。n也可以利用UML的擴(kuò)充機(jī)制自定義Use Case間的關(guān)系。關(guān)聯(lián)關(guān)系n表示參與者用例之間進(jìn)行通信。 n不同的參與者可以訪問(wèn)相同的用例。 泛化關(guān)系n泛化泛化(generalization)(generalization)代表一般與特殊的關(guān)系。use case間的泛化關(guān)系與類之間的泛化關(guān)系(
29、繼承關(guān)系)類似。n子用例表示父用例的特殊形式。 n子用例從父用例處繼承行為和屬性,還可以添加行為或覆蓋、改變繼承的行為。泛化關(guān)系n泛化關(guān)系(Generalization)n如果系統(tǒng)中一個(gè)或多個(gè)用例是某一個(gè)一般用例的特殊化用例時(shí),就應(yīng)該使用用例的泛化關(guān)系,例如:包含關(guān)系n包含包含(Include)(Include)n一個(gè)用例可以簡(jiǎn)單地包含其他用例具有的行為,并把它所包含的行為作為自身行為的一部分,這稱作用例間的包含關(guān)系n客戶用例可以簡(jiǎn)單地包含提供者用例具有的行為,并把它所包含的用例行為作為自身行為的一部分 包含關(guān)系的例子:inclusion use casebase use case包含關(guān)系n包
30、含關(guān)系的特點(diǎn)n包含用例(客戶用例)執(zhí)行,則被包含用例(提供者用例)必須執(zhí)行n什么時(shí)候使用包含關(guān)系?n如果兩個(gè)以上的用例有大量一致的功能,則可以將這個(gè)功能分解到另一個(gè)用例中,其他用例可以和這個(gè)用例建立包含關(guān)系n一個(gè)用例的功能太多時(shí),可以用包含關(guān)系建模成兩個(gè)以上的用例,降低用例的復(fù)雜度擴(kuò)展關(guān)系n擴(kuò)展擴(kuò)展(extend)(extend)關(guān)系關(guān)系的基本含義與泛化關(guān)系類似,但是對(duì)于擴(kuò)展Use Case有更多的規(guī)則限制,即基本的Use Case必須聲明若干“擴(kuò)展點(diǎn)” (extension point)(extension point),而擴(kuò)展Use Case只能在這些擴(kuò)展點(diǎn)上增加新的行為。n基礎(chǔ)用例提供擴(kuò)
31、展點(diǎn)以添加新的行為。n擴(kuò)展用例提供插入片段以插入到基礎(chǔ)用例的擴(kuò)展點(diǎn)上。擴(kuò)展關(guān)系n擴(kuò)展關(guān)系的特點(diǎn)n基礎(chǔ)用例沒(méi)有擴(kuò)展用例也是完整的用例n基礎(chǔ)用例被執(zhí)行時(shí),一般不會(huì)涉及擴(kuò)展用例,只有特定的條件發(fā)生,擴(kuò)展用例才可能被執(zhí)行,這是與包含關(guān)系的差別UseCase的泛化、擴(kuò)展、包含關(guān)系的比較 當(dāng)處理正常行為的變型時(shí),而且只是偶爾描述時(shí),可以考慮只用泛化關(guān)系泛化關(guān)系。 如果需要重復(fù)處理兩個(gè)或多個(gè)Use Case時(shí),可以考慮使用包含關(guān)系包含關(guān)系,實(shí)現(xiàn)一個(gè)基本Use Case對(duì)另一個(gè)Use Case的引用。 當(dāng)描述正常行為的變型,而且希望采用更多的控制方式時(shí),可以在基本Use Case中設(shè)置擴(kuò)展點(diǎn),使用擴(kuò)展關(guān)系擴(kuò)展
32、關(guān)系。小結(jié):actor,usecase的關(guān)系(relationship)類型說(shuō)明:可在usecase間建立關(guān)聯(lián),但意義不是很明確。association關(guān)聯(lián):actor和usecase之間的關(guān)系包含:usecase之間的關(guān)系includeextend擴(kuò)展:usecase之間的關(guān)系generalization泛化:actor之間或usecase之間的關(guān)系關(guān)系類型說(shuō)明表示符號(hào)5.2 用例圖建模技術(shù)n5.2.1 對(duì)語(yǔ)境建模n5.2.2 對(duì)需求建模5.2.1 對(duì)語(yǔ)境建模識(shí)別系統(tǒng)外部的參與者。將類似參與者組織成泛化的結(jié)構(gòu)層次。在需要加深理解的地方,為每個(gè)參與者提供一個(gè)構(gòu)造型。將參與者放入到用例圖中,并說(shuō)
33、明參與者與用例之間的通信路徑。5.2.2 對(duì)需求建模 識(shí)別系統(tǒng)的外部參與者來(lái)建立系統(tǒng)的語(yǔ)境??紤]每一個(gè)參與者期望的行為或需要系統(tǒng)提供的行為。把這些公共的行為命名為用例。確定提供者用例和擴(kuò)展用例。對(duì)這些用例、參與者和它們之間的關(guān)系建模。用注釋修飾用例。選修課管理系統(tǒng)用例圖用例圖n在UML中,一個(gè)用例模型由若干個(gè)用例圖用例圖(use case diagram)(use case diagram)描述。用例圖是顯示一組用例、參與者以及它們之間關(guān)系的圖。 例:金融貿(mào)易系統(tǒng)的用例圖。一個(gè)use case圖的例子financial trading system用例圖中的一些主要圖標(biāo)AssociationG
34、eneralizationDependency說(shuō)明:UML中不使用顏色來(lái)作為圖形語(yǔ)義的區(qū)分標(biāo)記。注釋連接Realizeuse-case realizationextend use case注釋include use casen用例圖是表達(dá)用例和活動(dòng)者及其之間關(guān)系的載體n用例圖是模型圖,用例圖可包含用例,活動(dòng)者以及它們之間的關(guān)系n用例圖的用途是為軟件系統(tǒng)、軟件子系統(tǒng)、類的動(dòng)態(tài)行為建模。它從兩個(gè)方面對(duì)其建模對(duì)象的內(nèi)容進(jìn)行描述,即:n描述它們的邊界n對(duì)它們進(jìn)行需求分析用例的組織和用例圖用例的組織和用例圖n用例圖和用例關(guān)系在編寫用例工作中是次要的。用例是文本文檔。編寫用例意味著編寫文本。n繪制簡(jiǎn)單的用
35、例圖,并與參與者-目標(biāo)列表關(guān)聯(lián)。Use Case圖的建立步驟(1) 找出系統(tǒng)外部的參與者和外部系統(tǒng),確定系統(tǒng)的邊界和范圍;(2) 確定每一個(gè)參與者所期望的系統(tǒng)行為;(3) 把這些系統(tǒng)行為命名為Use Case;(4) 使用泛化、包含、擴(kuò)展等關(guān)系處理系統(tǒng)行為的公共或變更部分;(5) 編制每一個(gè)Use Case的腳本;(6) 繪制Use Case圖;(7) 區(qū)分主事件流和異常情況的事件流,可以把表達(dá)異常情況的事件流的Use Case畫(huà)成一個(gè)單獨(dú)的子Use Case;(8) 細(xì)化Use Case圖,解決Use Case間的重復(fù)與沖突問(wèn)題。3 實(shí)例圖書(shū)館管理系統(tǒng)n3.1 確定系統(tǒng)涉及的總體信息n3.2
36、 確定系統(tǒng)的參與者n3.3 確定系統(tǒng)的用例n3.4 使用Rational Rose繪制用例圖的步驟n3.5 圖書(shū)館管理系統(tǒng)的用例圖3.1 確定系統(tǒng)涉及的總體信息n讀者:n借書(shū)n還書(shū)n書(shū)籍預(yù)定n查詢 3.1 確定系統(tǒng)涉及的總體信息n圖書(shū)館管理員:n書(shū)籍借出處理n書(shū)籍歸還處理n預(yù)定信息處理 3.1 確定系統(tǒng)涉及的總體信息n系統(tǒng)管理員:n增加書(shū)目n刪除或更新書(shū)目n增加書(shū)籍n減少書(shū)籍n增加讀者帳戶信息n刪除或更新讀者帳戶信息n書(shū)籍信息查詢n讀者信息查詢 3.2 確定系統(tǒng)的參與者n首先分析系統(tǒng)所涉及的問(wèn)題領(lǐng)域和系統(tǒng)運(yùn)行的主要任務(wù):n分析使用該系統(tǒng)主要功能部分的是哪些人。n誰(shuí)將需要該系統(tǒng)的支持以完成其工作。n系統(tǒng)的管理者與維護(hù)者。 3.2 確
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 墓地遷移合同模板
- 一兒一女配偶離婚合同書(shū)
- 廣告合作合同典范
- 小學(xué)信息技術(shù)清華版(2012)六年級(jí)上冊(cè)第5課《錄制之法-錄制朗誦的聲音》教學(xué)設(shè)計(jì)
- 高速公路施工合同范本
- 景觀綠化苗木采購(gòu)合同范本
- 生物學(xué)實(shí)驗(yàn)儀器與操作考核試卷
- 2024年04月青海省省直事業(yè)單位招聘1107人(含醫(yī)療崗)筆試歷年專業(yè)考點(diǎn)(難、易錯(cuò)點(diǎn))附帶答案詳解
- 2024年04月海南保亭黎族苗族自治縣醫(yī)療集團(tuán)招聘急需緊缺衛(wèi)生專業(yè)技術(shù)人員4人筆試歷年專業(yè)考點(diǎn)(難、易錯(cuò)點(diǎn))附帶答案詳解
- 皮鞋制造業(yè)的碳排放減少與碳足跡管理考核試卷
- 活動(dòng)物料清單
- 精細(xì)化工產(chǎn)品公司企業(yè)經(jīng)營(yíng)戰(zhàn)略方案
- 缺血缺氧性腦病詳解課件
- 自動(dòng)打鈴控制器plc課程設(shè)計(jì)
- 最新司法鑒定程序通則課件來(lái)源于司法部司法鑒定局
- 北師大版一年級(jí)英語(yǔ)下冊(cè)期中測(cè)試卷
- 冠狀動(dòng)脈CT解剖詳解
- 檔案學(xué)概論重點(diǎn)知識(shí)梳理
- 地下連續(xù)墻鋼筋籠起重吊裝專項(xiàng)施工方案
- 單值和移動(dòng)極差X-MR控制圖
- 進(jìn)口產(chǎn)品委托代理合同協(xié)議書(shū)范本
評(píng)論
0/150
提交評(píng)論