<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)航:
     
    主站蜘蛛池模板: 国产91在线|亚洲| 亚洲精品成人网站在线观看| 在线观看H网址免费入口| 日韩精品成人无码专区免费| 免费中文字幕在线| 亚洲婷婷五月综合狠狠爱| 亚洲天堂电影在线观看| 爱情岛论坛亚洲品质自拍视频网站 | 午夜亚洲AV日韩AV无码大全| 7777久久亚洲中文字幕蜜桃| 亚洲熟伦熟女专区hd高清| 又硬又粗又长又爽免费看 | 亚洲网站视频在线观看| 亚洲码欧美码一区二区三区| 国产性生大片免费观看性| 国内精自视频品线六区免费 | 日本亚洲中午字幕乱码| 亚洲国产精品成人一区| 亚洲成人高清在线观看| 免费国产成人高清在线观看网站 | 亚洲成A人片77777国产| 成人午夜影视全部免费看| 亚洲中文字幕无码不卡电影| 亚洲成在人线在线播放无码| 国产乱子精品免费视观看片| 亚洲AV无码无限在线观看不卡 | 亚洲v高清理论电影| 精品成在人线AV无码免费看 | 成人A片产无码免费视频在线观看| 成人免费网站在线观看| 色拍自拍亚洲综合图区| www在线观看免费视频| 国产免费一区二区三区VR| 亚洲中字慕日产2020| 一个人免费日韩不卡视频| 亚洲一区二区三区在线视频| 人人狠狠综合久久亚洲| 午夜小视频免费观看| 久久精品国产亚洲av麻豆图片 | 一级做受视频免费是看美女| 亚洲美女大bbbbbbbbb|