<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 (統(tǒng)一建模語言)

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

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

    類圖,是顯示出類和接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系的圖.如下:

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

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

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

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


    類圖 中的 關(guān)

    ?

    1 ? 一般化 關(guān) 系( Generalization

    ?

    關(guān) 系,接口與接口 關(guān) 系,或者 接口的 實(shí)現(xiàn)關(guān) 系。

    ?

    方向與 承相反。從子 指向父 對應(yīng)關(guān)鍵 extends implements.

    ?

    2 ? 關(guān)聯(lián)關(guān) ( Association)

    ?

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

    ?

    關(guān)聯(lián) 實(shí)線 + 來表示。

    ?

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

    ?

    Java 中, 關(guān)聯(lián) 過實(shí) 實(shí)現(xiàn) 的。在一個 A 中,出 現(xiàn) B 實(shí) 量,體 現(xiàn) 了兩個 關(guān)聯(lián)關(guān) 系。可以用一個箭 指向 B 關(guān)聯(lián) 來表示它 關(guān) 系。 關(guān)聯(lián) 都有個名字。而且 可以有基數(shù),表示 一端的 可以有幾個 實(shí) 例。 n..m 表示一個取 區(qū)

    ?

    關(guān)聯(lián)關(guān) 系可以 進(jìn) 確定 聚合 關(guān) 系或合成 關(guān) 系。

    關(guān)聯(lián)關(guān) 系中兩個 類處 于同一 次。

    ?

    3 ? 聚合 關(guān) ( Aggregation)

    ?

    聚合 關(guān) 系是更 強(qiáng) 關(guān)聯(lián)關(guān) 系。聚合是整體和部分之 關(guān) 系。聚合 關(guān) 系中的兩個 關(guān) 系是不平等的,是整體和部分的 關(guān) 系。也是通 過實(shí) 實(shí)現(xiàn) 的。一般的 關(guān)聯(lián) 和聚合 關(guān) 系需要通 兩個 邏輯關(guān) 系來區(qū)分。如果不確定,就將聚合 關(guān) 設(shè) 置成 關(guān)聯(lián)關(guān) 系。

    ?

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

    ?

    4 ? 合成 關(guān) 系( Comp os ition

    ?

    合成 關(guān) 系是更 強(qiáng) 的聚合 關(guān) 系。合成 關(guān) 系不能共享。表示部分的 只能與一個表示整體的 建立合成 關(guān) 系。

    ?

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

    ?

    表示方法: 實(shí) 心菱形+ 實(shí)線 +箭 整體的一端用 實(shí) 心菱形表示,部分的一端用箭 表示。如果不能確定 合成 關(guān) 系,可以將它 設(shè) 聚合 關(guān) 系,甚至是 關(guān)聯(lián)關(guān) 系。

    ?

    5 賴關(guān) 系( Dependency

    ?

    賴總 向的。表示一個 于另一個 的定 。與 關(guān)聯(lián) 不同是,此 沒有 類實(shí) 例作 屬性,而是將 B 實(shí) 例作 方法的參數(shù) 入的。

    ?

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

    ?

    一般,在 Java 中表示 局域 量、方法的參數(shù),以及 態(tài) 方法的 調(diào) 用。

    ?

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

    ?

    如果 A 方法的參數(shù)是 B 實(shí) 例,那 么類 A B

    ?

    如果一個 A 調(diào) 用另一個 B 的靜 態(tài) 方法,那 么類 A B

    ?

    如果 B 現(xiàn) A 實(shí) 量中,那 么類 A B 關(guān) 系就超越了依 賴關(guān) 系,而 成了某一 種關(guān)聯(lián)關(guān) 系。

    ?

    注: 一般 關(guān) 系表 現(xiàn)為繼 承或 實(shí)現(xiàn)關(guān) (is?? a) 關(guān)聯(lián)關(guān) 系表 現(xiàn)為變 (has?? a ) ,依 賴關(guān) 系表 現(xiàn)為 函數(shù)中的參數(shù) (use?? a)

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲Aⅴ在线无码播放毛片一线天| 免费一级毛片在级播放| 亚洲AV无码久久| 国产精品1024在线永久免费| 亚洲国产中文字幕在线观看| 无套内射无矿码免费看黄| 亚洲Av无码乱码在线znlu| 污污视频免费观看网站| 亚洲国产精品人人做人人爱| 一个人免费观看日本www视频| 亚洲性在线看高清h片| 中文字幕在线免费播放| 亚洲av永久无码精品表情包| 久久精品国产免费| 亚洲精品国产情侣av在线| 无码人妻精品中文字幕免费东京热| 亚洲理论在线观看| 午夜老司机免费视频| 美女羞羞喷液视频免费| 亚洲精品偷拍视频免费观看| 在线观看免费黄色网址| 亚洲视频手机在线| 免费毛片在线视频| 皇色在线免费视频| 亚洲黄色片在线观看| 在线观看免费毛片| 9久热这里只有精品免费| 亚洲色欲www综合网| 好大好深好猛好爽视频免费| 色多多www视频在线观看免费| 亚洲乱码中文字幕久久孕妇黑人| 一级毛片免费毛片一级毛片免费 | 免费电视剧在线观看| 无忧传媒视频免费观看入口| 亚洲va无码专区国产乱码| 在线观看无码AV网站永久免费 | 国产免费A∨在线播放| 亚洲高清不卡视频| 国产99视频精品免费视频7| 国产日韩AV免费无码一区二区 | mm1313亚洲国产精品美女|