天天看點

UML 統一模組化語言

<dl></dl>

<dt>中文名稱:</dt>

<dd>統一模組化語言</dd>

<dt>英文名稱:</dt>

<dd>unified modeling language;UML</dd>

<dt>定義:</dt>

<dd>是一種面向對象的模組化語言,它是運用統一的、标準化的标記和定義實作對軟體系統進行面向對象的描述和模組化。</dd>

<dt>應用學科:</dt>

<dd></dd>

UML 統一模組化語言

UML的組成

Unified Modeling Language (UML)又稱統一模組化語言或标準模組化語言,是始于1997年一個OMG标準,它是一個支援模型化和軟體系統開發的圖形化語言,為軟體開發的所有階段提供模型化和可視化支援,包括由需求分析到規格,到構造和配置。 面向對象的分析與設計(OOA&D,OOAD)方法的發展在80年代末至90年代中出現了一個高潮,UML是這個高潮的産物。它不僅統一了Booch、Rumbaugh和Jacobson的表示方法,而且對其作了進一步的發展,并最終統一為大衆所接受的标準模組化語言。

目錄

  Booch是面向對象方法最早的倡導者之一,他提出了面向對象軟體工程的概念。1991年,他将以前面向Ada的工作擴充到整個面向對象設計領域。Booch 1993比較适合于系統的設計和構造。

  Jacobson于1994年提出了OOSE方法,其最大特點是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,但用例貫穿于整個開發過程,包括對系統的測試和驗證。OOSE比較适合支援商業工程和需求分析。

  此外,還有Coad/Yourdon方法,即著名的OOA/OOD,它是最早的面向對象的分析和設計方法之一。該方法簡單、易學,适合于面向對象技術的初學者使用,但由于該方法在處理能力方面的局限,目前已很少使用。

  概括起來,首先,面對衆多的模組化語言,使用者由于沒有能力差別不同語言之間的差别,是以很難找到一種比較适合其應用特點的語言;其次,衆多的模組化語言實際上各有千秋;第三,雖然不同的模組化語言大多雷同,但仍存在某些細微的差别,極大地妨礙了使用者之間的交流。是以在客觀上,極有必要在精心比較不同的模組化語言優缺點及總結面向對象技術應用實踐的基礎上,組織聯合設計小組,根據應用需求,取其精華,去其糟粕,求同存異,統一模組化語言。

  1994年10月,Grady Booch和Jim Rumbaugh開始緻力于這一工作。他們首先将Booch 93和OMT-2 統一起來,并于1995年10月釋出了第一個公開版本,稱之為統一方法UM 0.8(Unitied Method)。1995年秋,OOSE 的創始人Ivar Jacobson加盟到這一工作。經過Booch、Rumbaugh和Jacobson三人的共同努力,于1996年6月和10月分别釋出了兩個新的版本,即UML 0.9和UML 0.91,并将UM重新命名為UML(Unified Modeling Language)。

  1996年,一些機構将UML作為其商業政策已日趨明顯。UML的開發者得到了來自公衆的正面反應,并倡議成立了UML成員協會,以完善、加強和促進UML的定義工作。當時的成員有DEC、HP、I-Logix、 Itellicorp、 IBM、ICON Computing、MCI Systemhouse、Microsoft、Oracle、Rational Software、TI以及Unisys。這一機構對UML 1.0(1997年1月)及UML 1.1(1997年11月17日)的定義和釋出起了重要的促進作用。

  UML是一種定義良好、易于表達、功能強大且普遍适用的模組化語言。它溶入了軟體工程領域的新思想、新方法和新技術。它的作用域不限于支援面向對象的分析與設計,還支援從需求分析開始的軟體開發的全過程。

  面向對象技術和UML的發展過程可用上圖來表示,标準模組化語言的出現是其重要成果。在美國,截止1996年10月,UML獲得了工業界、科技界和應用界的廣泛支援,已有700多個公司表示支援采用UML作為模組化語言。1996年底,UML已穩占面向對象技術市場的85%,成為可視化模組化語言事實上的工業标準。1997年11月17日,OMG采納UML 1.1作為基于面向對象技術的标準模組化語言。UML代表了面向對象方法的軟體開發技術的發展方向,具有巨大的市場前景,也具有重大的經濟價值和國防價值。

  首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且這些基本概念與其他面向對象技術中的基本概念大多相同,因而,UML必然成為這些方法以及其他方法的使用者樂于采用的一種簡單一緻的模組化語言;其次,UML不僅僅是上述方法的簡單彙合,而是在這些方法的基礎上廣泛征求意見,集衆家之長,幾經修改而完成的,UML擴充了現有方法的應用範圍;第三,UML是标準的模組化語言,而不是标準的開發過程。盡管UML的應用必然以系統的開發過程為背景,但由于不同的組織和不同的應用領域,需要采取不同的開發過程。

  作為一種模組化語言,UML的定義包括UML語義和UML表示法兩個部分。

  (1) UML語義 描述基于UML的精确元模型定義。元模型為UML的所有元素在文法和語義上提供了簡單、一緻、通用的定義性說明,使開發者能在語義上取得一緻,消除了因人而異的最佳表達方法所造成的影響。此外UML還支援對元模型的擴充定義。

  (2) UML表示法 定義UML符号的表示法,為開發者或開發工具使用這些圖形符号和文本文法為系統模組化提供了标準。這些圖形符号和文字所表達的是應用級的模型,在語義上它是UML元模型的執行個體。

  标準模組化語言UML的重要内容可以由下列五類圖(共9種圖形)來定義:

  第一類是用例圖,從使用者角度描述系統功能,并指出各功能的操作者。

  第二類是靜态圖 (Static diagram),包括類圖、對象圖和包圖。其中類圖描述系統中類的靜态結構。不僅定義系統中的類,表示類之間的聯系如關聯、依賴、聚合等,也包括類的内部結構(類的屬性和操作)。類圖描述的是一種靜态關系,在系統的整個生命周期都是有效的。

  對象圖是類圖的執行個體,幾乎使用與類圖完全相同的辨別。他們的不同點在于對象圖顯示類的多個對象執行個體,而不是實際的類。一個對象圖是類圖的一個執行個體。由于對象存在生命周期,是以對象圖隻能在系統某一時間段存在。

  包由包或類組成,表示包與包之間的關系。包圖用于描述系統的分層結構。

  第三類是行為圖(Behavior diagram),描述系統的動态模型群組成對象間的互動關系。行為圖包括:狀态圖、活動圖、順序圖和協作圖。其中狀态圖描述類的對象所有可能的狀态以及事件發生時狀态的轉移條件。通常,狀态圖是對類圖的補充。在實用上并不需要為所有的類畫狀态圖,僅為那些有多個狀态其行為受外界環境的影響并且發生改變的類畫狀态圖。 而活動圖描述滿足用例要求所要進行的活動以及活動間的限制關系,有利于識别并行活動。活動圖是一種特殊的狀态圖,它對于系統的功能模組化特别重要,強調對象間的控制流程。 順序圖展現了一組對象和由這組對象收發的消息,用于按時間順序對控制流模組化。用順序圖說明系統的動态視圖。 協作圖展現了一組對象,這組對象間的連接配接以及這組對象收發的消息。它強調收發消息的對象的結構組織,按組織結構對控制流模組化。 順序圖和協作圖都是互動圖,順序圖和協作圖可以互相轉換。

  第四類是互動圖(Interactive diagram),描述對象間的互動關系。其中順序圖顯示對象之間的動态合作關系,它強調對象之間消息發送的順序,同時顯示對象之間的互動;合作圖描述對象間的協作關系,合作圖跟順序圖相似,顯示對象間的動态合作關系。除顯示資訊交換外,合作圖還顯示對象以及它們之間的關系。如果強調時間和順序,則使用順序圖;如果強調上下級關系,則選擇合作圖。這兩種圖合稱為互動圖。

  第五類是實作圖 ( Implementation diagram )。其中構件圖描述代碼部件的實體結構及各部件之間的依賴關系。一個部件可能是一個資源代碼部件、一個二進制部件或一個可執行部件。它包含邏輯類或實作類的有關資訊。部件圖有助于分析和了解部件之間的互相影響程度。

  配置圖定義系統中軟硬體的實體體系結構。它可以顯示實際的計算機和裝置(用節點表示)以及它們之間的連接配接關系,也可顯示連接配接的類型及部件之間的依賴性。在節點内部,放置可執行部件和對象以顯示節點跟可執行軟體單元的對應關系。

  從應用的角度看,當采用面向對象技術設計系統時,首先是描述需求;其次根據需求建立系統的靜态模型,以構造系統的結構;第三步是描述系統的行為。其中在第一步與第二步中所建立的模型都是靜态的,包括用例圖、類圖(包含包)、對象圖、元件圖和配置圖等五個圖形,是标準模組化語言UML的靜态模組化機制。其中第三步中所建立的模型或者可以執行,或者表示執行時的時序狀态或互動關系。它包括狀态圖、活動圖、順序圖和合作圖等四個圖形,是标準模組化語言UML的動态模組化機制。是以,标準模組化語言UML的主要内容也可以歸納為靜态模組化機制和動态模組化機制兩大類。

  标準模組化語言UML的主要特點可以歸結為三點:

  (1) UML是Booch、OMT和OOSE等方法基本概念的拓展與延伸。

  (2) UML還吸取了面向對象技術領域中其他流派的長處,其中也包括非OO方法的影響。UML符号表示考慮了各種方法的圖形表示,删掉了大量易引起混亂的、多餘的和極少使用的符号,也添加了一些新符号。是以,在UML中彙入了面向對象領域中很多人的思想。這些思想并不是UML的開發者們發明的,而是開發者們依據最優秀的OO方法和豐富的計算機科學實踐經驗綜合提煉而成的。

  (3)UML在演變過程中還提出了一些新的概念。在UML标準中新加了模闆(Stereotypes)、職責(Responsibilities)、擴充機制(Extensibility mechanisms)、線程(Threads)、過程(Processes)、分布式(Distribution)、并發(Concurrency)、模式(Patterns)、合作(Collaborations)、活動圖(Activity diagram)等新概念,并清晰地區分類型(Type)、類(Class)和執行個體(Instance)、細化(Refinement)、接口(Interfaces)群組件(Components)等概念。

  是以可以認為,UML是一種先進實用的标準模組化語言,但其中某些概念尚待實踐來驗證,UML也必然存在一個進化過程。

  UML的目标是以面向對象圖的方式來描述任何類型的系統,具有很寬的應用領域。其中最常用的是建立軟體系統的模型,但它同樣可以用于描述非軟體領域的系統,如機械系統、企業機構或業務過程,以及處理複雜資料的資訊系統、具有實時要求的工業系統或工業過程等。總之,UML是一個通用的标準模組化語言,可以對任何具有靜态結構和動态行為的系統進行模組化。

  此外,UML适用于系統開發過程中從需求規格描述到系統完成後測試的不同階段。在需求分析階段,可以用用例來捕獲使用者需求。通過用例模組化,描述對系統感興趣的外部角色及其對系統(用例)的功能要求。分析階段主要關心問題域中的主要概念(如抽象、類和對象等)和機制,需要識别這些類以及它們互相間的關系,并用UML類圖來描述。為實作用例,類之間需要協作,這可以用UML動态模型來描述。在分析階段,隻對問題域的對象(現實世界的概念)模組化,而不考慮定義軟體系統中技術細節的類(如處理使用者接口、資料庫、通訊和并行性等問題的類)。這些技術細節将在設計階段引入,是以設計階段為構造階段提供更詳細的規格說明。

  程式設計(構造)是一個獨立的階段,其任務是用面向對象程式設計語言将來自設計階段的類轉換成實際的代碼。在用UML建立分析和設計模型時,應盡量避免考慮把模型轉換成某種特定的程式設計語言。因為在早期階段,模型僅僅是了解和分析系統結構的工具,過早考慮編碼問題十分不利于建立簡單正确的模型。

  總之,标準模組化語言UML适用于以面向對象技術來描述任何類型的系統,而且适用于系統開發的不同階段,從需求規格描述直至系統完成後的測試和維護。

<dt>開放分類:</dt>

<dt></dt>

<a href="http://baike.baidu.com/view/757280.htm?func=retitle" target="_blank">算法分析</a>

繼續閱讀