物件資料結構塑模.

Slides:



Advertisements
Similar presentations
單元九:單因子變異數分析.
Advertisements

樞紐分析與資料庫 蕭世斌 Nov 20, 2010.
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
第八章 類別圖 課前指引 本章介紹類別圖的目的及其圖型符號、類別中各組成元素以及其所代表的意義。文中討論類別的屬性、類別的操作、操作的類別。類別圖中除了表達類別之外,還可以顯示出類別與類別之間的關係。本章從兩個不同的角度來討論類別之間的關係:一個是從物件的觀點,另一個是從類別的觀點。本章討論類別之間的關聯關係、聚合關係、組合關係、一般化關係、相依關係,以及繼承的關係畫法。
第四章 數列與級數 4-1 等差數列與級數 4-2 等比數列與級數 4-3 無窮等比級數 下一頁 總目錄.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
第六章 結構化分析與設計: 資料塑模 (上) 一、資料塑模工具︰實體關係圖 二、實體關係圖之建構 三、實體關係圖轉關聯表 四、正規化
物件導向技術.
第四章 資金成本.
題目:十六對一多工器 姓名:李國豪 學號:B
PowerPoint圖形總合.
首席數位 物件導向系統分析與設計(OOA,OOD) 首席講座: 曾龍博士.
2-3 基本數位邏輯處理※.
L、物件互動行為塑模~循序圖 UML 2.0的四種互動圖 循序圖 循序圖的建構步驟 循序圖建構實例 循序圖、溝通圖 互動概觀圖、時序圖
物件導向系統分析與設計與UML.
JUDE教學 Jude安裝教學篇 Jude初步介紹篇 Jude繪圖介紹篇 介紹jude的安裝和下戴 介紹jude的初基本功能
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖
第10章 使用個案塑模.
K、物件資料結構塑模 ~類別圖與物件圖 類別 類別圖 物件圖 物件資料結構塑模 執行、實作觀點的類別種類 能見度(Visibility)
管理資訊系統導論 資訊系統的定義與概念.
Java 程式設計 講師:FrankLin.
第九章 物件導向技術.
第九章 物件導向技術.
科技輔具—遊戲應用 台灣大學職能治療學系 凱惠 昶霆 耶!.
Chap3 Linked List 鏈結串列.
Topic Introduction—RMI
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
Ch20. 計算器 (Mac 版本).
第 19 章 XML記憶體執行模式.
網頁資料知多少? 事 實 ? 謠言?.
使用VHDL設計 七段顯示器 通訊工程系 一年甲班 姓名 : 蘇建宇 學號 : B
其他 ER 相關觀念 以及OO模型 國立中央大學 資訊管理系 范錚強 2002 中央大學。范錚強.
OpenCart產品設定.
微積分網路教學課程 應用統計學系 周 章.
第8章 結構化企業資料塑模個案.
GridView操作 (II).
網路科技在商店經營管理之應用 第十章 osCommerce客戶與訂單 Ting-Yi Chang (張庭毅)
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
統一模式語言(UML) 使用UML作為塑模語言的原因: UML目前己為國際物件管理組織(OMG)接受為物件導向之標準模式語言。
產品設計與流程選擇-服務業 等候線補充資料 20 Oct 2005 作業管理 第六章(等候線補充資料)
MicroSim pspice.
E、結構化分析與設計: 資料塑模(上) 資料塑模工具︰實體關係圖 實體關係圖之建構 實體關係圖轉關聯表 正規化 關聯表資料字典
F、結構化分析與設計: 資料塑模(I) 資料塑模工具︰實體關係圖 實體關係圖之建構 實體關係圖轉關聯表 正規化 關聯表資料字典
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
線上服務 合作夥伴儀表板概觀.
PowerPoint 操作介紹 106 計算機概論
陣列與結構.
師大 KSP 操作手冊.
片語 黃勇仁.
例題 1. 多項式的排列 1-2 多項式及其加減法 將多項式 按下列方式排列: (1) 降冪排列:______________________ (2) 升冪排列:______________________ 排列 降冪:次數由高至低 升冪;次數由低至高.
1-1 二元一次式運算.
商品交易資料庫 顧客上網買商品 如何紀錄客戶資料? 如何紀錄商品資料? 如何紀錄交易資料? 如何處理交易後的所有『後處理』程序?
OMIM教學投影片 網址: 點此下載.
第十章 使用個案塑模.
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
電子化企業整合 E-Enterprise Integration 張捷中 (Acer) 2014/10/02
1757: Secret Chamber at Mount Rushmore
6.1 動畫檔案的格式 6.2 建立合適的動畫元素.
資料表示方法 資料儲存單位.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
非負矩陣分解法介紹 報告者:李建德.
Cloud Training Material- 事件 Sherman Wang
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
Chapter 4 Multi-Threads (多執行緒).
第三章 比與比例式 3-1 比例式 3-2 連比例 3-3 正比與反比.
InputStreamReader Console Scanner
Presentation transcript:

