?? 《面向?qū)ο笙到y(tǒng)分析和設(shè)計》 第07章 筆記 + 習(xí)題.txt
字號:
作者:rick1126
email: rickzhang@sina.com
日期:8/24/2001 6:46:33 AM
第7章 對象責(zé)任: 服務(wù)和場景
【本章要求】
. 定義商業(yè)謀略和過程, 并舉例
. 定義兩種類型的服務(wù)
. 描述識別服務(wù)的方法
. 描述記敘性規(guī)格說明文檔存在的典型問題
. 定義和使用服務(wù)場景
. 定義結(jié)構(gòu)性英語, 用其記錄商業(yè)過程
. 定義判定表和判定樹, 用其描述具有復(fù)雜設(shè)計邏輯的謀略
. 描述狀態(tài)轉(zhuǎn)換圖
. 描述識別服務(wù)的原始類的方法
【本章筆記】
7.1 對象的"'我'做什么"責(zé)任
〖服務(wù)和事件〗
. 服務(wù)(方法)
- 信息系統(tǒng)為了達到目的必須執(zhí)行的行動
- 信息系統(tǒng)對于一個事件的反應(yīng)
- 信息系統(tǒng)的謀略
. 事件
- 在特定時間發(fā)生的事情
〖商業(yè)目標(biāo)和謀略, 信息系統(tǒng)目標(biāo)和謀略及其過程〗
. 服務(wù) = 信息系統(tǒng)的謀略 --< 支持 >-- 信息系統(tǒng)目標(biāo) --< 支持 >-- 商業(yè)謀略 --< 支持 >-- 商業(yè)目標(biāo) --< 支持 >--公司的總體目的和使命
. 商業(yè)謀略
- 公司認(rèn)為達到公司目標(biāo)必須的方法和途徑
- 公司處理內(nèi)部某些活動的一套規(guī)則
. 過程
- 執(zhí)行謀略或完成任務(wù)的逐步執(zhí)行的指示
- 事件出現(xiàn)的反應(yīng)步驟
一旦決定了謀略和過程, 就成為信息系統(tǒng)目標(biāo)的基礎(chǔ).
〖服務(wù)類型〗
. 所有類的基本服務(wù)
. 依賴于問題域特定功能需求的服務(wù)
〖基本服務(wù)〗
特點:
. 基本服務(wù)經(jīng)常不列在類符號的服務(wù)部分, 以使符號更簡單
. 基本服務(wù)是隱藏的, 并且對于每一個類自動存在
. 基本服務(wù)的維護對象就是類本身和具體的商業(yè)問題域無關(guān)
操作:
. 創(chuàng)建/刪除/查找對象
. 獲得和設(shè)置對象屬性值
. 添加和刪除對象聯(lián)結(jié)
〖特定功能服務(wù)〗
特點:
. 服務(wù)在問題域和其中定義的類獨有
. 可以自由創(chuàng)建符合問題域需要的服務(wù), 即服務(wù)應(yīng)該完成特定的任務(wù)
處理復(fù)雜性原則:
. 信息隱藏(包裝)原則, 即一個服務(wù)應(yīng)該執(zhí)行一個或者多個連續(xù)功能
. 復(fù)用原則, 功能也是一致, 復(fù)用的可能性越大
交互:
. 一個服務(wù)經(jīng)常要求信息系統(tǒng)中的同類或者不同類的對象提供服務(wù)支持
. 在請求/響應(yīng)過程中, 發(fā)出請求的服務(wù)稱之為發(fā)送方服務(wù), 接受請求的服務(wù)稱之為接收方服務(wù)
. 接收方服務(wù)有時需要進行處理并且返回結(jié)果, 但不是必須, 這提供了并行處理的可能, 只要對于處理問題域具有意義
〖尋找和表示服務(wù)〗
背景:
. 尋找和表示服務(wù)因為至今沒有成為一門專門研究的科學(xué), 因此需要借助多種經(jīng)驗方法
方法:
. 事件角度
- 事件貫串于尋找類, 尋找和表示模式, 尋找和表示屬性等活動的前,中,后各個階段
- 使表示服務(wù)的最合適起點
. 狀態(tài)角度
- 為了維護屬性及其狀態(tài), 需要提供相應(yīng)的服務(wù)
. 消息角度
- 消息是從發(fā)送服務(wù)向接收服務(wù)發(fā)出的執(zhí)行服務(wù)請求
- 所需的服務(wù)就是消息的名稱
. 服務(wù)細節(jié)
- 服務(wù)細節(jié)就是針對服務(wù)之間協(xié)作關(guān)系尋找依賴性的其他服務(wù)及其所屬類
一般過程:
. 羅列服務(wù)和事件
. 為服務(wù)尋找原始類
7.2 服務(wù)細節(jié)
〖目的〗
- 研究服務(wù)細節(jié)即逐步執(zhí)行的行動細節(jié)是服務(wù)為了完整責(zé)任必須進行的行動
- 分析階段說明的細節(jié)應(yīng)該足夠詳細
〖記錄和秘書服務(wù)細節(jié)的技術(shù)〗
- 場景
- 結(jié)構(gòu)化英語或偽代碼
- 判定表和判定樹
- 狀態(tài)轉(zhuǎn)換圖
〖場景〗
- 定義
對象交互的特定時序, 完成信息系統(tǒng)的某個需要. 通常以人機交互(HI)開始或者結(jié)束, 便于開始和結(jié)束.
因為場景表示的是一個類的服務(wù)與同類或者不同類的其他服務(wù)之間的相互關(guān)系, 因此對象模型的任何給定場景視圖都比較復(fù)雜和龐大.
- 組成
發(fā)送方類和服務(wù) + 接收方類和服務(wù) + 激活服務(wù)的參數(shù)和數(shù)目
〖結(jié)構(gòu)化英語或者偽代碼〗
- 定義
是英語的一種精簡和面向行動的版本, 沒有標(biāo)準(zhǔn)的方法, 重點是簡潔
- 使用原因
<1> 與面向?qū)ο笥脩粜枨竽P鸵粯? 是系統(tǒng)分析員和用戶之間的一個強有力的交流工具
<2> 具體細節(jié)在項目早期應(yīng)該盡量和運行無關(guān), 在設(shè)計時根據(jù)運行硬件和軟件平臺的需要添加與運行有關(guān)的細節(jié)
〖判定表〗
- 目的
針對服務(wù)內(nèi)的判定情況十分復(fù)雜, 單靠結(jié)構(gòu)化英語無法理解
- 可以說明如下問題
因為判定樹和判定表從排列組合的角度看待由條件和規(guī)則得到的行動, 為此可以說明如下問題
<1> 條件遺漏 <2> 條件沖突 <3> 遺漏行動
- 判定表
< 組成 >
條件[秘書影響謀略或情況的因素或條件]
行動[通過行動語句描述可能發(fā)生的行動或判定]
規(guī)則[描述對于一個條件的集合采取什么樣的行動]
< 創(chuàng)建步驟 >
1) 找到處理的特定謀略或者程序的所有條件
2) 找到每一個條件的所有值
3) 把每一個條件的可能值的個數(shù)相乘, 計算判定表的規(guī)則(列)的數(shù)目
4) 找到謀略或程序采取的行動
5) 建立規(guī)則表, 填入條件和行動, 即表中的行
6) 建立規(guī)則列, 連續(xù)標(biāo)號, 規(guī)則列總數(shù)由步驟3)決定
7) 在每條規(guī)則下列出所有的條件組合
8) 檢查每個規(guī)則列的條件值, 在與該條件和值得組合有關(guān)的行動上做標(biāo)記
9) 找到遺漏條件, 遺漏行動和矛盾的或模糊的條件
10)將步驟9)結(jié)果與用戶討論, 并修改判定表
< 相關(guān)概念 >
1) 條件
條件通常是一個判詞
2) 條件值
即對應(yīng)條件的邏輯或者數(shù)字等類型的值
< 相關(guān)技巧 >
1) 取條件
對于互斥的條件可以合并
2) 尋找缺失的條件, 缺失的行動, 沖突或者含混的條件
- 相同行動
- 除了一個條件外, 所有都具有相同的值
- 具有不同值得條件表示該條件的所有可能值
〖判定樹〗
< 說明 >
比較適合初學(xué)者的一種邏輯判定方式. 和判定表只是方式不同.
< 概念 >
中間節(jié)點 - 條件或者條件值, 而且按照層次深入的特點 -- 下層中間節(jié)點就是上層節(jié)點值的邏輯推理結(jié)果
葉子節(jié)點 - 判定點即行動
〖狀態(tài)轉(zhuǎn)換圖〗
< 用途 >
某些問題域和服務(wù)使用狀態(tài)轉(zhuǎn)換圖有效地表達服務(wù), 服務(wù)的一部分和服務(wù)之間交互的細節(jié).
< 適用 >
表示具有時間性質(zhì)的行為部件的信息系統(tǒng)的一部分, 實時系統(tǒng)
< 符號 >
方框 - 狀態(tài)
箭頭 - 條件-行動, 同時需要附加描述
〖把服務(wù)賦予類和消息聯(lián)結(jié)〗
如何把服務(wù)賦予類:
- 根據(jù)服務(wù)名稱找到所屬類
- 根據(jù)問題域的真實世界的具體人, 地點和事物, 考慮這些服務(wù)自然屬于某個類以更好的表達真實世界
- 根據(jù)服務(wù)所操作的類屬性找到所屬類
添加服務(wù)細節(jié)和支持服務(wù):
〖從系統(tǒng)分析轉(zhuǎn)入系統(tǒng)設(shè)計〗
分析階段的系統(tǒng)模型將進入設(shè)計階段, 得到增強和擴展, 并且隨著項目從設(shè)計進入實現(xiàn), 也會加入其他類, 模式, 屬性和服務(wù).
【本章習(xí)題】
01. 定義面向?qū)ο缶幊痰姆?wù)
答: 信息系統(tǒng)為達到目的必須執(zhí)行的行動, 也可以看出時信息系統(tǒng)對于一個事件的反應(yīng).
02. 服務(wù)怎樣與商業(yè)和信息系統(tǒng)的目標(biāo)和謀略聯(lián)系在一起
答: 服務(wù)是信息系統(tǒng)的謀略, 支持信息系統(tǒng)目標(biāo). 而信息系統(tǒng)目標(biāo)支持商業(yè)謀略, 商業(yè)謀略支持商業(yè)目標(biāo), 最后商業(yè)目標(biāo)支持公司的總體目的和使命.
03. 科德面向?qū)ο蠓椒ㄕ摰膬煞N服務(wù)是什么?
答: 基本服務(wù)和特定問題域的服務(wù)
04. 列出并簡要描述基本服務(wù)
答: 基本服務(wù)就是為每一個類/對象類擁有的服務(wù), 一般在圖中不列出, 因為何信息系統(tǒng)的謀略無關(guān), 是支持面向?qū)ο髾C制的. 基本服務(wù)一般包括: 長劍和刪除對象, 查找, 獲得和設(shè)置屬性質(zhì), 添加和刪除對象聯(lián)結(jié). 基本服務(wù)是處理對象, 對象聯(lián)結(jié)合對象屬性值得實際服務(wù).
05. 定義每種基本服務(wù)并舉例
答: 基本服務(wù)如下:
創(chuàng)建對象服務(wù) - 在類中長劍新的對象, 允許類創(chuàng)建新的對象實例
查找服務(wù) - 在類中查找特定對象
獲取和設(shè)置屬性服務(wù) - 取得設(shè)置屬性和屬性值
添加和刪除服務(wù) - 添加聯(lián)結(jié)用于把對象聯(lián)系起來, 刪除聯(lián)結(jié)服務(wù)把對象互相分開
刪除對象服務(wù) - 按照要求從類中刪除對象
06. 定義問題域特定服務(wù)并舉例
答: 問題域特定服務(wù)是問題域和其中定義的類獨有的, 可以自由創(chuàng)建問題域需要的服務(wù), 服務(wù)應(yīng)該完成具體任務(wù), 應(yīng)該遵從處理復(fù)雜性的信息隱藏(封裝)原則, 即一個服務(wù)應(yīng)該執(zhí)行一個或者幾個更多連續(xù)功能. 一個服務(wù)經(jīng)常要求信息系統(tǒng)中同類和不同類的其他服務(wù)的支持.
07. 討論類似勞動分工性質(zhì)的服務(wù)特點
答: 勞動分工性質(zhì)的服務(wù)特點就是每一個服務(wù)完成特定的任務(wù)部分, 各個服務(wù)組合起來完成一個整體任務(wù). 為此各個服務(wù)互相聯(lián)系, 互為補充. 遵從復(fù)雜性處理原則, 可以互相通訊(發(fā)送方/接收方服務(wù))和功能復(fù)用; 或者并行處理問題.
08. 簡要描述識別服務(wù)的技術(shù)
答: 識別服務(wù)技術(shù)如下
- 標(biāo)識事件和相關(guān)服務(wù)
可能是標(biāo)識服務(wù)的最合適起點. 事件說到底是問題域中發(fā)生的能夠被用戶確認(rèn)得事件, 該方法非常符合面向?qū)ο蠓椒ㄕ? 而且事件在尋找類, 標(biāo)識模式, 標(biāo)識屬性等面向?qū)ο笕蝿?wù)之前, 之中, 之后都可以進行.
- 標(biāo)識要求的消息
消息就是對象交互的方式, 通常可以得到發(fā)送方服務(wù)和接收方服務(wù)
- 標(biāo)識類的狀態(tài)
一般修改類的狀態(tài)的就是類本身的服務(wù), 這符合處理復(fù)雜性的消息封裝原理
- 說明服務(wù)的細節(jié)
因為服務(wù)細節(jié)說明會發(fā)現(xiàn)完成任務(wù)的服務(wù)需要得到同類或不同類的其他服務(wù)的支持, 這時, 可能會發(fā)現(xiàn)其他支持服務(wù), 這些服務(wù)添加到模型中支持其他服務(wù).
09. 通過說明服務(wù)細節(jié)來識別服務(wù)時, "走一遍"過程是什么意思? 這個活動能夠得到什么?
答: 即用戶按照定義的步驟"走一遍"每一個用戶定義的服務(wù), 用戶應(yīng)該感覺到, 每一個服務(wù)能夠完成指定功能, 是一個很好的檢查和驗證步驟, 屬于需求決定活動的需求確認(rèn)部分.
10. 說明服務(wù)細節(jié)時, "書面語言"文檔存在什么問題?
答: 表意不規(guī)范, 不明確, 不簡潔; 無法應(yīng)用基本的邏輯控制流程.
11. 定義服務(wù)場景, 并舉例
答: 服務(wù)場景是對象交互的特定時序, 完成信息系統(tǒng)的某個需要. 場景由對象模型中的場景試圖協(xié)助開發(fā). 舉例如下:
節(jié)目編排場景就是獲得節(jié)目列表, 按照播出時間編排, 檢查編排, 確定編排.
12. 使用結(jié)構(gòu)化英語(偽碼)描述服務(wù)細節(jié)有什么優(yōu)勢?
答: 簡潔, 而符合邏輯流程控制原理, 易于理解.
13. 討論判定表和判定樹能夠減輕的使用結(jié)構(gòu)化英語帶來的問題
答: 遺漏條件, 沖突條件, 遺漏行動. 根本語言就是偽碼僅僅涉及的邏輯控制不包含對于條件, 規(guī)則和行動的排列組合等判定.
14. 創(chuàng)建判定表時, 怎樣處理重復(fù)行動?
答: 合并.
15. 在什么情況下使用狀態(tài)轉(zhuǎn)換圖?
答: 表示具有時間性質(zhì)的行為部件的信息系統(tǒng)的一部分.
16. 定義并表示消息
答: 消息是從發(fā)送方服務(wù)向接收方服務(wù)發(fā)出的執(zhí)行服務(wù)請求.
17. 消息的3個部分是什么? 它怎樣聯(lián)系?
答: 發(fā)送方服務(wù), 接收方服務(wù), 請求參數(shù). 發(fā)送方服務(wù)向接收方服務(wù)發(fā)送附帶執(zhí)行請求參數(shù)的消息, 接收方處理以后可以選擇返回或者不返回.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -