UML tutorials Guide - Intelligent System Laboratory

Download Report

Transcript UML tutorials Guide - Intelligent System Laboratory

UML tutorials Guide
Update: 2009/03/18
什麼是UML?
• UML是Unified Modeling Language的簡稱,中譯為
「統一塑模語言」。
• 屬於物件導向領域裡頭用來將設計概念表現出來
的一種符號表現法
• 也就是說,UML是軟體系統發展人員用以建造模
型,而這些模型使得工作團隊能夠:將系統具象
化(Visualization)、將系統結構及行為規格化
(Specification)、建構(Construction)系統、以及記錄
(Documentation)發展系統過程中之各項決策。
UML(Unified Modeling Language)
• 什麼是塑模?
作曲家會將其腦袋中的旋律譜成樂曲,建築師會
將其設計之建築物畫成藍圖,行銷廣告人員會將
其創意製作成簡報;這些樂曲、藍圖及簡報就是
模型(Model),而建構這些模型的過程就稱為塑模
(Modeling)。
軟體開發如同音樂譜曲及建築設計,其過程中也
必須將需求、分析、設計、實作、佈署等各項工
作流程之構想與結果予以呈現,這就是軟體系統
之塑模。
UML八大模型圖來表達的各種不同的觀
點
• 1. 使用者觀點(User view): 從某些與系統相關角色的使用
者觀點來看,使用者會和那些系統互動,相反的也可看出
那些使用者會使用到該系統。使用的圖形有使用案例圖
(Use Case Diagram)。
• 2. 結構觀點(Structural view): 從軟體程式或系統的結構觀
點來看。使用的圖形有類別圖(Clasa Diagram) 、物件圖。
• 3. 行為觀點(Behavior view): 從軟體程式行為(流程)觀點來
看,尤其是針對物件與物件之間的行為。使用的圖形有循
序圖(Sequence Diagram)、合作圖(Collaboration Diagram)、
狀態圖(State Diagram)、活動圖(Activity Diagram)。
UML八大模型圖來表達的各種不同的觀
點
• 4. 建置觀點(Implementation view): 從建置整個系
統的觀點來看,那些軟體元件必須建置在何處。
使用的圖形有元件圖(Component Diagram)。
• 5. 環境觀點(Environment view) : 從整個系統的環
境觀點來看,那些硬體和軟體必須佈署在何處。
使用的圖形有配置圖(Deployment Diagram)。
UML結構
•
•
UML 2.0 中一共定義了13 種圖示(diagrams)。為方便了解,可分類成右側的結構。
結構性圖形(Structure diagrams) 強調的是系統式的塑模:
– 類別圖 (Class Diagram)
– 元件圖(Component diagram)
– 複合結構圖(Composite structure diagram)
– 部署圖(Deployment diagram)
– 物件圖(Object diagram)
– 包圖(Package diagram)
• 行為式圖形(Behavior diagrams) 強調系統模型中觸發的事件:
– 活動圖(Activity diagram)
– 狀態機圖 (State Machine diagram)
– 使用個案圖 (Use Case Diagram)
• 溝通性圖形(Interaction diagrams), 屬於行為圖形的子集合,強調系統模型中的資料流程:
– 通信圖(Communication diagram]]
– 交互概述圖(Interaction overview diagram) (UML 2.0)
– 循序圖(Sequence diagram)
– 時間圖(UML Timing Diagram) (UML 2.0)
(資料來源 wiki)
UML結構
(使用案例圖)
USE CASE DIAGRAM
Use Case Diagram(使用案例圖)
• 在運用Use Case Diagram時的重要課題,是
要認清使用者目標(use goal)與系統互動
(system interaction)兩者之間的差異。圖
形內中主要描述行為者(Actor)與使用個
案(Use Case)的關係。
Use Case Diagram - Symbol
使用案例(Use Case)
1.唯一性
2.表示系統所執行的功
能
演員(Actor)
1.凡事會與系統互
動的都可以是演員
2.演員不一定是人
查詢課
程介紹
學生
系統(System)
1.當開發系統不需
要和其他系統互動
時省略
連接線(Association)
1.表是某個演員啟
動了某個案例
10
Use Case Diagram – Example
• 定期備份系統
備份系統
時間
11
Detailed use case
Use case name
建立作業
Participating
actors
Initiated by 老師
Communicates with 學生
Flow of events
1.
2.
3.
4.
老師要建立作業.
老師輸入作業的名稱(50字元), 作業的要求(2000字元), 截止日期
(日期格式).
系統檢查輸入的作業名稱,作業的要求, 截止日期是否正確.
如果正確, 系統就建立止作業.
Exceptions
3.1 如果所輸入的資料不正確, 系統要求使用者重新輸入.
Entry
condition
老師己登入教學網站.
Exit
conditions
•
老師在教學網站上建立了一個新的作業.
12
Detailed use cases diagram
Association
Object Flow
(Dependency)
老師
<<initiate>>
建立課程
<<include>>
<<include>>
<<include>>
<<include>>
發佈公告
建立作業
上傳教材
發佈成績
查詢成績
繳交作業
學生
13
(類別圖)
CLASS DIAGRAM
Class Diagram(類別圖)
• Class diagram 是用來描述系統中物件的類型,
以及類型間的各種靜態關係。
Class Diagram - Symbols
類別名稱
學生
-學號
-姓名
+修改資料()
-驗證資料()
#顯示資料()
屬性
方法
16
Type, Visibility and Signature
• Type (Attributes)
– Name: string
– maxNumPlayers: int
– Start: date
• Visibility (Attributes and Operations)
– Private: – protected: #
– public: +
• Signature (Operations)
– acceptPlayer(Player): void
– getMaxNumPlayers(void): int
17
Identifying Entity Object (found out the class
name)
Use case name
建立作業
Participating
actors
Initiated by 老師
Flow of events
1.
2.
3.
4.
老師要建立作業.
老師輸入作業的名稱(50字元), 作業的要求(2000字元), 截止
日期(日期格式).
系統檢查輸入的作業名稱,作業的要求, 截止日期是否正確.
如果正確, 系統就建立作業.
Exceptions
3.1 如果所輸入的資料不正確, 系統要求使用者重新輸入.
Entry condition
老師己登入教學網站.
Exit conditions
老師
老師在教學網站上建立了一個新的作業.
作業
系統
18
Identifying Entity Object (found out the attribute)
Use case name
建立作業
Participating
actors
Initiated by 老師
Flow of events
1.
2.
3.
4.
老師要建立作業.
老師輸入作業的名稱(50字元), 作業的要求(2000字元), 截止
日期(日期格式).
系統檢查輸入的作業名稱,作業的要求, 截止日期是否正確.
如果正確, 系統就建立作業.
Exceptions
3.1 如果所輸入的資料不正確, 系統要求使用者重新輸入.
Entry condition
老師己登入教學網站.
Exit conditions
作業
老師在教學網站上建立了一個新的作業.名稱
作業要求
截止日期
19
(順序圖)
SEQUENCE DIAGRAM (順序圖)
Sequence Diagram (順序圖)
• 在UML裡面,Scenario指的是一個use case中
的某一個單一實行路徑,也就是在一個use
case中某幾個特殊狀況,結合在一起的情形。
而用來描述Scenario的工具即是Sequence
Diagram。
Sequence Diagram
•
•
•
•
Describe the dynamic behavior between actors and the system and between
objects of the system
(表示在一個使用案例中,物件之間與使用者之間執行順序的時間性的動
態觀點)
Useful to find missing objects.
(用以找出在之前設計所未考慮的物件。)
Complement the class diagrams (which represent structure).
(和class diagram有比對和互補的功能。)
來源
– 軟體需求規格(SRS)
• 使用案例(Use Case)
– 軟體系統設計書(SDD)
• 活動圖(Activity Diagram)
22
Sequence Diagram – Symbols
Object(物件)
1.格式物件名稱:類別名稱,
物件名稱可有可無
2.表示物件的Instance
Actor(觸發者)
drliang:Teacher
老師
1: 密碼查詢
Activation
(活動時間)
4: 已送出
Lifeline
(存在時間)
mail:Mail
Message(訊息)
2:Sendmail(title:String,…)
3:true
訊息(方法呼叫)
回傳訊息(方法呼叫)
回傳訊息
23
Sequence Diagram – Object Type
<<boundary>>
:修改學生資料明細
<<entity>>
:學生
<<control>>
:修改學生資料控制
Boundary Object(邊界物件)
1.和使用者溝通的介面
Entity Object(實體物件)
1.存放實體資料
Control Object(控制物件)
1.連接邊界物件與實體
物件
24
Sequence Diagram – Object Type
• 用途
– 發現未知的物件方法
– 正確的責任分派
• 區分規則
– 演員只能跟邊界物件溝通
– 邊界物件只能跟演員和控制物件溝通
– 實體物件只能跟控制物件溝通
– 控制物件能與邊界物件、實體物件或其他控制物件
溝通
– 控制物件不能和使用者溝通
25
<<boundary>>
:主畫面
<<boundary>>
:學生資料表單
<<boundary>>
:確認畫面
<<control>>
:修改資料控制
<<entry>>
:學生
學生
1: 修改資料
2: 顯示修改學生資料表單(…)
3: 取得資料
4: 學生資料
5: 顯示表單(資料:學生)
6:修改學生資料表單
7:輸入修改資料後送出
8: 顯示卻畫面(…)
9: new
11: 學生資料
13:確認資料畫面
14:選確定後送出
10:驗證
12: 顯示 (資料:學生)
15: 修改資料
16:更新資料庫
18: 顯示
19:主畫面
17:寄信
26
(UML動態結構圖)
HARDWARE OR SOFTWARE
MAPPING-DEPLOYMENT DIAGRAM
Hardware or Software Mapping
• H/S Mapping的兩個用途:
– 了解子系統本身是軟體還是硬體
• 網路列印系統
– 瀏覽文件需要用到相對應的軟體
– 列印文件則需要有印表機提供列印
– 將Object model對應到硬體和軟體
• Mapping object onto Reality:
CPU, 儲存裝置, I/O設備,操作系統,應用軟體
• Mapping Associations onto Reality:
排線,匯流排
28
Drawing Hardware/Software Mappings in UML
• Deployment Diagram (UML動態結構圖)
• 以訊息聯結表示出節點之間的關連
• 有助於在Subsystem Decomposition和H/S Mapping之後表示出
系統設計架構
Node
表示一特定系統
Component
表示一系統內元件或服務。
Dependency
要求服務。
29
TeachingSite: Hardware/Software
Mapping
教學網站網頁介面
教學網站服務窗口
課程管理
使用者管理
作業管理
教學網站資料管理
30
TeachingSite: Hardware/Software
Mapping
使用者主機
伺服器主機
教學網站網頁
網頁瀏覽器
資料庫
教學網站應用程式
檔案系統
31
Advance Design
• 4-1 Composite and Inheritance
• 4-3 Mapping Models to Code
HW
Input
Use case name
建立作業
Participating
actors
Initiated by 老師
Flow of events
1.
2.
3.
4.
老師要建立作業.
老師輸入作業的名稱(50字元), 作業的要求(2000字元), 截止
日期(日期格式).
系統檢查輸入的作業名稱,作業的要求, 截止日期是否正確.
如果正確, 系統就建立作業.
Exceptions
3.1 如果所輸入的資料不正確, 系統要求使用者重新輸入.
Entry condition
老師己登入教學網站.
Exit conditions
老師在教學網站上建立了一個新的作業.
34
Sequence diagram (請完成及修正!)
1.
2.
3.
建立作業Form
老師
4.
建立作業()
«new»
老師要建立作業.
老師輸入作業的名稱(50字元), 作業的要求(2000字
元), 截止日期(日期格式).
系統檢查輸入的作業名稱,作業的要求, 截止日期是
否正確.
如果正確, 系統就建立作業.
建立作業
Control
輸入(名稱,要求, 截止日期)
檢查(..)
«new»
作業
35
Class diagram (請完成!)
建立作業Form
建立作業()
輸入(….)
CreateAssignmentForm
createAssignment()
set(….)
建立作業Control
檢查(…)
作業
名稱
作業要求
截止日期
CreateAssignmentControl
Assignment
check(…)
name
context
Due date
36
Example: Subsystem
課程管理
講義
課程公告
課程
使用者管理
學生
使用者
作業管理
作業
助教
分組作業
老師
個人作業
37
System architecture
Client
Server
使用者1
使用者2
Presentation
教學網站網頁介面
Business Logic
教學網站服務窗口
課程管理
使用者管理
作業管理
Repository
Data
model
Repository
教學網站資料管理
檔案系統
資料庫
38