物件資料結構塑模

內容大綱 導論 類別圖與物件圖 物件資料結構塑模 類別圖建構案例一 類別圖建構案例二 結論

導論 物件資料結構塑模是以類別圖與物件圖表達系統之物件靜態的資料結構,但以類別圖為主。 由於在真實世界裡,物件的數量相當的龐大,為降低問題的複雜度,在系統分析時大多採用類別,而較少用物件。

導論 (c.2) 類別圖是用來描述系統中物件的類型(Type),以及類型間與子類型(Subtype)間之靜態關係。 此外,類別圖還需表示類別的屬性(Attributes)、操作(Operations)、以及物件連結所應遵守的限制等。 物件圖是用於描述一系統於某一時間點的系統影像(Snapshot),也就是靜態資料結構。 可藉由一時間序列的物件圖來表達系統的行為。

類別圖與物件圖 類別圖包含五種元件: 類別(Class) 屬性(Attribute) 操作(Operation) 關係(Relationship) 基數(Multiplicity)

類別圖與物件圖(c.2) 物件、類別與屬性 一個物件是問題領域(Problem Domain)中某個東西的實體或抽象概念,例如某一門課程、某位老師或某位學生等都是一個物件。 物件是一個封包(Package),它有名稱、屬性與操作。名稱是唯一的識別(Identity)或辨識值(Identifier Value) 。

類別圖與物件圖(c.3) 屬性表達物件之狀態、性質或特徵,而操作表達物件之行為。例如,某一課程是一個物件,它有課程編號與修課人數為其屬性,且有計算成績方式為該物件的操作。 物件之操作不能單獨存在,必須與一個物件封裝在一起。 一個物件可能有限制條件或商業規則(Business rules),以限定物件屬性的值或行為。

類別圖與物件圖(c.4) 一群相關物件的定義、描述或樣板(Definition, Description或 Template)稱為一個類別,類別具有名稱、屬性與操作,同一類別之物件具有相同屬性與操作。類別常由矩形表示。 物件亦常用矩形表示,名稱下加底線。

類別圖與物件圖(c.5) 類別間之關係與表示符號 相依(Dependency) 一般化(Generalization) 關聯(Association) 實現化(Realization)

類別圖與物件圖(c.6) 通常物件間並非完全獨立,彼此間需知道(Know)對方才能解決某一工作。 物件間之關係可分成兩種:靜態(Static)與動態(Dynamic)關係,前者意味著一物件知道另一物件之存在,此種關係並不給予權限去改變另一物件之資訊;而後者意味著兩物件間有相互溝通。

類別圖與物件圖(c.7) 相依關係是一種「使用」的關係(Using Relationship)。 其表達一類別會用到其他類別,且被用類別的改變可能會影響到使用它的類別,但反之不必然。 關係之箭頭是由使用類別指向被使用類別。

類別圖與物件圖(c.8) 一般化關係指的是一般性類別(稱超類別或父類別)與僅具有其某些特定性質之類別(稱次類別或子類別)間的關係。 一般化乃是類別間繼承的特性,其相反的特性即是特殊化(Specialization) 。 一般化意味著子類別繼承其父類別的特性, 尤其是父類別的屬性與操作。

