類別圖:關聯 Class Diagram: Association

Slides:



Advertisements
Similar presentations
3 受訪者對於本校畢業生各項就業力表現的滿意程度 4 受訪者認為本校畢業生哪些就業力具有優勢.
Advertisements

第一單元 建立java 程式.
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
單元九:單因子變異數分析.
任务二 面向对象的建模 4. UML静态建模 类图 对象图 包图 组件图.
第10章 領域、概念與分析模型 10-1 再談物件導向分析 10-2 找出類別建立領域模型 10-3 指定責任建立概念模型
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
第八章 類別圖 課前指引 本章介紹類別圖的目的及其圖型符號、類別中各組成元素以及其所代表的意義。文中討論類別的屬性、類別的操作、操作的類別。類別圖中除了表達類別之外,還可以顯示出類別與類別之間的關係。本章從兩個不同的角度來討論類別之間的關係:一個是從物件的觀點,另一個是從類別的觀點。本章討論類別之間的關聯關係、聚合關係、組合關係、一般化關係、相依關係,以及繼承的關係畫法。
認識倍數(一) 設計者:建功國小 盧建宏.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
Project 2 JMVC code tracing
Hadoop 單機設定與啟動 step 1. 設定登入免密碼 step 2. 安裝java step 3. 下載安裝Hadoop
題目:十六對一多工器 姓名:李國豪 學號:B
記憶體的概況 張登凱.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
Supplement Data Mining 工具介紹 楊立偉教授 台灣大學工管系 2014 Fall 1.
Java簡介.
TCP協定 (傳輸層).
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
4B冊 認識公倍數和最小公倍數 公倍數和最小公倍數的關係.
JUDE教學 Jude安裝教學篇 Jude初步介紹篇 Jude繪圖介紹篇 介紹jude的安裝和下戴 介紹jude的初基本功能
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
第9章 類別圖與物件圖 9-1 類別圖與物件圖的基礎 9-2 類別圖的符號 9-3 類別關係 9-4 物件圖 9-5 繪製類別圖與物件圖
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
Echo Server/Client Speaker:Fang.
Quiz6 繳交期限: 12/14(四) 23:59前.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
連結資料庫管理系統.
OSGi (Open Service Gateway Initiative)
Java 程式設計 講師:FrankLin.
Fortran 程式語言 之 編與譯(二) 張基昇.
Chap3 Linked List 鏈結串列.
Advanced Basic Key Terms Dependency Actor Generation association
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
两种不同类别的软件: 功能预定义软件;用户驱动的软件。他们对软件工程方法有不同的需求
Topic Introduction—RMI
第一單元 建立java 程式.
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
Ch20. 計算器 (Mac 版本).
第一章 直角坐標系 1-3 函數圖形.
管理信息系统 第九章 面向对象的系统开发方法.
第 19 章 XML記憶體執行模式.
CH1 我的第一個App與變數宣告.
其他 ER 相關觀念 以及OO模型 國立中央大學 資訊管理系 范錚強 2002 中央大學。范錚強.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
CH05. 選擇敘述.
LINQ資料查詢技術.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
第6章 面向对象开发的 分析与设计.
中三生物科 生物的七個特徵.
MicroSim pspice.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
MiRanda Java Interface v1.0的使用方法
陣列與結構.
動畫演示 Node規範了一些基本的方法,像是增加節點、刪除節點、讓節點做一些事、取得第n個節點等等
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
Quiz1 繳交期限: 9/28(四).
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
作業系統實習課(二) -Scheduler-Related System Calls-
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Chapter 4 Multi-Threads (多執行緒).
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

類別圖:關聯 Class Diagram: Association Chapter 10 類別圖:關聯 Class Diagram: Association

學習目標  說明並以圖闡示所有關聯的基本記號  說明並以圖闡示關聯類別、反身關聯與限定關聯

什麼是關係? 關係(Relationship)是模型元件中具有語意(有意義)的連接線─它們是UML用來將連接物體的東西。 關係的類型 參與者與使用案例間的關係(Association); 使用案例之間的關係 (Generalization;<<include>>;<<extend>>); 參與者之間的關係 (Generalization)。 物件之間的連接關係是鏈結(Link);類別之間的連接關係是關聯(Association)。

什麼是鏈結? 鏈結(Link)是兩物件之間具有語意的連接,它可以讓訊息從一個物件傳遞到另外一個物件。 訊息是透過鏈結在這些物件之間相互傳遞,當物件收到訊息時,便會呼叫訊息所對應的動作起來執行。 Java語言是以參考(Reference)的方式來實現鏈結;而C++是用指標(Pointer)、參考或直接包含另一個物件來實現鏈結。 鏈結最基本的需求就是要讓物件能夠參考到另一個物件。

物件圖 物件圖用來表現在某個時間點上物件之間的關係。 物件是透過鏈結來連接彼此的,這樣的關係可以轉換成是物件之間彼此所扮演的各種角色。

