第10章 領域、概念與分析模型 10-1 再談物件導向分析 10-2 找出類別建立領域模型 10-3 指定責任建立概念模型

Slides:



Advertisements
Similar presentations
办公室保健指南. 减少辐射篇 ❤显示器散发出的辐射多数不是来自它的正面,而是侧面和后面。因此,不要 把自己显示器的后面对着同事的后脑或者身体的侧面。 ❤常喝绿茶。茶叶中含有的茶多酚等活性物质,有助吸收放射性物质。 ❤尽量使用液晶显示器。
Advertisements

教學與行政收費 E 化平台建置 總務處出納組 102/4/25. 前言 本校學雜、學分及招生報名費外之公 款繳納方式,由繳款人透過開立於中 信商銀 401 專戶辦理匯款 ( 金融機構或 ATM) 入帳,或親至出納組辦理。 為因應數位化及現代生活習慣,擬設 置繳費 E 化平台,同時收款通路將增 加全國四大超商、線上刷卡或網路.
1 門市服務丙級技術士 技能檢定介紹 門市服務丙級技術士報告注意事項 證照名稱:門市服務丙級技術士 發照單位:行政院勞工委員會 有效期限:終生有效 考照時間:每年一次,皆為第一梯次 1. 簡章與報名書表發售時間:每年 1 月 2. 報名時間:每年 1 月。 3. 學科考試時間:每年 3.
案件背后的生活智慧 上海市公安局治安总队黄奕 如何防范电信诈骗. 什么是 电信诈骗 主要指不法分子通过手机、固定电话、网络等现代通讯方式发布、传 播虚假信息,设下圈套,实施诈骗的违法犯罪行为。
魏 饴. 处级干部培训班讲座 一、卓越干部的德行素质  常修为政之德、常思贪欲之害、常怀律己之心!  孔老夫子有个观点 “ 为政以德,譬如北辰居其所而众星拱之。 ”  司马光《资治通鉴》 “ 才者,德之资也;德者,才之帅也。 ” “ 德 ” 胜 “ 才 ” 谓之 “ 君子 ” , “ 才 ”
一、真愛密碼 二、尋求真愛 三、有自尊的愛. 。如果雙方對愛情產生 質疑、困惑時,則表示 彼此之間的愛情關係仍 有 待加強或釐清,千萬別 急著為自己的人生大事 下決定。 我是一個 16 歲的未婚媽媽,發現自 己懷孕時,已經五個月大了,我知 道自己沒能力照顧孩子,在驚訝之 於,大人們只好坦然接受,幫我找.
大地遊戲王 課程實錄.
生源地助学贷款系统还款功能优化说明 评审三局 2015年5月.
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
加強水銀體溫計稽查管制及回收 回收作業須知及緊急應變措施
金融商品與服務之基本模式 時間 資金投入 風險 金融商品與服務 資金產出 2. 金融商品與服務之基本模式 時間 資金投入 風險 金融商品與服務 資金產出 2.
二、信用工具和外汇.
第4章 分錄及日記簿 4-1 借貸法則 4-2 日記簿的格式及記錄方法 4-3 分錄的意義及記錄方法 4-4 常見分錄題型分析
为您扬帆,助您远航! 徽商银行特色新产品介绍. 为您扬帆,助您远航! 徽商银行特色新产品介绍.
人 因 工 程 四室一B 黃雅勤 四室一B 黃曉楓 四室一B 鄭羽真 四室一B 張起順.
机密 辽源社内部诊断报告 北大纵横管理咨询公司 2001年1月.
金融产品认知 09会计3班 刘碧莲.
中央预算单位公务卡 产品介绍.
公务卡使用说明.
第十三屆 Step.1 我們的目標 Step.2 我們的角色 Step.4 權利與義務 義務 權利 年繳會費五百元整
财务知识培训 杨 秀 玲 2014年10月.
國立空中大學台南中心  註冊工作簡報.
102學年度 第1學期 第十二屆 學生自治會期初大會.
财务管理.
法律修养专题 对应教材的第七、八章内容 及第五、六章法律部分内容.
主講人:臺中市政府警察局 交通警察大隊 行政組組長簡仁照
第一章会计技能的内容 1.1会计技能的重要性.
第10章 面向对象的设计方法 教学目的:了解面向对象设计的概念和方法 教学重点:理解面向对象的设计的基本原理,掌 握面向对象的设计方法。
金融犯罪研究 主讲教师——吴允锋 副教授,法学博士 华东政法大学刑法教研室主任
植物保护 课程整体设计 汇报 申报省级精品资源共享课建设 植物保护课程组.
大学生安全防范教育.
大学生安全防范教育 济宁职业技术学院 安全保卫处.
第六讲 面向对象分析(6学时) 了解面向对象分析的概念 了解面向对象分析的发展 理解面向对象的基本概念 理解面向对象分析的过程、内容
政府扶持资金通览 技术改造篇.
数据库技术及应用 华中科技大学管理学院 课程网址:
第6章 系统分析 6.1 概述 6.2 逻辑模型 6.3 逻辑结构分析 6.4 用例分析 6.5 概念类分析.
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
第八章 分析與設計階段 – 物件導向設計(OOD)
节日安全指导手册.
网点常规审计管理办法.
本科生医保资料的提交.
第10章 使用個案塑模.
統計圖表的製作.
JUDE教學 Jude安裝教學篇 Jude初步介紹篇 Jude繪圖介紹篇 介紹jude的安裝和下戴 介紹jude的初基本功能
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖
第4章 物件導向分析與設計簡介 4-1 物件導向的軟體系統開發 4-2 物件導向分析與設計 4-3 UML的物件導向分析與設計
A、資訊系統開發概論與課程簡介 何謂資訊系統? 為何需要系統分析師? 需要瞭解哪些知識? 領域知識? 資訊科技? 開發方法與技術? 課程簡介.
管理信息系统 第九章 面向对象的系统开发方法.
《结构力学认知实验》(授课形式)的上课时间改为: 5月5日(周二)晚上18:00~19:30和19:30~21:00,
《结构力学认知实验》(授课形式)的上课时间改为: 5月7日(周四)晚上18:30~20:00和20:00~21:30,
证书发放工作要点及流程 学院办公室.
第13章 設計模型 13-1 再談物件導向設計 13-2 建立互動圖 13-3 建立狀態機圖 13-4 設計模型的類別圖
实验6 面向对象分析与设计实验.
第6章 使用案例圖 6-1 使用案例圖的基礎 6-2 使用案例圖的符號 6-3 動作者與使用案例的關係 6-4 繪製使用案例圖
2019/4/26 值得您列入生涯規劃的 一個重要選項 參加國家考試 考選部國家考試宣導小組.
畢業資格審查系統 操作步驟說明.
第6章 面向对象开发的 分析与设计.
新制退休實務計算說明- 現職人員退休範例說明
求職防騙面面觀 不累生活文化有限公司 行政總監 賴永洲.
MODELING GENERALIZATION & REFINING THE DOMAIN MODEL
107年高三升學 宣導說明會 註冊組長 陳智弘 2018/5/10-5/11.
國立空中大學台南中心  註冊工作簡報.
106 學年度新生入學說明會 國立臺灣海洋大學 教務處簡介
學士學位畢業論文說明 逢 學 大 甲 土 理 管 地 2009/10/05.
高雄市97年度國民小學閱讀計畫創新教學-教案達人創新教學方案
面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:
106學年度四技二專技優甄審入學報名說明 1 1.
第十章 面向对象 (2).
資格審查登錄系統-首次登入設定通行碼 若考生先前已於「繳費身分審查系統」設定過通行碼,則無須再行設定,直接登入系統即可.
Presentation transcript:

