• 沒有找到結果。

第3章:   UML統一塑模語言

N/A
N/A
Protected

Academic year: 2021

Share "第3章:   UML統一塑模語言"

Copied!
35
0
0

加載中.... (立即查看全文)

全文

(1)

第 3 章 UML 統一塑模語言

3-1 塑模與塑模語言3-2 UML的基礎

3-3 UML的4+1觀點3-4 UML塑模工具

(2)

3-1

塑模與塑模語言

3-1-1 塑模的基礎3-1-2 塑模語言

(3)

3-1-1 塑模的基礎 - 說明

模型( Models )就是一種抽象化的真實事物 ( Real Thing ),以軟體系統來說,它是使用文字 或圖形來描述系統規格和其環境,一種簡化的真 實系統。當我們將現實生活中的真實事物抽象化 成模型,這個過程稱為「塑模」( Modeling ), 如下圖所示:

(4)

3-1-1 塑模的基礎 - 基本原則

 在進行軟體系統開發時,我們常常需要建立模型 ( Models )來進一步了解未來建立的系統,不過 ,我們建立的模型永遠不會等於真實系統,因為 塑模有兩個基本原則,如下所示: • 強調( Emphasizing ):強調哪些必要的部分。 • 省略( Omitting ):忽略哪些不相關的部分。

(5)

3-1-1 塑模的基礎 - 為什麼需要建立模型

 我們替系統建立模型是為了執行三種工作,如下所示: • 溝通( Communication ):在所有涉及系統開發專案的使用者建 立一個溝通橋樑,因為不是所有使用者都了解資訊科技的專用術 語,我們需要讓客戶了解需求;開發者了解需求,而且他們所認 知的需求是一致的,有了模型,就算過了一段很長的時間,他們 共通決定的需求一樣可以了解,而不會各說各話。 • 視覺化( Visualization ):為了讓所有參與者都了解系統,詳細的 文字描述比不上一張圖形來的有效,換句話說,視覺化呈現的模 型(即使用圖形來表示),更容易讓使用者了解系統。 • 驗證( Verification ):模型可以幫助我們驗證最後完成系統是否 完整( Completeness )、一致( Consistency )和正確 ( Currectness )。

(6)

3-1-1 塑模的基礎 - 塑模方法

軟體塑模( Software Modeling )基本上可以使用 兩種方式來替軟體系統建立模型,如下所示: • 演算法塑模( Algorithmically Modeling ):傳統結構化 程式設計的軟體分析就是建立演算法,這種方法建立 的系統彈性很差,當需求變更或升級時,我們很難更 新或維護系統。 • 物件導向塑模( Object-Oriented Modeling ):目前主 流的軟體開發方式是物件導向方式,物件導向塑模是 使用更接近真實世界的方式來建立模型,軟體系統就 是物件集合,因為我們本來就是生活在物件的世界, 思考模式也遵循著物件導向方式。

(7)

3-1-2 塑模語言 - 說明

「塑模語言」( Modeling Language )是一種使用 字彙和規則來呈現概念和實際系統的語言,它可 以使用虛擬碼( Pseudo-Code )、程式碼、圖形 、一大段文字或任何可以幫助我們了解系統的方 式來描述資訊或知識。  事實上,塑模語言就是使用一致的規則集合來定 義系統結構,其元素稱為符號( Notation ),而 這些規則可以解釋結構中各元件的意義。

(8)

3-1-2 塑模語言 - 種類

 一般來說,塑模語言分為圖形和文字兩種,其說 明如下所示:

• 圖形塑模語言( Graphical Modeling Languages ):使用 圖形加上命名的符號來呈現觀念,以連接線連接符號 來表示之間的關係,和各種其他符號來表示限制條件 , UML 是一種圖形塑模語言。

• 文字塑模語言( Textual Modeling Languages ):主要是 使用標準的關鍵字( Keywords )加上參數

(9)

3-2 UML 的基礎

3-2-1 UML 簡介3-2-2 UML 圖形

(10)

3-2-1 UML 簡介 - 說明

「 UML 」( Unified Modelling Language )並不是一種程式

語言,它是一種塑模語言,可以讓我們使用圖形描述系統 來建立模型。如同工程師閱讀藍圖來蓋房子,程式設計師 只需看到 UML 圖形繪出的模型,就可以寫出所需的程式 碼。

UML 的中文名稱是統一塑模語言, UML 的出現是三位 OO

理論大師: Grady Booch 、 James Rumbaugh 和 Ivar

Jacobson (通稱 3 Amigo )所提倡。三人本來各自提出物 件導向的方法論(即 OOA 和 OOD 設計方法)和專屬表示 的圖形和符號。換句話說,同樣問題,使用三人方法論建 立的模型會有三種不同的表示方法。

