UML建模實例教程(第3版)課件 第3章 UML簡介_第1頁
UML建模實例教程(第3版)課件 第3章 UML簡介_第2頁
UML建模實例教程(第3版)課件 第3章 UML簡介_第3頁
UML建模實例教程(第3版)課件 第3章 UML簡介_第4頁
UML建模實例教程(第3版)課件 第3章 UML簡介_第5頁
已閱讀5頁,還剩50頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章UML簡介3.1UML的發展3.2UML的特點3.3UML的結構3.4UML的視圖3.5UML圖形符號3.6UML建模基本流程1

本章主要介紹UML的發展和特點,以及UML的主要視圖和基本UML圖形符號的情況。主要內容包括:UML的發展、UML的特點、UML結構、UML視圖、UML基本圖形符號和UML建模基本流程等。通過本章的學習,讀者應了解UML的基本組成及UML建模的一般步驟。本章的學習要點包括:UML的發展;UML的特點;UML的結構;UML的視圖;UML基本圖形符號;UML建模基本流程。233.1UML的發展4任務1了解UML的基本概念,了解UML的發展歷程,理解UML的特點,并理解為什么選擇UML進行建模。任務描述

3.1UML的發展53.1UML的發展UML(UnifiedModelingLanguage,統一建模語言)是一種建模語言,是第三代用來為面向對象系統的產品進行說明、可視化和編制文檔的方法。

它是由信息系統和面向對象領域的GradyBooch、JamesRumbaugh和IvarJacobson在20世紀90年代中期提出的。由OMG組織(ObjectManagementGroup,對象管理組織)采納作為業界標準。UML取代了當時軟件業眾多的分析和設計方法,成為一種標準,軟件界第一次有了一個統一的建模語言,UML最終正式成為信息技術的國際標準。

3.1.1UML的發展歷程63.1UML的發展

3.1.1UML的發展歷程UML各種版本的演化過程73.1UML的發展使用UML的目標包括以下幾個方面:

3.1.1UML的發展歷程易于使用、表達能力強,進行可視化建模;與具體的實現無關,可應用于任何語言平臺和工具平臺;與具體的過程無關,可應用于任何軟件開發的過程;簡單并且可擴展,具有擴展和專有化機制,便于擴展,無須對核心概念進行修改;為面向對象的設計與開發中涌現出的高級概念(例如,協作、框架、模式和組件)提供支持,強調在軟件開發中對架構、框架、模式和組件的重用;與最好的軟件工程實踐經驗集成;可升級,具有廣闊的適用性和可用性;有利于面對對象工具的市場成長。83.1UML的發展自1997年UML被OMG采納為面向對象的建模語言的國際標準以來,它不斷融入軟件工程領域的新思想、新方法和新技術。

UML不局限于支持面向對象的分析與設計,還支持從需求分析開始的軟件開發的全過程。目前,在多數軟件企業的正規化開發流程中,開發人員普遍使用UML進行模型的建立。作為軟件開發人員,我們必須學會UML,因為UML就像統一的“文字”,統一的“度”、“量”、“衡”。

3.1.2理解UML93.2UML的特點103.2UML的特點

UML是一種建模語言,是一種標準的表示,而不是一種方法(或方法學)。

方法是一種把人的思考和行動結構化的明確方式,方法需要定義軟件開發的步驟、告訴人們做什么,如何做,什么時候做,以及為什么要這么做。UML只定義了一些圖以及它們的意義,它的思想與方法無關。

因此,我們會看到人們將用各種方法來使用UML,而無論方法如何變化,它們的基礎是UML的圖,這就是UML的最終用途,即為不同領域的人們提供統一的交流標準。

1.標準的表示方法113.2UML的特點

UML盡可能地結合了世界范圍內面向對象項目的成功經驗,因而它的價值在于它體現了世界上面向對象方法實踐的最好經驗,并以建模語言的形式把它們打包,以適應開發大型復雜系統的要求。