第10章 領域、概念與分析模型 10-1 再談物件導向分析 10-2 找出類別建立領域模型 10-3 指定責任建立概念模型 10-4 分析類別與強韌圖的基礎 10-5 找出分析類別建立分析模型 10-6 本章總結

10-1 再談物件導向分析 10-1-1 領域、概念與分析模型 10-1-2 物件導向分析的主要工作 10-1-3 現象與概念

10-1-1 領域、概念與分析模型-說明 為了避免特定方法論造成讀者誤以為物件導向分析和設計只有一種過程,在這一節筆者準備從模型轉換和更新角度來說明物件導向分析的核心觀念,然後使用UML建立這些模型的類別圖,如右圖所示:

10-1-1 領域、概念與分析模型- 領域模型(Domain Model) 傳統程式設計方法是找出資料與資料之間的關係來建立資料模型(Data Model),最著名的就是資料庫設計的「實體關聯模型」(E-R Model)。 領域模型就是延伸實體關聯模型的觀念,用來描述問題領域(Problem Domain)中實體(Entity)與實體(Entity)之間的關係,我們可以將它視為是一種進階版本的資料模型,因為這個資料是物件,不只擁有屬性,它還有行為能力。

10-1-1 領域、概念與分析模型- 概念模型(Conceptual Model) 概念模型是在描述系統的本質,事實上,它就是一種領域模型,其主要差異在於領域模型著重在類別、屬性和關係;概念模型會進一步指定類別的責任。 概念模型有些像是房屋模型或樣品屋,可以提供我們一個軟體系統的抽象和直覺看法,讓我們感受一下將來開發出的系統是長什麼樣子。

