37. UMLet的使用與類圖的設(shè)計(jì)

本實(shí)驗(yàn)是為后續(xù)實(shí)驗(yàn)做準(zhǔn)備的觉渴。在本書中,各個(gè)程序?qū)嵗家嬵悎D徽惋,所以讀者必須掌握用某種UML建模工具來畫類圖案淋,本書選擇 UMLet 作為 UML 的建模工具。

實(shí)驗(yàn)?zāi)康?/h2>

本實(shí)驗(yàn)的主要目的如下险绘。

  • 理解類的基本概念踢京,掌握如何從需求分析中抽象出類的方法。
  • 理解類之間關(guān)系宦棺,掌握如何分析具體實(shí)例中的類之間的關(guān)系漱挚。
  • 掌握在 UMLet 中繪制類圖的基本操作方法。

實(shí)驗(yàn)原理

1. UMLet的使用

UMLet 是一款免費(fèi)且開源的 UML 建模工具渺氧,它可以將原型導(dǎo)出為 bmp旨涝、eps、gif侣背、jpg白华、pdf、png贩耐、svg 等格式弧腥,還可以集成到 Eclipse 中,作為 Eclipse 的插件在 Windows潮太、Mac OS 和 Linux 等平臺(tái)上運(yùn)行管搪。它可在 UMLet 官網(wǎng)下載安裝。

用 UMLet 建模非常簡(jiǎn)單铡买,方法如下:首先打開 UMLet更鲁,然后在窗體右上側(cè)區(qū)域內(nèi)雙擊想要添加的對(duì)象,該對(duì)象將被自動(dòng)添加到面板中奇钞;再選中剛剛添加進(jìn)來的對(duì)象澡为,并在右下角的屬性面板中修改該對(duì)象的屬性;最后保存創(chuàng)建完成的 UML 模型圖景埃。如果需要還可將結(jié)果導(dǎo)出為其他格式的文件媒至,如圖 1 所示顶别。

UMLet 14.2的運(yùn)行界面

圖1 UMLet 14.2的運(yùn)行界面

如果要在 Eclipse 中安裝 UMLet 插件,其方法如下拒啰。

  1. 下載相關(guān)版本的 UMLet 插件的壓縮包驯绎,然后將解壓的文件 com.umlet.plugin-14.2.jar 復(fù)制到 Eclipse 下的 plugins 目錄下。
  2. 重啟 Eclipse谋旦,選擇“文件(F)” — 新建(N) ” — “其他(0)…” —“UMlet Diagram”条篷,建立 UML 模型,如圖 2 所示蛤织。
在Eclipse中安裝UMLet插件

圖2 在Eclipse中安裝UMLet插件

UMLet 在 Eclipse 中的使用方法同前面介紹的一樣赴叹。

2. 類圖的UML表示

UML 中定義了用例圖、類圖指蚜、對(duì)象圖乞巧、狀態(tài)圖、活動(dòng)圖摊鸡、時(shí)序圖绽媒、協(xié)作圖、構(gòu)件圖免猾、部署圖等 9 種圖形是辕,在“軟件設(shè)計(jì)模式”中經(jīng)常用到的是類圖,所以本實(shí)驗(yàn)主要介紹類圖的畫法猎提,以及類與類之間的關(guān)系获三。

(1) 類

類是面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心,它是對(duì)一組具有相同屬性锨苏、操作疙教、關(guān)系和語義的對(duì)象的抽象。在 UML 中伞租,類使用帶有分隔線的矩形來表示贞谓,它包括名稱部分(Name)、屬性部分(Attribute)和操作部分(Operation)葵诈。

其中裸弦,屬性的表示形式是:[可見性]屬性名:類型[=默認(rèn)值]

操作的表示形式是:[可見性]名稱(參數(shù)列表)[:返回類型]

注意:“可見性”包括公有(public)、私有(private)作喘、受保護(hù)(protected)和朋友(fiiendly)等 4 種理疙,在類圖中分別用符號(hào)+、-徊都、#沪斟、~來表示。

圖 3 所示是類的 UML 圖形表示方式暇矫。

類的UML畫法

圖3 類的UML畫法

(2) 類之間的關(guān)系

