必威电竞|足球世界杯竞猜平台

統一建模語言
來源:互聯網

統一建模語言(Unified Modeling Language,UML)是一種通用的標準化建模語言,又稱標準建模語言。它是一個支持模型化和軟件系統開發的圖形化語言,面向對象設計,獨立于任何具體程序設計語言,具有廣泛的建模能力和堅實的理論基礎,能為軟件開發的所有階段提供模型化和可視化支持,屬于一個龐大的表示法體系。

自1994年起,為達成建模語言統一效果,格雷迪·布奇(Grady Booch)和吉姆·魯姆博夫(Jim Rumbaugh)將Booch 93和OMT-2統一了起來。1995年,在OOSE的創始人伊萬·雅各布森(Ivar Jacobson)加入開發后,統一建模語言的第一個公開版本發布,即UM 0.8。次年6月,統一建模語言推出0.9版本,自此正式改稱為UML。至同年底,UML已經穩占面向對象技術市場85%的份額。1997年1月,UML 1.0正式發布上線。2003年6月,UML 2.0宣告完成。該版本與UML1比較,有顯著改進。隨后,UML不斷更新迭代,于2017年12月發布了2.5版本。同時,UML也被ISO認定為標準,即ISO/IEC19501和ISO/IEC19595。

統一建模語言的組織結構由構架、基本構造塊(包含建模的事物、關系和圖)以及實現特定目標的公共機制三部分組成,建模類型分為功能模型、對象模型和動態模型三種,包括類圖、用例圖、順序圖等。其建模能力比其他面向對象建模方法更強。它適合于一般系統的開發,對并行、分布式系統的建模尤為適宜,已成功應用于電信、金融、電子、國防等領域之中。

概述

定義

統一建模語言利用視圖、圖、模型元素和通用機制等,從不同角度來觀察和描述一個軟件系統的體系結構,是一個龐大的表示法體系。作為一種建模語言,UML的定義包括UML語義和UML表示法兩個部分。

UML語義

UML語義是指描述基于UML、精確的元模型定義。元模型為UML的所有元素在語法和語義上提供了簡單、一致、通用的定義性說明,使開發者能在語義上取得一致,消除了因人而異的最佳表達方法所造成的影響。此外,UML還支持對元模型的擴展定義。UML建立在元模型理論基礎上,包括4層元模型結構,分別是基元模型、元模型、模型和用戶對象。4層結構層層抽象,下一層是上一層的實例。UML中的所有概念和要素均有嚴格的語義規范。

UML表示法

UML的表示法定義了UML中使用的符號以及符號的表示方法,為開發者或開發工具使用這些圖形符號和文本語法來進行系統建模提供了標準。這些圖形符號和文字所表達的是應用級的模型,在語義上屬于UML元模型的實例。UML表示法分為通用表示和圖形表示兩部分組成。

主要特點

UML是一種定義良好、易于表達、功能強大且普遍適用的設計語言,它融入了軟件工程領域的新思想、新方法和新技術,并支持軟件開發的全過程。其主要特點表現為六點。

UML為統一的建模語言:UML語言汲取了面向對象及一些非面向對象方法的思想,使用統一的元素及其表示符號,為用戶提供無二義性的設計模型交流方法,早已被對象管理組織(OMG)認定為建模語言的標準。

UML支持面向對象:UML支持面向對象的軟件開發,支持面向對象思想的主要概念,所提供的圖形元素能夠簡潔明了地表示這些概念及其關系。

UML支持可視化建模:UML是一種圖形化語言,它自然地支持可視化建模,用圖形符號對系統建模。此外,UML還支持擴展機制,用戶可以通過它自定義建模元素的各種屬性。

UML具備強大的表達能力:UML在演進的過程中提出了模板、進程和線程等新的概念,這些概念有效地支持了各種抽象領域和系統內核機制的建模。同時,UML強大的表達能力使它可以對各種類型的軟件系統建模,包括商業領域的業務過程。

UML獨立于開發過程:UML支持系統與應用所有的開發過程,并支持系統與應用開發過程中的任一階段。

UML支持模型與代碼之間的轉換:模型可以被UML工具轉化成指定的程序語言代碼,程序語言代碼也可以在UML工具的作用下轉換為模型。

目標

