<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-57  評論-117  文章-1  trackbacks-0

     

    UML是一種通用的建模語言,其表達能力相當的強,不僅可以用于軟件系統的建模,而且可用于業務建模以及其它非軟件系統建模。UML綜合了各種面向對象方法與表示法的優點,至提出之日起就受到了廣泛的重視并得到了工業界的支持。

    本章將按視圖、模型元素、圖以及公共機制依次介紹UML的構造和基本元素,以使得讀者對UML有一個總體了解,其具體細節將在后續章節中詳細描述。

     

    畫圖工具:eDraw、jude

    image  image

    歡迎大家繼續支持和關注我的博客:

    http://hoojo.cnblogs.com

    http://blog.csdn.net/IBM_hoojo

    也歡迎大家和我交流、探討IT方面的知識。

    email:hoojo_@126.com

    如果你覺得本文不錯的話,請你點擊屏幕右下方的image 。如果你以后會用到這篇文章的或覺得以后要重新翻閱的話,你可以點擊屏幕右下角的image 。如果你覺得我的博文不錯或是想在第一時間看到我的動態的話,你可以點擊屏幕右下角image 。如果你想說點什么的話,你可以點擊屏幕右下方的image 。如果你都點過了,那真的太謝謝你了,兄弟太支持了。此時,或許你可以點擊image 按鈕,然后看看博文的導航繼續瀏覽其他文章。

     

    1. UML的組成

    UML由視圖(View)、圖(Diagram)、模型元素(Model Element)和通用機制(General Mechanism)等幾個部分組成。

    a) 視圖(View): 是表達系統的某一方面的特征的UML建模元素的子集,由多個圖構成,是在某一個抽象層上,對系統的抽象表示。

    b) 圖(Diagram): 是模型元素集的圖形表示,通常是由弧(關系)和頂點(其他模型元素)相互連接構成的。

    c) 模型元素(Model Element):代表面向對象中的類、對象、消息和關系等概念,是構成圖的最基本的常用概念。

    d) 通用機制(General Mechanism):用于表示其他信息,比如注釋、模型元素的語義等。另外,UML還提供擴展機制,使UML語言能夠適應一個特殊的方法(或過程),或擴充至一個組織或用戶。

    uml 構成

     

    2. UML視圖的分類

    UML是用來描述模型的,用模型來描述系統的機構或靜態特征,以及行為或動態特征。從不同的視角為系統構架建模,形成系統的不同視圖。

    image

    (1) 用例視圖(Use Case View),強調從用戶的角度看到的或需要的系統功能,是被稱為參與者的外部用戶所能觀察到的系統功能的模型圖。

    (2) 邏輯視圖(Logical View),展現系統的靜態或結構組成及特征,也稱為結構模型視圖(Structural Model View)或靜態視圖(Static View)。

    (3) 并發視圖(Concurrent View),體現了系統的動態或行為特征,也稱為行為模型視圖(Behavioral Model View)或動態視圖(Dynamic View)。

    (4) 組件視圖(Component View),體現了系統實現的結構和行為特征,也稱為實現模型視圖(Implementation Model View)。

    (5) 配置視圖(Deployment View),體現了系統實現環境的結構和行為特征,也稱為環境模型視圖(Environment Model View)或物理視圖(Physical View)。

     

    視圖是由圖組成的,UML提供9種不同的圖:

    image

    (1) 用例圖(Use Case Diagram),描述系統功能;

    (2) 類圖(Class Diagram),描述系統的靜態結構;

    (3) 對象圖(Object Diagram),描述系統在某個時刻的靜態結構;

    (4) 組件圖(Component Diagram),描述了實現系統的元素的組織;

    (5) 配置圖(Deployment Diagram),描述了環境元素的配置,并把實現系統的元素映射到配置上;

    (6) 狀態圖(State Diagram),描述了系統元素的狀態條件和響應;

    (7) 時序圖(Sequence Diagram),按時間順序描述系統元素間的交互;

    (8) 協作圖(Collaboration Diagram),按照時間和空間順序描述系統元素間的交互和它們之間的關系;

    (9) 活動圖(Activity Diagram),描述了系統元素的活動;

    建模方法由建模語言和建模過程兩部分構成。其中建模語言是用來表述設計方法的表示法,建模過程是對設計中所應采取的步驟的描述。UML是一種建模語言,它在很大程度上獨立于建模過程。在實際建模中,建模人員最好把UML用于以用案驅動的、以體系機構為中心的、迭代的和漸增式的開發過程中。

    一般而言,軟件系統的體系結構給出了軟件系統的組織、組成系統的構造元素及其接口的選擇、系統的行為和體系結構風格等信息。也就是說,它不僅關心系統的結構和行為等功能性需求,而且也涉及系統的性能、易理解性、易復用性等非功能性需求。如下圖所示,UML利用用戶模型視圖、結構模型視圖、行為模型視圖、實現模型視圖和環境模型視圖來描述軟件系統的體系結構。

    根據它們在不同架構視圖的應用,可以把9種圖分成:

    image

    (1) 用戶模型視圖:用例圖;

    (2) 結構模型視圖:類圖和對象;

    (3) 行為模型視圖:狀態圖、時序圖、協作圖和活動圖(動態圖);

    (4) 實現模型視圖:組件圖;

    (5) 環境模型視圖:配置圖。

    用戶模型視圖由專門描述最終用戶、分析人員和測試人員看到的系統行為的用案組成,它實際上是從用戶角度來描述系統應該具有的功能。用戶模型視圖所描述的系統功能依靠外部用戶或者另外一個系統來激活,為用戶或者另一系統提供服務,從而實現用戶或另一系統與系統的交互。系統實現的最終目標是提供用戶模型視圖中所描述的功能。在UML中,用戶模型視圖是由用案圖組成

    結構模型視圖描述組成系統的類、對象以及它們之間的關系等靜態結構,用來支持系統的功能需求,即描述系統內部功能是如何設計的。結構模型視圖由類圖和對象圖構成,主要供設計人員和開發人員使用

    行為模型視圖主要用來描述形成系統并發與同步機制的線程和進程,其關注的重點是系統的性能、易伸縮性和系統的吞吐量等非功能性需求。行為模型視圖利用并發來描述資源的高效使用、并行執行和處理異步事件。除了講系統劃分為并發執行的控制線程之外,行為模型還必須處理通信和這些線程及進程之間的同步問題。行為模型視圖主要供系統開發人員和系統集成人員使用,它由序列圖、協作圖、狀態圖和活動圖組成。

    實現模型視圖用來描述系統的實現模塊它們之間的依賴關系以及資源分配情況。這種視圖主要用于系統的配置管理,它是由一些獨立的構件組成的。實現模型視圖由構件圖組成。其中構件是代碼模塊,不同類型的代碼模塊形成不同的構件。實現模型視圖主要供開發人員使用。

    環境模型視圖用來描述物理系統的硬件拓撲結構。例如,系統中的計算機和設備的分布情況以及它們之間的連接方式,其中計算機和設備統稱為節點。在UML中環境模型視圖是由部署圖來表示的。系統部署圖描述了系統構件在節點上的分布情況,即用來描述軟件構件到物理節點的映射。部署圖主要供開發人員、系統集成人員和測試人員使用。

    上面每一種視圖反映了系統的一個特定方面,不同人員可以單獨的使用其中每一種視圖,從而可以關注特定的體系結構問題。但在通常情況下,由于系統的最終目標是提供用戶模型視圖中描述的功能以及其它一些非功能性需求,因此,用戶模型視圖是其它視圖的核心基礎,其它視圖的構造都依賴與用戶模型視圖中所描述的類容。

    細心的讀者已經發現,每一種UML圖都是由多個圖組成的,每一種圖都是體系結構某個側面的表示,各種圖實際上是一致的,所有的圖在一起組成了系統的完整視圖。如下圖所示,UML中總共提供了用案圖、類圖、對象圖、序列圖、協作圖、狀態圖、活動圖、構建圖和部署圖9種圖。根據它們描述的是系統的靜態結構還是動態行為,可以將它們分為靜態圖和動態圖兩類。再進一步介紹這9中UML圖時,先了解下什么是模型元素:

    image

     

    3. UML的建模機制

    UML有兩套建模機制:靜態建模機制和動態建模機制。靜態建模機制包括用例圖、類圖、對象圖、包、組件圖和配置圖。動態建模機制包括狀態圖、時序圖、協作圖、活動圖。

    (1) 用例圖:用例的可視化工具,它提供計算機系統的高層次的用戶視圖,表示以外部活動者的角度來看系統將是怎樣使用的。

    用例圖(用案圖)是用于描述一組用案,參與者以及它們之間的連接關系。一個用案圖描述了一組動作序列,每一個序列表示系統的外部設施(系統的參與者)與系統本身的交互。從一個特定參與者的角度看,一個用案完成對其有價值的工作。如圖2.5所示,用案圖僅僅是從參與者使用系統的角度來描述系統中的信息,即站在系統外部查看系統應該具有什么功能,而并不描述該功能在軟件內部是如何實現的。用案可以應用于整個系統,也可以應用于系統的一個部分,包括子系統、單個的類或者接口。通常,用案不僅代表這些元素所期望的行為,而且還可以把這些元素用作開發過程中測試用案的基礎。

    用例圖包括以下3方面內容:

    (a) 用例(Use Case)

    (b) 參與者(Actor)

    (c) 依賴、泛化和關聯關系

    用例圖示例:

    clip_image012

    (2) 類圖:描述類、接口、協作以及它們之間關系的圖。

    類圖是用于描述一組類、接口、協作以及它們之間的靜態關系。在面向對象系統的建模中,類圖是最為常用的圖,它用來闡明系統的靜態結構。事實上類是對一組具有相同屬性、操作、關系和語義的對象的描述,其中對類的屬性和操作進行描述時的一個最重要的細節就是它的可見性。

    類可以以多種形式連接,例如關聯、泛化、依賴和實現等。一個典型的系統中通常有若干個類圖。一個類圖不一定要包含系統中所有的類,一個類可以加到幾個類圖中。

    類圖示例:

    clip_image014

    (3) 對象圖:表示在某一時間上一組對象以及它們之間的關系的圖。對象圖可以被看做是類圖在系統某一時刻的實例。

    對象圖是類圖的實例,用來描述特定運行時刻一組對象之間的關系。也就是說,對象用于描述交互的靜態部分,它由參與協作的有關對象組成。但不包括在對象之間傳遞的任何消息。

    在創建對象圖時,建模人員并不需要用單個的對象圖來描述系統中的每一個對象。事實上,絕大多數系統中都會包含成百上千的對象。用對象來描述系統的所有對象以及它們之間的關系一般是不太現實的。因此,建模人員可以選擇所感興趣的對象極其之間的關系來描述。

    對象圖中所使用的符號和類圖中使用的符號幾乎完全相同,區別僅在于對象圖的對象名帶有下劃線,而且類與類之間關系的所有的實例都要畫出來。

    clip_image016

    (4) 組件圖:描述軟件組件以及組件之間的關系,組件本身是代碼的物理模塊,組件圖則顯示了代碼的結構。

    組件圖(構件圖)是用于描述一組構件之間的組織和依賴關系,用于建模系統的靜態實現視圖。構件可以是可執行程序集、庫、表、文件和文檔等,它包含了邏輯類或者邏輯類的實現信息,因此結構模型視圖和實現模型視圖之間存在映射關系。

    構建圖中也可以包括包或子系統,它們都是用于將模型元素組成較大的組塊。

    組件圖例圖:

    OrderComponent

    (5) 配置圖:描述系統硬件的物理拓撲結構以及在此結構上執行的軟件。配置圖可以顯示計算節點的拓撲結構和通信路徑、結點上運行的軟件組件、軟件組件包含的邏輯單元(對象、類)等。配置圖常常用于幫助理解分布式系統。

    配置圖(部署圖)用來描述系統運行是進行處理的節點以及在節點上活動的構件的配置。部署圖用來對系統的環境模型視圖進行建模。在大多數情況下,部署圖用來描述系統硬件的擴普結構。

    在UML中,建模人員可以用類圖來描述系統的靜態結構,可以用序列圖、協作圖、狀態圖、活動圖來描述系統的動態行為,而用部署圖來描述軟件所執行所需的處理器和設備的拓撲結構。

    部署圖配置圖

    (6) 狀態圖:通過類對象的生命周期建立模型來描述對象隨時間變化的動態行為。

    狀態圖實際上是一種由狀態、變遷、事件和活動組成的狀態機。狀態圖描述從狀態到狀態的控制流,常用于系統的動態特性建模。在大多數情況下,它用來對反應型對象的行為建模。

    在UML中,狀態圖可以用來對一個對象按事件排序的行為建模。一個狀態圖是強調從狀態到狀態的控制流的狀態機的簡單表示。一般而言,狀態圖是對類所描述的設施的補充說明,它描述了類的所有對象可能具有的狀態以及引起狀態變化的事件。

    OrderState

    (7) 時序圖:交互圖描述了一個交互,它由一組對象和它們之間的關系組成,并且還包括在對象間傳遞的信息。交互圖表達對象之間的交互,是描述一組對象如何協作完成某個行為的模型化工具。

    序列圖和協作圖統稱為交互圖。其中,序列圖用來描述對象之間消息發送的先后次序,闡明對象之間的交互過程以及在系統執行過程中的某一具體時刻將會發生什么事件。序列圖是一種強調時間順序的交互圖,其中對象沿橫軸方向排列,消息沿縱軸方向排列。

    Product-seq[6]

    序列圖中的對象生命線是一條垂直的虛線,它表示一個對象在一段時間內存在。由于序列圖中大多數對象都存在于整個交互過程中,因此這些對象全部排列在圖的頂部,它們的生命線從圖的頂部畫到圖的底部。每個對象的下方有一個矩形條,它與對象的生命線重疊,它表示該對象的控制焦點。序列圖中的消息可以有序號,但由于這種圖上的消息已經從縱軸上按時間順序排序,因此消息序號通常予以省略。

    (8) 協作圖:包含類元角色和關聯角色,而不僅僅是類元和關聯。協作圖強調參加交互的各對象的組織。協作圖只對相互間有交互作用的對象和這些對象間的關系建模,而忽略了其他對象和關聯。協作圖也是一種交互圖,它強調收發消息的對象的組織結構。

    協作圖和序列圖是協作的,它們可以互相轉換。在多數情況下,協作圖主要對單調的、順序的控制流建模,但它也可以用來對包括迭代和分支在內的復雜控制流進行建模。

    一般而言,建模人員可以創建多個協作圖,其中一些是主要的,另外一些是可選擇的路徑或者異常條件。建模人員可以用包來組織這些協作圖,并給每個圖起一個合適的名字,以便與其它圖區別開。

    clip_image026

    (9) 活動圖:用于展現參與行為的類的活動或動作。

    活動圖是狀態圖的一種特殊情況,其中幾乎所有或大多數狀態都處于活動狀態,而且幾乎所有或者大多數變遷都是由源狀態中活動的完成觸發的。活動圖本質上是一種流程圖,它描述了從活動到活動的控制流。

    可以把活動圖看作是新樣的交互圖,但交互圖觀察的是傳遞消息的對象,而活動圖觀察到的是對象之間傳送的消息。盡管兩者在語義上的區別很細微,但它們使用不同的方式來看系統的。

    GoShopping

    如果你覺得本文不錯的話,請你點擊屏幕右下方的image 。如果你以后會用到這篇文章的或覺得以后要重新翻閱的話,你可以點擊屏幕右下角的image 。如果你覺得我的博文不錯或是想在第一時間看到我的動態的話,你可以點擊屏幕右下角image 。如果你想說點什么的話,你可以點擊屏幕右下方的image 。如果你都點過了,那真的太謝謝你了,兄弟太支持了。此時,或許你可以點擊image 按鈕,然后看看博文的導航繼續瀏覽其他文章。

    最后,歡迎大家繼續支持和關注我的博客:

    http://hoojo.cnblogs.com

    http://blog.csdn.net/IBM_hoojo

    也歡迎大家和我交流、探討IT方面的知識。



    作者:hoojo
    出處:
    blog:http://blog.csdn.net/IBM_hoojo
             http://hoojo.cnblogs.com
    本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


    版權所有,轉載請注明出處 本文出自:
    分享道版權所有,歡迎轉載,轉載請注明出處,謝謝
    posted on 2013-08-30 16:52 hoojo 閱讀(2249) 評論(2)  編輯  收藏 所屬分類: Design PatternOthersRCP【富客戶端技術】RIA 【富互聯網程序】UML

    評論:
    # re: 軟件設計之UML&mdash;UML的構成[上] 2013-09-03 20:39 | tb
    uml 學得不錯  回復  更多評論
      
    # re: 軟件設計之UML&mdash;UML的構成[上] 2013-09-08 11:09 | 零柒鎖業
    原有團隊將專注于阿里巴巴集團公益事業的傳播  回復  更多評論
      
    主站蜘蛛池模板: 91九色老熟女免费资源站 | 亚洲真人日本在线| 国产精品亚洲综合久久| 97国产免费全部免费观看| 亚洲天堂男人天堂| 免费看又黄又无码的网站| 久久亚洲国产精品成人AV秋霞 | 精品久久香蕉国产线看观看亚洲| A国产一区二区免费入口| 亚洲自偷自偷图片| 久久国产乱子伦精品免费看| 久久精品国产精品亚洲蜜月| 无码国产精品一区二区免费模式 | 久久久久久亚洲av成人无码国产| 午夜精品射精入后重之免费观看 | 美女18一级毛片免费看| 久久久久亚洲AV无码专区网站| 国产V片在线播放免费无码| 国产精品国产亚洲精品看不卡| 两个人看www免费视频| 亚洲国产精品久久久久婷婷软件| 亚洲第一网站免费视频| 亚洲区日韩精品中文字幕| 国产成人精品高清免费| eeuss草民免费| 亚洲电影一区二区三区| 最近最好的中文字幕2019免费 | 成人网站免费观看| 免费的黄网站男人的天堂| 亚洲国产精品无码久久SM | 全亚洲最新黄色特级网站 | 中文字幕视频在线免费观看| 亚洲人成依人成综合网| 女人18毛片水真多免费看| v片免费在线观看| 亚洲色图校园春色| 四虎永久精品免费观看| 无码成A毛片免费| 黄色三级三级三级免费看| 亚洲国产综合专区电影在线| 日韩高清在线免费看|