在軟件系統(tǒng)中主之,類不是孤立存在的,類與類之間存在各種關(guān)系李根。根據(jù)類與類之間的耦合度從弱到強(qiáng)排列槽奕,有依賴關(guān)系、關(guān)聯(lián)關(guān)系房轿、聚合關(guān)系粤攒、組合關(guān)系、泛化關(guān)系和實(shí)現(xiàn)關(guān)系等 6 種囱持,它們的功能在UML中的類圖及類圖之間的關(guān)系一文中已經(jīng)介紹夯接,下面介紹它們?cè)?UML 中的表示方式。

  1. 依賴關(guān)系(Dependency)纷妆,使用帶箭頭的虛線來表示盔几,箭頭從使用類指向被依賴的類。
  2. 關(guān)聯(lián)關(guān)系(Association)掩幢,分為雙向關(guān)聯(lián)和單向關(guān)聯(lián)兩種逊拍。其中,雙向關(guān)聯(lián)可以用帶兩個(gè)箭頭或者沒有箭頭的實(shí)線來表示际邻,單向關(guān)聯(lián)用帶一個(gè)箭頭的實(shí)線來表示芯丧,箭頭從使用類指向被關(guān)聯(lián)的類。還可以在關(guān)聯(lián)線的兩端標(biāo)注角色名世曾,補(bǔ)充說明它們的角色缨恒。
  3. 聚合關(guān)系(Aggregation),用帶空心菱形的實(shí)線來表示轮听,菱形指向整體肿轨。
  4. 組合關(guān)系(Composition),用帶實(shí)心菱形的實(shí)線來表示蕊程,菱形指向整體椒袍。
  5. 泛化關(guān)系(Generalization),用帶空心三角箭頭的實(shí)線來表示藻茂,箭頭從子類指向父類驹暑。
  6. 實(shí)現(xiàn)關(guān)系(Realization),用帶空心三角箭頭的虛線來表示辨赐,箭頭從實(shí)現(xiàn)類指向接口优俘。

圖 4 所示是類之間的關(guān)系在 UML 中的圖形表示方式。

UML中的類的關(guān)系圖

圖4 UML中的類的關(guān)系圖

實(shí)驗(yàn)內(nèi)容

(1) 通過對(duì)“類之間的關(guān)系”的學(xué)習(xí)掀序,在生活中找到相關(guān)實(shí)例帆焕。

(2) 用 UMLet 對(duì)以上實(shí)例中的類的關(guān)系建模。

實(shí)驗(yàn)要求

所設(shè)計(jì)的實(shí)驗(yàn)必須滿足以下兩點(diǎn)。

  1. 類圖中至少有一個(gè)類包含相關(guān)屬性和方法叶雹,目的是掌握屬性和方法的畫法财饥。
  2. 所舉的若干實(shí)例要包含前面介紹的 UML 類與類之間的 6 種關(guān)系,并正確畫出其相互關(guān)系圖折晦。

實(shí)驗(yàn)步驟

(1)進(jìn)行需求分析钥星,從生活中提取出相關(guān)實(shí)例。

(2)分析以上實(shí)例满着,找到相關(guān)類并確定它們之間的關(guān)系谦炒,然后利用 UMLet 畫出類以及類之間的關(guān)系圖,圖 5 以對(duì)理學(xué)家朱熹的介紹為例介紹類圖的畫法风喇。

UML中的類之間關(guān)系實(shí)例圖

圖5 UML中的類之間關(guān)系實(shí)例圖

(3)整理實(shí)驗(yàn)結(jié)果宁改,寫出實(shí)驗(yàn)的心得體會(huì)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末魂莫,一起剝皮案震驚了整個(gè)濱河市还蹲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌豁鲤,老刑警劉巖秽誊,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異琳骡,居然都是意外死亡锅论,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門楣号,熙熙樓的掌柜王于貴愁眉苦臉地迎上來最易,“玉大人,你說我怎么就攤上這事炫狱≡謇粒” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵视译,是天一觀的道長(zhǎng)嬉荆。 經(jīng)常有香客問我,道長(zhǎng)酷含,這世上最難降的妖魔是什么鄙早? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮椅亚,結(jié)果婚禮上限番,老公的妹妹穿的比我還像新娘。我一直安慰自己呀舔,他們只是感情好弥虐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般霜瘪。 火紅的嫁衣襯著肌膚如雪珠插。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天粥庄,我揣著相機(jī)與錄音丧失,去河邊找鬼豺妓。 笑死惜互,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的琳拭。 我是一名探鬼主播训堆,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼白嘁!你這毒婦竟也來了坑鱼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤絮缅,失蹤者是張志新(化名)和其女友劉穎鲁沥,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耕魄,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡画恰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吸奴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片允扇。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖则奥,靈堂內(nèi)的尸體忽然破棺而出考润,到底是詐尸還是另有隱情,我是刑警寧澤读处,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布糊治,位于F島的核電站,受9級(jí)特大地震影響罚舱,放射性物質(zhì)發(fā)生泄漏井辜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一馆匿、第九天 我趴在偏房一處隱蔽的房頂上張望抑胎。 院中可真熱鬧,春花似錦渐北、人聲如沸阿逃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恃锉。三九已至搀菩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間破托,已是汗流浹背肪跋。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留土砂,地道東北人州既。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像萝映,于是被迫代替她去往敵國(guó)和親吴叶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容