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

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

    類圖,是顯示出類和接口以及它們之間的靜態(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;
    如果在方法下面有下劃線,表明這是個(gè)靜態(tài)方法.
    性質(zhì)層是由一個(gè)屬性(內(nèi)部變量),一個(gè)get方法,一個(gè)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)

    ?

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

    ?

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

    ?

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

    ?

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

    ?

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

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

    ?

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

    ?

    聚合 關(guān) 系是更 強(qiáng) 關(guān)聯(lián)關(guān) 系。聚合是整體和部分之 關(guān) 系。聚合 關(guān) 系中的兩個(gè) 關(guān) 系是不平等的,是整體和部分的 關(guān) 系。也是通 過實(shí) 實(shí)現(xiàn) 的。一般的 關(guān)聯(lián) 和聚合 關(guān) 系需要通 兩個(gè) 邏輯關(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) 系不能共享。表示部分的 只能與一個(gè)表示整體的 建立合成 關(guān) 系。

    ?

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

    ?

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

    ?

    5 賴關(guān) 系( Dependency

    ?

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

    ?

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

    ?

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

    ?

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

    ?

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

    ?

    如果一個(gè) A 調(diào) 用另一個(gè) 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)航:
     
    主站蜘蛛池模板: 中文字幕 亚洲 有码 在线| 男男gay做爽爽的视频免费| 亚洲成a人片7777| 亚洲精品av无码喷奶水糖心| 羞羞漫画在线成人漫画阅读免费 | 免费观看的a级毛片的网站| 亚洲av产在线精品亚洲第一站| 在线观看免费视频资源| 免费在线不卡视频| 麻豆亚洲AV永久无码精品久久| 亚洲精品9999久久久久无码 | 一级人做人爰a全过程免费视频| 五月天婷亚洲天综合网精品偷| 亚洲成人在线网站| 99在线在线视频免费视频观看| 久久精品国产亚洲AV电影| 亚洲免费福利视频| 亚洲中文字幕久久无码| 国产精品嫩草影院免费| 日韩精品视频在线观看免费| 国产亚洲精品自在线观看| 久久久久久国产精品免费免费男同 | 色天使亚洲综合一区二区| 女人被男人桶得好爽免费视频| 亚洲精品美女视频| 国产无遮挡色视频免费观看性色| 亚洲小说区图片区另类春色| 亚洲成a人无码亚洲成av无码 | 一个人免费观看在线视频www| 国产午夜亚洲不卡| 四虎国产成人永久精品免费| 天天爽亚洲中文字幕| 亚洲av无码不卡私人影院| 日本道免费精品一区二区| 亚洲中文无码永久免费| 亚洲精品尤物yw在线影院| 人妻仑刮八A级毛片免费看| 亚洲av无码一区二区三区不卡| 免费无码又黄又爽又刺激| 亚洲六月丁香六月婷婷蜜芽 | 99久久婷婷免费国产综合精品|