UML的目標是以面向對象圖的方式來描述任何類型的系統,促進面向對象工具市場的發展。具體來說,它的開發和運用是為了提供深度的可視化建模語言給用戶,進而讓用戶能夠發展和改變有意義的模型,同時也是為了提供可擴展性和專有化機制,使系統或應用在擴展時無需對核心概念進行修改。與此同時,UML的目的還包括了提供合理基礎,以便人們理解標準。此外,UML還想應用于任何程序設計語言平臺、工具平臺以及軟件開發的過程,完成與具體的實現和過程相分離,并追求持續升級迭代、高適應性和可用性、對高級概念的支持,欲達成與最優軟件工程實踐經驗的相結合。

功能

為軟件系統的開發提供可視化模型

在實際開發軟件、編寫代碼的過程時,除了使用文本編輯表達式和算法外,大多數程序員仍要做一些簡單的建模工作。如果不建立模型,軟件系統中的某些東西很難用文本的編程語言來表達清楚,且可能導致代碼的相關信息永遠丟失,不利于后續的軟件維護。但個人所做簡單的模型并不利于交流,難被其他開發人員理解。而UML作為一種統一的、標準的建模語言,較好地解決了這一問題。UML符號具有良好的語義,不會引起歧義,使得交流更加方便。此外,UML作為可視化的建模語言,為系統提供了圖形化的可視模型,使系統的結構變得直觀、易于理解。利用UML為軟件系統建立模型,不但有利于系統開發人員和系統用戶的交流,也有利于對軟件的維護。

規約軟件系統的開發過程

規約(Specifying)意味著建立的模型是準確的、無歧義的、完整的。UML定義了在開發軟件系統過程中做出的所有重要的分析、設計和實現決策的規格說明。

構造軟件系統的實施框架

UML不是可視化的編程語言,但它的模型可以直接對應于各種各樣的編程語言。簡而言之,開發者可從UML的模型生成Java、C++等語言的編碼,甚至能夠生成關系數據庫中的表。從UML模型生成編程語言代碼的過程被稱為前向工程(Forward Engineering),從代碼實現生成UML模型的過程被稱為逆向工程(Reverse Engineering)。Rational Rose和Prosa等諸多CASE工具既支持前向工程,也支持逆向工程。

為軟件系統的產出建立文檔

在軟件的開發過程中,為軟件系統建立清晰、完整、準確的文檔是非常重要的。UML為描述需求、測試、項目規劃活動和軟件發布管理活動的建模提供了語言(即建模圖形元素和符號),也可以為系統的體系結構及其所有細節建立文檔。

發展歷程

初步開發

20世紀80年代初期,面向對象分析和設計建模語言的數量從不到10種增加到了50多種。眾多方法學家和語言創造者努力推廣自己的產品并在實踐中不斷進行完善。然而每種方法各有長短,軟件開發人員和用戶不了解不同建模語言的優缺點及它們相互之間的差異,所以很難選擇最適合各自要求的建模語言。

在90年代,少數幾種方法開始在一些關鍵性的項目中發揮作用,其中最引人注目的有Booch 93、OOSE和OMT-2等。此時面向對象方法已經成為軟件分析和設計方法的主流,這些方法所做的最重要的嘗試是在程序設計藝術與計算機科學之間尋求合理的平衡。因此,在客觀上,極有必要在比較不同建模語言的優缺點及總結面向對象技術應用實踐的基礎上求同存異,達成建模語言統一效果。Grady Booch和Jim Rumbaugh在1994年開始致力于這一工作。他們首先將Booch 93和OMT-2統一起來,并于1995年10月發布了第一個公開版本,稱為統一方法(Unitied Met hod)UM 0.8。

改進完善

1995年秋,OOSE的創始人Ivar Jacobson加入開發,并采用了他的用例思想。經過Grady Booch、Jim Rumbaugh及Ivar Jacobson三人的共同努力,于1996年6月和10月分別發布了兩個新的版本,即UML 0.9和UML0.91。由于UM只是一種建模語言,而不是一種建模方法,自0.9版本起,正式改稱為UML。

1996年,一些機構將UML當作其商業策略已日趨明顯。UML的開發者得到了來自公眾的正面反應,并倡議成立了“UML成員協會”,以完善、加強和促進UML的定義工作。當時,UML成員協會的成員有迪吉多、HP、I-Logix、Itellicorp、IBM等。1996年底,UML已經穩占面向對象技術市場85%的份額。1997年1月,UML 1.0發布。同年11月,OMG開始采納UML作為其標準建模語言。從此,UML的相關開發、推廣等工作交由omg負責,同月還發布了UML 1.1。然而由于這兩個UML版本的提交過程比較倉促,所以其中還是存在了一些問題。

