本實(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 所示顶别。
圖1 UMLet 14.2的運(yùn)行界面
如果要在 Eclipse 中安裝 UMLet 插件,其方法如下拒啰。
- 下載相關(guān)版本的 UMLet 插件的壓縮包驯绎,然后將解壓的文件 com.umlet.plugin-14.2.jar 復(fù)制到 Eclipse 下的 plugins 目錄下。
- 重啟 Eclipse谋旦,選擇“文件(F)” — 新建(N) ” — “其他(0)…” —“UMlet Diagram”条篷,建立 UML 模型,如圖 2 所示蛤织。
圖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 圖形表示方式暇矫。
圖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 中的表示方式。
- 依賴關(guān)系(Dependency)纷妆,使用帶箭頭的虛線來表示盔几,箭頭從使用類指向被依賴的類。
- 關(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ǔ)充說明它們的角色缨恒。
- 聚合關(guān)系(Aggregation),用帶空心菱形的實(shí)線來表示轮听,菱形指向整體肿轨。
- 組合關(guān)系(Composition),用帶實(shí)心菱形的實(shí)線來表示蕊程,菱形指向整體椒袍。
- 泛化關(guān)系(Generalization),用帶空心三角箭頭的實(shí)線來表示藻茂,箭頭從子類指向父類驹暑。
- 實(shí)現(xiàn)關(guān)系(Realization),用帶空心三角箭頭的虛線來表示辨赐,箭頭從實(shí)現(xiàn)類指向接口优俘。
圖 4 所示是類之間的關(guān)系在 UML 中的圖形表示方式。
圖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)。
- 類圖中至少有一個(gè)類包含相關(guān)屬性和方法叶雹,目的是掌握屬性和方法的畫法财饥。
- 所舉的若干實(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é)家朱熹的介紹為例介紹類圖的畫法风喇。
圖5 UML中的類之間關(guān)系實(shí)例圖
(3)整理實(shí)驗(yàn)結(jié)果宁改,寫出實(shí)驗(yàn)的心得體會(huì)。