鏈結的可通性 把可通性想像是城市裏的單行道,訊息只能朝箭頭所指的方向傳遞。 UML 2.0的規格書中允許3種可通性的表現方式: 十字表示不通; 雙向性的關聯不畫箭頭; 單向性的關聯有單一個箭頭。

什麼是關聯? 關聯(Association)是指類別之間的關係,就像是連接物件的鏈結一樣。 物件之間若存在鏈結,則表示物件各自所屬的類別之間也一定存在某種關聯。 鏈結是關聯的具體化表現,如同物件是類別的具體化表現是一樣的。

關聯

關聯的語法 關聯中有: 關聯名稱; 角色名稱; 多重性; 可通性。

關聯多重性(multiplicity) 多重性(Multiplicity)是UML中用來定義參與物件數量之規則的術語。在關聯中每個參與類別都必須指定多重性值。 指定多重性可用方法的摘要清單 : 由兩個點(..)所分隔的數值表示一個範圍。 由逗號分隔的數值表示多重性的列舉清單。 萬用符號(*)單獨使用時表示零或大於零,沒有上下限。 萬用符號(*)若使用在範圍(1..*)中,表示沒有上限-您至少必須有一個,但可以有無限個。

關聯多重性(multiplicity)

多重性範例與解說

關聯角色 有時關聯名稱很難決定。UML提供了一個方法,用來取代名稱或與其共用,以協助將該關聯的意義盡可能地說明清楚。這個替代方法稱之為「角色(Role) 」。

關聯限制 限制可以出現在關聯的兩側、單側或者都不出現。

塑模延伸關聯記號 關聯類別 反身關聯 限定關聯

反身關聯 「反身關聯(Reflexive association)」它指出在相同類別中的物件間彼此可以建立關係。它的關聯記號與您到目前為止所學到的完全相同,差別只在於關聯線的兩端都指向同個類別,這就是反身關聯命名的由來。

反身關聯 類別和自己有關聯相當常見,這種的關聯稱為反身關聯(Reflexive Associations)。

限定關聯 「限定關聯(Qualified association)」提供與索引幾乎相同的功能,不過它的記號有些變化。 限定關聯藉由提供代碼限制物件的選擇簡化複雜關聯中的搜尋工作 。 Page 135

限定關聯 我們可以使用一種名為限定關聯(Qualified Association)來降低n對多的關係而成為n對一的關係。 這種方式是從一組目標類別中找到一個特定的物件(或一組物件)。

可通性 可通性(Navigability)是表示訊息可以從來源類別的物件中轉移至目標類別一個以上的物件,而物件的數量取決於多重性的值。 可以把可通性當作是「訊息傳送的方向」。

UML 2 可通性方案

關聯與屬性 來源類別與目標類別間若存在關聯,一種方式則是把關聯視為是來源類別中的一個虛擬屬性(Pseudo attribute),而此虛擬屬性的型態是目標類別,來源類別的物件便可以透過此虛擬屬性參考到目標類別的物件。

UML模型自動產生程式碼, 需將1對1關聯轉成來源類別中的屬性. 若目標類別的多重性多於1時, [array, collection (ex java Vector)] 若關聯是多對多時, 就需拆解成 1..* & *..1 若目標類別的數量只有1, 可能表示目標類別只是來源類別的一部份, 可考慮使用屬性來取代關聯 若目標類別的數量是多於1, 表示目標類別對模型是重要的, 一般會用關聯來描述關係

關聯類別 關聯類別將與一個關聯有關的資訊封裝起來。 在物件導向系統中,所有的資料都必須裝在(封裝於)物件中。 將所有資料定義在類別中。為了顯示這些資料描述該關聯,我們使用虛線將新類別與關聯連接起來。 Page 134

關係類別 問題: 當兩類別是多對多關係時, 其中某些屬性難以歸納到其中的一個類別中. 如薪水屬性

關係類別

什麼是相依性關係 相依性是指兩個或多個模型元件間的關係,當一個元件(供應者, target)改變時可能會影響或提供資訊給所需的其他元件(使用者, source)。 UML 2.0定義了三種相依性關係:

相依性關係用法 有五種使用的相依性關係: <<use>> <<call>> <<parameter>> <<send>> <<instantiate>>

Person <<use>> Telephone 使用者 供應者 A Class的動作裡需要一個B Class的參數 A Class的動作會回傳一個B Class的object A Class的動作會在執行的過程中使用一個B Class的object, 但此object 不是A Class的屬性值 在case 1 , 2中, 可使用<<parameter>> 來加強相依關係的語意 在case 3中, 可使用<<call>>來加強相依關係的語意

抽象的相依性關係 總共有四種抽象的相依性關係: <<trace>> <<substitute>> <<refine>> <<derive>>

許可相依性關係 有三種許可相依性關係: <<access>> <<import>> <<permit>>