1998年6月,OMG的修訂任務組提交了UML 1.2,它主要糾正了UML 1.1中的印刷和語法錯誤以及某些邏輯上的明顯不一致,但是并沒有涉及對重要技術的改進。1999年6月提交的UML 1.3是建模語言規范的第一個成熟版本,這一版本修改了印刷和語法錯誤,解決了邏輯上的不完備性,修正了技術上的錯誤和疏漏,闡明了模糊的和有歧義的表述,并改進了文檔的組織性和可讀性。

迭代發展

2001年5月,UML 1.4推出。UML 1.4在UML 1.3的基礎上進行了微小修改,除了修改技術上的錯誤、澄清有關細節外,更重要的是對擴展機制的圖形表示、構件和制品(構件)以及協作和模式方面作出的改動。2003年3月,UML 1.5發布。同年6月于巴黎召開的omg技術會議上,分析和設計專案小組投票通過了UML 2.0上層結構規范,至此UML 2.0宣告完成。UML 2.0是比UML1有顯著改進的新版本,此后4個UML 2.0規范相繼形成,陸續進入ISO的標準化日程。而在OMG的組織下,UML還經歷了多次版本升級。2017年12月,UML 2.5發布。同時,UML也被ISO認定為標準,即ISO/IEC19501和ISO/IEC19595。

在完善過程中,UML吸收了百家之長,融合了來自很多其他面向對象方法的優點,如Meyer前置條件和后置條件、Odell分類、Shlaer-Meller對象生存周期等。

組織結構

UML的組成結構直接奠定了UML的知識體系結構,一般包括了構造塊、規則、公共機制以及體系結構四個部分。其中,前三個部分是對UML中存在的各個要素的抽象表現,UML體系結構則負責將其他三個組成構件有機地組織起來,從而形成一個完整的體系。

構造塊

UML中包括了兩種基本構造塊,即事物構造塊和關系構造塊。其中,事物構造塊是模型中最具有代表性的抽象機制,一共包括結構事物、行為事物、分組事物及注釋事物4大類;關系構造塊用于表示模型元素之間相互連接的關系,較為常見的有依賴關系、關聯關系、泛化關系和實現關系等。

事物構造塊

關系構造塊

規則

像其他語言一樣,UML自有一套規則。這些規則用來定義和支配基本構造塊之間如何協作,其中包括命名、范圍、可見性、完整性以及執行。同時,UML的規則還暗示用戶專注于最重要的分析、設計和實現問題,這些問題將促使模型隨時間的推移而具有良好的結構。

公共機制

統一建模語言的公共機制共4種,即規格說明(Specification)、修飾(Adornment)、通用劃分(Common Division)和擴展機制(Extensibility Mechanism)。 這些通用的公共機制,可貫穿于整個建模過程的方方面面。

規格說明

UML不只是一個圖形語言,還為每一個UML圖形規定了文字說明的語法和語義。例如,一個類圖標的背后必有一套說明,它提供了關于屬性、操作、行為等的描述。通常使用UML的圖標表示法可視化一個系統,使用UML的說明敘述該系統的細節。

修飾

大多數的UML元素都有惟一的、直接的圖形表示法,以此來表達該元素的最重要特征。除此之外,還可以對該元素加上各種修飾性說明,用于描述該元素其他方面的細節特征。例如,對于一個對象類,最基本的圖形表示法是一個矩形,其中包含了類的名稱、屬性和操作。此外可以加上一些修飾,如可見性標記。

通用劃分

通用劃分是一種保證不同抽象概念層次的機制,包括類和對象的劃分、接口和實現的劃分。其中,類和對象的劃分保證了實例及其抽象的劃分,使得對一組實例對象的公共靜態和動態特征無需逐一管理、描述和實現。接口和實現的劃分則保證了一系列操作的規約和不同類對該操作的具體實現。

拓展機制

盡管UML已經是一套功能較強、表現力豐富的建模語言,但有時仍難以準確表達模型的許多細小方面。因此,UML的開發者們為UML設計了一種簡單、通用的擴展機制。擴展機制能夠應用于UML的各種建模元素之中,可擴展UML,也可把UML用戶化,更便于完成軟件系統的開發工作。

體系結構

