UML建模的要點總結

2020-12-12 51CTO

預備知識:

一、UML的特性與發展現狀

UML是一種Language(語言)

UML是一種Modeling(建模)Language

UML是Unified(統一)Modeling Language

1. 已進入全面應用階段的事實標準

2. 應用領域正在逐漸擴展,包括嵌入式系統建模、業務建模、流程建模等多個領域

3. 成為「產生式編程」的重要支持技術:MDA、可執行UML等

二、建模的目的與原則

1. 幫助我們按照實際情況或按我們需要的樣式對系統進行可視化;提供一種詳細說明系統的結構或行為的方法;給出一個指導系統構造的模板;對我們所做出的決策進行文檔化。

2. 僅當需要模型時,才構建它。

3. 選擇要創建什麼模型對如何動手解決問題和如何形成解決方案有著意義深遠的影響;每一種模型可以在不同的精度級別上表示;***的模型是與現實相聯繫的;單個模型是不充分的。對每個重要的系統***用一組幾乎獨立的模型去處理。

三、誰應該建模

1. 業務建模:以領域專家為主,需求分析人員是主力,系統分析員、架構師可參與

2. 需求模型:以需求分析人員為主,系統分析員是主力,領域專家提供指導,架構師和資深開發人員參與

3. 設計模型:高層設計模型以架構師為主,系統分析員從需求方面提供支持,資深開發人員從技術實現方面提供支持。詳細設計模型則以資深開發人員為主,架構師提供指導。

4. 實現模型:以資深開發人員(設計人員)為主,架構師提供總體指導。

5. 資料庫模型:以資料庫開發人員為主,架構師提供指導,資深開發人員(設計人員)予以配合。

正式開始

UML組成,三部分(構造塊、規則、公共機制),關係如下圖所示:

一、構造塊

1. 構造塊是對模型中***有代表性的成分的抽象

建模元素:UML中的名詞,它是模型基本物理元素。

行為元素:UML中的動詞,它是模型中的動態部分,是一種跨越時間、空間的行為。

分組元素:UML中的容器,用來組織模型,使模型更加的結構化。

注釋元素:UML中的解釋部分,和代碼中的注釋語句一樣,是用來描述模型的。

a. 建模元素

◆ 類(class)和對象(object)

◆ 接口(interface)

◆ 主動類(active class)

◆ 用例(use case)

◆ 協作(collaboration)

◆ 構件(component)

◆ 節點(node)

類(class)和對象(object)

類是對一組具有相同屬性、相同操作、相同關係和相同語義的對象的抽象。UML中類是用一個矩形表示的,它包含三個區域,最上面是類名、中間是類的屬性、最下面是類的方法。

對象則是類的一個實例 (object is a Instance of Class)

接口(interface)

接口是描述某個類或構件的一個服務操作集。

主動類(active class)

主動類實際上是一種特殊的類。引用它的原因,實際上是在開發中需要有一些類能夠起到啟動控制活動的作用。主動類是指其對象至少擁有一個進程或線程,能夠啟動控制活動的類。

用例(use case)

用例是著名的大師Ivar Jacobson首先提出的,現已經成為了面向對象軟體開發中一個需求分析的最常用工具。用例實例是在系統中執行的一系列動作,這些動作將生成特定執行者可見的價值結果。一個用例定義一組用例實例。

協作(collaboration)

協作定義了一個交互,它是由一組共同工作以提供某協作行為的角色和其他元素構成的一個群體,對於某個用例的實現就可以表示為一個協作。

構件(component)

在實際的軟體系統中,有許多要比「類」更大的實體,例如一個COM組件、一個DLL文件、一個JavaBeans、一個執行文件等等。為了更好地對在UML模型中對它們進行表示,就引入了構件(也譯為組件)。構件是系統設計的一個模塊化部分,它隱藏了內部的實現,對外提供了一組外部接口,在系統中滿足相同接口的組件可以自由地替換。

節點(node)

為了能夠有效地對部署的結構進行建模,UML引入了節點這一概念,它可以用來描述實際的PC機、印表機、伺服器等軟體運行的基礎硬體。節點是運行時存在的物理元素,它表示了一種可計算的資源,通常至少有存儲空間和處理能力。

b. 行為元素

交互(interaction)

是在特定語境中,共同完成某個任務的一組對象之間交換的信息集合。交互的表示法很簡單,就是一條有向直線,並在上面標有操作名。

狀態機(state machine)

是一個對象或交互在生命周期內響應事件所經歷的狀態序列。在UML模型中將狀態畫為一個圓角矩形,並在矩形內寫出狀態名稱及其子狀態。

c. 分組元素

對於一個中大型的軟體系統而言,通常會包含大量的類,因此也就會存在大量的結構事物、行為事物,為了能夠更加有效地對其進行整合,生成或簡或繁、或宏觀或微觀的模型,就需要對其進行分組。在UML中,提供了「包(Package)」來完成這一目標。

e. 注釋元素

結構事物是模型的主要構造塊,行為事物則是補充了模型中的動態部分,分組事物而是用來更好地組織模型,似乎已經很完整了。而注釋事物則是用來錦上添花的,它是用來在UML模型上添加適當的解釋部分。