10-1-1 領域、概念與分析模型- 分析模型(Analysis Model) 概念模型主要是由實體類別所組成,為了建立更佳結構和更容易修改的軟體系統,我們需要進一步將概念模型分割或加入三種分析類別: 邊界(Boundary) 控制(Control) 實體(Entity) 此時更新的模型稱為分析模型。

10-1-2 物件導向分析的主要工作-說明 物件導向分析的主要工作就是系統分析師的主要工作,其工作是將問題領域中找出的東西(物件)轉換成軟體系統的系統責任,即類別,如下圖所示:

10-1-2 物件導向分析的主要工作-主要活動 物件導向分析的主要工作是從問題領域找出物件,然後將它抽象化成類別(加上屬性)後,建立關係和指定類別的責任,換句話說,物件導向分析的主要活動有: 找出類別與屬性。 找出類別關係。 指定類別的責任。 分割或加入分析類別。

10-1-3 現象與概念-說明 因為類別和物件有時對於初學者來說很難分別,所以,筆者準備從概念(Concepts)和現象(Phenomena)角度來說明物件和類別的關係,幫助讀者將物件抽象化成類別(Class),即將現象分類成概念。

10-1-3 現象與概念-現象 現象(Phenomena) 現象是真實世界中,在指定問題領域內,我們可以認知出的物件。例如:紅色汽車、白色貨車和銀色休旅車等。

10-1-3 現象與概念-概念 概念(Concepts) 概念是在描述現象的共通特性,排除詳細部分。例如:紅色汽車、白色貨車和銀色休旅車是一種陸上交通工具的車輛。概念基本上有三種特性,如下所示: 名稱(Name):區別是不同概念的名稱。 目的(Purpose):描述現象需要符合哪些特性,才能成為概念的成員。 成員(Member):哪些現象屬於概念的成員。

10-1-3 現象與概念-範例 Vehicle是概念名稱,其目的是陸上交通工具,可以看到汽車、貨車、堆高機和休旅車都屬於概念的成員。

10-2 找出類別建立領域模型 10-2-1 識別物件 10-2-2 名詞分析法找出類別與屬性 10-2-3 找出類別關係

10-2-1 識別物件-物件的種類1 物件是從問題領域中找出的主意、想法和東西,可以包含: 有形的東西或物品:我們眼見和實際觸摸到的東西,例如:樹木、貓、狗、船和飛機等,電腦周邊的鍵盤、印表機和磁碟機,圖形使用介面的視窗和按鈕等。 扮演的角色:人類或組織扮演的角色,以人來說,特別是工作職稱,例如:老師、學生、和管理者等。

10-2-1 識別物件-物件的種類2 場所位置:實際的地點或辦公室,例如:倉庫、零售店和桌面等。 組織單位:公司團體的組織單位,例如:工作群組、部門和小組等。 設備裝置:連線的外部裝置,例如:刷卡機和控制器等。 事件、狀態與交易:特定條件或時間點產生的事件,例如:飛行、登入和信用卡開卡等,商業交易的合約和付款等。

10-2-1 識別物件-從問題領域識別出物件 筆者整理出幾個方法來幫助我們找出問題領域中的可能物件,如下所示: 問題領域中是否有【具體事物】,例如:人、書、電腦和車子等。 問題領域中是否有【事件】,例如:訂購商品、借書、參加會議和旅遊等。 問題領域中是否有【角色】或【組織成員】,例如:員工、客戶和售貨員等。 問題領域中是否有【位置】、【地方】或【結構】,例如:座標、圖書館、圓、三角形和長方形等。

