What is class diagram?

類別圖是甚麼?

物件資料結構塑模

  • 定義

類別

  • 表示符號
  • 間的關係
    •   符號為
    •   相依關係
    •   一般化關係
    •   關聯關係
    •   實現化關係

  • 屬性與操作的可視符號

物件

  • 間的關係

類別與物件

  • 關係
  • 隱喻

物件圖

  • 元件

類別圖

  • 定義
  • 元件
  • 執行觀點
  • 實作觀點
  • 三個模型
  • 使用案例發展類別圖的步驟
相關

 

物件資料結構塑模

定義

- 以類別圖、物件圖表式系統的物件之靜態結構

類別

類別表示符號

介面:名稱前一行加<<interface>>
抽象類別:名稱前一行加<<abstract>>

類別間的關係

即類別間的連結,其表示符號為:


類別間的關係種類

1. 相依關係
  • 表示使用的關係。例子:視窗類別使用事件類別。a類別的方法定義有b類別,例子:public Operation Create()。
  • a使用b,則b改變會影響其他類別

2. 一般化關係
  • 父類別與子類別的關係(有繼承關係
  • 又叫is-a關係,舉例superman is a kind of person ,即superman 類別繼承至person 父類別。
  • 子類別相似處一般化為父類別
  • 父類別延伸出子類別稱之為特殊化
  • 圖形表示法,子類別指向父類別,記憶法:手指指向討人厭的父親
3. 關聯關係(結合association relationship)
  • 類別間的靜態結構關係
  • 又叫has-a關係,即class a 的宣告包含class b的型別

  • 一類別知道另一類別存在,或一類別使用另一類別的服務
  • 例如:訂單有(動詞)產品資訊,箭頭方向可找到關聯資訊
  • 或換句話說訂單為產品資訊的主人(名詞,角色)

另一種表示法,下圖的意思為客戶填寫訂單。客戶為訂單之擁有者,訂單為客戶的需求。


關聯類別(association class):兩類別有關聯關係,且基數為多對多,關係可能有屬性。

組合(composition):有強制力,刪除或複製整體之物件,即刪除整體。表示用實心菱形為整體如下圖所示,發票與發票資訊有組合關聯。
聚集(聚合aggregation):
 - 聚合關係是關聯關係的特例
 - 表示整體與部分之間的關係。在聚合關係中,整體可以包含部分,但部分可以存在獨立於整體。通常,整體與部分之間的生命週期不同
 - 表示用空心菱形為整體如下圖所示,車子與輪胎有聚集關聯。
 - 在這個示意圖中,`車子` 類別包含4個 `輪子` 類別,但每個輪子也可以獨立存在,不受車子的控制。這是一個聚合關係。
Aggregation 原意:You can view aggregations of polling data at the site.
您可以在站點上查看民調數據的匯總
關聯關係的附加說明
多重性(multiplicity)
指示兩個類別或物件之間的關聯可以有幾個連接。如發票類別與發票資訊類別的組合關係,一張發票可有多個發票資訊。

角色名稱
描述每個關聯端點的角色,如客戶為訂單的擁有者,訂單為客戶的需求。
4. 實現化關係
- 類似一般化關係。
- 表示某一類別之行為,是由另一個介面類別來描述規範的。
- 大括號裡面的文字為限制,可以加在類別下面或關係旁邊。



類別的屬性與操作可視符號

  • + 系統(程式碼)中所有的類別可以存取
  • - 同一個類別才可以存取
  • # 繼承的類別才可以存取
  • ~ 表示同一個套件的類別可以存取
補充:java,c++,c#沒加存取修飾子,預設是private 

關於記憶類別圖函數寫法的補充

類別圖中的函數寫法(跟sql create table 裡的先寫欄位空格後,再寫型別的順序一樣)

- 例子:函數名稱:string ,<函數名稱>:<回傳值型別>

- <屬性名稱>:<型別>

物件

物件間的關係

- 靜態關係: 物件知道另一個物件的存在,或物件使用另一個物件的服務(物件不會改變另一個物件)

- 動態關係:兩個物件相互溝通

類別與物件

關係

- 類別是一種物件導向程式設計的概念,它可以讓開發者描述其結構,將相關的資料和方法封裝在一起,以便更好地組織和管理程式碼

- 類別描述物件之結構(從大的描述),且定義物件之屬性(從小的描述)。

- 屬性描述類別之特性與特徵,方法描述類別之行為。

- 物件為類別之執行個體。

關係隱喻

  • 類別是模具。用松鼠蛋糕的模子(類別),做出一個個松鼠蛋糕(物件)。
  • 物件是產品

物件圖

元件

- 物件

- 連結線

表示

- 一個系統於某一個時間點的靜態結構 

類別圖

定義

類別圖是UML的一種結構圖,主要用於物件資料結構的塑模,表示系統的物件靜態結構。其中的元件有類別與類別之間的關係,描述類別的名稱、屬性、操作,與類別間的四種關係相依、一般化、關聯及實現化。

元件

- 類別

- 類別間的關係

執行觀點

- 永存類別:須將資料存到資料庫

- 暫存類別:不須將資料存到資料庫

實作觀點

- 實體類別:可以是永存類別或暫存類別,大部分是永存類別

- 介面類別:程式結束後,刪除介面物件,所以是暫存類別

- 控制類別:送訊息到其他類別。程式結束後,刪除控制物件,所以是暫存類別

- 口訣:屍體用介面控制

三個模型

領域模型(Domain model)

- 是一種類別圖。描述特定領域的靜態結構

- 有助開發者知道領域的重要概念與實體

- 常用於需求分析階段的建立,是與領域專家合作的結果

概念模型(conceptual model)

- 描述系統整體架構,不關注細節

- 有助捕捉系統的概念和之間的關係

- 用於讓相關者理解系統核心概念

分析模型(analysis model)

- 了解系統需求,為設計階段做準備的類別圖。含有類別、屬性、操作與關係

- 有助於建立系統的靜態結構,滿足特定需求

- 用於系統分析階段

使用案例(Use Case)發展類別圖的步驟

1. 識別類別:
- 根據使用者案例與需求分析,識別可能的類別。
- 類別常為系統之實體或概念。
2. 確定類別的屬性與方法
3. 建立類別圖:用UML標準符號表示類別的屬性與方法
4. 建立類別之間的關係:為類別之間建立適當的關係,類別之間的關係有四種,相依、一般化、關聯、實現化。
5. 簽核與討論:將類別圖與團隊、利益相關者討論,確保模型的一致性與完整性,有必要就做反饋調整。
6. 文件化:將類別圖文件化,以便於軟體開發過程的參考與維護。

Comments

Popular posts from this blog

How to write data into a excel file using vbscript

Format date as yyyy-mm-dd using vbscript