(11)

3-2-1 UML 簡介 - 歷史

UML 的發展始於 1994 年 10 月 Grady Booch 和 Jim Rumbaugh

同在 Rational 軟體公司時,他們開始統一 Booch ( Grady Booch 提出的方法論)和 OMT ( Object Modeling Technique , Jim Rumbaugh 提出的方法論)。

UML 草案版本 0.8 版在 1995 年 10 月提出, 1995 年底 Ivar

Jacobson 加入 Rational 公司後,再整合他的 OOSE ( Object-Oriented Software Engineering )方法論, 1997 年 1 月 UML 正式產生。  UML 規格在 1998 年 1 月推出 1.2 版, 2000 年 3 月推出 1.3 版, 2001 年 9 月是 1.4 版, 2003 年 3 月是 1.5 版, ISO 是在 2004 年 7 月推出 1.4.2 版 ISO/IEC 19501 。 2005 年 7 月正式推 出 UML 2.0 版, 2007 年 8 月和 11 月是 UML 2.1.1 和 2.1.2 版 , 2009 年 2 月是 UML 2.2 版, 2010 年 5 月是 2.3 版。

(12)

3-2-1 UML 簡介 - 如何使用 UML

UML 的使用方法有很多, Martin Fowler 描述三種 我們最常使用 UML 的方式,如下所示: • UML 如同草稿:使用 UML 轉換重點成為簡短草稿,也 就是使用 UML 建立草圖。 • UML 如同藍圖:使用 UML 圖形描述詳細的系統規格, 如同藍圖,我們可以使用 UML 塑模工具將它轉換成程式 碼,或使用反向工程( Reverse Engineering )將程式碼 轉換成 UML 圖形,維持模型與程式碼之間的一致性。 • UML 如同程式語言:使用 UML 圖形建立的模型是一個 可執行的程式碼, UML 如同程式語言般可以將 UML 建 立的模型變形轉換成不同平台環境的程式碼。

(13)

3-2-2 UML 圖形 - 說明

UML 圖形( UML Diagrams )是使用視覺化方式來

描述不同的模型元素,可以建立物件導向分析和 設計結果的模型。每一種 UML 圖形都有特殊的用 途,它是使用符號來視覺化呈現系統的某些觀點 。  UML 2.x 版比 1.x 版支援更多種類的圖形,在本節 如果沒有特別說明,表示這是從 UML 1.x 版就支 援的圖形。 UML 2.2 版共有 14 種圖形,可以分成 兩種: 7 種結構圖( Stucture Diagrams )和 7 種 行為圖( Behavior Diagrams )。

(14)

3-2-2 UML 圖形 -

結構圖

圖形 說明

類別圖( Class Diagrams ) UML 最常使用的圖形,可以描述類別的靜態

結構,包含型態、介面和類別之間的關係 物件圖( Object Diagrams ) 描述物件實例的靜態結構,可以顯示某一個時 間點,系統一組物件之間的關係 元件圖( Component Diagrams ) 描述系統重要元件之間的組織架構,元件可以 包含其他元件或多個類別 部署圖( Deployment Diagrams ) 描述系統實際執行時的軟硬體環境配置

套件圖( Package Diagrams ) 使用階層架構來組織一組類別和元件, UML

2.0 版支援的圖形 組合結構圖( Composite Structure

Diagrams ) 描述模型元素類別或元件的內部結構, UML 2.0 版支援的圖形

輪廓圖( Profile Diagrams ) 處理 meta- 模型層次的模版( Stereotype )資

訊,可以使用 UML 圖形來自訂模版、標 籤和限制條件

(15)

3-2-2 UML 圖形 -

行為圖

圖形 說明

活動圖( Activity Diagrams ) 類似流程圖,可以描述系統商業流程、作業流

程和系統各活動的流程,例如:使用案例 的主流程和操作

使用案例圖( Use Case Diagrams ) 描述系統功能和其提供的服務,和哪些使用者

或外部系統會與之互動,可以幫助我們找 出系統需求 循序圖( Sequence Diagrams ) 使用時間軸方式描述物件之間的互動,強調物 件之間訊息傳遞的時間順序 通訊圖( Communication Diagrams ) 描述物件的互動,強調物件之間的關係、訊息 流向和控制流程,在 1.x 版稱為合作圖 ( Collaboration Diagrams )

狀態機圖( State Machine Diagrams ) 描述物件生命周期的事件與狀態轉換, 1.x 版

稱為狀態圖( Statechart Diagrams ) 時序圖( Timing Diagrams ) 描述詳細的時間資訊,互動元素之間的條件資 訊和狀態改變, UML 2.0 版支援的圖形 互動概觀圖( Interaction Overview Diagrams ) 使用循序、通訊和時序圖以高階方式來描述系 統發生的重要互動, UML 2.0 版支援的圖 形