10-2-2 名詞分析法找出類別與屬性- 步驟 名詞分析法找出類別與屬性已經有相當長的歷史,它就是從相關需求文件中找出名詞或名詞片語的概念(Concepts),這些都是可能的候選類別或屬性,步驟如下所示: Step 1:從第5章的事件表和第8章使用案例規格的描述中找出所有的名詞和名詞片語。 Step 2:直接觀察、請教領域專案或從現有系統、流程、報表或表單等其他資料來源找出更多的名詞和名詞片語。 Step 3:將名詞和名詞片語區分為概念或屬性,刪除哪些不相關的概念,最後剩下的概念就是領域模型的類別。 Step 4:針對每一個概念找出其屬性,請注意!我們只需找出重要的屬性,而不是完整的屬性清單。

10-2-2 名詞分析法找出類別與屬性- 分辨類別與屬性的原則 如果可以使用單一值的字串或數值來表示,就表示它是屬性,否則可能是類別,例如:【管理者】名詞代表姓名和薪水等多種資訊,不可能使用單一值來表示,所以它是概念;管理者【姓名】是單一值的字串,所以是屬性;不是概念。 如果找出的概念可以儲存資訊或提供服務,它多半是類別;不是屬性,例如:【車輛】名詞可以提供開車服務,所以它是類別;不是屬性。 當無法明確區分概念或屬性,或仍有些疑慮時,就將它視為概念,建立成類別。

10-2-2 名詞分析法找出類別與屬性- 篩選候選類別的原則 候選類別在真實世界是否擁有可識別的特性:類別一定擁有識別屬性,如此當建立物件時,才能分辨是不同的物件,如果找不到識別屬性,就表示它不是類別。 候選類別是可以定義的:一個類別一定可以使用一句描述來定義它,例如:員工是一位在旗標出版公司工作的人。 候選類別擁有屬性和行為:類別一定擁有屬性和行為。 候選類別是否與其他類別之間擁有關係:因為類別之間會擁有關係,但是屬性不會,例如:經理和公司車之間擁有駕駛關係。

10-2-2 名詞分析法找出類別與屬性- 案例:ATM自動櫃員機系統1

10-2-2 名詞分析法找出類別與屬性- 案例:ATM自動櫃員機系統2 然後分析每一個名詞和名詞片語來找出候選類別(即概念類別),如下表所示: 名詞和名詞子句 概念或屬性 是否候選 銀行 概念 是 帳戶 客戶 否,因為是動作者 ATM 提款金額 屬性 否,不屬於任何類別,和帳戶餘額相關 帳戶餘額 是,帳戶的屬性 交易

10-2-2 名詞分析法找出類別與屬性- 案例:ATM自動櫃員機系統3

10-2-3 找出類別關係-找出結合關係 結合關係(Associations)是一條類別之間互通訊息的管道,表示知道另一個類別存在,這種關係會自然發生在兩個類別之間,如下圖所示:

10-2-3 找出類別關係-結合清單 我們可以使用結合清單(Association List)來幫助我們找出結合關係,如下表所示: 分類 說明 類別A是類別B的實體部分 讀卡機是ATM的一部分 類別A是類別B的邏輯部分 訂單項目是訂單的一部分 類別B實際上包含(擁有)類別A 便利商店擁有POS銷售點系統 類別B邏輯上包含類別A 商品目錄包含商品描述 類別A使用或管理類別B 客戶使用ATM 類別B與類別A之間有通訊,表示類別B知道類別A的存在 客人與店員 類別A可以用來描述類別B 在訂單上會記錄業績屬於哪一位店員,即店員(A)可以用來描述訂單(B)

10-2-3 找出類別關係-指定可能的多重性 多重性(Multiplicity)表示實例參與類別關係的個數,我們只需標示出可能的多重性,並不用十分精確。在員工管理系統各概念類別之間的結合關係和多重性範例,如下圖所示:

