天天看點

UML基礎入門

UML基礎入門

        最近打算學習設計模式,但是一般都帶有UML類圖,是以學習了以下UML。主要學習類圖

一、UML定義

        UML(Unified Modeling Language統一模組化語言)是一種圖形化的語言,它可以幫助我們在OOAD(面向對象分析和設計)過程中辨別元素、構模組化塊、分析過程并可通過文檔說明系統中的重要細節。

二、UML圖的分類

        靜态模型(static model),建立并記錄一個系統的靜态特征,反映一個軟體系統基礎、固定的架構結構。靜态模組化包括:用例圖(Use Case Diagram)、類圖(Class Diagram)、對象圖(Object diagram)、元件圖(Component diagram)、部署圖(Deployment diagram)。

        動态模型(dynamic model,用以展示系統的行為。動态模組化包括:時序圖(Sequence diagram)、協作圖(Collaboration diagram)、狀态圖(State Chart Diagram)、活動圖(Activity Diagram)。

三、動手畫圖

        畫圖之前,要去下載下傳一個StarUML,下載下傳位址:http://staruml.io/download ,網上破解的方式有很多,可以自行baidu。(不破解也影響使用)。

     1、用例圖(Use Case Diagram):展示系統的核心功能及與其互動的使用者使用者被稱之為“活動者”(Actor),用例使用橢圓表示。下圖表示Admin具有增删改查的權限,guest隻具有查詢權限。

UML基礎入門

    2、類圖(Class Diagram):表現類的特征,類圖描述了多個類、接口的特征,以及對象之間的協作與互動。由一個或多個矩形區域構成,内容包括:類型(類名)、屬性(可選)、 操作(方法)(可選)。

    ①首先先畫一個簡單的Person類,最上面表示類名,中間的是屬性,下面的是方法。+表示public,#表示protected,-表示private,~表示package。而方法的傳回值類型是放在方法後面表示 method():傳回值類型 ,入參也是名稱在前,類型在後。

UML基礎入門

UML基礎入門

    ②抽象類:抽象的名稱是斜體的。

UML基礎入門

    ③接口

UML基礎入門

一般化Generalization(繼承)

        指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,并可以增加它自己的新功能的能力,繼承是類與類或者接口與接口之間最常見的關系;在Java中此類關系通過關鍵字extends明确辨別,在設計時一般沒有争議性;

UML基礎入門

關聯Association

        實體之間的一個結構化關系表明對象是互相連接配接的。箭頭是可選的,它用于指定導航能力。如果沒有箭頭,暗示是一種雙向的導航能力。

UML基礎入門

⑥類圖之間的關系之聚合Aggregation關系

        聚合是關聯關系的一種特例,他展現的是整體與部分、擁有的關系,即has-a的關系,此時整體與部分之間是可分離的,他們可以具有各自的生命周期,部分可以屬于多個整體對象,也可以為多個整體對象共享;比如計算機與CPU、公司與員工的關系等;表現在代碼層面,和關聯關系是一緻的,隻能從語義級别來區分; 

UML基礎入門

⑦類圖之間的關系之組合Composition(合成)關系

        組合也是關聯關系的一種特例,他展現的是一種contains-a的關系,這種關系比聚合更強,也稱為強聚合;他同樣展現整體與部分間的關系,但此時整體與部分是不可分的,整體的生命周期結束也就意味着部分的生命周期結束;比如你和你的四肢;表現在代碼層面,和關聯關系是一緻的,隻能從語義級别來區分; 

UML基礎入門

⑧類圖之間的關系之依賴Dependency關系

        可以簡單的了解,就是一個類A使用到了另一個類B,而這種使用關系是具有偶然性的、臨時性的、非常弱的,但是B類的變化會影響到A;比如某人要過河,需要借用一條船,此時人與船之間的關系就是依賴;表現在代碼層面,為類B作為參數被類A在某個method方法中使用;

UML基礎入門

3、對象圖(Object diagram)

UML基礎入門

4、組建圖(Component diagram):表現軟體元件之間的關系

UML基礎入門

5、部署圖(Deployment diagram):表現用于部署軟體應用的實體裝置資訊

UML基礎入門

6、時序圖(Sequence diagram):捕捉一段時間範圍内多個對象之間的互動資訊,強調消息互動的時間順序。