第五章 介紹用例_第1頁
第五章 介紹用例_第2頁
第五章 介紹用例_第3頁
第五章 介紹用例_第4頁
第五章 介紹用例_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第五章介紹用例第一頁,共二十三頁,編輯于2023年,星期四前面所介紹的圖主要涉及的是系統(tǒng)中類的靜態(tài)視圖。我們最終要建立的是能夠展示系統(tǒng)和系統(tǒng)中的類如何隨時(shí)間變化的動(dòng)態(tài)視圖。靜態(tài)視圖有助于分析員和客戶交流。動(dòng)態(tài)視圖,你以后將會(huì)看到,它有助于系統(tǒng)分析員與開發(fā)小組交流,并且能幫助開發(fā)組編制程序。客戶和開發(fā)組是系統(tǒng)風(fēng)險(xiǎn)承擔(dān)入的重要組成部分。然而不應(yīng)該遺漏另一個(gè)同樣重要的組成部分——用戶。不論是靜態(tài)視圖還是動(dòng)態(tài)視圖都不能從用戶的觀點(diǎn)說明系統(tǒng)所具有的行為。理解用戶的觀點(diǎn)對(duì)建立有用的第二頁,共二十三頁,編輯于2023年,星期四并且易用的系統(tǒng)是十分關(guān)鍵的——也就是說,這樣的系統(tǒng)能夠滿足用戶需求并且容易使用。從用戶的觀點(diǎn)出發(fā)對(duì)系統(tǒng)建立模型是用例要完成的任務(wù)。在這一章中,你將學(xué)習(xí)到什么是用例以及用例能做些什么。下一章將學(xué)習(xí)如何使用UML用例圖來可視化表示用例。第三頁,共二十三頁,編輯于2023年,星期四5.1什么是用例假想你要買一臺(tái)傳真機(jī),當(dāng)你在辦公用品商店選購傳真機(jī)時(shí),面臨著很多選擇。如何選購才能使自己最有利呢?你必須不斷反問你自己一些問題。究竟我買傳真機(jī)是要干什么用?我需要傳真機(jī)具有哪些特征?這臺(tái)傳真機(jī)必須具有哪些功能?是不是需要它具有復(fù)印功能?是否連接到我的計(jì)算機(jī)?用傳真機(jī)是否像用掃描儀一樣?我是不是要盡量快地發(fā)傳真而需要快速撥號(hào)功能?它需不需要具有區(qū)分外來傳真信號(hào)和外來電話信號(hào)的功能?第四頁,共二十三頁,編輯于2023年,星期四當(dāng)我們慎重的購物時(shí),我們都有過這樣的經(jīng)歷。這種經(jīng)歷就是某種形式的用例分析(usecaseanalysis):我們反問自己究竟將如何使用產(chǎn)品或系統(tǒng)。了解這些需求是非常重要的。這個(gè)過程在系統(tǒng)開發(fā)的分析階段尤為重要。用戶對(duì)系統(tǒng)的使用方式?jīng)Q定了系統(tǒng)如何設(shè)計(jì)和構(gòu)造。用例是能夠幫助分析員和用戶確定系統(tǒng)使用情況的UML組件。一組用例就是從用戶的角度出發(fā)對(duì)如何使用系統(tǒng)的描述。第五頁,共二十三頁,編輯于2023年,星期四可以認(rèn)為用例是系統(tǒng)的一組使用場(chǎng)景。每個(gè)場(chǎng)景描述了一個(gè)事件的序列。每個(gè)序列是由一個(gè)人、另一個(gè)系統(tǒng)、一個(gè)硬件設(shè)備或者某段時(shí)間的流逝所發(fā)起。這些發(fā)起事件序列的實(shí)體叫做參與者(actor)。事件序列的結(jié)果是由發(fā)起這個(gè)序列的參與者或者另一個(gè)參與者對(duì)系統(tǒng)某種形式的使用所引起的。5.2用例的重要性正如類圖可以以一種好的促進(jìn)客戶以他的觀點(diǎn)考察系統(tǒng)的方法一樣,用例是一個(gè)能促進(jìn)系統(tǒng)可能的用戶以他們自己的觀點(diǎn)看待系統(tǒng)的優(yōu)秀工具。用戶并不第六頁,共二十三頁,編輯于2023年,星期四總是容易清晰的闡明到底他要怎樣使用系統(tǒng)。因?yàn)閭鹘y(tǒng)的系統(tǒng)開發(fā)常常是一種缺少前端分析的開發(fā)過程,因此當(dāng)問及用戶如何執(zhí)行系統(tǒng)輸入時(shí),他往往不能理解。避免這種情況的基本思路是讓用戶參與前期的系統(tǒng)分析與設(shè)計(jì)。這樣做可以使最終的系統(tǒng)盡可能地為用戶可用——而不僅僅是表現(xiàn)出了設(shè)計(jì)者的聰明才智而讓用戶無法理解和使用的一堆計(jì)算概念和業(yè)務(wù)模型。第七頁,共二十三頁,編輯于2023年,星期四5.3舉例:飲料自動(dòng)銷售機(jī)