10-2-3 找出類別關係-找出一般關係 一般關係(Generalization)就是繼承關係,當在描述文字中的類別出現多種相似但不同的類別時,就可以考量類別之間是否擁有一般關係。 例如:ATM系統會取得客戶的所有帳戶清單,換句話說,帳戶有很多種,當我們進一步找出支票帳戶和存款帳戶,因為它們都是一種帳戶,所以可以找出類別之間的一般關係,如右圖所示:

10-2-3 找出類別關係- 案例:ATM自動櫃員機系統1

10-2-3 找出類別關係- 案例:ATM自動櫃員機系統2

10-3 指定責任建立概念模型 10-3-1 CRC卡的基礎 10-3-2 CRC卡的基本分析流程 10-3-3 使用CRC卡找出類別責任

10-3-1 CRC卡的基礎-說明 CRC卡(Class,Responsibility,and Collaboration Card)是在1989年的OOPSLA,由Kent Beck和Ward Cunningham發表的方法,其主要目的是教授物件導向設計,到了1995年CRC卡已經廣泛使用在早期的物件導向系統開發。 CRC卡可以識別和定義類別的特性,雖然CRC卡不是UML認可的官方方式,但是仍然廣泛使用在物件導向分析階段。

10-3-1 CRC卡的基礎-圖例 CRC卡是一張尺寸約3-in X 5-in的卡片,如下圖所示:

10-3-2 CRC卡的基本分析流程 CRC卡屬於一種小組合作,使用腦力激盪方式進行的物件導向分析方法,事實上,CRC卡不只可以找出類別責任,更可以找出類別和屬性(在卡片背面可以列出類別屬性)。 CRC卡的分析流程可以分成兩個階段,如下所示: 階段一:收集資訊 主要目的是使用腦力激盪方式來收集資訊。 階段二:分析資訊 在完成階段一的資訊收集後,就可以將一張一張的CRC卡拿出來討論,決定它是類別或屬性。

10-3-3 使用CRC卡找出類別責任- CRC卡1 現在,我們就可以使用CRC卡找出ATM自動櫃員機系統的類別責任,然後更新領域模型,指定類別責任來建立概念模型。 在領域模型的【ATM】和【銀行】類別,其CRC卡如下圖所示:

10-3-3 使用CRC卡找出類別責任- CRC卡2 因為一位銀行客戶可以擁有1~2個帳戶和一張金融卡,我們可以使用金融卡卡號取得此位客戶的所有帳戶清單,所以需要一個【銀行客戶】新類別(請注意!使用ATM的客戶和銀行開戶的銀行客戶不見的是同一人),如下圖所示:

10-3-3 使用CRC卡找出類別責任- CRC卡3 在領域模型的【帳戶】和【交易】類別,其CRC卡如下圖所示:

10-3-3 使用CRC卡找出類別責任- 建立概念模型

10-4 分析類別與強韌圖的基礎 10-4-1 分析類別 10-4-2 強韌圖

10-4-1 分析類別- 實體類別 實體類別(Entity Classes)是軟體系統中需要長期保存資訊的類別,主要是源至概念模型的類別,或一些暫時實體類別(Transient Entity Classes),這是一種在使用案例結束後就消滅的物件,例如:搜尋結果的實體類別。 一般來說,實體類別常常是直接對應資料庫的資料表或檔案。在UML類別圖是使用<<entity>>模版來表示它是實體類別,如右圖所示:

10-4-1 分析類別- 邊界類別(說明) 邊界類別(Boundary Classes)也稱為介面類別,它是負責使用介面的類別,扮演動作者和系統之間的橋樑,通常就是GUI圖形使用介面元件的視窗或網頁表單。在UML類別圖是使用<<boundary>>模版來表示它是邊界類別。 對於小型軟體系統來說,因為類別不多,我們可以直接在實體類別建立使用介面,但是對於中大型軟體系統來說,這種作法,一旦更改使用介面,就需要大幅修改系統類別,因為使用介面和實體類別已經緊密的結合在一起。

10-4-1 分析類別- 邊界類別(圖例) 為了避免上述問題,我們可以使用邊界類別來分割使用介面和實體類別,系統的使用者直接面對的是邊界類別,它是系統與使用者互動的類別,如下圖所示:

