UML建模學習1:UML統一建模語言簡單介紹
一什麽是UML?
Unified Modeling Language(UML又稱為統一建模語言或標準建模語言)是國際對象管理組織OMG制定的一個通
用的、可視化建模語言標準。能夠用來描寫敘述(specify)、可視化(visualize)、構造(construct)和記載(document)軟件密集
型系統的各種工件(artifacts,又譯為制品)。
UML是一個支持模型化和軟件系統開發的圖形化語言,為軟件開發的全部階段提供模型化和可視化支持,包含由
需求分析到規格,到構造和配置。
UML是面向對象軟件的標準化建模語言。UML因其簡單、統一的特點,並且能表達軟件設計中的動態和靜態信
息,眼下已成為可視化建模語言的工業標準。在軟件無線電系統的開發過程中,統一建模語言能夠在整個設計周期中
使用,幫助設計者縮短設計時間,降低改進的成本,使軟硬件切割最優。
UML是用來設計軟件藍圖的可視化建模語言。它支持面向對象系統的分析、設計、實現和交付等各個環節。能夠
用於系統的理解、設計、瀏覽、維護和信息控制。
UML不是一個程序設計語言,更不是一個形式化語言。
UML是一種可視化的面向對象建模語言。描寫敘述了一個系統的靜態結構和動態行為,用圖形方式表現典型的面向對
象系統的整個結構。從不同的角度為系統建模,並形成系統的不同視圖。這些圖包含:類圖(它以繼承
成和聚集為特色)、時序圖、協作圖和狀態圖等。
UML是一種建模語言,在實際團隊項目中,要和詳細的軟件開發過程結合起來才幹更好的發揮作用。
二UML有哪些特點?
UML的“通用性”主要是指不只能夠用它來描寫敘述軟件,並且還能夠用它來描寫敘述一般企業或組織的業務流程以及由
軟、硬件共同組成、以軟件為主的復雜系統(即所謂的軟件密集型系統),甚至還包含非軟件系統。
UML的“可視性”是指能夠通過UML一系列的圖形符號。組成多種視圖(view)來直觀、清晰地表達系統分析設計中
方方面面的、很多復雜的概念。UML主要是為了人的閱讀和使用而設計的,所以它採用了半形式化的。易於人們理
解、交流的形。
UML是一種分析設計專用的建模語言,它本身不是編程(programming)語言,不能直接用來生成可運行的軟件。
UML是一種抽象層次比C、C++、Java、VB、Delphi等文本高級語言更高的圖形語言,通過它我們能夠抽象地表示用
高級編程語言編寫的文本程序的邏輯結構和行為。相比傳統的高級編程語言。UML可以更加高效、準確地反映軟件設
計的方案和思路,是真正用來“設計程序”(design programs)的語言。
從這個意義上看,最好還是稱UML為“甚高級”程序設
計語言。
UML基本上不能算作全新的發明。它並不是學者教授、科研機構的研究成果。而是直接來自於產業界、project界的實
踐總結,是在歸納基礎上進行理論升華的產物,其核心內容反映了30多年來全球軟件工業的領導者在軟件設計構造領
域的最佳實踐和成功經驗,因而具有非常高的有用價值。
實踐證明,OO分析設計(OOAD)方法比傳統方法能更加準確、全面地描寫敘述現實世界。UML是用來表述OO概念的
一種語言工具,而非常奇異,它本身作為一件產品相同也是用OO方法來設計的,這使得UML具有傳統建模語言所不具
備的非常強的語義表達能力和非常靈活的可擴展性。
三UML有什麽用?
UML的用途很廣泛,能夠概括為“描寫敘述、可視化、構造、記載”4種基本功能,在業務建模、需求分析、系統設
計、實現和測試、數據建模、項目管理等階段任務中均可依據須要採用。
UML建模是建立軟件開發文檔的一個有效手段,通過UML可視化地描寫敘述系統需求,記載軟件構成,可以顯著地提
高文檔的質量和可讀性,降低編寫文檔的工作量。
UML實質上是一種系統分析設計專用語言,通過可視化的圖形符號結合文字說明或標記能夠幫助業務/系統分析
員、軟件架構師/設計師、程序猿等各種建模者有效地描寫敘述復雜軟件(或業務)的靜態結構和動態行為,包含工作流(數據
流和控制流)、功能需求、結構元素及關系、架構組成、設計模式、對象協作、事件響應和狀態變化等等。
四UML的目標是什麽?
1)為用戶提供一種易用的、具有可視化建模能力的語言。以便於用戶可以用該語言進行系統開發,並進行有意義
的模型互換。
2)對面向對象建模語言的核心概念提供可擴展性和規約機制。
3)提供規範的支持,該規範獨立於隨意一種編程語言和開發過程。
4)為理解該建模語言提供形式化的基礎。
5)鼓舞對象工具市場的生長和繁榮。
6)支持高級開發概念。如構件、協作、框架和模式等。
7)集成已有的優秀實踐成果和經驗。
五UML不能做什麽?
UML不是高度形式化的語言。一般不能用於定理證明。
UML是基於OO方法的通用建模語言,不適合用戶圖形界面設計、超大規模集成電路(VLSI)設計、基於規則的人
工智能等專業領域。
UML是一種離散型建模語言,適合對由軟件、固件或數字邏輯構成的離散系統建模,不適合對project和物理學領域
中的連續系統建模。
本身作為語言。UML不過一種表達形式,不是建模方法。在實際的軟件項目開發中只掌握一套標準的圖形符
號是遠遠不夠的。
用好UML首先須要掌握OOAD的基本原則和方法,並在一定的軟件開發過程(如UP/RUP、XP等)的
指導下進行有取舍的運用。
六為什麽要學習和掌握UML?
首先,UML對於當前大多數希望進一步改進質量的軟件開發團隊來說是不可缺少或必須的。
為什麽這樣說呢?因
為。C++、Java等源代碼並不能直觀、方便地反映復雜程序的設計:如內部邏輯結構、各種隱含的依賴關系、執行時的
狀態改變和特殊行為等等。寫好的代碼不過一種實現方式,非常難反映出現象背後的真實本質——設計,因此對於
大多數稍稍復雜點的項目來說,僅有代碼是不夠的。
可視化建模歷來是一種成功的project實踐做法,並不是軟件行業所特有。軟件的設計方案在用C++、Java實現之前通
常隱藏在人們的頭腦其中,而設計正確與否是決定軟件質量好壞的要害,一個前提是必須用適當的方式把它表達出
來。通過程序代碼來表達、討論、評估和選擇復雜軟件的設計往往是非常笨拙的。這一表達方式的空欠唯有通過類似
UML的建模語言來填補。
其次,OO方法是當代主流的軟件開發技術。世界先進的軟件團隊和個人早已擺脫了對怎樣使用詳細的平臺API、
個別編程語言特性的糾纏,而把很多其它的精力放在了需求、架構、設計機制和模式等對軟件質量有重大影響的核心要素
——分析與設計上。UML作為OO建模語言的其實標準和基本的表達媒介,在這些場合能發揮關鍵的作用。所以。
熟練地掌握並運用好UML是當今系統分析員、架構師/設計師以及程序猿等軟件project師所必備的一項基本技能。
七UML由哪些元素構成?
UML由3個要素構成:UML的基本構造塊、支配這些構造塊怎樣放置在一起的規則和運用於整個語言的公用機
制。
1)UML基本構造塊
UML有3種主要的構造塊:事物、關系和圖。
(1)事物
構成模型圖的一些基本圖示符號,它們表示一些面向對象的基本概念。
事物是對模型中最具有代表性的成分的抽象,包含結構事物、行為事物、分組事物和凝視事物。
結構事物:如類(Class)、接口(Interface)、協作(Collaboration)、用例(UseCase)、主動類(ActiveClass)、組件
(Component)和節點(Node);
行為事物:如交互(Interaction)、態機(Statemachine)。
分組事物:包(Package);
凝視事物:註解(Note)。
(2)關系
表示基本圖示符號之間的關系。
關系用來把事物結合在一起,包含依賴、關聯、泛化和實現關系。
(3)圖
圖聚集了相關的事物及其關系的組合,是軟件系統在不同角度的投影。
圖由代表事物的頂點和代表關系的連通圖
表示。
特定的視角對系統所作的抽象描寫敘述。
UML從考慮系統的不同角度出發。定義了用例圖、類圖、對象圖、狀態圖、活動圖、序列圖、協作圖、構件圖、
部署圖等9種圖。這些圖從不同的側面對系統進行描寫敘述。系統模型將這些不同的側面綜合成一致的總體。便於系統的
分析和構造。雖然UML和其他開發工具還會設計出很多派生的視圖,但上述這些圖和其他輔助性的文檔是軟件開發中
所見的最主要的構造。
2)UML規則
不能簡單地把UML的構造塊按隨機的方放在一起。像不論什麽語言一樣,UML有一套規則,這些規則描寫敘述了一個結構
良好的模型看起來應該像什麽。
UML實用於描寫敘述例如以下事物的語義規則:
(1)naming - 命名:命名為事物、關系和圖起名。
(2)scope- 範圍:範圍給一個名稱以特定含義的語境。
(3)visibility- 可見性:可見性如何讓其它人使用或看見名稱。
(4) integrity-完整性:完整性事物怎樣正確、一致地相互聯系。
(5) excuse-運行:運行運行或模擬動態模型的含義是什麽。
3)UML公共機制
UML中有4種貫穿整個語言且一致應用的公共機制。
(1)specification -規格說明
UML不僅僅是一種圖形語言。事實上,在它的圖形表示法的每部分背後都有一個規格說明。這個規格說明提供了對構
造塊的語法和語義的文字描寫敘述。
也就是說。UML的圖用來對系統進行可視化。而UML的規格說明用來描寫敘述系統的細節。
UML的規格說明提供了一個語義底板。它包括了一個系統的各模型的全部部分,而且各部分相互聯系,並保持一
致。因此,UML圖僅僅只是是對底板的簡單視覺投影。每個圖展現了系統的一個特定的方面。
(2)adornment - 修飾
UML表示法中的每個元素都有一個基本符號。能夠把各種修飾細節加到這個符號上。比如:+代表public、-代
表private、#代表protect等。
樣例:
(3) general division-通用劃分
A類/對象二分法
類是一個抽象:對象是這種抽象的一個詳細形式。UML的每個構造塊差點兒都存在像類/對象這種二分法。
例如:用例和用例實例(場景),構件和構件實例。節點和節點實例等。
B接口/實現二分法
接口聲明可一個契約,而實現則表示了對該契約的詳細實施,它負責如實地實現接口的完整語義。差點兒每個
UML的構造塊都有像接口/實現這種二分法。
比如:用例和實現他們的協作,操作和實現它們的方法。
(4)extension mechanism-擴展機制
對UML圖示符號的擴展。包含:構造型、標註值和約束。
樣例:
UML建模學習1:UML統一建模語言簡單介紹