類別圖與物件圖(c.9) “客戶”與二子類別“公司客戶”和“個人客戶”間之關係

類別圖與物件圖(c.10) 關聯關係是一種類別間之靜態結構關係, 描述類別與類別間之連結。 關聯關係意味著: 一類別之物件知道另一類別之物件的存在(Jacobson, et al., 1996)或 一類別之物件使用到另一類別之物件的服務, 但不是擁有此服務(Douglass, 1999)。

類別圖與物件圖(c.11) 關聯關係如同實體關係圖(Entity-Relation Diagram)上之關係,可以有兩個類別參與稱二元關聯(Binary Association),也可以有兩個以上的類別參與稱多元關聯(n-ary Association)。 一般關聯若沒有箭號即表示雙向關係,若在類別間之關聯加上箭頭便表示具有適航性(Navigability),表示可以依箭頭方向,由一個物件航向另一個物件,找到另一端之資訊。

類別圖與物件圖(c.12)

類別圖與物件圖(c.13) 類別間之關聯關係不見得一定要給予名稱, 但若覺得必要,常被採用的命名有兩種方式: 描述關係的本質(Nature of Relationship) 可用動詞或動詞片語表達 描述關係的角色(Role) 可用名詞或名詞片語表達

類別圖與物件圖(c.14)

類別圖與物件圖(c.15)

類別圖與物件圖(c.16) 在一個關聯關係中,常須表達有多少物件參與此關係,此種資訊與實體關係圖中之基數的表達相同。 基數(Multiplicity)表示有多少個物件參與該關聯, 這裡的“多少”稱為關聯角色的基數。 有三種可能,分別為一對一(1:1)、一對多(1:N)或多對多(M:N),其中以阿拉伯數字1表示一,以英文字母N或M表示多,或用“*”表示多。

類別圖與物件圖(c.17)

類別圖與物件圖(c.18) 聚集(Aggregation)關係與組合(Composition)關係均是關聯關係的一種特例。 兩者相同點是均描述整體(Whole)與其組件(Parts)之關係,也就是均表達一個“較大”類別之物件(整體)是由另一些“較小”類別之物件(組件)組成。 組合又是聚集的一種特例,組合有較強的限制,例如整體存在組件就存在,整體消失組件就消失,也就是,組件不能單獨存在。

類別圖與物件圖(c.19) 聚集與組合的表達符號相同處是兩者均在整體端加一個菱形,不同的是聚集用空心的菱形,而組合用的是實心的菱形。

類別圖與物件圖(c.20) 實現化(Realization)關係表達某一類別之行為是由另一類別來描述。 物件導向之領域中可允許某類別實現其他類別之行為,表示該實現類別必須順從某介面(Interface),但不需用繼承。

類別圖與物件圖(c.21)

類別圖與物件圖(c.22) 物件圖中有兩個主要元件 物件圖所表達的資訊主要以類別圖為基礎。 連結線 物件圖所表達的資訊主要以類別圖為基礎。 表現系統在某一時間點上各物件合作關係, 但不表達物件間之訊息傳遞等其他資訊,可以把物件圖想成沒有訊息傳遞的合作圖。

類別圖與物件圖(c.23) 物件圖

類別圖與物件圖(c.24) 客戶 客戶 訂單 商品 1 * * * 類別圖

物件資料結構塑模 物件資料結構塑模之主要活動包括: 原則上,一個使用個案需建立一個類別圖。 找出類別(或物件)與屬性 找出類別之操作 找出類別間之關係 建構類別圖與物件圖。 原則上,一個使用個案需建立一個類別圖。 物件資料結構塑模可從使用個案來分析系統所包含之類別(包含屬性與操作)、類別間之關係等以建構類別圖。