2. 關係

UML模型的關係比較多,如下圖:

a. 關聯關係

關聯(Association)表示兩個類之間存在某種語義上的聯繫。關聯關係提供了通信的路徑,它是所有關係中最通用、語義最弱的。

在UML中,使用一條實線來表示關聯關係。在關聯關係中,有兩種比較特殊的關係:聚合和組合。

聚合:聚合(Aggregation)是一種特殊形式的關聯。聚合表示類之間的關係是整體與部分的關係。

如果發現「部分」類的存在,是完全依賴於「整體」類的,那麼就應該使用「組合」關係來描述。

組合:組合是聚合的變種,加入了一些重要的語義。也就是說,在一個組合關係中一個對象一次就只是一個組合的一部分,「整體」負責「部分」的創建和破壞,當「整體」被破壞時,「部分」也隨之消失。聚合就像汽車和車胎,汽車壞了胎還可以用。組合就像公司和下屬部門,公司倒閉了部門也就不存在了!

b. 泛化、實現與依賴

泛化關係描述了一般事物與該事物中的特殊種類之間的關係,也就是父類與子類之間的關係。
實現關係是用來規定接口和實現接口的類或組件之間的關係。接口是操作的集合,這些操作用於規定類或組件的服務。

有兩個元素X、Y,如果修改元素X的定義可能會引起對另一個元素Y的定義的修改,則稱元素Y依賴(Dependency)於元素X。

二、規則

命名:也就是為事物、關係和圖起名字。和任何語言一樣,名字都是一個標識符

範圍:與類的作用域相似.

可見性:Public,Protected,Private,Package

三、UML公共機制

1. 規格描述

在圖形表示法的每個部分後面都有一個規格描述(也稱為詳述),它用來對構造塊的語法和語義進行文字敘述。這種構思,也就使可視化視圖和文字視圖的分離。

2. UML修飾與通用劃分

在為了更好的表示這些細節,UML中還提供了一些修飾符號,例如不同可視性的符號、用斜體字表示抽象類。

UML通用劃分:

◆ 類與對象的劃分:類是一種抽象,對象是一個具體的實例

◆ 接口與實現的分離:接口是一種聲明、是一個契約,也是服務的入口;實現則是負責實施接口提供的契約

3. UML擴展機制

構造型:在實際的建模過程中,可能會需要定義一些特定於某個領域或某個系統的構造塊
標記值則是用來為事物添加新特性的。標記值的表示方法是用形如「{標記信息}」的字符串
約束是用來增加新的語義或改變已存在規則的一種機制(自由文本和OCL兩種表示法)。約束的表示法和標記值法類似,都是使用花括號括起來的串來表示,不過它是不能夠放在元素中的,而是放在相關的元素附近。

4. UML視圖和圖

附:開發過程與圖的對應關係


【責任編輯:

夏宗繁

TEL:(010)68476606】

點讚 0

