首席數位 物件導向系統分析與設計(OOA,OOD) 首席講座: 曾龍博士
UML 統一塑模語言(Unified Modeling Language) UML是一種開放(Open)的方法,用於說明、可視化、構建和編寫一個物件導向軟體系統的方法。UML是一種規格化(Specifying) 、視覺化(Visualizing)及文件化(Documenting)的軟體塑模語言 UML展現了一系列最佳工程實踐(best engineering practices ),這些 最佳實踐在對大規模,複雜系統進行塑模(Model)方面,特別是在軟體架構層次已經被驗證有效。 UML已成為物件導向分析與設計的主要塑模語言
UML is a language that unifies the industry’s best engineering practices for modeling systems. UML Is a language. It is not simply a notation for drawing diagrams, but a complete language for capturing knowledge (semantics) about a subject and expressing knowledge (syntax) regarding the subject for the purpose of communication. Applies to modeling and systems. Modeling involves a focus on understanding (knowing) a subject (system) and capturing and being able to communicate this knowledge. UML Is the result of unifying the information systems and technology industry’s best engineering practices (principles, techniques, methods, and tools). UML包含九種圖
[46]物件導向系統分析與設計: UML UML不是 [1]A visual programming language, but a visual modeling language. – A programming language communicates an implementation or solution. – A modeling language communicates a model (or conceptualization or specification). [2]A tool or repository specification, but a modeling language specification. – A tool or repository specification specifies a tool’s or repository’s interface, storage, run-time behavior, and so forth. – A modeling language specification specifies modeling elements, notation, and usage guidelines. [3]A process, but enables processes. – A process provides guidance regarding the order of activities, specification of artifacts to be developed, direction of individual developer and team tasks (or activities), and monitoring and measuring criteria of project artifacts and activities. – Processes are organization, culture, and domain specific and dependent. – The UML enables and promotes (but does not require nor mandate) a use-case-driven, architecture-centric, iterative, and incremental process that is object oriented and component based.
UML Diagrams 1.使用個案圖Use case 2.類別圖class 3.物件圖(Object Diagram) 4.循序圖(Sequence Diagram) 5.合作圖(Collaboration Diagram) 6.狀態圖(State Diagram) 7.活動圖(Activity Diagram) 8.元件圖(Component Diagram) 9.佈署圖(Deployment Diagram)
1.使用個案圖Use case
1.使用個案圖Use case UML引用Jacobson 的使用個案模式 使用個案圖表示系統使用個案和行為者之間互動的關係。 從外部觀點來看,使用者介面及使用個案的範圍與限制,決定什麼是使用個案(What)? 從內部觀點來看,它可描述使用個案是如何運作的(How)?
NextGen POS專案
2.類別圖class Diagram
2.類別圖class Diagram UML引用Booch 與Rumbaugh方法論的類別圖 類別圖表示系統存在之類別以及類別間的邏輯關係
(3)物件圖(Object Diagram) 基本元件 所表達資訊 物件 [1]類別圖上類別之物件 [2]表達之方式是在類別之名稱下劃一底線 連結線 用來表示一個物件如何與另一個物件連接,以直線來表示。合作圖上之連結也就是物件間之路徑(Path)
3.物件圖(Object Diagram) 物件圖是用來描述一系統於某一時間點的靜態結構 物件圖由一群相關之物件及其連結所組成,以表示系統在某一時間點之一案例(Instance) 。物件圖有時也稱為案例圖(Instance Diagram),也可以把物件圖想成沒有訊息傳遞的合作圖 物件常用矩形表示,在矩形內表達名稱;並在名稱下加底線 真實世界裡,物件的數量相當的龐大,為降低問題的複雜度,在系統分析時大多採用類別,而較少用物件。
(4)循序圖(Sequence Diagram)
4.循序圖(Sequence Diagram) UML之循序圖(Sequence Diagram)是結合Booch的互動圖與Rumbaugh的訊息追蹤圖而成 循序圖用以描述系統運作時,物件間的互動行為且著重以時間為主軸的處理程序。
(5)合作圖
5.合作圖(Collaboration Diagram) UML之合作圖(Collaboration Diagram)是從Booch的物件互動圖與Rumbaugh的物件導向資料流程圖改進而來 合作圖能同時展現物件間的資料流程、控制流程與訊息傳遞的活動。 合作圖是一個宏觀的總流程,能同步表達資料的產生與資料轉變的過程,以改進傳統資料流程圖(DFD)中只著重資料流(Data Flow)的缺點。
(6)狀態圖(State Diagram)
6.狀態圖(State Diagram) UML之狀態圖(State Diagram)是結合Booch 的狀態轉移圖與Rumbaugh的動態模式而成 狀態圖是用來表達物件在其生命週期中的狀態變化。 狀態圖是以微觀物件為主,細分物件所發生的各項事件,並表達物件生命週期之狀態轉變及活動結果。
(7)活動圖(Activity Diagram)
7.活動圖(Activity Diagram) UML之活動圖(Activity Diagram)是狀態圖的一種變異 活動圖表達涉及於執行某一作業行為中之活動。一個活動圖描述一群循序與同步的活動,一個活動狀態表示一個工作流程步驟或一個運算的執行活動。
8.元件圖(Component Diagram)
8.元件圖(Component Diagram) UML之元件圖(Component Diagram) 起源於Booch的模組圖 元件圖是用來說明系統設計過程各類別與物件的配置及敘述軟體元件間的組織架構和相依關係。 元件是開發和執行過程之實際物件類別,將可拆散的實際基本單位模組化,這些基本單位包括模型(Module)元素並擁有特性和明確定義的介面
(9)部署圖
9.部署圖(Deployment Diagram) UML之佈署圖(Deployment Diagram) 起源於Booch的處理圖 佈署圖是用來說明系統各處理器、處理元件的配置、關聯,以及同一處理器內執行處理的時程安排等。
使用個案觀點: 由描述系統行為的使用個案組成,這些系統行為是由使用者、分析師、測試者的觀點來描述,並不實際描述軟體系統的組織。 設計觀點: 由類別、介面與合作組成,這些是來自於描述問題及其解決方法中之辭彙描述。這個觀點主要支援系統的功能需求,表達系統應提供給使用者之服務。 流程觀點: 由執行緒與流程所組成,這些是來自於系統的平行與同步機制,這個觀點主要表達系統之績效、產出與可擴充性。 實施觀點: 由可以不同方式組裝實際可運作系統之獨立的元件與檔案所組成,這個觀點主要表達系統版本的結構配置管理。 部署觀點: 由構成系統之硬體類型的節點(Nodes)所組成,這個觀點主要表達組成實際系統之零件的分配、傳遞訊息與安裝。