亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

為什么用例不是“功能”?

系統(tǒng) 1959 0

多數(shù)人從用例開始就走入了迷途,也許是用例圖和數(shù)據(jù)流圖的相似性導(dǎo)致人們把用例定義為簡單的功能或者菜單項(xiàng)。不論原因是什么,這都是新手最容易犯的錯(cuò)誤。

為什么用例不是“功能”?

圖 1 錯(cuò)誤的方式:用例是菜單項(xiàng)或者功能

這幅圖有什么錯(cuò)誤?用最簡單的定義,我傾向于把用例看作是關(guān)于使用系統(tǒng)作某些有用的事情的方式的故事。利用這個(gè)定義,是不是所有的“用例”都是獨(dú)立的有用的呢?

答案當(dāng)然是不是,在這個(gè)例子中,用例表示了系統(tǒng)需要做的所有的事情,但是他們也描述了用戶需要通過系統(tǒng)去做的一件單獨(dú)的事情:定購。所有保留的元素都是這 一個(gè)用例的備選支流,它們是在定購時(shí)可能發(fā)生的步驟。在只做一件有用的事情的地方,只應(yīng)該有一個(gè)用例。圖1就是一個(gè)功能分解的例子,或者“四輪馬車”格式 的例子――一個(gè)參與者在中間,周圍是一圈用例。

這是一個(gè)常見的問題,為什么人們會陷入這個(gè)陷阱呢?我們有一個(gè)有對定購的內(nèi)在需要,并且在不存在的地方如果我們需要那么就利用它。在功能分解的情況下,我 們有一種自然傾向把問題分解為越來越小的塊。有一種天真的想法那就是把用例分解為越來越小的單位會簡化問題。這種理解是完全錯(cuò)誤的。當(dāng)我們分解用例時(shí),實(shí) 際上會把問題復(fù)雜化。

問題在這里

用例的目的是描述某人某物如何使用系統(tǒng)來完成對他們有價(jià)值的事情,它描述了系統(tǒng)在概念層次上做什么,使我們足夠理解系統(tǒng)以便決定系統(tǒng)是否要做恰當(dāng)?shù)氖隆S美俏覀兡軌蛐纬梢粋€(gè)系統(tǒng)的概念模型。

再看看圖1,現(xiàn)在問你自己,如果我從來沒有定購過,我想通過系統(tǒng)查詢定單的狀態(tài)嗎?這是不太可能的。或者如果我從來沒有定購過,我想變更訂單嗎?不,也許不。通常這些東西只有當(dāng)我訂購過的時(shí)候才對我有用。然而,為了系統(tǒng)能夠允許我訂購,這些都是必要的。

把系統(tǒng)分解為越來越小的用例模糊了系統(tǒng)的真實(shí)目的,極端情況下,我們將以得到一堆隔絕的行為的細(xì)致末節(jié)而告終。結(jié)果我們不能說明系統(tǒng)做什么。這就像看到一輛被拆解為零件的汽車,或許你會說這是輛汽車,你也知道零件們是有用的,但是你確實(shí)不能說明他們?nèi)绾谓M裝在一起。

當(dāng)使用用例的時(shí)候,記住用例是考慮整個(gè)系統(tǒng)的一種方式,并且要組織成可管理的功能塊,這些功能塊完成一些有價(jià)值的事情。為了得到正確的用例集合,問你自己一個(gè)問題:“參與者實(shí)際上想使用系統(tǒng)做什么?”

如果你在想圖1的改進(jìn)后的版本是什么樣的,圖2展示了改進(jìn)后的版本。

圖 2一種更好,更加簡單的方法: 合并功能以反映對參與者的真正價(jià)值

這一個(gè)用例包含了以前的圖中所分解為用例的所有“功能”。你也許會問為什么這樣做比較好,答案很簡單:它關(guān)注于客戶想要系統(tǒng)提供的價(jià)值,而不是我們在系統(tǒng) 內(nèi)部如何細(xì)分和構(gòu)造的。如果把所有的功能分解成單獨(dú)的用例,你將迫使客戶(為系統(tǒng)付錢的人)把分解過的用例裝配成一件對他們有意義的東西,以便理解系統(tǒng)所 描述的是不是他們所想要的(即他們想為之付錢的)。

關(guān)注價(jià)值

