級(jí)別: 初級(jí)
Scott W. Ambler (scott.ambler@ronin-intl.com), 總裁, Ronin International
2001 年 1 月 04 日
本文介紹了一些提高系統(tǒng)用例模型質(zhì)量的技巧和技術(shù)。本文改編自 Object Primer 2nd Edition 的第 6 章。
從參與者的角度并以主動(dòng)語(yǔ)態(tài)編寫(xiě)用例。
應(yīng)該以主動(dòng)語(yǔ)態(tài):“學(xué)生表明參加研習(xí)班意向”,而不是被動(dòng)語(yǔ)態(tài)“研習(xí)班意向被學(xué)生表明”來(lái)編寫(xiě)用例。而且,應(yīng)該從參與者的角度來(lái)編寫(xiě)用例。畢竟,用例的目的是理解用戶(hù)如何對(duì)系統(tǒng)進(jìn)行操作。
編寫(xiě)方案文本,而非功能需求。
用例描述的是對(duì)參與者來(lái)說(shuō)有價(jià)值的一系列行動(dòng),而不是特性集。例如,“招收研習(xí)班的學(xué)生”用例描述的是學(xué)生如何與系統(tǒng)交互來(lái)參加研習(xí)班。它沒(méi)有描述用戶(hù)界面看上去是什么樣子,或者它是如何工作的。有一些其它的模型來(lái)描述這些重要的信息,例如用戶(hù)界面模型和增補(bǔ)規(guī)范。面向?qū)ο蠓治龇浅?fù)雜,因此需要對(duì)它使用幾種模型,并且應(yīng)該適當(dāng)?shù)貞?yīng)用每一種模型。
用例只記載行為需求。
用例既不是類(lèi)規(guī)范,也不是數(shù)據(jù)規(guī)范。這是應(yīng)該由概念性模型捕捉的一種信息,在對(duì)象世界中,它是通過(guò) UML類(lèi)模型建模的。您往往會(huì)引用概念性模型中描述的類(lèi),例如,“參加研習(xí)班”用例包括了“研習(xí)班”和“學(xué)生”等概念,它們都將由概念性模型描述。
不要忘記用戶(hù)界面。
系統(tǒng)用例經(jīng)常引用主用戶(hù)界面 (UI)元素,這些元素常常稱(chēng)為“邊界”或“用戶(hù)界面”項(xiàng),例如 HTML頁(yè)面和報(bào)表。用例有時(shí)也引用一些次要的 UI元素,例如按鈕或數(shù)據(jù)輸入字段,但這種級(jí)別的細(xì)節(jié)并不太常見(jiàn)。
創(chuàng)建用例模板。
用例包含了相當(dāng)數(shù)量的信息,這些信息可以輕易地以常見(jiàn)格式記載。您應(yīng)該考慮開(kāi)發(fā)自己的模板(請(qǐng)參閱技巧“ 記載用例”)。
始終如一地組織用例圖。
一般的做法是垂直地繪制繼承 (inheritance) 和擴(kuò)展 (extend)關(guān)聯(lián),在父/基本用例下面繪制繼承/擴(kuò)展用例。同樣,通常水平繪制包含(include) 關(guān)聯(lián)。請(qǐng)注意,這些是簡(jiǎn)單的經(jīng)驗(yàn)法則 --只要始終遵循這些法則,產(chǎn)生的圖將很容易理解。
不要忘記系統(tǒng)對(duì)參與者行動(dòng)的響應(yīng)。
用例既應(yīng)該描述參與者是如何與系統(tǒng)交互的,也應(yīng)該描述系統(tǒng)如何響應(yīng)這些交互。例如,在“參加研習(xí)班”用例中,如果系統(tǒng)在學(xué)生表明他們希望參加研習(xí)班時(shí)沒(méi)有做出響應(yīng),學(xué)生就會(huì)很沮喪地離開(kāi)。
備選行動(dòng)過(guò)程非常重要。
如果一切順利,使用的將是基本行動(dòng)過(guò)程 --但也不要忘記備選過(guò)程。引入備選過(guò)程是為了描述潛在的使用錯(cuò)誤以及商業(yè)邏輯錯(cuò)誤和異常。這些重要的信息對(duì)于驅(qū)動(dòng)系統(tǒng)的設(shè)計(jì)來(lái)說(shuō)很有必要,因此不要忘記在用例中對(duì)它們建模。
不要被 <<include>> 和 <<extend>>關(guān)聯(lián)所困擾。
我不是很確定到底發(fā)生了什么事,但我總是在想包含 (include) 和擴(kuò)展(extend) 關(guān)聯(lián),以及舊版本 UML 中使用 (uses) 和擴(kuò)展 (extends)關(guān)聯(lián)的正確使用從來(lái)沒(méi)有得到很好的描述。結(jié)果,用例建模小組往往在這些關(guān)聯(lián)的正確應(yīng)用上爭(zhēng)論不休,在整個(gè)建模技術(shù)中一些有趣但次要的部分上浪費(fèi)了驚人的時(shí)間。我曾在一個(gè)組織中工作,這家組織居然取締了<<include>> 和 <<extend>>原型的使用,幾個(gè)星期后,當(dāng)意識(shí)到公司仍然需要這些概念時(shí)不得不撤消了這種極端的解決方案,而這時(shí)該組織對(duì)它們的正確使用還沒(méi)有達(dá)成共識(shí)。
讓用例帶動(dòng)用戶(hù)文檔。
用戶(hù)文檔的目的是描述如何使用系統(tǒng)。每個(gè)用例都描述了參與者通過(guò)使用系統(tǒng)所采取的一系列動(dòng)作。簡(jiǎn)而言之,用例包含從中開(kāi)始編寫(xiě)問(wèn)黨用戶(hù)穩(wěn)當(dāng)?shù)男畔ⅰ@纾梢允褂?#8220;參加研習(xí)班”用例作為基礎(chǔ)來(lái)編寫(xiě)系統(tǒng)用戶(hù)文檔的“如何參加研習(xí)班”一節(jié)。
讓用例帶動(dòng)演示。
軟件開(kāi)發(fā)過(guò)程中的一部分是向項(xiàng)目資金管理者通報(bào)工作成果,因此有時(shí)需要提供演示。因?yàn)橛美菑挠脩?hù)的角度編寫(xiě)的,它們包含了演示中對(duì)資金管理者可能希望聽(tīng)到的事物的有價(jià)值的深刻見(jiàn)解。換句話(huà)說(shuō),用例通常包含制定演示稿所需的邏輯。
參考資料
關(guān)于作者
 |

|
 |
Scott W. Ambler 是 Ronin International 的總裁,該公司是一家專(zhuān)門(mén)提供面向?qū)ο筌浖^(guò)程指導(dǎo)、體系結(jié)構(gòu)建模和 Enterprise JavaBean (EJB) 開(kāi)發(fā)的咨詢(xún)企業(yè)。他創(chuàng)作或者與其他人合著了幾本有關(guān)面向?qū)ο箝_(kāi)發(fā)的書(shū)籍,包括最近出版的 Object Primer 2nd Edition,該書(shū)詳細(xì)介紹了本文所概述的主題。可以通過(guò) scott.ambler@ronin-intl.com 與他聯(lián)系,他的網(wǎng)站位于 www.ambysoft.com。
|
|