(16)

3-2-2 UML 圖形 -

圖形與模型之間的差異

 模型和圖形的差異說明,如下 所示: • 模型( Models ):模型是使用 抽象化方式來描述欲塑模事實的 所有元素,包含所有關於商業、 系統和關係等觀點。 • 圖形( Diagrams ):每一張圖 形是使用一種特殊觀點來檢視我 們欲了解系統的特定部分,換句 話說,一張圖形只能使用一種觀 點來檢視所有或部分模型。

(17)

3-2-3 UML 與方法論 - 說明

UML 統一塑模語言並不是方法論,其主要目的是

使用統一的文字和圖形來建立模型。事實

上, UML 只統一 Grady Booch 、 James Rumbaugh 和 Ivar Jacobson 三人的表示方法,並沒有統一方 法論, UML 需要搭配適當的方法論,才能幫助我 們進行軟體系統開發。  軟體系統開發方法( Methods )是一種可靠且可 複製的方式來描述如何塑模和建立軟體系統的過 程。

(18)

3-2-3 UML 與方法論 - 說明

 物件導向分析與設計的主要方法論,如下表所示 :

方法論名稱 開發者

OMT ( Object Modeling Technique ) James E. Rumbaugh Booch 方法( Booch Method ) Grady Booch OOSE ( Object Oriented Software Engineerin

g ) Ivar Jacobson

Shlaer-Mellor 方法( Shlaer-Mellor Method ) Slly Shlaer 與 Stephen J. Mellor

(19)

3-3 UML

的 4+1 觀點 - 說明

 對於複雜的軟體系統來說,我們需要透過一組 UML 圖形才能完整描述系統的所有資訊,目前有 相當多方法將 UML 模型建立的圖形分類成多種觀 點或透視方式來取得系統的真實面貌,簡單的說 ,我們可以從不同觀點來檢視一個系統,每一個 觀點使用特定種類的 UML 圖形來呈現。

Kruchten’s 的 4+1 觀點( Philippe Kruchten , 1995

)能夠幫助我們呈現不同種類 UML 圖形在描述整 個系統模型時扮演的角色,稱為「觀點模型」

( View Model ),它可以同時使用多個不同觀點 來描述系統架構。

(20)

3-3 UML

的 4+1 觀點 - 圖例

圖例的 4+1 觀點是從使用者、開發者和專案管理

(21)

3-3 UML

的 4+1 觀點 - 觀點說明 1

使用案例觀點( Use Case View ):使用一組使用案例

( Use Cases )來描述系統,這是外面世界看到的系統功 能,在此觀點需要描述系統準備要做什麼,與其他 4 個觀 點都相關,所以稱為 +1 觀點。我們主要是使用 UML 使用 案例圖和情節( Scenarios )來呈現此觀點。  邏輯觀點( Logical View ):這是使用結構元素描述系統 功能的靜態結構和動態行為,說明系統組成的結構和之間 的互動,此觀點關注系統提供使用者的服務和功能需求。 我們主要是使用 UML 類別圖、物件圖、狀態機圖和互動 圖來呈現此觀點。

(22)

3-3 UML

的 4+1 觀點 - 觀點說明 2

開發觀點( Development View ):這是程式設計者角度的 觀點,著重於程式碼管理的模組與元件,也就是描述系統 內部模組和元件的結構。我們主要是使用 UML 套件圖和 元件圖來呈現此觀點。  流程觀點( Process View ):此觀點是系統非功能需求的 效能和可擴充性等,包含系統處理流程的並行和通訊,可 以幫助我們了解系統發生了什麼事。我們主要是使用 UML 活動圖來呈現此觀點。  實際觀點( Physical View ):這是從系統工程師觀點呈現 的系統,即真實世界的系統拓樸架構,可以描述最後部署 的實際系統架構和軟體元件。我們主要是使用 UML 部署 圖來呈現此觀點。

(23)

3-4 UML 塑模工具 - 說明

UML 塑模工具( UML Modelling Tool )是 CASE 工

具( Computer-Aided Software Engineering

Tools , CASE Tools )之一,可以幫助系統開發者 使用 UML 圖形進行物件導向分析與設計,快速建 立軟體系統所需的模型。

目前巿面上的 UML 塑模工具相當多,依使用者的

授權方式,可以分為商業和免費版本 UML 塑模工 具。

(24)

3-4 UML 塑模工具 - 商業版本的 UML 塑模工

一般來說,商業版本的 UML 塑模工具都提供強大功能, 而且很多都提供 Community 社群版,可以讓非商業用途的 使用者免費使用,不過,其功能會打一些折扣,而且通常 都需要線上註冊啟動後才能使用。常見商業版本的 UML 塑模工具,如下所示:

