憨厚生

          ----Java's Slave----
          ***Java's Host***

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks
          轉 http://www.ibm.com/developerworks/cn/rational/tip-uml/index2.html

          用例建模技巧

          適合于更好的 UML 用例模型的技術

          developerWorks
          文檔選項
          將打印機的版面設置成橫向打印模式

          打印本頁

          將此頁作為電子郵件發送

          將此頁作為電子郵件發送


          級別: 初級

          Scott W. Ambler (scott.ambler@ronin-intl.com), 總裁, Ronin International

          2001 年 1 月 04 日

          本文介紹了一些提高系統用例模型質量的技巧和技術。本文改編自 Object Primer 2nd Edition 的第 6 章。

          從參與者的角度并以主動語態編寫用例。
          應該以主動語態:“學生表明參加研習班意向”,而不是被動語態“研習班意向被學生表明”來編寫用例。而且,應該從參與者的角度來編寫用例。畢竟,用例的目的是理解用戶如何對系統進行操作。

          編寫方案文本,而非功能需求。
          用例描述的是對參與者來說有價值的一系列行動,而不是特性集。例如,“招收研習班的學生”用例描述的是學生如何與系統交互來參加研習班。它沒有描述用戶界面看上去是什么樣子,或者它是如何工作的。有一些其它的模型來描述這些重要的信息,例如用戶界面模型和增補規范。面向對象分析非常復雜,因此需要對它使用幾種模型,并且應該適當地應用每一種模型。

          用例只記載行為需求。
          用例既不是類規范,也不是數據規范。這是應該由概念性模型捕捉的一種信息,在對象世界中,它是通過 UML類模型建模的。您往往會引用概念性模型中描述的類,例如,“參加研習班”用例包括了“研習班”和“學生”等概念,它們都將由概念性模型描述。

          不要忘記用戶界面。
          系統用例經常引用主用戶界面 (UI)元素,這些元素常常稱為“邊界”或“用戶界面”項,例如 HTML頁面和報表。用例有時也引用一些次要的 UI元素,例如按鈕或數據輸入字段,但這種級別的細節并不太常見。

          創建用例模板。
          用例包含了相當數量的信息,這些信息可以輕易地以常見格式記載。您應該考慮開發自己的模板(請參閱技巧“ 記載用例”)。

          始終如一地組織用例圖。
          一般的做法是垂直地繪制繼承 (inheritance) 和擴展 (extend)關聯,在父/基本用例下面繪制繼承/擴展用例。同樣,通常水平繪制包含(include) 關聯。請注意,這些是簡單的經驗法則 --只要始終遵循這些法則,產生的圖將很容易理解。

          不要忘記系統對參與者行動的響應。
          用例既應該描述參與者是如何與系統交互的,也應該描述系統如何響應這些交互。例如,在“參加研習班”用例中,如果系統在學生表明他們希望參加研習班時沒有做出響應,學生就會很沮喪地離開。

          備選行動過程非常重要。
          如果一切順利,使用的將是基本行動過程 --但也不要忘記備選過程。引入備選過程是為了描述潛在的使用錯誤以及商業邏輯錯誤和異常。這些重要的信息對于驅動系統的設計來說很有必要,因此不要忘記在用例中對它們建模。

          不要被 <<include>> 和 <<extend>>關聯所困擾。
          我不是很確定到底發生了什么事,但我總是在想包含 (include) 和擴展(extend) 關聯,以及舊版本 UML 中使用 (uses) 和擴展 (extends)關聯的正確使用從來沒有得到很好的描述。結果,用例建模小組往往在這些關聯的正確應用上爭論不休,在整個建模技術中一些有趣但次要的部分上浪費了驚人的時間。我曾在一個組織中工作,這家組織居然取締了<<include>> 和 <<extend>>原型的使用,幾個星期后,當意識到公司仍然需要這些概念時不得不撤消了這種極端的解決方案,而這時該組織對它們的正確使用還沒有達成共識。

          讓用例帶動用戶文檔。
          用戶文檔的目的是描述如何使用系統。每個用例都描述了參與者通過使用系統所采取的一系列動作。簡而言之,用例包含從中開始編寫問黨用戶穩當的信息。例如,可以使用“參加研習班”用例作為基礎來編寫系統用戶文檔的“如何參加研習班”一節。

          讓用例帶動演示。
          軟件開發過程中的一部分是向項目資金管理者通報工作成果,因此有時需要提供演示。因為用例是從用戶的角度編寫的,它們包含了演示中對資金管理者可能希望聽到的事物的有價值的深刻見解。換句話說,用例通常包含制定演示稿所需的邏輯。



          參考資料



          關于作者

          Author photo

          Scott W. Ambler 是 Ronin International 的總裁,該公司是一家專門提供面向對象軟件過程指導、體系結構建模和 Enterprise JavaBean (EJB) 開發的咨詢企業。他創作或者與其他人合著了幾本有關面向對象開發的書籍,包括最近出版的 Object Primer 2nd Edition,該書詳細介紹了本文所概述的主題。可以通過 scott.ambler@ronin-intl.com 與他聯系,他的網站位于 www.ambysoft.com


          posted on 2009-03-10 17:36 二胡 閱讀(167) 評論(0)  編輯  收藏 所屬分類: 設計相關
          主站蜘蛛池模板: 加查县| 施秉县| 凤阳县| 页游| 叙永县| 滁州市| 邯郸市| 定边县| 特克斯县| 株洲县| 洛川县| 噶尔县| 桓仁| 土默特左旗| 内乡县| 都昌县| 金门县| 繁昌县| 万全县| 元江| 剑河县| 文登市| 尤溪县| 霍林郭勒市| 马边| 岑溪市| 汉沽区| 麻栗坡县| 利辛县| 乌苏市| 开封县| 新源县| 珲春市| 云阳县| 洛浦县| 慈溪市| 常德市| 增城市| 天峨县| 大悟县| 潜江市|