UML的構架由5類視圖組成,包括用例視圖、邏輯視圖、進程視圖(并發視圖)、構件視圖(組件視圖)和部署視圖。這5類視圖屬于“4+1”視圖模型,由菲利普·克魯赫滕(Philippe Kruchten)提出,從五個不同的視角來描述軟件體系結構。每一個視圖只關心系統的一個側面,五個視圖結合在一起才能反映系統的軟件體系結構的全部內容。它們對于軟件體系結構的可視化、詳細描述、構造等方面都極為重要。每個視圖都是某個特定方面對于整個系統描述的一個投影,結合起來可以完整描述整個系統,其中用例視圖是描述系統功能的核心和其他視圖的出發點。

建模類型

在統一建模語言中,有三種主要的建模類型:功能模型、對象模型和動態模型。其中,功能模型有用例圖,對象模型有類圖、對象圖、包圖,動態模型有順序圖、活動圖、狀態圖。除此之外,UML還包括了組件圖、部署圖以及協作圖。

功能模型

功能模型是指從用戶角度展示系統功能的模型。在UML中,通過用例圖建立實現用戶需求的功能模型。用例圖(Use Case Diagram)為用例、相關參與者及其關系的圖形化表示,詳細描述了參與者以及他們如何與軟件系統交互,便于人們理解軟件系統的范圍和提供給參與者的功能。用例模型的主要元素包括系統邊界、用例及執行者(參與者),這些元素之間的關系主要有關聯、擴展、包含、泛化等。

在軟件系統開發中,對于相關的不同人員,用例模型有著不同的作用,如為客戶指明了系統的功能、幫助開發者理解系統功能等。它從用戶的角度切入,對系統的需求展開描述,是導出對象模型和動態模型的依據。

對象模型

對象模型是對客觀世界實體中對象及其相互之間關系的映射,描述了系統的靜態結構,采用對象、屬性、操作、關聯等概念來展示系統的結構和基礎。在系統分析階段,對象建模的主要任務是建立問題域的概念模型。這個模型描述了現實世界中的類與對象以及它們之間的關系,而非實際的軟件類或構件。

對象模型用類符號、類實例符號、類的繼承關系、聚集關系和關聯關系等表示。有些對象具有主動服務功能,稱為主動對象。當系統較復雜時,可以劃分主題,畫出主題圖,以利于對問題的理解。對象模型為建立動態模型和功能模型,提供了實質性的框架。

動態模型

動態模型用以規范對象的行為,表示瞬時系統、行為化系統的控制性質,描述對象和關系的狀態、狀態轉換的觸發事件、對象的服務(行為)。其顯示出對象在系統運行的不同時期、不同時刻的動態交互情況,對開發交互式系統起到了很重要的作用。在UML中,使用各種行為圖來表達系統的動態模型,如順序圖、活動圖等。

其他模型

階段過程

利用UML進行系統分析建模的過程主要包括靜態建模和動態建模兩個階段。在UML的靜態建模階段,主要根據系統需求建立系統靜態結構,對系統進行分析和描述。在UML的動態建模階段,主要描述系統的動態行為,需要明確系統中各個對象的操作及變化狀態,令靜態對象擁有活躍性和可執行性。

方法步驟

UML的建模方法步驟大致分為四步:第一,描述需求,進行需求分析;第二,根據需求建立系統的靜態模型,以構造系統的結構;第三,展開詳細設計,描述系統的行為,并對系統設計進行細化;第四,實現系統設計。這其中的第一步和第二步屬于UML的靜態建模機制,所建立的模型皆為靜態模型,包括用例圖、類圖、包圖、對象圖、構件圖和配置圖等五種圖形。而第三步則屬于UML的動態建模機制,該步驟內所建立的模型包括狀態圖、活動圖、順序圖和協作圖四種圖形,或可執行,或可表示執行時的時序狀態或交互關系。

建模工具

由于UML已經成為建模的國際標準,很多公司推出了支持UML的建模工具,最有影響、使用最廣的是Rational公司旗下的ROSE,此外還有ArgoUML、IBM Rational 軟件 Architect等,這些工具都給可視化建模帶來了極大的便利。

實際應用

應用領域

UML是在多種面向對象建模方法的基礎上發展起來的軟件建模語言,它的應用范圍非常廣泛,可以描述許多類型的系統;也可以用于軟件開發的各個階段,從需求規格描述到系統完成后的測試與維護。

不同類型系統的應用

UML可直接為面向對象軟件系統創建模型,也可用來描述其他類型的軟件系統、商業機構或過程,常見應用包括了信息系統、具有實時要求的工業系統或工業過程嵌入式實時系統、分布式系統、系統軟件、商業系統等。

