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

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

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

    隨筆-94  評論-56  文章-3  trackbacks-0

    UML ------Unified Modeling Language (統一建模語言)

    UML誕生于1997年,綜合了當時已經存在的多種面向對象的建模語言而形成的圖標式軟件設計語言.主要功能如下:
    1.可視化功能:
    可視化將促進對問題的理解和解決,方便設計人員彼此交流和溝通.
    可以較容易發現設計草圖中可能的邏輯錯誤,保證最后完成的軟件能夠按要求運行,避免和減少意外發生.
    2.說明功能:
    是一個通用的,精確的,沒有歧義的對系統進行說明的機制.
    3.建造功能:
    UML有自己的語法規則,使得人們可以使用建模工具軟件對一個系統設計模型加以解釋,并將設計模型映射到一種計算機語言(如JAVA)上.
    通過UML可以看到系統總體的圖像,可以很容易發現可復用的代碼,從而使系統更有效率.
    4.建文檔功能:
    使用UML進行設計可以同時產生系統設計文檔.
    新加入項目的程序員可以借助UML圖形文檔資料很快熟悉開發中的系統.

    UML包括一系列的圖:
    1.結構型圖:?
    ??????類圖
    ??????對象圖
    ??????構件圖
    ??????部署圖
    2.行為型圖:
    ??????使用案例圖
    ??????時序圖
    ??????合作圖
    ??????狀態圖
    ??????活動圖
    所有這些圖中,類圖,使用案例圖時序是最有用的.

    類圖,是顯示出類和接口以及它們之間的靜態結構和關系的圖.如下:

    ----------------------------
    ??????????Animal
    ----------------------------
    -age:int
    -weight:double
    ----------------------------
    +Animal
    +Animal
    +grow:void
    +getAge:int
    +getWeight:double
    #die:void
    ----------------------------
    name:String

    可見,類圖是分層結構,最上面是類名層,往下是屬性層,方法層,性質層.
    類名層不能省略,其他層都可以省略.
    如果類名是正字體,表明類是具體的,如果是斜字體,表明類是抽象的.
    注意屬性或方法的左邊的符號,
    ???如果是加號(+), 表示它是 public;
    ???如果是減號(-),?表示它是 private;
    ???如果是井號(#), 表示它是 protected;
    如果在方法下面有下劃線,表明這是個靜態方法.
    性質層是由一個屬性(內部變量),一個get方法,一個set方法組成的結構.

    上面的UML圖可以解析成JAVA代碼,如下:

    public ? class ?Animal?{
    ?
    // 私有屬性
    ? private ? int ?age;
    ?//私有屬性
    ?
    private ? double ?weight;
    ?//私有屬性
    ?
    private ?String?name;
    ?
    // 公開默認構造子
    ? public ?Animal()?{
    ??
    //
    ?}
    ?
    // 公開構造子
    ? public ?Animal(String?name)?{
    ??
    this .name? = ?name;
    ?}
    ?
    // 公開方法
    ? public ? void ?grow()?{
    ??
    //
    ?}
    ?//公開方法
    ?
    public ? int ?getAge()?{
    ??
    //
    ?}
    ?//公開方法
    ?
    public ? double ?getWeight()?{
    ??
    //
    ?}
    ?
    // 保護方法
    ? protected ? void ?die()?{
    ??
    //
    ?}
    ?
    // 公開方法
    ? public ?String?getName()?{
    ??
    return ?name;
    ?}
    ?//公開方法
    ?
    public ? void ?setName(String?name)?{
    ??
    this .name? = ?name;
    ?}
    }


    類圖 中的

    ?

    1 ? 一般化 系( Generalization

    ?

    系,接口與接口 系,或者 接口的 實現關 系。

    ?

    方向與 承相反。從子 指向父 對應關鍵 extends implements.

    ?

    2 ? 關聯關 ( Association)

    ?

    接,一個 可以知道另一個 的屬性和方法。

    ?

    關聯 實線 + 來表示。

    ?

    關聯 可以雙向,也可以是 向的。雙向 關聯 使用兩個箭 或者沒有箭 關聯 有一個箭 ,表示 關聯 的方向。一般多使用 關聯 ,不鼓勵使用雙向 關聯

    ?

    Java 中, 關聯 過實 實現 的。在一個 A 中,出 B 量,體 了兩個 關聯關 系。可以用一個箭 指向 B 關聯 來表示它 系。 關聯 都有個名字。而且 可以有基數,表示 一端的 可以有幾個 例。 n..m 表示一個取

    ?

    關聯關 系可以 確定 聚合 系或合成 系。

    關聯關 系中兩個 類處 于同一 次。

    ?

    3 ? 聚合 ( Aggregation)

    ?

    聚合 系是更 關聯關 系。聚合是整體和部分之 系。聚合 系中的兩個 系是不平等的,是整體和部分的 系。也是通 過實 實現 的。一般的 關聯 和聚合 系需要通 兩個 邏輯關 系來區分。如果不確定,就將聚合 置成 關聯關 系。

    ?

    表示方法:空心菱形+ 實線 +箭 ,箭 指向部分。 整體的一端用空心菱形表示,部分的一端用箭 表示。

    ?

    4 ? 合成 系( Comp os ition

    ?

    合成 系是更 的聚合 系。合成 系不能共享。表示部分的 只能與一個表示整體的 建立合成 系。

    ?

    代表整體的 象要 負責 代表部分的 象的生命周期。 負責 將代表部分的 象湮 掉。也可以將代表部分的 傳遞給 另一個 象,由后者 負責 象的生命周期。

    ?

    表示方法: 心菱形+ 實線 +箭 整體的一端用 心菱形表示,部分的一端用箭 表示。如果不能確定 合成 系,可以將它 聚合 系,甚至是 關聯關 系。

    ?

    5 賴關 系( Dependency

    ?

    賴總 向的。表示一個 于另一個 的定 。與 關聯 不同是,此 沒有 類實 例作 屬性,而是將 B 例作 方法的參數 入的。

    ?

    表示方法:虛 +箭 ,箭 指向作參數的 一方。

    ?

    一般,在 Java 中表示 局域 量、方法的參數,以及 方法的 調 用。

    ?

    如果 A 的某個局域 量的 型是另一個 B ,那 么類 A 就依 B

    ?

    如果 A 方法的參數是 B 例,那 么類 A B

    ?

    如果一個 A 調 用另一個 B 的靜 方法,那 么類 A B

    ?

    如果 B A 量中,那 么類 A B 系就超越了依 賴關 系,而 成了某一 種關聯關 系。

    ?

    注: 一般 系表 現為繼 承或 實現關 (is?? a) 關聯關 系表 現為變 (has?? a ) ,依 賴關 系表 現為 函數中的參數 (use?? a)

    posted on 2006-07-04 19:00 小言身寸 閱讀(499) 評論(0)  編輯  收藏 所屬分類: UML

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品视频在线观看免费| 久久久久久久久久免免费精品| 亚洲国产精品婷婷久久| 久久久久久亚洲精品无码| 亚洲精品国产自在久久| 免费高清A级毛片在线播放| 免费观看日本污污ww网站一区| 色噜噜亚洲精品中文字幕| 亚洲精品无码鲁网中文电影| 污污污视频在线免费观看| 四虎免费影院ww4164h| 亚洲国产成人精品女人久久久 | 无码AV动漫精品一区二区免费| 在线免费观看h片| 久久久无码精品亚洲日韩软件 | 亚洲国产成人va在线观看网址| 美女黄色免费网站| 亚洲成av人片天堂网老年人| 国产精品一区二区三区免费| 亚洲AV无码国产精品色午友在线| 精品无码专区亚洲| 五月天婷亚洲天综合网精品偷| 亚洲成综合人影院在院播放| 插B内射18免费视频| 精品特级一级毛片免费观看| 九月丁香婷婷亚洲综合色| 色偷偷亚洲第一综合网| 亚洲国产精品成人AV无码久久综合影院| 亚洲人成电影在线天堂| 亚洲高清视频免费| 亚洲成av人片天堂网无码】| 麻豆视频免费观看| 青青视频免费在线| 亚洲黄色在线网站| 在线a亚洲v天堂网2018| 亚洲一区二区三区免费在线观看| 亚洲午夜久久久精品影院| 免费高清av一区二区三区| 久久精品免费网站网| 亚洲综合丁香婷婷六月香| 成人超污免费网站在线看|