【正文】
y) (.,critical, important, or ancillary)。 ? 實現(xiàn)中相聯(lián)的風險等級。 ? 業(yè)務(wù)模型或領(lǐng)域模型 領(lǐng)域模型 領(lǐng)域模型捕獲了系統(tǒng)語境中的一些重要對象類型。其中領(lǐng)域 對象表示 系統(tǒng)工作環(huán)境中存在的事物或發(fā)生的事件。 一般來說,領(lǐng)域類以三種形態(tài)出現(xiàn): ?業(yè)務(wù)對象:表示那些被業(yè)務(wù)所操縱( manipulate)的事物 ( thing),例如定單,帳目和合同等。 ?實在對象( Realworld objects)和概念:例如 飛機, 火箭等。 ?事件( Events):例如飛機到達,飛機起飛等。 一般來說,領(lǐng)域模型是以類圖予以描述的。 Order date of submission delivery address Item description picture cost Invoice amount date of submission last date of payment Account balance owner 1..* payable 1..* buyer 1 seller 1 A class diagram in a domain model, capturing the most important concepts in the context of the system Example: Domain Classes Order, Invoice, Item, and Account 業(yè)務(wù)模型 業(yè)務(wù)模型可以分為以下 2個層次: ?業(yè)務(wù) use case 模型 通過 業(yè)務(wù) use case和 業(yè)務(wù) actors 來描述業(yè)務(wù)過程,他們分別 對應(yīng)業(yè)務(wù)過程( business processes)和客戶( customers )。 一般來說, 業(yè)務(wù) use case 模型 是以 use case 圖予以描述的 . ? 業(yè)務(wù)對象模型 業(yè)務(wù)對象模型是一個業(yè)務(wù)的內(nèi)部( interior)模型。描述每 一個 業(yè)務(wù) use case 是如何通過一組 workers 、 business entities 、 work units予以細化的。 其中, Business entity 表示某些事物( something) ,例如 一張發(fā)票。 它們在一個 業(yè)務(wù) use case中被使用之。 A work unit 是這樣實體的一個集合,對最終用戶 而言,形成了可認知的整體。 Business entities 和 work unit 用于表達同一類概念,作為 領(lǐng)域類,例如定單,欄目,發(fā)票等。 每一個 業(yè)務(wù) use case的細化可以通過交互圖和活動圖予以 表示。 ? 以 use case 捕獲需求 UseCase 模型 ? UseCase 模型 用以表達客戶認可的需求 系統(tǒng)必須 滿足的條件和能力。 ? UseCase模型 作為客戶和開發(fā)人員之間的一種共識。 ? UseCase 模型是一個系統(tǒng)的一種模型,包括 actors、 use cases 以及它們之間的關(guān)系。 UseCase system UseCase model Actor Use case * * 1 The UseCase system denotes the toplevel package of the model UseCase 模型以及其內(nèi)容 參與需求工作流的有關(guān)人員 System Analysis responsible for Usecase Specifier responsible for Userinterface designer responsible for Architect responsible for use case model Actor Glossary Use case User interface prototype Architecture Description 需求捕獲工作流中的活動 發(fā)現(xiàn)并描述 Actor ( 1) 發(fā)現(xiàn) Actor的方法 ?發(fā)現(xiàn) actor的這一任務(wù),依賴于起始點: 當存在業(yè)務(wù)模型時 可以直接地發(fā)現(xiàn)一些候選的 actors,即: ? 對于業(yè)務(wù)中的每一個工作人員,可以建議一個候選的 actor ? 對于每一個將要使用該信息系統(tǒng)的業(yè)務(wù) actor (即每一個業(yè)務(wù)客戶), 可以建議候選的一個 actor。 當有或沒有領(lǐng)域模型時 分析人員就要與客戶一起標識 actor,并將所標識 actor進行分類,形成 一些候選的 actors。 Note:還要標識表示外部系統(tǒng)的 actor和系統(tǒng)維護和運行所需要的 actor 。 ?在確定系統(tǒng) actors 時可用的 2條準則: 第一條準則:至少要識別出一個用戶,可以扮演候選的 actor。 該準則將幫助我們僅發(fā)現(xiàn)那些相關(guān)的 actors,避免 actor 僅是一些想象的 “ 事物 ” 。 第二條準則:系統(tǒng)中不同 actors 實例之間,其角色的重疊 應(yīng)是最少的。 如果 2個或多個 actors有著幾乎相同的角色,那么就應(yīng)該 考慮: ?是否將這些角色組合到一個 actor的角色中,或 ?是否需要發(fā)現(xiàn)另外一個 “ 一般化 ” 的 actor,使之具有那些 重疊的、公共的角色 ,并可以通過 “ 泛化 ” ,形成那些特 定 actor。 ( 2) Actors的命名與描述 Actors的命名: 對 actors給出恰當?shù)拿质欠浅V匾?。這樣的名字可以 “傳達”( convey)所期望的語義。 Actors的描述: 對 actor的描述,應(yīng)包含其角色(責任)以及為了完成其 責任所需要的條件。 例如 : the Buyer, Seller,and Accounting System Actors ? Buyer A Buyer represents a person who is responsible for buying goods or services as described in the business use case Sales: from Order to Delivery. This person may be an individual or someone within a business anization. The Buyer of goods and services need the Billing and Payment System to send order and to pay invoices. ? Seller A Seller represents a person who sells and delivers goods or services. The Seller uses the system to look for new orders and to send order confirmations, invoices, and payment reminders. ? Accounting System The Billing and Payment System sends verifications of transactions to the Accounting System. Order Goods or Services Confirm Order Invoice Buyer Pay Invoice Perform Transaction Pay Overdraft Fee Send Reminders 《 extend》 Initiator Initiator Initiator Initiator Initiator Buyer Seller Accounting system Use case in the Billing and Payment System that support the business use case Sales:From Order to Delivery. The role initiator, attached to the associations, indicate which actor starts the use case. 發(fā)現(xiàn)并描述 Use Case (1) 對 use case的回顧 A use case specifies a sequence of actions, including alternatives of the sequence , that the system can perform , interacting with actor of the system. ? actor 使用系統(tǒng)的每一方法( way ),被表示為一個 use case ? Use case 是系統(tǒng)向它的 actors 提供結(jié)果(值)的功能塊 ( chunks )。 例如, use case 實例 Withdraw money The use case Withdraw money enables instances of the actor Bank Customer to withdraw money through an ATM 因此 ? 對一個 use case的描述可以使用正文事件流、狀態(tài)圖、活動 圖、通訊圖和順序圖。 ? 在一個 use case中的一條路徑,可以看作: ? 啟動了該 use case實例,并使之處于一個開始狀態(tài); ? 該狀態(tài)由一個外部的 actor所引發(fā)( invoke);并由一個 動作序列的執(zhí)行,使之轉(zhuǎn)化為另一狀態(tài)。其中該序列包含 內(nèi)部計算、路徑選擇和向某一 actor發(fā)送消息。 ? 在一個新的狀態(tài)中,等待 actor發(fā)送另一外部消息 。 ? 該狀態(tài)由一個新的消息予以引發(fā)( invoke),以此繼續(xù), 通過了許多狀態(tài),直到該 use case實例被終止 . ?大部分是一個 actor實例引發(fā)一個 use case實例, 但也可能由一個事件所引發(fā),例如由系統(tǒng)之外的定時時鐘所引發(fā)。 ?Use case有其自己的屬性 ,例如 Withdraw money 這一 use case 可以認為它有屬性 “ 帳目 ” ( account)、存款數(shù)目( amount to be withdrawn)等,這些值局部于一個 use case實例 ?Use case實例不能與其它 use case 實例發(fā)生交互。 ? 在 use case模型中,唯一的一類交互可以發(fā)生在 actor實例和 use case 實例之間。這是由于我們把 use case實例看作是原子的,每一個 use case的行為可以被其它 use case所中斷, 這就確保了我們可以理解一個特定的 use case模型。 (2) 發(fā)現(xiàn) Use Case的方法 ?當開始點是一個業(yè)務(wù)模型時 一旦我們發(fā)現(xiàn)了一個工作人員或業(yè)務(wù) actor的所有角色, 標識一些暫時的 use case最直接的方法是: 對每一工作人員和業(yè)務(wù) actor 的每一角色,對應(yīng)地創(chuàng)建 一個 use case。 因此, ?針對每一 業(yè)務(wù) use case ,為每一工作人員和業(yè)務(wù) actor,設(shè)置 一個 use case。 ? 細化并調(diào)整這些暫時的 use cases. ? 決策 工作人員和業(yè)務(wù) actor 的那些任務(wù)應(yīng)該由系