軟件開發過程中的應用

在數據庫設計中的應用

數據庫設計即從需求到實現的過程,通常包括數據庫建模和數據設計。前者著重解決邏輯數據模型和物理數據模型;而后者著眼于從整個需求的產生、業務過程、邏輯分析、物理數據庫構建到數據庫的開發的全過程。在這些過程中,都可以使用UML來進行,如使用用例圖來描述系統功能以及支持業務處理環境的模型、使用活動圖來顯示處理流程等。

應用實例

裝備維修訓練系統分析與設計

在裝備維修訓練系統的實際開發應用中,將UML運用到分析與設計階段,采用UML流程圖對維修訓練系統分析過程建模,并利用UML對保障性分析過程及維修訓練設計過程建模,明確基本活動的節點、設計的一般過程,加強了對裝備維修訓練相關過程的理解和把握。

柔性管理信息系統開發

在柔性管理信息系統的實際開發應用中,采用應用建模的方法,利用了UML完成系統的需求分析、概念設計和詳細設計,構建出系統的需求模型、靜態結構模型和動態的行為模型,加深用戶對系統的開發平臺、體系架構和實現功能的認識;同時根據用戶意見,持續對系統的模型和文檔進行修補,大幅減少系統實現階段的工作量,有效應對用戶的需求變更,并提高系統對企業環境的適應能力,進一步解決了企業需求“柔性”和管理信息系統自身“剛性”的矛盾問題。

面向領域的電子商務系統建模

面向領域的電子商務系統建模機制利用UML的靜態結構建模、動態行為建模等機制,圍繞“數據交換”這一電子商務核心業務,將電子商務建模規范化,使之形成以UML用例模型為業務建模、UML活動圖和泳道圖為工作流建模、UML順序圖為業務過程建模、文檔和UML類圖為業務詞匯表建模的體系。基于該體系建立的中國石化電子商務平臺物資采購業務,在運營兩年多后網上業務量已超過總業務量的50%。

常見擴展

ArchiMate

ArchiMate是The Open Group為企業架構提供的開放和獨立的建模語言,由不同的工具供應商和咨詢公司提供支持。它提供了一組清晰的概念和架構域之間的關系,并提供了一個簡單而統一的結構來描述這些域的內容。它是一種精簡而簡單的語言,其中的幾個概念特意借鑒了UML,以提供一個簡單的橋梁。

SysML

SysML是一種通用圖形建模語言,用于指定、分析、設計和驗證復雜系統,這些系統可能包括硬件、軟件、信息、人員、程序和設施。該語言為建模系統需求、行為、結構和參數提供了具有語義基礎的圖形表示,用于與其他工程分析模型集成。它表示了UML2的一個子集,具有滿足UML對系統工程RFP的要求。

UML for Systems Engineering RFP

UML for Systems Engineering RFP由OMG公司和國際系統工程委員會(INCOSE)聯合開發,并由OMG公司于2003年3月發布。其規定了擴展UML以支持系統工程社區需求的要求。

未來展望

UML來自于產業界、工程界的實踐總結,同時也屬于在歸納基礎上進行理論升華的產物,其核心內容反映了多年來全球軟件工業的領導者在軟件設計構造領域的最佳實踐和成功經驗,因而仍舊具有很高的實用價值。而隨著技術的革新和對缺陷的不斷修復,UML作為面向對象的一種標準語言,將會成為推動人工智能、科技金融、自動化、無人駕駛等眾多領域的主力軍,并用自身的優勢和特點來推動科學技術的發展進步。

參考資料 >

Success Stories.uml.2024-02-04

ChatGPT之父提出新摩爾定律:宇宙智能數量每18個月翻一番.澎湃新聞.2024-02-20

..2024-02-20

UML創始人Grady Booch 先生簡介.新浪科技.2024-02-08

UML創始人James Rumbaugh 先生簡介.新浪科技.2024-02-08

UML創始人Ivar Jacobson 先生簡介.新浪科技.2024-02-08

..2024-02-08

..2024-02-04

SOA 開發第二步 – 設計SOA架構.IBM.2024-02-05

..2024-02-04

..2024-02-14

..2024-02-09

..2024-02-09

What is ArchiMate?.visual paradigm.2024-02-04

WHAT IS SYSML?.omgsysml.2024-02-04

..2024-02-04

生活家百科家居網