很多小用例是常見的問題,尤其是在一個(gè)習(xí)慣于功能分解的團(tuán)隊(duì)中,他們的用例名稱讀起來就象是一個(gè)系統(tǒng)所執(zhí)行的功能的列表,如“輸入訂單”、“審查訂單”、 “取消訂單”、“履行訂單”,這起先聽起來也不是很壞,但不僅僅這些。即使對于一個(gè)小規(guī)模的訂購系統(tǒng),用例列表也很容易達(dá)到上百個(gè),如果誰走到了這一步, 他們不久就會淹死在用例的海洋中,尤其是當(dāng)系統(tǒng)規(guī)模確實(shí)比較大時(shí),在這種情況下,你最終也許會有幾百個(gè),甚至上前個(gè)用例。

這么做有什么錯(cuò)呢?

這些用例的價(jià)值將會被錯(cuò)過。用例的唯一目的是為參與者產(chǎn)生價(jià)值。在一定層次上能夠輸入訂單也是某種有價(jià)值的事情,但是,如果這些訂單從來不被履行,那還有價(jià)值嗎?也許沒有吧。
怎樣輸入訂單、修改訂單以及取消訂單等等,所有這些事情都是與客戶真正想要做的事情有關(guān)的,那就是接受訂購的貨物。這些活動(dòng)對公司想要的事情是必須的,那就是收到貨款。

這種看起來是支離破碎的沒有任何明顯關(guān)系的功能集合的另一個(gè)問題是導(dǎo)致難以使用的系統(tǒng)。很多系統(tǒng)跟這個(gè)很類似,它們只是一堆雜亂的特性。記住,用例幫助我 們關(guān)注與什么是真正重要的,也就是具有真正價(jià)值的事物,并且使我們能夠圍繞那些元素來定義系統(tǒng)。用例不要是系統(tǒng)按照功能分解的藍(lán)圖。

舉例

考慮一個(gè)你在互聯(lián)網(wǎng)上用過的一個(gè)電子商務(wù)系統(tǒng),當(dāng)你登錄這個(gè)站點(diǎn)的時(shí)候,你的目標(biāo)可能是查找產(chǎn)品相關(guān)的信息、選擇要購買的產(chǎn)品、安排支付及送貨約定。在做 這些事的過程當(dāng)中,你可能會改變主意、輸入錯(cuò)誤的信息以至不得不修改它、改變郵遞或送貨地址,以及其他的一些東西。如果這個(gè)網(wǎng)站不允許你通過一種吸引人的 方式來找到并訂購產(chǎn)品,你也許不會完成你的訂購,更不用說再次來到這個(gè)網(wǎng)站。

當(dāng)建造一個(gè)系統(tǒng)時(shí),始終要記住用例的核心定義:關(guān)于采用某種方式使用系統(tǒng)來做有價(jià)值的事情的故事。如果你能夠?qū)嵤┻@個(gè)定義,展示用戶希望通過系統(tǒng)獲得的價(jià)值,然后創(chuàng)建反映這些價(jià)值的用例的時(shí)候,你的系統(tǒng)將會更好地滿足用戶的期望。

為什么用例不是“功能”?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99精品视频在线在线视频观看 | 欧美操片在线观看 | 国产毛片女人18水多 | 99久久在线 | 国产精品人成人免费国产 | 日韩一区二区三区中文字幕 | 亚洲精品久久久久久中文字幕小说 | 妞干网中文字幕 | 97影院在线午夜 | 天天做天天爱天天爽综合网 | 婷婷色在线视频 | 久久精品蜜芽亚洲国产a | 国产亚洲精品一区久久 | 狠狠干狠 | 国产精品久久香蕉免费播放 | 黄a在线观看 | 久艹伊人 | 天天碰天天摸天天操 | 国产一区二区三区四 | 久久久亚洲精品视频 | 欧美一区二区在线免费观看 | 欧美videos粗暴高清性 | 日日爽爽 | 久久久久久免费精品视频 | 中文字幕亚洲在线 | 免费一级a毛片在线播放视 免费一级成人毛片 | 精品欧美一区二区在线看片 | 国产精品欧美日韩一区二区 | 亚洲国产精久久小蝌蚪 | 四虎影院海外永久 | 日本精品一二三区 | 高清国产精品久久 | 欧美性理论片在线观看片免费 | 国产不卡网 | 元龙第三季动漫在线观看免费版 | 99精品视频在线成人精彩视频 | 亚洲阿v天堂在线观看2017 | 99热视屏 | 国产成人高清在线观看播放 | 亚洲一区在线视频 | 国产精品爱啪在线线免费观看 |