在眾多成功的軟件設計與實現的經驗中,最突出的兩條,一是注重系統架構的開發,二是注重過程的迭代和遞增性。盡管UML本身沒有對過程有任何定義,但UML對任何使用它的方法(或過程)提出的要求是:支持用例驅動、以架構為中心以及遞增和迭代的開發。這些特點正是統一軟件過程(RUP)的特點,也就是說,UML和RUP在軟件開發過程中是“最佳拍檔”。

2.與軟件開發的成功經驗集成123.2UML的特點

(1)需求分析。UML的用例視圖可以表示客戶的需求。通過用例建模,可以對外部的角色以及它們所需要的系統功能建模。(2)系統分析。分析階段主要考慮所要解決的問題,可用UML的邏輯視圖和動態視圖來描述:類圖描述系統的靜態結構,協作圖、時序圖、活動圖和狀態圖描述系統的動態特征。

(3)系統設計。在設計階段,把分析階段的結果擴展成技術解決方案,加入新的類來提供技術基礎結構——用戶接口、數據庫操作等。(4)構造。在構造(或程序設計階段),把設計階段的類轉換成某種面向對象程序設計語言的代碼。

(5)測試。對系統的測試通常分為單元測試、集成測試、系統測試和接受測試幾個不同級別。

3.UML的應用貫穿在系統開發的五個階段13UML是一種建模語言,即軟件開發過程中各類人員交流和溝通的工具。RUP是一種軟件過程模型,是指導軟件開發過程的方法,詳見第11章。Umbrello是一種建模工具,是完成UML模型繪制的一種工具,詳見第4章。14