假設(shè)你現(xiàn)在正著手設(shè)計(jì)一臺(tái)飲料自動(dòng)銷售機(jī)。為了獲得用戶的使用觀點(diǎn),你會(huì)見了許多可能的用戶以了解這些用戶將如何與這臺(tái)機(jī)器交互。飲料自動(dòng)銷售機(jī)的主要功能是允許—個(gè)顧客能夠購買—罐飲料,很可能用戶立刻就能告訴你一些有關(guān)的場(chǎng)景(換句話說就是用例)。你可以給這組場(chǎng)景加上一個(gè)標(biāo)簽“買飲料”。下面讓我們來考察這個(gè)用例中每一種可能的場(chǎng)景。記住,在正常的系統(tǒng)開發(fā)中,在與用戶交談的過程中就能發(fā)現(xiàn)這些場(chǎng)景。第八頁,共二十三頁,編輯于2023年,星期四5.3.1用例“買飲料”這個(gè)用例的參與者是買飲料的顧客。顧客將錢插入銷售機(jī)觸發(fā)了這個(gè)用例的場(chǎng)景被執(zhí)行。然后他進(jìn)行選擇。如果一切順利,銷售機(jī)內(nèi)還儲(chǔ)存有至少一罐被選擇的飲料,則銷售機(jī)會(huì)自動(dòng)彈出一罐這種飲料給顧客。除了上面的步驟序列,該場(chǎng)景的其他方面也值得考慮。顧客發(fā)起“買飲料”這個(gè)用例的執(zhí)行場(chǎng)景需要什么前置條件?最直觀的前置條件之一是顧客感到口渴。場(chǎng)景的執(zhí)行步驟完成后需要什么后置條件?顯然最直觀的后置條件是顧客有了一罐飲料。

