【正文】
?使用構(gòu)件構(gòu)造系統(tǒng) ?建立高效的開發(fā)團(tuán)隊(duì) 突出特點(diǎn)是: Use Case 驅(qū)動(dòng)的、 以體系結(jié)構(gòu)為中心的、 迭代、增量的開發(fā) . ? 何謂 USE CASE 驅(qū)動(dòng) USE CASE 分 析 輸入 設(shè) 計(jì) 實(shí) 現(xiàn) 跟蹤 輸入 跟蹤 輸入 跟蹤 輸入 輸入 測(cè) 試 輸入 跟蹤 輸入 從 USE CASE模型的視覺(jué) 從分析模型的視覺(jué) 從設(shè)計(jì)模型的視覺(jué) 從實(shí)現(xiàn)模型的視覺(jué) 從部署模型的視覺(jué) 給 出 體 系 結(jié) 構(gòu) 描 述 ? 何謂 以體系結(jié)構(gòu)為中心 階 段 核心工作流 ? 何謂 迭代、增量的開發(fā) ? 初始階段( the inception phase)的基本目標(biāo)是: 了解項(xiàng)目的范圍 建立業(yè)務(wù)模型 得到涉眾的認(rèn)可 換言之,其目標(biāo)是:建立該項(xiàng)目的生存周期目標(biāo) ( objectives) ? 精化階段( the elaboration phase)的基本目標(biāo)是 建立體系結(jié)構(gòu)基線 捕獲大多數(shù)的需求 降低主要的技術(shù)風(fēng)險(xiǎn) 減少次要的錯(cuò)誤風(fēng)險(xiǎn),即建立生存周期體系結(jié)構(gòu) ( the life cycle architecture) . 到該階段末,就能夠估算成本、進(jìn)度,并能詳細(xì)地 規(guī)劃構(gòu)造階段( the construction phase) 。 ?交付階段( the transition phase)的基本目標(biāo)是: 確保有一個(gè)實(shí)在的產(chǎn)品,發(fā)布給用戶群。 注:這 4個(gè)階段是演化模型的一個(gè)變體。 即: ?指導(dǎo)開發(fā)隊(duì)伍安排其開發(fā)活動(dòng)的次序; ?為各開發(fā)者和整個(gè)開發(fā)組指定任務(wù); ?明確地規(guī)定需要開發(fā)的制品; ?提供對(duì)項(xiàng)目中的制品和活動(dòng)進(jìn)行監(jiān)控與度量的準(zhǔn)則 。其中至少涉及以下 3個(gè)問(wèn)題: ?如何定義需求獲取層,即給出該層的術(shù)語(yǔ); ?如何確定模型表示工具; ?如何映射。 以及 USE CASE圖。 要做的工作 產(chǎn)生的制品 列出候選的需求 特征( Feature)列表 理解系統(tǒng)語(yǔ)境 領(lǐng)域模型或業(yè)務(wù)模型 捕獲功能需求 Use case 模型 捕獲非功能需求 補(bǔ)充需求或針對(duì)一些特定需求 的 use cases ?特征( Feature) : 一個(gè)功能項(xiàng)( function item )以及相關(guān)的簡(jiǎn)要描述 稱為特征( feature)。 應(yīng)用系統(tǒng) 潛在的抽象層 例如: 按學(xué)科計(jì)算每一學(xué)生的期末考試平均成績(jī)。 給出各分段 ( 060, 6085, 85100) 的人數(shù)分布情況。 應(yīng)用系統(tǒng) 潛在的抽象層 (特征層) 一個(gè)抽象層 ( USE CASE 層) USE CASE1 USE CASE USE CASE2 USE CASE3 制品: USE CASE模型 規(guī)約 規(guī)約 形成 Actor 關(guān)聯(lián) 關(guān)于特征的幾點(diǎn)說(shuō)明: 每一特征有一個(gè)簡(jiǎn)短的名字和簡(jiǎn)要的說(shuō)明或定義。 ? 估算的實(shí)現(xiàn)成本。 ? 優(yōu)先級(jí)( Priority) (.,critical, important, or ancillary)。 ? 業(yè)務(wù)模型或領(lǐng)域模型 領(lǐng)域模型 領(lǐng)域模型捕獲了系統(tǒng)語(yǔ)境中的一些重要對(duì)象類型。 一般來(lái)說(shuō),領(lǐng)域類以三種形態(tài)出現(xiàn): ?業(yè)務(wù)對(duì)象:表示那些被業(yè)務(wù)所操縱( manipulate)的事物 ( thing),例如定單,帳目和合同等。 ?事件( Events):例如飛機(jī)到達(dá),飛機(jī)起飛等。 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個(gè)層次: ?業(yè)務(wù) use case 模型 通過(guò) 業(yè)務(wù) use case和 業(yè)務(wù) actors 來(lái)描述業(yè)務(wù)過(guò)程,他們分別 對(duì)應(yīng)業(yè)務(wù)過(guò)程( business processes)和客戶( customers )。描述每 一個(gè) 業(yè)務(wù) use case 是如何通過(guò)一組 workers 、 business entities 、 work units予以細(xì)化的。 它們?cè)谝粋€(gè) 業(yè)務(wù) use case中被使用之。 Business entities 和 work unit 用于表達(dá)同一類概念,作為 領(lǐng)域類,例如定單,欄目,發(fā)票等。 ? 以 use case 捕獲需求 UseCase 模型 ? UseCase 模型 用以表達(dá)客戶認(rèn)可的需求 系統(tǒng)必須 滿足的條件和能力。 ? UseCase 模型是一個(gè)系統(tǒng)的一種模型,包括 actors、 use cases 以及它們之間的關(guān)系。 當(dāng)有或沒(méi)有領(lǐng)域模型時(shí) 分析人員就要與客戶一起標(biāo)識(shí) actor,并將所標(biāo)識(shí) actor進(jìn)行分類,形成 一些候選的 actors。 ?在確定系統(tǒng) actors 時(shí)可用的 2條準(zhǔn)則: 第一條準(zhǔn)則:至少要識(shí)別出一個(gè)用戶,可以扮演候選的 actor。 第二條準(zhǔn)則:系統(tǒng)中不同 actors 實(shí)例之間,其角色的重疊 應(yīng)是最少的。 ( 2) Actors的命名與描述 Actors的命名: 對(duì) actors給出恰當(dāng)?shù)拿质欠浅V匾摹? Actors的描述: 對(duì) actor的描述,應(yīng)包含其角色(責(zé)任)以及為了完成其 責(zé)任所需要的條件。 例如, use case 實(shí)例 Withdraw money The use case Withdraw money enables instances of the actor Bank Customer to withdraw money through an ATM 因此 ? 對(duì)一個(gè) use case的描述可以使用正文事件流、狀態(tài)圖、活動(dòng) 圖、通訊圖和順序圖。其中該序列包含 內(nèi)部計(jì)算、路徑選擇和向某一 actor發(fā)送消息。 ? 該狀態(tài)由一個(gè)新的消息予以引發(fā)( invoke),以此繼續(xù), 通過(guò)了許多狀態(tài),直到該 use case實(shí)例被終止 . ?大部分是一個(gè) actor實(shí)例引發(fā)一個(gè) use case實(shí)例, 但也可能由一個(gè)事件所引發(fā),例如由系統(tǒng)之外的定時(shí)時(shí)鐘所引發(fā)。 ? 在 use case模型中,唯一的一類交互可以發(fā)生在 actor實(shí)例和 use case 實(shí)例之間。 (2) 發(fā)現(xiàn) Use Case的方法 ?當(dāng)開始點(diǎn)是一個(gè)業(yè)務(wù)模型時(shí) 一旦我們發(fā)現(xiàn)了一個(gè)工作人員或業(yè)務(wù) actor的所有角色, 標(biāo)識(shí)一些暫時(shí)的 use case最直接的方法是: 對(duì)每一工作人員和業(yè)務(wù) actor 的每一角色,對(duì)應(yīng)地創(chuàng)建 一個(gè) use case。 ? 細(xì)化并調(diào)整這些暫時(shí)的 use cases. ? 決策 工作人員和業(yè)務(wù) actor 的那些任務(wù)應(yīng)該由系統(tǒng)自動(dòng)地 予以實(shí)現(xiàn),作為 use cases,并重新組織這些 use case,更好 地適應(yīng) actors的要求( needs) 。 ?當(dāng)開始點(diǎn)沒(méi)有業(yè)務(wù)模型時(shí) 要通過(guò)與客戶以及用戶一起工作來(lái)標(biāo)識(shí) use case。 例如,可以與他們進(jìn)行交談,研究需要哪些 use case。 actor 可能還要通知系統(tǒng)一些外部事件,包括已經(jīng)發(fā)生的 一些事件,例如:發(fā)票已經(jīng)過(guò)期。 ? 對(duì)發(fā)現(xiàn)的候選 use cases 的初始處理: ?根據(jù)以上發(fā)現(xiàn)的那些 侯選的 use cases, 為了使系統(tǒng) use cases容易修改、復(fù)審、測(cè)試和管理,應(yīng)考慮它們之間的組成關(guān)系。用戶和系統(tǒng)的一個(gè)交互序列,可以在一個(gè) use case中予以規(guī)約,也可以在多個(gè) use case中予以規(guī)約。 ? use case大小的確定 確定 use case的大小,有時(shí)是相當(dāng)困難的 . 對(duì)此,必須了解: use case 應(yīng)為它的 actors產(chǎn)生相應(yīng)的值 . 特別地, use case 向一個(gè)特定的 actor交付了可見 的結(jié)果(值) . 以上的了解,可以指導(dǎo)我們合適的確定 use case大小。 注意: 一個(gè) use case 實(shí)例,例如電話呼叫,可能涉及多個(gè) actor. 在這種情況中,應(yīng)當(dāng)應(yīng)用 “ 可見的結(jié)果值 ” 這一準(zhǔn)則,啟動(dòng) actor ( to initiating actor) . “結(jié)果(值) ‘ result of value ?” 這一準(zhǔn)則,可以幫助我們避免使發(fā)現(xiàn)的 use cases 太小。 針對(duì)一些 actors, 我們第一次發(fā)現(xiàn)的 use cases 常常需要予以重新組織,重新評(píng)估,使之更加 “ 穩(wěn)定 ” 。這樣,就有可能需要相當(dāng)大的變動(dòng)。 繼之,對(duì) use case給出簡(jiǎn)單描述: ? 開始,用幾句話概括其中的動(dòng)作; ? 而后,對(duì)系統(tǒng)與其 actor交互時(shí)要做的事情予以一步一 步地描述 . 例如:描述 Pay Invoice Use Cases ?概括動(dòng)作 The use case Pay Invoice is used by a Buyer to schedule invoice payments. The Pay Invoice use case then effects the payment on the due date. ? 一步一步的描述 Before this use case can be initiated, the Buyer has already received an invoice (delivered by another use case called Invoice Buyer ) and has also received the goods or services ordered.: 1. The buyer studies the invoice to pay and checks that it is