• IBM Rational Software Architect ( RSA ) • PowerDesigner

• MagicDraw UML • Astah UML

• Visual Paradigm for UML ( VP-UML ) • Poseidon for UML

(25)

3-4 UML 塑模工具 - 免費版本的 UML 塑模工

除了商業版本的 UML 塑模工具外,巿面上還有一 些 Open Source 開放原始碼與類似授權的免費 UML 塑模工具,和一些非商業用途使用者可全功 能免費使用的 UML 塑模工具,其說明如下所示: • StarUML • ArgoUML • Umbrello • BOUML

(26)

3-5 Software Ideas Modeler 塑模工具

3-5-1 安裝與啟動 Software Ideas Modeler3-5-2 建立與儲存專案

3-5-3 新增模型與 UML 圖形3-5-4 SIM 的使用介面說明

(27)

3-5 Software Ideas Modeler 塑模工具

Software Ideas Modeler ( SIM )塑模工具一套速

度快、輕量、操作簡單和功能強大的 CASE 工具, 其強大的 UML 繪圖功能,可以輸出漂亮的 UML 圖形和產生精美的模型文件。

SIM 塑模工具是一套免費軟體( Freeware )的

UML 塑模工具,它是由 Dušan Rodina 開發,支援 中文使用介面(筆者所翻譯),對於非商業用途 的使用者可以全功能免費使用(如果覺得好用, 記得捐助些款項支持此開發計劃)。

(28)

3-5-1 安裝與啟動 Software Ideas Modeler- 安

在書附光碟的 SIM 工具是免安裝版本,並不需要 進行安裝程序,不過,因為 SIM 是一套 .NET 應用 程式,在執行前,請先確認 Windows 作業系統已 經安裝 .NET Framework 3.5 以上版本。

(29)

3-5-1 安裝與啟動 Software Ideas Modeler- 啟

在書附光碟的 SIM 是免安裝版本,我們只需將 ZIP 檔解壓 縮至硬碟的資料夾,就可以切換至 SIM 解壓縮至硬碟的資 料夾,按二下【 SoftwareIdeasModeler.exe 】執行檔,稍等 一下,因為是第一次啟動,需要選擇使用介面的語言,可 以看到「 Language 」對話方塊。

(30)

3-5-2 建立與儲存專案

SIM 是使用專案(其副檔名為 .simp )來管理我們

塑模的模型,在模型之中是繪製的各種 UML 圖形 ,如下圖所示:

(31)

3-5-3 新增模型與 UML 圖形 - 新增模型

在 SIM 建立專案後,我們就 可以執行「檔案 / 開啟專案 」指令開啟存在的 SIM 專案 ,新增模型與 UML 圖形。  在同一個 SIM 專案可以建立 多個模型,例如:在 Ch3_5.simp 專案新增名為【 邏輯觀點】的模型,如右圖 所示:

(32)

3-5-3 新增模型與 UML 圖形 - 加入 UML 圖形

在專案新增模型後,就可以在指定模型新增 UML

圖形,例如:在【邏輯觀點】模型加入 UML 類別 圖【選課系統】,如下圖所示:

(33)

3-5-4 SIM 的使用介面說明

SIM 使用介面是由功能表、工具列、標籤頁的編

(34)

3-5-5 SIM 塑模工具的基本操作

在這一節筆者準備簡單說明 SIM 塑模工具的基本 操作,包含基本設定、樣式編輯、輸出圖檔、產 生文件和 UML 註解與模版的編輯。 • 切換使用介面的語言 • 顯示格線與貼齊格線 • 樣式編輯 • 在 UML 符號加入註解替 UML 符號元素新增模版將 UML 圖形匯出成圖檔 • 產生報告或規格文件

(35)

參考文獻

相關文件

結構化程式設計 是設計一個程式的一個技巧,此技巧就

如圖,若正方形 ABCD 的邊長為 8 公分,一圓過 A、D 兩點且與 BC 相切,則此圓的直徑為ˉˉ ˉˉ公分。... 如圖,已知圓 O

說明 闡明目的或原因/弄清事物之間的關係/說出原因和/或方式

Segmented Bushy Path 分為兩個步驟,第一個步驟是文件結構的切割 (Text Segmentation),也就是分析文件內容並將文件內容切割成幾個具有代 表的結構。Text Segmentation

說明 闡明目的或原因/弄清事物之間的關係/說出原因和/或方式

級別級別描述學習成果學生表現示例 I3.2 他們開始對人、事件及物件

Motion 動畫的頭尾影格中只能有一個 Symbol 或是群組物件、文字物件;換 言之,任一動畫須獨佔一個圖層。.. Motion

本研究為了將結構物內的牆以不同單位重來做比較,在計算每棟