基本概念:html
用例圖(Use Case Diagram):用例圖顯示誰是相關的用戶,用戶但願系統提供什麼服務(用例),以及用例之間的關係圖。用例圖主要的做用是獲取需求、指導測試。 app
基本組件:參與者(Actor)、用例(Use Case)、關係(Relationship)和系統。測試
關係(Relationship):爲了體現一些用例之間的業務關係,提升可維護性和一致性,用例之間能夠抽象出包含(include)、擴展(extend)和泛化(generalization)幾種關係。spa
共性:都是從現有的用例中抽取出公共的那部分信息,做爲一個單獨的用例,而後通後過不一樣的方法來重用這個公共的用例,以減小模型維護的工做量。.net
包含(include):就是爲了共性,具體語言方法體如今,抽出一個公有的方法,它存在於別的用例體內一塊兒用,自己不完整,或者說它是業務片斷。本人以爲也能夠爲了未來好靈活使用該片斷業務或開發維護,能夠抽出來。htm
擴展(extend):自己是一個完整的業務,但在流程上,是從基用例上觸發出來的。文字形式的用例描述能夠很好的體現擴展,如流程走到A的時候,基用例是B,(能夠擴展下)不一樣的狀況下或者基礎上添點其餘功能業務,能夠是B一、B2。(B一、B2擴展用例,獨立且可選)對象
泛化(generalization):繼承blog
方向:對於剛纔的幾種關係的圖形方向箭頭,咱們先談依賴關係,一段虛線的箭頭,箭頭指向被依賴的對象。以上關係,都遵循依賴關係,好比包含關係,基用例依賴它所包含的用例,箭頭指向包含用例。擴展用例依賴基用例,它由基用例觸發出來的,箭頭指向基用例。泛化,兒子是父親生出來的,兒子依賴父親,箭頭指向父親。繼承
幾者的區別事件
●泛化側重表示子用例間的互斥性;它一定發生,如審批泛化出工資調整審批、請假審批。
●包含側重表示提供間接性的服務;它一定發生,如發送郵件包含在修改密碼中,又包含在其餘通知業務中。
●擴展側重表示選擇性的觸發;基用例一定發生,但擴展用例某些狀況下才發生。如查詢某個表,擴展出導出這個表的EXCEL。
《UML精粹》下的用例:
用例是捕獲系統功能需求的技能。用例描述了系統用戶和系統自己的典型交互,提供了系統如何被使用的說明。
場景(scenario):用戶和系統之間交互的步驟序列。
目標,用例的關鍵,用例經過共同用戶目標綁在一塊兒的場景集合。
咱們爲了目標,挑選出一個場景,做爲主成功場景,把其餘場景做爲擴展。而擴展的場景,須要一個條件觸發。他們保證會完成某個目標。同時,某個複雜的步驟能夠抽出來變爲一個用例,該用例包含於它的母用例中。
用例的一些公共信息:
前置條件(pre-condition):用例開始以前,確保爲真的東西。該用例自己不會去檢查該條件,調用者檢查。
觸發器(trigger):觸發用例開始的事件
保證(guarantee):用例結束時,系統會確保的東西。成功場景結束後獲得成功保證;任何場景結束後都會獲得最小保證。
用例的級別;
風箏級別(kite-level):業務用例。
海平面級別(sea-level):核心用例,對主執行者有價值的東西,一般花幾分鐘到半小時完成。(系統用例)
魚級別(fish-level):包含於海平面級別。(系統用例)
特性與用例:
特性多是整個用例、用例中的場景、用例中的步驟或一些變體。
推薦:使用文本形式表達用例,表達系統的外部視圖,不要指望和系統類之間的關聯,上面有些關聯了,只是爲了便於理解反過來講明的。
如:
[plain] view plain copy
參考資料:
用例圖《UML精粹:標準對象建模語言建模指南(第3版)》Martin Fowler
用例圖_百度百科 http://baike.baidu.com/view/1281729.htm
博客園 UML用例圖博客 http://www.cnblogs.com/panjun-Donet/archive/2008/10/20/1315030.html
ITEYE UML用例圖帖子 http://www.iteye.com/topic/958803