物件資料結構塑模(c.2) 物件資料結構塑模另一種做法是先進行物件互動行為塑模,再由所完成之互動圖(合作圖、循序圖)與使用個案圖做出類別圖。 這兩個方式若能交替進行會讓塑模工作進行得更順利。

物件資料結構塑模(c.3)

物件資料結構塑模(c.4) 確認類別、屬性與操作需從每一個使用個案之情節描述中找出名詞、名詞片語與代名詞(以下通稱名詞),並判斷該名詞是類別或是類別屬性。此外,從動詞找出類別可能之操作。 為便於分析之進行,建議先準備一張類別彙總表(如下表),配合分析之進行逐步將資料填入表中。

物件資料結構塑模(c.5) 類別彙總表

物件資料結構塑模(c.6) 確認類別之準則 可依下列步驟與準則找出類別: (1) 找出名詞 從檢視使用者個案的情節描述,找出所有的名詞,並將找出之名詞填入類別彙總表之名詞欄中。基本上,每個名詞都有可能成為類別,稱為準類別,但並非每一個名詞都可成為類別。 在分析的過程中,從人物角色、組織單元、物品、地點及概念等方向來尋找類別,此外與使用者高度的互動有助於找出有意義的類別,五種方向分別介紹如下:

物件資料結構塑模(c.7) a.人物角色:所有與系統有關的人所扮演的角色,如客戶、業務員。 b.組織單元:由人員組成之群體,如業務部、專案小組。 c.物品:系統中除了人、組織以外之實體,如機器、產品。 d.地點:人、組織、物品所在之地方,如廠房、倉庫。 e. 概念:系統中明顯可見,且有意義之非實體,如會計科目、成本。

物件資料結構塑模(c.8) (2)刪除不合適的名詞 若名詞有下列的情況,將不合適成為類別,應予以刪除: a. 名詞若有重複,只保留一個,其餘刪除。 b.名詞被用來描述一個類別之特徵、值或狀態。 c.名詞是一個處理程序的名稱或演算公式。 依據上述準則判斷名詞欄是否為類別,若是則在類別欄中打○,否則類別欄為空白。

物件資料結構塑模(c.9) 確認屬性之準則 類別之屬性可用問題領域之專業知識及原始表單之資料項目來判斷。 此外,屬性對類別要有意義,例如規格對產品是有意義,但對支票是無意義的。原則上,一個屬性應盡可能僅屬於一個類別,例如客戶出現在送貨單上,但客戶名稱只屬於客戶類別,而不必再將其歸屬到送貨單。 填表時,若名詞欄為某類別之屬性,則在類別屬性欄填入類別之名稱。

物件資料結構塑模(c.10) 確認操作之準則 操作應該是描述類別的主要行為或責任。若使用個案之情節是以事件條列式描述,也就是採用(主詞)+動詞+受詞的方式表示,則其中的動詞就可能是類別之操作。 原則上,類別圖之操作描述主要描述系統之行為,盡量避免描述其細部之程式邏輯,因為這些程式邏輯在設計階段經常會再修改,因此類別圖之操作描述可以直接從使用個案之描述中摘錄過來。

物件資料結構塑模(c.11) 主要的類別間之關係有 相依 一般化 關聯 實現化

物件資料結構塑模(c.12) 找出類別之關係可參考下列準則:假設有兩物件A與B,若存在下列情況,則物件A 與B間可能有關係: 一個類別會用到其他類別,且被用類別的改變可能會影響到使用它的類別,則這兩類別間可能有相依關係。 某一類別(稱次類別或子類別)僅具有另一類別(稱超類別或父類別)之某些特定性質,例如屬性與操作,則這兩類別間可能建立一般化的關係。

物件資料結構塑模(c.13) 一類別之物件知道另一類別之物件的存在,或一類別之物件使用到另一類別之物件的服務,但不是擁有此服務,則這兩類別間可能建立關聯關係。 在關聯關係中,若某一方由另一方聚集而成, 也就是有整體(Whole)與其組件(Parts)之關係, 則兩者間之關係可能是聚集或組合。 若某一類別之行為是由另一類別來描述,則這兩類別間可能建立實現化關係。