相關焦點

  • UML建模中繪製UML用例圖行之有效的辦法
    UML建模中繪製UML用例圖行之有效的辦法 UML用例圖在建模過程中使用非常頻繁,你對UML用例圖的畫法是否熟悉呢,這裡就向大家簡單介紹一下,希望本文的介紹對你有所幫助。
  • UML編程技巧 UML建模工具Rose解析
    本節和大家一起學習一下UML編程技巧中UML建模工具Rose的相關內容,主要包括UML概述,UML建模工具Rose組成等內容。相信通過本節的學習你對UML建模工具Rose一定會有全面的認識。
  • 產品經理必看:常用的UML建模詳解
    翻譯過來就是統一建模語言。它對產品經理最主要的作用是用於需求分析中更好的梳理邏輯,同時能夠提升溝通效率。UML主要包括圖表中的十一種,那在本次的介紹中,只講解類圖、構件圖、部署圖、活動圖、狀態機圖、順序圖、用例圖。
  • UML科普文,一文章掌握14種UML圖!
    UML是Unified Model Language的縮寫,中文是統一建模語言,是由一整套圖表組成的標準化建模語言。為什麼要用UML?通過使用UML使得在軟體開發之前,對整個軟體設計有更好的可讀性,可理解性,從而降低開發風險。同時,也能方便各個開發人員之間的交流。
  • 詳解:UML類圖符號、各種關係說明以及舉例
    uml中用帶箭頭的虛線表示Dependency關係,箭頭指向被依賴元素。泛化(Generalization):通常所說的繼承(特殊個體 is kind of 一般個體)關係,不必多解釋了。uml中用帶空心箭頭的實線線表示Generalization關係,箭頭指向一般個體。
  • 解析九大UML建模圖形用法
    在學習UML建模工具的過程中,經常會遇到UML建模圖形問題,這裡和大家分享一下九種UML建模圖形的相關知識。相信通過本節的學習你對UML建模圖形一定會有全面的認識。簡單例析UML建模圖形UML包括了一些可以相互組合圖表的圖形元素。
  • 軟考備考之UML九種建模圖
    UML九種建模圖:用例圖、類圖、對象圖、順序圖、協作圖、狀態圖、活動圖、組件圖、配置圖。又可以靜動分為靜態視圖和動態視圖。靜態圖分為:用例圖,類圖,對象圖,包圖,構件圖,部署圖。動態圖分為:狀態圖,活動圖,協作圖,序列圖。
  • 術語彙編 解析UML動態建模機制
    本文和大家重點討論一下UML動態建模機制的概念,UML動態建模語言以靜態建模機制為基礎,用例間存在兩種關係:當一個用例與另一個用例相似,但所做的動作多一些,就可以用到擴展關係;當有一大塊相似的動作存在於幾個用例,又不想重複描述該動作時,就可以用到使用關係。
  • UML建模中的9種圖
    一、作為一種建模語言,UML的定義包括UML語義和UML表示法兩個部分。二、標準建模語言UML可以由下列5類圖來定義。
  • 圖文並茂,詳細講解UML類圖符號、各種關係說明以及舉例
    uml中用帶箭頭的虛線表示Dependency關係,箭頭指向被依賴元素。泛化(Generalization):通常所說的繼承(特殊個體 is kind of 一般個體)關係,不必多解釋了。uml中用帶空心箭頭的實線線表示Generalization關係,箭頭指向一般個體。
  • 解析UML的靜態建模機制
    任何建模語言都以靜態建模機制為基礎,標準建模語言UML也不例外。UML的靜態建模機制包括用例圖(Use case diagram)、類圖(Class diagram)、對象圖(Object diagram )、包(Package)、構件圖(Component diagram)和配置圖(Deployment diagram)。
  • 解析UML時序圖的四大元素
    3、激活期(Activation)激活期代表uml時序圖中的對象執行一項操作的時期,在時序圖中每條生命線上的窄的矩形代表活動期。4、消息(Message)消息是定義交互和協作中交換信息的類,用於對實體間的通信內容建模,信息用於在實體間傳遞信息。
  • 解析UML的動態建模機制
    這四個圖均可用於系統的動態建模,但它們各自的側重點不同,分別用於不同的目的。下面對如何正確使用這幾個圖做一簡單的總結,在實際的建模過程中要根據具體情況靈活運用這些建議。 首先,不要對系統中的每個類都畫狀態圖。儘管這樣做很完美,但太浪費精力,其實你可能只關心某些類的行為。正確的做法是:為幫助理解類而畫它的狀態圖。狀態圖描述跨越多個用例的單個對象的行為,而不適合描述多個對象間的行為合作。
  • 軟考中高項信息系統項目管理師考試要點(2)
    12. uml(統一建模語言):結構圖(顯示建模系統的靜態結構):類圖、組合結構圖、構件圖、部署圖、對象圖和包圖行為圖(顯示系統中對象的動態行為):活動圖、交互圖、用例圖和狀態機圖13. soa(面向服務的體系結構):將應用程式的不同功能單元
  • 收藏系列-UML建模之時序圖(Sequence Diagram)
    Focus of Control)消息(Message)自關聯消息(Self-Message)Combined Fragments    三、時序圖實例分析(Sequece Diagram Example Analysis)時序圖場景時序圖實例時序圖實例分析       四、總結
  • UML動態建模機制中合作圖和活動圖用法解析
    本文和大家重點討論一下UML動態建模機制中的合作圖和活動圖,合作圖(CollaborationDiagram)用於描述相互合作的對象間的交互關係和連結關係,而活動圖的應用非常廣泛,它既可用來描述操作(類的方法)的行為,也可以描述用例和對象內部的工作過程。
  • 需求分析——掌握UML建模語言的用例圖
    在這節課中,我們將使用UML建模語言的用例圖對人脈V1.0系統的角色及角色行為建立系統功能模型。在建模之前,先簡單介紹一下什麼是UML建模語言。UML是面向對象開發的建模語言,由OMG(OMG是一個世界性的計算機標準協會),該協會致力於發展和傳播面向對象系統,OMG在1997年公布了UML建模語言標準。
  • 深入剖析統一建模語言UML中的五類圖
    深入剖析統一建模語言UML中的五類圖 建模語言有很多種,你熟悉的有哪些呢,這就向大家介紹統一建模語言UML,歡迎對UML感興趣的朋友們一起來關注,希望通過本文的介紹,你對統一建模語言UML內容有清晰的認識。
  • 程序猿都應學習的語言:看 25 張圖學 UML
    ),統一建模語言(UML)是軟體工程領域中一種通用的開發建模語言,旨在提供一種可視化系統設計的標準方法。UML目前的官方組織是https://www.uml.org/宏觀看UMLUML用圖去描述一個軟體系統
  • 兩大開源UML建模工具UMLet和ArgoUML用法解析
    兩大開源UML建模工具UMLet和ArgoUML用法解析 UML建模工具大家應該比較熟悉了,那麼開源UML建模工具你是否了解,本文就向大家介紹兩款開源UML建模工具:UMLet和ArgoUML,希望本文的介紹對你的學習有所幫助。