<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)航:
     
    主站蜘蛛池模板: h在线观看视频免费网站| 一级成人a做片免费| 6080午夜一级毛片免费看6080夜福利| 在线A亚洲老鸭窝天堂| 一级黄色片免费观看| 亚洲国产精品毛片av不卡在线| 美女羞羞喷液视频免费| 国产jizzjizz视频全部免费| 美美女高清毛片视频黄的一免费 | 国产精品亚洲专区一区| 在线免费视频一区| 日韩亚洲人成网站| 亚洲国模精品一区| 香蕉免费一级视频在线观看| 亚洲中文字幕在线观看| 欧洲人成在线免费| 97久久精品亚洲中文字幕无码| 最近中文字幕2019高清免费| 亚洲一本之道高清乱码| 美女被免费视频网站a国产| 亚洲AV无码专区在线厂| 亚洲人成色77777在线观看大| 韩国免费A级毛片久久| 亚洲电影国产一区| 美女裸身网站免费看免费网站| 在线观看亚洲AV日韩AV| 亚洲第一区在线观看| 国产真人无码作爱视频免费| 亚洲精品视频专区| 国产精品二区三区免费播放心 | 亚洲老妈激情一区二区三区| 无码一区二区三区免费| 亚洲乱码在线观看| 久久久久亚洲av毛片大| 天天影院成人免费观看| 免费观看四虎精品成人| 伊人久久综在合线亚洲2019| 好吊妞788免费视频播放| 成年免费a级毛片免费看无码 | 国产精品亚洲lv粉色| 日本红怡院亚洲红怡院最新|