物件資料結構塑模(c.14) 若類別間有關聯關係,則需進一步分析有多少個案例參與該關聯 藉由該問題領域之專業知識或資料歸納等來判斷物件參與關聯之案例數目,以決定關聯基數為一對一,一對多,或多對多。

類別圖建構案例一 以送貨處理使用個案為例,說明如何建構類別圖。該個案中,業務部與客戶為行為者,情節如下: 1. 新增送貨單編號與日期 2. 輸入客戶資料(編號、名稱、地址與電話) 3. 輸入客戶之送貨資料(成品編號、品名、規格、數量、單價) 4. 更新成品庫存量 5. 查詢稅率 6. 計算送貨單各項金額 7. 儲存送貨單

類別圖建構案例一(c.2) 6. 計算送貨單各項金額 6.1設定折扣數和折讓金額 6.2 計算小計 = Σ(數量x單價) 6.3計算送貨單未稅金額=小計 × 折扣數-折讓金額 6.4計算稅額=送貨單未稅金額 × 稅率 6.5計算送貨單總金額=送貨單未稅金額 + 稅額

類別圖建構案例一(c.3) 建構類別圖須先確認類別與屬性,經逐一檢討上述情節描述之各名詞,並配合與使用者互動及領域知識判斷可知,送貨單是個原始表單,因此是一個類別。同理,業務部、客戶、送貨明細、成品及稅率等也都屬於類別。其餘詳下表。

類別圖建構案例一(c.4) 送貨處理類別彙總表

類別圖建構案例一(c.5) 依上表,共找出業務部、送貨單、客戶、送貨明細、成品及稅率等六個類別,再依據使用個案情節描述及從領域知識之判斷得知: 1. 業務部是啟動該使用個案之行為者,因此業務部與送貨單間有關聯,且箭頭由前者指向後者,表示如下圖。 1 N 業務部與送貨單之關聯

類別圖建構案例一(c.6) 2.送貨單與客戶、送貨明細與稅率間有關聯,因為前者需要後面三者之資訊,故關聯之箭頭分別由送貨單指向後面三者。 送貨單與客戶之關聯

類別圖建構案例一(c.7) 3. 送貨單與送貨明細之基數為一對一之關係,也就是一張送貨單只有一個送貨明細。 送貨單與送貨明細之關聯

類別圖建構案例一(c.8) 4. 送貨單與稅率之基數為多對一之關係,也就是一種稅率可適用於多張送貨單,但一張送貨單只有一種稅率。 送貨單與稅率之關聯

類別圖建構案例一(c.9) 5.送貨明細與成品間有關聯,因為前者需要後者之資訊,故關聯之箭頭由送貨明細指向成品。送貨明細與成品間之基數為多對多之關係,也就是一個成品可出現在多個送貨明細中,且一個送貨明細可擁有多個成品。 送貨明細與成品之關聯

類別圖建構案例一(c.10) 1 n 送貨處理類別圖

類別圖建構案例二 以線上訂購系統之五個使用個案為例,建構類別圖。 新增訂購項目個案 修改訂購數量個案 刪除訂購數量個案 取消採購訂單個案 確認採購訂單個案

類別圖建構案例二(c.2) 新增訂購項目個案

類別圖建構案例二(c.3) 修改訂購數量個案

類別圖建構案例二(c.4) 刪除訂購數量個案

類別圖建構案例二(c.5) 取消採購訂單個案

類別圖建構案例二(c.6) 確認採購訂單個案

類別圖建構案例二(c.7) 最後,將各使用個案之類別圖匯總成一個類別圖,並將分散在不同類別圖上的相同類別之屬性與操作合併(取聯集)。

類別圖建構案例二(c.8) 繪製物件圖

結論 應用類別圖與物件圖來表達一個系統類別間之靜態結構關係及類別內部之屬性與操作等資訊。 每一個使用個案需建立一個類別圖,且建構類別圖之資訊主要來自於使用個案圖及與使用者之互動。