第九頁,共二十三頁,編輯于2023年,星期四上面的“買飲料”場(chǎng)景是唯一可描述的場(chǎng)景嗎?顯然我們立即會(huì)想到還有其他的場(chǎng)景。顧客所要購買的飲料銷售機(jī)中可能沒有;顧客投入的錢數(shù)不剛好等于購買飲料所需要的錢。應(yīng)該如何設(shè)計(jì)飲料銷售機(jī)來處理這些場(chǎng)景呢?先看看沒有所需的飲料這個(gè)場(chǎng)景,它是用例“買飲料”的另一個(gè)場(chǎng)景??梢园堰@個(gè)場(chǎng)景看成是用例執(zhí)行時(shí)的一條可選路徑。用例是由顧客在銷售機(jī)中插入錢幣所發(fā)起的。然后他進(jìn)行一個(gè)選擇,銷售機(jī)中至少要有一罐選擇的飲料,如果沒有,銷售機(jī)就給顧客提示一個(gè)信息,告訴顧客沒有這種品牌的飲料。理想第十頁,共二十三頁,編輯于2023年,星期四情況下,顧客看到這條消息后臺(tái)立即選擇其他品牌的飲料。銷售機(jī)必須提供給顧客取回原來的錢的選項(xiàng)。這表示,銷售機(jī)應(yīng)給顧客兩種選擇:讓顧客選擇另一種飲料并且給顧客提供這種飲料(如果這種飲料還有存貨的話)或者讓顧客選擇退錢。該場(chǎng)景的前置條件是顧客感到口渴,后置條件是顧客得到一罐飲料或者顧客投入的錢被退回。接著來看看“付款數(shù)不正確”這個(gè)場(chǎng)景。顧客按照通常的方式發(fā)起了這個(gè)用例,并進(jìn)行一個(gè)選擇。假設(shè)這時(shí)機(jī)器中備有選擇的飲料。如果機(jī)器中剛好存有適合的零錢,那么機(jī)器就會(huì)退還零錢井交付飲料。如果第十一頁,共二十三頁,編輯于2023年,星期四機(jī)器中沒有保存零錢,它將退還錢,并顯示一條消息提示用戶投入適當(dāng)?shù)牧沐X。前置條件和典型場(chǎng)景一樣。后置條件是顧客得到一罐飲料和找回零錢或者按原款歸還錢。5.3.2其它用例我們已經(jīng)從用戶(即顧客)的觀點(diǎn)考察了飲料自動(dòng)銷售機(jī)。除了這些用戶外當(dāng)然還有其他人加入。供貨人負(fù)責(zé)為自動(dòng)銷售機(jī)提供飲料,收款人負(fù)責(zé)定期收集銷售機(jī)中的錢。這說明至少還需要建立兩個(gè)用例:“供貨”和“取錢”,這些用例的細(xì)節(jié)可以通過與供貨人和收款人交談來獲得。第十二頁,共二十三頁,編輯于2023年,星期四考慮“供貨”用例。供貨者發(fā)起這個(gè)用例是由于某個(gè)時(shí)間間隔到期所引起的。供貨代表打開銷售機(jī)(很可能是要打開銷售機(jī)的鎖,但該問題涉及到了具體的系統(tǒng)實(shí)現(xiàn)),拉出銷售機(jī)前面的架子,在架子上補(bǔ)滿各種品牌的飲料。銷售代表還要在機(jī)器中加零錢,然后他放好銷售機(jī)的前端架子,并鎖好機(jī)器。這個(gè)用例的前置條件是一個(gè)時(shí)間間隔的流逝,后置條件是供貨者在機(jī)器中放置了新的待售飲料。還有一個(gè)“取錢”用例,同樣也是因?yàn)橐欢螘r(shí)間間隔的流逝,收款人發(fā)起了這個(gè)用例。他的前期工作步驟與“供貨”一樣,也是打開銷售機(jī)取出銷售機(jī)前端第十三頁,共二十三頁,編輯于2023年,星期四架子。收款人從機(jī)器中取出錢,然后按照“供貨”步驟,放回架子鎖好機(jī)器。這個(gè)用例的前置條件也是時(shí)間間隔的流通,后置條件是收款人收到了錢。注意,當(dāng)導(dǎo)出一個(gè)用例時(shí),不必關(guān)心怎么實(shí)現(xiàn)它。在這個(gè)例子里,我們并沒有關(guān)心飲料銷售機(jī)的內(nèi)部細(xì)節(jié)。我們也不關(guān)心機(jī)器內(nèi)的制冷機(jī)制是如何工作的,或者錢在機(jī)器中是怎么被保存的。我們只是試圖查明飲料銷售機(jī)對(duì)使用它的用戶來說是什么樣子。最終的目標(biāo)是要導(dǎo)出一組用例供飲料銷售機(jī)的設(shè)計(jì)者和制造者查看。第十四頁,共二十三頁,編輯于2023年,星期四5.4包含用例在“供貨”和“收款”用例中,也許你會(huì)注意一些相同的步驟。兩個(gè)用例都以打開機(jī)器為起始點(diǎn),以關(guān)閉和鎖好機(jī)器為終止點(diǎn)。能不能消除用例中的重復(fù)步驟呢?可以。方法是從各個(gè)步驟序列中抽取出公共步驟形成一個(gè)每個(gè)用例都要使用的附加用例。可以將“開機(jī)”和“拉出飲料架”這兩個(gè)步驟合并為一個(gè)叫做“打開銷售機(jī)”的用例,將“放回架子”和“鎖機(jī)器”合并為一個(gè)叫做“關(guān)閉銷售機(jī)”的用例。第十五頁,共二十三頁,編輯于2023年,星期四如上所述,“供貨”和“收款”這兩個(gè)用例都包含了新的用例。這種用例的重用技術(shù)被稱作包含用例(includeausecase)。5.5擴(kuò)展用例除了包含用例這種方式外還有另一種重用用例的方式。有時(shí)我們可以通過對(duì)已有用例增加一些額外的步驟來建立新的用例。以“供貨”這個(gè)用例來說明。在給機(jī)器補(bǔ)充新飲料時(shí),供貨代表注意到有些品牌的飲料銷售的好,有些品牌的飲料銷售的不好。在這種情況下,他第十六頁,共二十三頁,編輯于2023年,星期四不是簡單的把所有品牌的飲料補(bǔ)充給機(jī)器,而是把一些銷售情況不太好的飲料取出來,用銷售情況好的飲料來代替它們。同時(shí)供貨代表還要在機(jī)器前修改飲料品種的指示牌。如果我們把上述步驟加入“供貨”用例,我們將得到一個(gè)新的用例.不妨稱它為“根據(jù)銷售情況供貨”。這個(gè)新用例是對(duì)原用例的擴(kuò)展,這種技術(shù)叫做擴(kuò)展用例(extendausecase)。第十七頁,共二十三頁,編輯于2023年,星期四5.6開始用例分析在我們所舉的例子中,我們直接跳到用例并集中討論了幾個(gè)用例。實(shí)際情況并非如此,在進(jìn)行用例分析之前必須遵循一套規(guī)程。首先從與客戶交談(還要和專家交談)開始,這樣可以分析得出系統(tǒng)的初步類圖,這在前面已經(jīng)有所介紹。這個(gè)過程可以讓你對(duì)系統(tǒng)有個(gè)概念性認(rèn)識(shí)并逐步效悉將要使用的術(shù)該,可以為你與用戶進(jìn)一步交流打下基礎(chǔ)。

