第十一章 物件資料結構塑模.

Slides:



Advertisements
Similar presentations
药物过敏试验与过敏反应的 处理 Medicine Anaphylactic Test and Anaphylaxis Treatment 安顺职业技术学院 周艳.
Advertisements

排列 组合 概率 会考复习. 排列、组合是不同的两个事件,区别的 标志是有无顺序,而区分有无顺序的办法是: 把问题的一个选择结果解出来,然后交换这 个结果中任意两个元素的位置,看是否会产 生新的变化,若有新变化,即说明有顺序, 是排列问题;若无新变化,即说明无顺序, 为组合问题 知识要点.
一、模型与计算公式 二、基本的组合分析公式 三、概率直接计算的例子 第 1.3 节 古典概率 四、抽签与顺序无关 五、二项分布与超几何分布 六、概率的基本性质.
第五章 导数和微分 §1 导数的概念 一、问题的提出 1. 自由落体运动的瞬时速度问题 如图, 取极限得.
第十一章 中国的自然环境 第一讲 中国的地形. 一、中国的地形 1. 主要山脉: 东西向山脉 北列 A_____ 山脉,B_____ 山脉 中列 C_____ 山脉,D_____ 南列 E_____ 东北 — 西南 向山脉 西列 F_________,G_______,H_____,I_______.
在自然界中, 不同种生物之间 有着千差万别的 外形,但他们的 细胞构成确很相 似。 新课导入. 野花和熊猫.
Android App for querying stocks
概率.
透 镜 主讲教师:李丽娟.
3.1.1 随机事件的概率(一).
任务二:面向对象的建模 3 需求分析阶段的用例建模 用例图 活动图.
从比较看实质 高中物理粤教、人教两个版本的比较 深圳市华侨城中学 李汉林 蔡树男.
江西省基础教育资源网相关操作 江西省基础教育资源网相关操作
丛林集团 高端铝合金材料产业 发展情况汇报.
An Introduction to Database System
第六章 数据库设计.
赴日本理光工作实习生 和软件工程师项目简介.
第3章 需求分析(续) 学习目标 什么是需求建模? 需求分析建模方法 掌握实体—关系图(E—R图); 掌握状态转换图;
介紹者:五年二班16號陳品豪.
确定位置 执教者:刘霞.
区域地理环境与人类活动.
实 验 七 微生物的分离、培养和菌种保藏.
游戏设计(策划)文档 李裴.
2016届高三期初调研 分析 徐国民
第六章 数据库和ADO.NET 褚龙现 软件学院.
解排列组合问题的常用策略.
排球竞赛规则与裁判法.
新课程背景下高考 地理复习的几点建议 嘉兴一中 李 虹.
肥料與農作物 組別:第五組 組員:沈家豪 王彥忠 鍾漢強 陳煬茗
第10章 面向对象的设计方法 教学目的:了解面向对象设计的概念和方法 教学重点:理解面向对象的设计的基本原理,掌 握面向对象的设计方法。
作物缺素症的表现与防治 河北省廊坊市农广校
第6节 眼和视觉 【学习目标】 1、了解什么是凸透镜,什么是凹透镜,了解透镜的焦点、焦距。 2、了解凸透镜和凹透镜对光的作用
第三章 3D 数学基础.
第一章 体育统计的基本知识 主讲教师:王丽艳 徐栋.
让我们快快乐乐.
2017/3/21 港口起重机回转支承的失效分析与设计选型 武汉理工大学 胡吉全.
第13章 药物过敏试验法 厦门医学高等专科学校 基础护理教研室.
致亲爱的同学们 天空的幸福是穿一身蓝 森林的幸福是披一身绿 阳光的幸福是如钻石般耀眼 老师的幸福是因为认识了你们 愿你们努力进取,永不言败.
常用逻辑用语 第一章 “数学是思维的科学” 逻辑是研究思维形式和规律的科学. 逻辑用语是我们必不可少的工具.
国际技术合作 ——案例分析 组员:王磊 柯银建 陆亦奇 费晓伟.
國小數學教材分析報告 -面積 報告人:陳 瑛 學號: 報告日期:91年10月14日.
常见皮试液和眼药水的配制.
实验五 化脓性球菌 实验五 化脓性球菌 通过实验,认识化脓性球菌各自的形态、菌落特征,掌握葡萄球菌产生的凝固酶的测定方法。
三十六种交通事故责任划分标准.
让智慧的光芒照亮前进的路 《经济生活》教材分析及教学建议 春晖中学 杜随旺 2013年8月.
第五章 预测分析 学习目标:掌握定性和定量两类预测分析方法的特征;熟练掌握平滑指数法和修正的时间序列回归法的应用;重点掌握目标利润的预测方法。熟悉成本预测和资金需用量预测的主要方法;了解预测分析的概念、特点、基本程序及其主要内容;一般了解销售预测的各种方法的特点及其适用范围 重、难点:1、销售的定量分析.
《软件工程》 第3篇 设计 姜久雷 副教授 北方民族大学 计算机科学与技术系.
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
CT检查 检出直径约2.0cm左右的早期肝癌 增强扫描可提高分辨率 有助于鉴别血管瘤 诊断符合率可达90% 费用昂贵.
第六章 地基和地下室 第一节 概述 第二节 基础的构造 第三节 地下室构造.
因著信— 信心三要素 習英德傳道.
UML介绍.
排列组合 1. 两个基本原理 分类加法计数原理 分步乘法计数原理.
Totoro大冒險 電腦遊戲設計 資三B 李沛儀 資三B 張家瑜.
管理信息系统 第九章 面向对象的系统开发方法.
实验6 面向对象分析与设计实验.
苏 教 版 五 年 级 数 学(上) 用字母表示数 青阳体仁小学 胡春雅.
第十四章鋁及鋁合金 改進教學計畫編號:教改進-97C-003 計畫主持人:楊慶彬.
第三节 常见天气系统.
1.1算法的概念.
第四节 数据库设计 数据库设计是指根据用户需求分析、在现有的数据库管理系统的基础上建立数据库结构的过程。具体讲,是指对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之有效地存储数据,满足用户信息要求和处理要求。 数据库设计的依据DFD、DD、DBMS 。 数据库的设计过程是通过E-R图(依据“实体-联系”法实现,Entity.
第5章 系统分析概述.
第三章 假设检验 §3.1 假设检验的基本思想与概念 §3.2 正态总体的假设检验 §3.3 分布拟合检验.
研发技术体系梳理 陈玮
构件图和部署图.
欢迎乘座远航号! 让我们一起去知识的海洋寻宝吧!
1.4数据库管理系统 数据库管理系统是数据库系统的核心,是为数据库的建立,维护,使用而建立的系统软件,建立在操作系统基础之上,位于操作系统与用户之间的数据管理软件,负责对数据库进行统一管理与控制.
动量守恒定律的应用 石油中学 高星.
UML顺序图 【学习目标】  ·定义顺序图 ·为什么要建立顺序图 ·了解顺序图的标记符组件 ·理解如何使用消息进行通信
都市交通控制系統軟體標準化專案管理 交通部運輸研究所 周家慶.
Presentation transcript:

第十一章 物件資料結構塑模

內容大綱 學習目標 第一節 導論 第二節 類別圖與物件圖 第三節 物件資料結構塑模 第四節 類別圖建構案例(一) 第五節 類別圖與物件圖建構案例(二) 第六節 結論

學習目標 詳讀本章,你至少能瞭解: 物件導向系統分析與設計中之資料結構塑模工作。 何謂類別圖、物件圖及其用途。 如何建構類別圖與物件圖及其建構準則。 如何以類別圖與物件圖進行物件資料結構塑模。

導論(1/2) 物件資料結構塑模主要以類別圖與物件圖表達系統之物件靜態的資料結構(主要用類別圖表達)。 由於在真實世界裡,物件的數量相當龐大,為降低問題的複雜度,在系統分析時大多採用類別,而較少用物件。 類別圖是用來描述系統中物件的類型、類型間以及與子類型間之靜態關係等。此外,類別圖還須表示類別的屬性、操作以及類別連結所應遵守的限制等。

導論(2/2) 物件圖是用於描述一系統於某一時間點的靜態結構,該圖是用於表達一個系統之複雜的資料結構,或藉由一時間序列的系統影像來表達系統的行為。

類別圖與物件圖(1/14) 類別圖包含兩個主要元件: 類別 關係 一個物件是問題領域中某個東西的抽象概念,例如某一課程、老師或學生等都可能是一個物件。物件是一個封包,它有名稱、屬性與操作。名稱是唯一的識別或辨識值。

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

類別圖與物件圖(3/14) 物件常用矩形表示,在矩形內表達名稱,並在名稱下加底線,如圖11-1a。 一群相關物件的定義、描述或樣板稱為一個類別,類別具有名稱、屬性與操作,同一類別之物件具有相同屬性與操作。類別常由矩形表示,該矩形之四邊為實線,如圖 11-1b。

圖11-1a 物件之表示符號

圖11-1b 類別之表示符號

類別圖與物件圖(4/14) 類別間之關係 類別間的連結,在物件導向塑模中,類別間最重要的關係為: 相依關係(以虛線箭頭表示) 一般化關係(以實線的空心三角形箭頭表示) 關聯關係(以實線表示) 實現化關係(以虛線的空心三角形箭頭表示)

圖11-4a 類別間之關係與表示符號

類別圖與物件圖(5/14) 類別間並非完全獨立,彼此間須知道對方,才能解決某一工作。類別間之關係可分成兩種:靜態與動態關係。前者意味著一類別物件知道另一物件之存在或一物件會用到另一類別物件之服務,此種關係並不給予權限去改變另一類別物件之資訊;而後者意味著兩類別物件間有相互溝通。 相依關係(如圖11-4b) 是一種「使用」的關係,表達一個類別會用到其他類別,且被用類別的改變可能會影響到使用它的類別,但反之則不必然 ,關係之箭頭是由使用類別指向被使用類別。

圖11-4b 類別相依關係圖

類別圖與物件圖(6/14) 一般化關係(如圖11-5) 一般化關係指的是一般性類別(稱超類別或父類別)與僅具有此種一般性類別之某些特定性質之類別(稱次類別或子類別)間的關係。 一般化乃是類別間繼承的特性,其相反的特性即是特殊化。 一般化意味著子類別繼承其父類別的特性,尤其是父類別的屬性與操作 。

圖11-5 類別圖範例

類別圖與物件圖(7/14) 關聯關係(圖11-6) 關聯關係是一種類別間之靜態結構關係,描述類別與類別間之連結。 關聯關係意味著一類別之物件知道另一類別之物件的存在或一類別之物件使用到另一類別之物件的服務,但不是擁有此服務。 關聯關係如實體關係圖上之關係,可以有兩個類別參與稱二元關聯,也可以有兩個以上的類別參與稱多元關聯。

類別圖與物件圖(8/14) 若A類別與B類別間有關聯關係,指的是可從A類別之一個物件航向B類別之一個物件;反之亦然。 一般關聯關係若沒有箭號即表示雙向關係,若在類別間之關聯加上箭頭便表示具有適航性,表示可以依箭頭方向找到另一端之資訊 。

圖11-6 類別關聯圖

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

圖11-7a 關聯關係範例(一)

圖11-7b 關聯關係範例(二)

類別圖與物件圖(10/14) 在一個關聯關係中,常需表達有多少物件參與此關係,此種資訊與實體關係模式中之基數表達相同。 基數表示有多少個案例參與該關聯,這裡的「多少」稱為關聯角色的基數。 有三種關聯,分別為一對一(1:1)、一對多(1:N)或多對多(M:N),其中以阿拉伯數字1表示一,以英文字母N或M表示多,或用「*」表示多。

圖11-8a 基數範例(一)

圖11-8b 基數範例(二)

類別圖與物件圖(11/14) 聚集與組合均是關聯關係的一種特定變異,兩者之相同點均是描述整體與其組件之關係,也就是均表達一個「較大」類別之物件(整體)是由另一些「較小」類別之物件(組件)所組成。但組合是聚集的特例,組合有較強的限制。 聚集與組合的表達符號相同處是兩者均在整體端加一個菱形,不同的是聚集用空心的菱形,而組合用的是實心的菱形 。

圖11-9a 聚集與組合關聯關係圖(一)

圖11-9b 聚集與組合關聯關係圖(二)

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

圖11-10 實現化範例

類別圖與物件圖(13/14) 類別圖上之限制 類別圖可以表達類別間之限制 限制之表達可用口語化的自然語言或用UML所提供的正式物件限制語言來描述。 在UML中允許用任何形式之描述來表達限制,但這些描述必須表達在大括號中({})。

類別圖與物件圖(14/14) 物件圖 是用於描述一系統於某一時間點的靜態結構。 該圖是用於表達一個系統之複雜的資料結構或藉由一時間序列的系統影像來表達系統的行為。 物件圖中有兩個主要元件:物件、連結線 。 物件圖所表達的資訊主要以類別圖為基礎。 表現系統在某一時間點上,各物件合作關係,但不表達物件間之訊息傳遞等其他資訊。 物件圖有時也稱為案例圖,也可以把物件圖想成沒有訊息傳遞的合作圖。

圖11-11 物件圖範例

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

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

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

表11-1 類別彙總表

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

確認類別、屬性與操作(3/6) 人物角色:所有與系統有關的人所扮演的角色,如客戶、業務員。 組織單元:由人員組成之群體,如業務部、專案小組。 物品:系統中除了人、組織以外之實體,如機器、產品。 地點:人、組織、物品所在之地方,如廠房、倉庫。 概念:系統中明顯可見,且有意義之非實體,如會計科目、成本。

確認類別、屬性與操作(4/6) 刪除不合適的類別 若名詞有下列的情況,將被視為不合適的類別,應予以刪除: 名詞若有重複,只保留一個,其餘刪除。 名詞被用來描述一個類別之特徵、值或狀態。 名詞是一個處理程序的名稱或演算公式。 依據上述準則判斷名詞欄是否為類別,若是則在類別欄中做記號,例如或○ ,否則類別欄為空白。

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

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

確認類別間之關係(1/4) 主要的類別間之關係有 相依 一般化 關聯 實現化

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

確認類別間之關係(3/4) 一類別之物件知道另一類別之物件的存在,或一類別之物件使用到另一類別之物件的服務,但不是擁有此服務或訊息(或彼此間有訊息之溝通),則這兩類別間可能建立關聯關係。 在關聯關係中,若某一方由另一方聚集而成,也就是有整體與其組件之關係,則兩者間之關係可能是聚集或組合 。 若某一類別之行為是由另一類別來描述,則這兩類別間可能建立實現化關係 。

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

類別圖建構案例(一)(1/2) 以夢幻系統之送貨處理使用個案中之新增送貨處理為例說明如何建構類別圖。該個案中,業務部與客戶為行為者,且該使用個案之情節如下: 新增送貨單編號與日期 輸入客戶資料(編號、名稱、地址與電話) 輸入客戶之送貨資料(成品編號、品名、規格、數量、單價) 更新成品庫存量 查詢稅率

類別圖建構案例(一)(2/2) 計算送貨單各項金額 設定折扣數和折讓金額 計算小計 = Σ(數量×單價) 計算送貨單未稅金額=小計×折扣數-折讓金額 計算稅額=送貨單未稅金額×稅率 計算送貨單總金額=送貨單未稅金額 + 稅額 儲存送貨單

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

表11-2 送貨處理類別彙總表

確認關係(1/4) 依表11-2可知,共找出送貨單、客戶、送貨明細、成品及稅率等五個類別,再依據使用個案情節描述及從領域知識之判斷得知: 送貨單與客戶、送貨明細與稅率間有關聯關係,因為前者需要後面三者之資訊,故關聯之箭頭分別由送貨單指向後面三者(參考圖11-12a)。

圖11-12a 送貨單與客戶之關聯

確認關係(2/4) 送貨單與送貨明細之基數為一對多之關係,也就是一張送貨單可以有多個送貨明細(參考圖11-12b)。

圖11-12b 送貨單與送貨明細之關聯

確認關係(3/4) 送貨單與稅率之基數為多對一之關係,也就是一種稅率可適用於多張送貨單,但一張送貨單只有一種稅率,且送貨單送訊息給稅率,請求提供資訊(參考圖11-12c)。

圖11-12c 送貨單與稅率之關聯

確認關係(4/4) 送貨明細與成品間有關聯,因為前者需要後者之資訊,故關聯之箭頭由送貨明細指向成品。送貨明細與成品間之基數為多對一之關係,也就是一個成品可出現在多個送貨明細中,且一個送貨明細只擁有一個成品(參考圖 11-12d)。

圖11-12d 送貨明細與成品之關聯

圖11-12e 送貨處理類別圖

類別圖與物件圖建構案例(二)(1/2) 以西子灣公司線上訂購系統之使用個案為例,說明如何建構類別圖與物件圖,各個使用個案之情節描述簡述如下 : 新增訂購項目個案 客戶點選瀏覽書籍產品型錄 系統顯示書籍產品細部說明(給客戶) 客戶新增訂購項目(產品)入購物車 客戶設定訂購數量(購物車內產品) 系統計算購物車內訂購總金額

類別圖與物件圖建構案例(二)(2/2) 修改訂購數量 客戶設定(修改)訂購數量(購物車內產品) 系統計算購物車內訂購總金額 刪除訂購數量 客戶刪除(購物車內)訂購項目 取消採購訂單 客戶清空購物車中所有產品(取消採購訂單)   確認採購訂單 客戶確認(購物車內之)採購訂單 系統接收訂單

確認類別、屬性與操作 新增訂購項目個案 表11-3 新增訂購項目類別彙總表 修改訂購數量個案 表11-4 修改訂購數量類別彙總表 表11-4 修改訂購數量類別彙總表 刪除訂購數量個案 表11-5 刪除訂購數量類別彙總表 取消採購訂單個案 表11-6 取消採購訂單類別彙總表 確認採購訂單個案 表11-7 確認採購訂單類別彙總表

確認關係(1/3) 新增訂購項目個案 客戶與購物車之間,購物車中會記錄客戶的資訊,因此客戶與購物車之間有關係,是關聯之關係,因為後者需要前者之資訊,且兩者間之基數為一對多。也就是,一個客戶可擁有多個購物車(在不同時間),而一個購物車只能屬於一個客戶。 同樣地,購物車與書籍產品型錄之間,購物車也會記錄書籍產品的資訊,因此購物車與書籍產品間有關係,也是關聯之關係,因為前者需要後者之資訊,且兩者間之基數為多對多,也就是一個購物車內可包括多個書籍產品,而一本書籍也能屬於不同的購物車。

確認關係(2/3) 修改訂購數量個案 客戶與購物車間之關係與基數,如新增訂購項目個案所述。 刪除訂購數量個案 取消採購訂單個案

確認關係(3/3) 確認採購訂單個案 客戶與購物車間之關係與基數,如新增訂購項目個案所述。 購物車與訂單間有關係,因為訂單是由購物車轉來,一個購物車會轉成一張訂單,因此兩者間之基數為一對一的認知關係。

圖11-13a 新增訂購項目個案類別圖

圖11-13b 修改訂購數量個案類別圖

圖11-13c 刪除訂購數量個案類別圖

圖11-13d 取消採購訂單個案類別圖

圖11-13e 確認採購訂單個案類別圖

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

圖11-13f 西子灣公司訂購系統類別圖

圖11-14 西子灣公司訂購系統物件圖案例

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