(1)通過訪問OMG的官方網站(http://),了解UML的發展歷程。(2)訪問http://,以小組的形式討論UML的基本特點。(3)收集UML的相關學習資源和學習網站。15

1.操作要求

2.操作提示

(1)比較UML和其他面向對象程序設計語言的區別。(2)理解UML和面向對象思想的聯系。3.3UML的結構16任務2了解UML的基本事物及其特點,了解UML的關系,了解UML的視圖及其主要功能。任務描述3.3UML的結構17

3.3UML的結構

UML由圖和元模型組成,圖是語法,元模型是語義。UML主要包括三個基本構造塊:事物(Things)、關系(Relationships)和圖(Diagrams)。183.3UML的結構19

3.3.1UML的事物UML的事物是實體抽象化的最終結果,是模型中的基本成員,包含:結構事物行為事物分組事物注釋事物3.3UML的結構20

3.3.1UML的事物1.結構事物結構事物是模型中的靜態部分,用以呈現概念或實體的表現元素,是軟件建模中最常見的元素,共有以下七種。(1)類(Class):具有相同屬性、方法、關系和語義的對象的集合。(2)接口(Interface):類或組件所提供的服務(操作),描述了類或組件對外可見的動作。(3)協作(Collaboration):描述合作完成某個特定任務的一組類及其關聯的集合。(4)用例(UseCase):定義了參與者和被考慮的系統之間的交互來實現的一個業務目標。(5)活動類(ActiveClass):活動類的對象有一個或多個進程或線程。(6)組件(Component):組件是物理的、可替換的部分,包含接口的集合。(7)節點(Node):系統在運行時存在的物理元素,代表一個可計算的資源。3.3UML的結構21

3.3.1UML的事物2.行為事物行為事物指的是UML模型中的動態部分,代表語句里的“動詞”,表示模型里隨著時空不斷變化的部分,包含以下兩類(1)交互(Interaction):在特定上下文中,由一組對象之間為達到特定的目的而進行的一系列消息交換而組成的動作。(2)狀態機(StateMachine):由一系列對象的狀態組成。3.3UML的結構22

3.3.1UML的事物3.分組事物可以把分組事物看成是一個“盒子”,模型可以在其中被分解。目前只有一種分組事物,即包(Package)。結構事物、動作事物甚至分組事物都有可能放在一個包中。包純粹是概念上的,只存在于開發階段。3.3UML的結構23

3.3.1UML的事物4.注釋事物注釋事物是UML模型的解釋部分。3.3UML的結構24

3.3.2UML的關系UML的關系是將UML的事物聯系在一起的方式,UML中定義了以下四種關系:(1)依賴關系(Dependency):兩個事物之間的語義關系,其中一個事物發生變化會影響另一個事物的語義。(2)關聯關系(Association):一種描述一組對象之間連接的結構關系,如聚合關系就描述了整體和部分間的結構關系。(3)泛化關系(Generalization):一種一般化和特殊化的關系。(4)實現關系(Realization):類之間的語義關系,其中的一個類指定了由另一個類保證執行的契約。25這里的事物是指UML模型中的組成部分,也可以理解為部件或元素;這里的關系是指UML各事物(組成元素)間存在的各種聯系。3.4UML的視圖263.4UML的視圖

完整地描述系統,通常的做法是用一組視圖反映系統的各個方面,每個視圖代表完整系統描述中的一個抽象,顯示這個系統中的一個特定的方面。每個視圖由一組圖構成,圖中包含了強調系統中某一方面的信息。UML中的視圖包括:27用例視圖(UseCaseView)邏輯視圖(LogicalView)并發視圖(ConcurrencyView)組件視圖(ComponentView)部署視圖(DeploymentView)3.4UML的視圖28

3.4.1用例視圖用例視圖用于描述系統應該具有的功能集。它是從系統的外部用戶角度出發,對系統的抽象表示。用例視圖所描述的系統功能依靠于外部用戶或由另一個系統觸發激活,為用戶或另一個系統提供服務,實現用戶或另一個系統與系統的交互。系統實現的最終目標是提供用例視圖中描述的功能。用例視圖中可以包含若干個用例,用例用來表示系統能夠提供的功能(系統用法),一個用例是系統用法(功能請求)的一個通用描述。用例視圖是其他四個視圖的核心和基礎。其他視圖的構造和發展依賴于用例視圖中所描述的內容。因為系統的最終目標是提供用例視圖中描述的功能,同時附帶一些非功能性的性質,因此用例視圖影響著所有其他的視圖。用例視圖還可用于測試系統是否滿足用戶的需求和驗證系統的有效性。用例視圖主要為用戶、設計人員、開發人員和測試人員而設置。用例視圖靜態地描述系統功能,為了動態地觀察系統功能,也可以使用活動圖對用例進行描述。3.4UML的視圖29

3.4.2邏輯視圖用例視圖只考慮系統應提供什么樣的功能,對這些功能的內部運作情況不予考慮,為了揭示系統內部的設計和協作狀況,要使用邏輯視圖描述系統。邏輯視圖用來顯示系統內部的功能是怎樣設計的,它利用系統的靜態結構和動態行為來刻畫系統功能。靜態結構描述類、對象和它們之間的關系等。動態行為主要描述對象之間的動態通信,當對象之間彼此發送消息給給定的函數時產生動態通信、一致性和并發性等性質,以及接口和類的內部結構都要在邏輯視圖中定義。在UML中,靜態結構使用類圖和對象圖描述,動態行為使用狀態圖、時序圖、通信圖和活動圖描述。3.4UML的視圖30

3.4.3并發視圖并發視圖將系統劃分為進程和處理機方式,通過劃分引入并發機制,利用并發高效地使用資源、并行執行和處理異步事件。除了劃分系統為并發執行的控制線程外,并發視圖還必須處理通信和這些線程之間的同步問題。并發視圖所描述的方面屬于系統中的非功能性質方面。并發視圖供系統開發者和集成者使用,它由動態圖(狀態圖、時序圖、通信圖、活動圖)和執行圖(組件圖、部署圖)構成。3.4UML的視圖31

3.4.4組件視圖組件視圖用來顯示代碼組件的組織方式。它描述了系統的實現模塊和它們之間的依賴關系。組件視圖由組件圖構成。組件是代碼模塊,不同類型的代碼模塊形成不同的組件,組件按照一定的結構和依賴關系呈現。組件的附加信息(如為組件分配資源)或其他管理信息(如進展工作的進展報告)也可以加入到組件視圖中。組件視圖主要供開發者使用。3.4UML的視圖32

3.4.5部署視圖部署視圖用來顯示系統的物理架構,即系統的物理部署情況,如計算機和設備以及它們之間的連接方式,其中計算機和設備稱為節點。部署視圖還包括一個映射,該映射顯示在物理架構中組件是怎樣部署的。比如,在每臺獨立的計算機上,哪一個程序或對象在運行。部署視圖提供給開發者、集成者和測試者。可以把這里的視圖理解為我們看問題的角度,系統本身是固定不變的,但從不同的角度看會有不同的效果。就像我們觀測一個柜子,我們很自然地知道我們在柜子的正面還是反面,現在我們把柜子的門拿下來當一個面,我們也可以知道該門的上面、下面及其左右。假如,把人反一下,再觀測該門,情況就變了,雖然柜子本身沒有任何變化。33

(1)小組討論UML的結構包括哪些內容。(2)使用Word或其他繪圖工具繪制圖3-3所示的UML結構圖。(3)依據工程/機械制圖中的三視圖概念,類比理解UML的視圖思想。

1.操作要求

2.操作提示

(1)通過學習小組討論和上網查詢資料形式完成。(2)將UML的作用與工程設計和機械設計的繪圖標準進行比較。3.5UML的圖形符號34任務3了解UML的五種視圖和九種圖形及功能,了解UML建模的基本流程。任務描述3.5UML的圖形符號35

3.5UML的圖形符號

UML中的圖(Diagram)由圖片(Graph)組成,圖片是模型元素的符號化。UML中包含13種圖,使用其中的用例圖、類圖、對象圖、狀態圖、時序圖、通信圖、活動圖、組件圖、部署圖等九種圖可以描述各種復雜的事物。36編

號英文名稱中文名稱備

注1PackageDiagram包圖

2UseCaseDiagram用例圖

3ClassDiagram類圖

4ObjectDiagram對象圖

5StateDiagram狀態圖

6SequenceDiagram時序圖

7CommunicationDiagram通信圖

8ActivityDiagram活動圖

9ComponentDiagram組件圖

10DeploymentDiagram部署圖

11CompositeStructureDiagram組合結構圖UML2.012InteractionOverviewDiagram交互概覽圖UML2.013TimingDiagram時間圖UML2.037

3.5.1用例圖用例圖用于顯示若干角色(Actor)以及這些角色與系統提供的用例之間的連接關系。

用例是系統提供的功能(系統的具體用法)的描述。通常一個實際的用例采用普通的文字描述,作為用例符號的文檔性質,實際的用例圖也可以用活動圖描述。

用例圖定義的是系統的功能需求。3.5UML的圖形符號用例圖示例參與者用例系統邊界38

3.5.2類圖類圖用來表示系統中的類以及類與類之間的關系,它是對系統靜態結構的描述。

類用來表示系統中需要處理的事物。類與類之間有多種連接方式(關系),如關聯(彼此間的連接)、依賴(一個類使用另一個類)和泛化(一個類是另一個類的特殊化)等。類與類之間的這些關系都體現在類圖的內部結構之中,通過類的屬性和操作反映出來。3.5UML的圖形符號類圖示例39

3.5.3對象圖對象圖是類圖的變體。兩者之間的差別在于對象圖表示的是類的對象實例,而不是真實的類。對象圖是類圖的一個范例,它及時具體地反映了系統執行到某處時系統的工作狀況。對象圖中使用的圖形符號與類圖幾乎完全相同,只不過對象圖中的對象名加了下畫線。對象圖沒有類圖重要,對象圖通常用來示例一個復雜的類圖,通過對象圖反映真正的實例是什么,它們之間可能具有什么樣的關系,幫助對類圖的理解。對象圖也可以用在通信圖中作為其一個組成部分,用來反映一組對象之間的動態通信關系。3.5UML的圖形符號40

3.5.4狀態圖狀態圖是對類所描述事物的補充說明,它顯示了類的所有對象可能具有的狀態,以及引起狀態變化的事件。事件可以是給它發送消息的另一個對象或者某個任務執行完畢(如指定時間到)。狀態的變化稱為轉移(Transition),一個轉移可以有一個與之相連的動作(Action),這個動作指明了狀態轉移時應該做些什么。并不是所有的類都有相應的狀態圖。狀態圖僅用于具有下列特點的類:具有若干個確定的狀態,類的行為在這些狀態下會受到影響且被不同的狀態改變。另外,也可以為系統描繪整體狀態圖。3.5UML的圖形符號狀態圖示例41

3.5.5活動圖

活動圖反映一個連續的活動流。活動圖常用于描述某個操作執行時的活動狀況。活動圖由各種動作狀態構成,每個動作狀態包含可執行動作的規范說明。當某個動作執行完畢,該動作的狀態就會隨之改變。這樣,動作狀態的控制就從一個狀態流向另一個與之相連的狀態。活動圖中還可以顯示決策、條件、動作狀態的并行執行、消息(被動作發送或接收)的規范說明等內容。3.5UML的圖形符號活動圖示例42

3.5.6時序圖

時序圖用來反映若干個對象之間的動態通信關系,也就是隨著時間的流逝,對象之間是如何交互的。時序圖主要反映對象之間已發送消息的先后次序,說明對象之間的交互過程,以及系統執行過程中,在某一具體位置將會有什么事件發生。

時序圖由若干個對象組成,對象之間傳遞的消息用消息箭頭表示,它們位于表示對象的垂直線條之間。時間說明和其他的注釋作為腳本放在圖的邊緣。3.5UML的圖形符號時序圖示例43

3.5.7通信圖

通信圖和時序圖的作用一樣,反映的也是通信協作。除了顯示消息變化(稱為交互)外,通信圖還顯示了對象和它們之間的關系(稱為上下文有關)。通信圖與時序圖的畫法一樣,圖中含有若干個對象及它們之間的關系,對象之間流動的消息用消息箭頭表示。通過識別消息標簽的語法,開發者可以看出對象間的通信,也可以跟蹤執行流程和消息的變化情況。3.5UML的圖形符號通信圖示例44

3.5.8組件圖組件圖用來反映代碼的物理結構。組件可以是源代碼、二進制文件或可執行文件組件。組件包含了邏輯類或邏輯類的實現信息,因此邏輯視圖與組件視圖之間存在著映射關系。組件之間也存在依賴關系,利用這種依賴關系可以很容易地分析一個組件的變化會給其他的組件帶來怎樣的影響。組件可以與公開的任何接口(如OLE/COM接口)一起顯示,也可以把它們組合起來形成一個包,在組件圖中顯示這種組合包。3.5UML的圖形符號組件圖示例45

3.5.9部署圖部署圖用來顯示系統中軟件和硬件的物理架構。通常部署圖中顯示實際的計算機和設備(用節點表示),以及各個節點之間的關系(還可以顯示關系的類型)。部署圖用來表示部署視圖,描述系統的實際物理結構。3.5UML的圖形符號部署圖示例46

3.5.10UML新特性3.5UML的圖形符號2005年修訂的UML2.0的新特性可分為以下五個主要方面:(1)語言定義精確程度提高。(2)改良的語言組織。(3)重點改進大規模的軟件系統模型性能。(4)對特定領域改進的支持。(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論