第十八頁,共二十三頁,編輯于2023年,星期四與用戶(最好是一組用戶)交談時(shí),你要向他們?cè)儐査麄兓磦淙绾问褂孟到y(tǒng)的所有事情,為你的設(shè)計(jì)做淮備。根據(jù)他們的回答就能得到一組候選用例。下一步,也是很重要的一步,是要簡潔準(zhǔn)確的描述出這些用例。你還要導(dǎo)出一個(gè)參與者列表,這些參與者或者發(fā)起了候選用例或者從候選用例中獲益。隨著這個(gè)過程的深入,你會(huì)逐漸增強(qiáng)與用戶用他們的語言交流的能力。在開發(fā)過程中會(huì)不斷發(fā)現(xiàn)新的用例。它們有助于設(shè)計(jì)系統(tǒng)的用戶界面,還能幫助開發(fā)者做出編程中的決策,并且用例也是對(duì)新構(gòu)造出的系統(tǒng)進(jìn)行測(cè)試的基礎(chǔ)。第十九頁,共二十三頁,編輯于2023年,星期四5.7小結(jié)用例是用來描述潛在的用戶所看到的系統(tǒng)的UML組件。它是一個(gè)被稱作參與者(可以是—個(gè)人、—個(gè)硬件設(shè)備、一段時(shí)間的流逝或者另一個(gè)系統(tǒng))的實(shí)體所發(fā)起的場(chǎng)景的集合,用例的執(zhí)行必須對(duì)發(fā)起該用例的參與者或者其他參與者產(chǎn)生影響。用例可以被重用。一種方式(“包含”)是將一個(gè)用例中的步驟作為另一個(gè)用例的步驟序列的一部分。另一種方式(“擴(kuò)展”)是通過對(duì)現(xiàn)有的用例增加新的步驟來創(chuàng)建新的用例。

第二十頁,共二十三頁,編輯于2023年,星期四與用戶會(huì)談是導(dǎo)出用例的最好技術(shù)。當(dāng)導(dǎo)出一個(gè)用例時(shí),要注意到發(fā)起用例的前置條件和產(chǎn)生影響的后置條件是很重要的。在和用戶會(huì)談之前要先與客戶會(huì)談,產(chǎn)生一個(gè)候選類的列表。候選類中的基本術(shù)語是與用戶進(jìn)行交流的基礎(chǔ)。和一組用戶會(huì)談是一個(gè)好的做法。這種會(huì)談的目標(biāo)是導(dǎo)出候選用例和可能的參與者列表。為什么一定要使用用例這個(gè)概念呢?詢問用戶究竟他們想看到一個(gè)什么樣的系統(tǒng),然后把他們的描述記錄下來,這樣做難道不可以嗎?

第二十一頁,共二十三頁,編輯于2023年,星期四這樣做在實(shí)際中往往行不通。對(duì)于用戶的描述,我們必須把這些描述用一種結(jié)構(gòu)組織起來,用例就提供這種組織結(jié)構(gòu)。在記錄與用戶交談的結(jié)果以及將這些

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論