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