10-4-1 分析類別- 邊界類別(範例) 例如:ATM自動櫃員機系統的提款本來是在【ATM】類別提供使用介面和【銀行】類別合作來完成提款行為,我們可以加入【提款使用介面】類別來處理使用介面和提款,讓它直接和【銀行】類別合作,如下圖所示:

10-4-1 分析類別- 控制類別(說明) 在系統中的控制類別(Control Classes)是扮演協調角色的類別,也稱為管理類別,它是連接邊界類別和實體類別的一種類別,負責管理行為和控制流程的執行,在UML類別圖是使用<<control>>模版表示它是控制類別。

10-4-1 分析類別- 控制類別(範例) 例如:在上述ATM自動櫃員機系統的邊界類別除了使用介面外,也分擔提款的流程控制,對於簡單流程還沒有關係,如果是複雜的流程控制,此時的邊界類別可能就太過複雜,我們可以再將流程控制獨立成控制類別,如下圖所示:

10-4-2 強韌圖-說明 強韌圖(Robustness Diagram)並不是UML標準圖形,它最早是由Ivar Jacobson在1992年提出,其目的是用來分析軟體系統的三種物件(即分析類別),和描述物件之間的互動連接,幫助我們建立物件導向設計所需的初始架構,和第11章的通訊圖與循序圖。

10-4-2 強韌圖-符號1 UML工具SIM支援繪製強韌圖,強韌圖的符號除了橢圓形的使用案例(同UML使用案例圖)外,就只有三種:邊界物件、控制物件和實體物件,如下圖所示:

10-4-2 強韌圖-符號2 在動作者和三種物件之間可以建立通訊結合關係(Communication Association)來傳遞訊息,例如:從動作者傳遞訊息給購物車介面,也就是執行購物車介面的行為,箭頭表示傳遞方向,如下圖所示:

10-4-2 強韌圖-連接規則(說明) 強韌圖的連接規則就是三種物件和動作者之間傳遞訊息的規則,共有四條規則,如下所示: 動作者只允許與邊界物件連接。 邊界物件只允許與控制者和動作者連接。 實體物件只允許與控制物件連接。 控制物件允許和邊界、實體和其他控制物件連接。

10-4-2 強韌圖-連接規則(圖例)

10-4-2 強韌圖-範例 客戶登入使用案例擁有一個登入表單的邊界物件、認證使用者身份規則的控制物件和儲存會員資料的實體物件(來自概念模型),我們可以建立客戶登入的強韌圖,如下圖所示:

10-5 找出分析類別建立分析模型 10-5-1 從使用案例情節建立活動圖 10-5-2 將活動圖轉換成強韌圖的轉換規則 10-5-3 找出分析類別建立分析模型

10-5-1 從使用案例情節建立活動圖- 說明 基本上,強韌圖本身讀起來就很像是一張活動圖,因為活動圖的動作轉換如同一個物件傳遞訊息給下一個物件,換句話說,我們可以將活動圖透過一些轉換規則來轉換成強韌圖。 在第7-2-3節筆者已經舉出一些範例將使用案例規格的主流程轉換成活動圖,不過,其目的只是視覺化顯示使用案例的操作步驟,所以轉換方式並不十分嚴謹。

10-5-1 從使用案例情節建立活動圖- 建立轉換所需的活動圖(動作順序) 因為本節是準備將建立的活動圖轉換成強韌圖,從活動圖的動作找出邊界和控制物件,所以需要使用一些標準寫法將主流程轉換成活動圖的動作,其動作轉換的標準順序,如下所示: 輸入介面->處理->輸出介面 上述順序的輸出介面有可能是下一個動作轉換的輸入介面。動作轉換順序是對應程式與使用者互動的過程,如下所示: 輸入資料->執行運算->輸出執行結果

10-5-1 從使用案例情節建立活動圖- 建立轉換所需的活動圖(範例) 例如:網站登入使用案例的主流程,如下所示: 主流程 1. 在登入表單輸入使用者名稱與密碼。 2. 驗證使用者。 3. 顯示網站首頁和使用者姓名。 上述主流程轉換成的活動圖,如右圖所示:

10-5-1 從使用案例情節建立活動圖- 建立轉換所需的活動圖(四種動作語法) 輸入資料動作:使用者輸入資料或設定條件,一定隱含一個輸入表單和送出資料,所以動作名稱是以「顯示」開始,之後是輸入表單名稱(也可以加上輸入資料的描述),在註解標示輸入資料,例如:之前的顯示登入表單。 選擇功能動作:使用者選擇功能表選單,動作名稱是顯示此功能表的名稱,在註解列出功能表選項,例如:顯示主選單選擇某一選項,在註解是選單的選項清單。 輸出資料動作:此動作就是顯示執行結果的介面,所以動作名稱是以「顯示」開始,之後是輸出結果,在註解標示輸出資料,例如:之前的顯示網站首頁。 執行運算、控制或商業邏輯的動作:如果在主流程是多個步驟的相關運算,請合併成單一動作即可,其動作名稱是執行的運算、搜尋、查詢、控制或商業邏輯,因為沒有資料輸入或輸出,所以不用加上註解,例如:之前的驗證使用者。

實體物件的屬性(也可能是邊界物件的屬性) 10-5-2 將活動圖轉換成強韌圖的轉換規則 現在我們就可以將上一節活動圖的四種動作和註解轉換成強韌圖物件,其基本轉換規則如下表所示: 活動圖的動作 可能轉換成的強韌圖物件 輸入資料動作 邊界物件 選擇功能動作 輸出資料動作 執行運算、控制或商業邏輯的動作 控制物件 註解的輸入資料 實體物件的屬性(也可能是邊界物件的屬性) 註解的輸出資料 實體物件的屬性 註解的選項資料 邊界物件的屬性

10-5-3 找出分析類別建立分析模型- 案例:找出登入使用案例的分析類別 筆者準備使用二個案例來說明如何從使用案例流程建立的活動圖轉換成強韌圖,並且從中找出分析模型的分析類別。 從第10-5-1節的活動圖,我們可以使用第10-5-2節的轉換規則轉換成強韌圖。

10-5-3 找出分析類別建立分析模型- 步驟一 Step 1:首先加入動作者【使用者】,然後將活動圖的所有動作轉換成邊界和控制物件,在名稱後分別加上「介面」和「控制」字尾,如下圖所示:

10-5-3 找出分析類別建立分析模型- 步驟二 Step 2:因為動作者有使用第一個邊界物件輸入使用者資料,所以先繪出動作者和第一個邊界物件之間的連接線,如下圖所示:

10-5-3 找出分析類別建立分析模型- 步驟三 Step 3:依據活動圖的動作轉換順序,建立物件之間的連接線,如下圖所示:

10-5-3 找出分析類別建立分析模型- 步驟四 Step 4:分析註解資料建立實體物件後,繪出控制物件與實體物件之間的連接線(驗證使用者需要取得會員資料),就可以完成強韌圖的建立,如下圖所示:

10-5-3 找出分析類別建立分析模型- 找出的分析類別 從前述強韌圖可以找出的分析類別,如下所示: 邊界類別:【登入表單介面】和【網站首頁介面】類別。 控制類別:【驗證使用者控制】類別。 實體類別:【會員資料】類別。如果在概念模型已經有此類別,就可以將註解的輸出與輸入資料轉換成此類別的新增屬性。

10-6 本章總結-說明 本章內容主要是說明如何建立物件導向分析的分析模型,筆者是從源於傳統系統開發的領域模型開始,一步一步經過概念模型來建立出分析模型的類別圖。 請記得!物件導向軟體系統的精神是讓各物件通力合作來完成使用案例的目標,只需你指定的類別責任與類別關係可以達成目標,並沒有規定一定要切割成三種分析類別,這也是為什麼同一個使用案例,讓不同人來進行分析,會有不同的結果。 相對的,本章說明的名詞分析法、CRC卡和強韌圖,只是為了幫助你建立領域模型、分析模型或概念模型,你不一定需要從頭開始一步一步建立,你可以全部使用或搭配一或二種方法,其最終目的就是能夠建立出分析模型或概念模型即可。

10-6 本章總結-建議流程 對於Web或視窗介面的軟體系統,在教學上為了讓初學者能夠實作物件導向分析(使用最少的經驗法則來實作),筆者的建議流程是從使用案例主流程的活動圖開始,在轉換成強韌圖過程中,找出邊界、控制和實體類別,如果需要,再使用第10-2和第10-3節的方法,從找出的實體類別反過來建立更完整的分析模型,其流程如下圖所示:

End