亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 技術開發 > 正文

UML系列內容之十二:包圖

2023-06-17 18:00:44
字體:
來源:轉載
供稿:網友

今天,本號將給各位伙伴們介紹一下UML中的包圖。

什么是包和包圖

包是對UML中各模型元素進行組織管理的一種機制,它把概念上相似、有關聯的模型元素(包括靜態的和動態的)組織到一個包中,形成具有各種功能或用途的模塊,并可以控制包中元素的可見性,以方便人們更好的理解復雜的系統。

包圖由包之間的關系組成,通過包之間關系的描述來展現系統各個模塊之間的依賴關系。

包的表示圖形

它類似于操作系統中的文件夾,因此,它在UML中也使用類似的文件夾符號來表示。

UML包的表示圖形

包的名稱

在同一層級內,每個包應有一個與其它包不同的名稱。

包的名稱有兩種形式:

(1)簡單名稱(Simple Name)

簡單名稱僅包含包的名稱字符串,如下面的例子:

UML包的名稱-簡單名稱

(2)路徑名稱(Path Name)

在很多情況下,包內又包含其它包,則在外圍使用包內的某個包時可以使用路徑名稱來指明包的路徑,其基本語法是:

外部包名稱::本包名稱

如下圖所示的情形:

UML包的名稱-路徑名稱2

上圖中表明“Borrow”這個包位于“SystemInterface”包內。

但在Rose中使用了另外一種表示方法,即:本包名稱(from外部包名稱)。

如下圖所示的情形:

UML包的名稱-路徑名稱

其含義是“Borrow”包是來自“SystemInterface”包內的。

包內的元素

包是一種分組機制,所以包內可以包含UML中任何元素,如類、用例、接口、組件、節點等,也可以包含其它包、用例圖、協作圖、序列圖等。

包內元素的可見性

包中的元素可見性主要包含三種:

(1)公有的(public)

通過在元素前添加“+”符號來表示,則該元素對所有引入該包的元素可見。

(2)私有的(private)

通過在元素前添加“-”符號來表示,則該元素只能被同一個包內的元素可見。

(3)保護的(protected)

通過在元素前添加“#”符號來表示,則該元素對繼承該包的包中元素可見。

下圖給出了包內元素的三種可見性的表示方法:

UML包內元素的可見性

上圖中的三個類“class A”、"class B"和“class C”的可見性分別是公有的、私有的和保護的。

包之間的關系

包之間的關系主要有依賴關系和泛化關系。

(1)依賴關系

包之間的依賴關系是指兩個包內的若干元素之間存在著依賴。

依賴使用虛線箭頭表示。箭頭由依賴包指向被依賴的包

下圖表示的是兩個包之間的依賴關系。

包之間的依賴關系

包之間的依賴關系可以是泛化、實現、導入等。

導入依賴(import dependency)是指允許一個包中的元素存取另外一個包中的元素,可以在虛線箭頭上添加<<import>>構造型來表示。

在Rose中不支持給依賴添加構造型。

導入依賴不具有傳遞性。

(2)泛化關系

包之間的泛化關系類似于類之間的泛化關系。

包之間的這種泛化關系是指其中的特殊包可以替換一般包中的元素,并可以添加新的元素。

在Rose中不支持給包添加泛化關系,實際上包之間的泛化也是一種依賴關系。

包的構造型

在Rose中,給出了包的一些構造型,并使用不同的圖形或標記來表示。

下圖給出了Rose中提供的一些包的構造型。

UML包的構造型

在上圖中,從上到下,從左到右分別表示業務分析模型(Business Analysis Model)、業務系統(Buesiness System)、業務用例分析模型(Business Use Case Analysis Model)、域包(Domain Package)、層(Layer)和子系統(Subsystem)。

根據需要可以選擇相應的構造型,能夠快速識別出包的作用。

包的設計原則

在實際建模中可以遵循以下原則:

(1)重用等價原則

對于同類可重用的模型元素盡量放到一個包中,不要把可重用模型元素和不可重用的模型元素混到一個包中。

(2)共同重用原則

把同一個應用要重用的多個模型元素放到同一個包中,以減少包間的依賴,提高包的獨立性。

(3)共同封閉原則

把可能同時修改,同時維護的模型元素放到一個包中,以便于今后維護和升級。

(4)非循環依賴原則

包之間的依賴關系不要形成循環:即不要出現A依賴B,B又依賴于A的現象,或者多個包形成循環依賴。

包圖建模技術

嚴格來講,包圖并不是真正意義上的UML圖,但在模型元素分類、模型結構和程序命名空間中扮演者重要的作用。

在實際建模過程中,可以使用下面的做法來繪制包圖:

(1)分析系統的模型元素,把概念上或語義上相近的模型元素納入到一個包中;

(2)對包中的每個元素標識其可見性;

(3)確定包與包之間的依賴關系;

(4)繪制包圖,并對包圖進行優化。

Rose中繪制包圖的方法

在Rose中的用例視圖、邏輯視圖和組件視圖中都可以創建包。

(1)創建包

創建包可以通過以下三種方式來完成:

①使用菜單欄中的“Tools”(工具)->“Create”(新建)->“Package”(包)來創建一個包,選擇該菜單后,鼠標形狀將變成“+”,這時在繪圖區的任意位置點擊一下,則完成了包的創建。

②在左側對象瀏覽器的某個節點上(如邏輯視圖),右擊該節點,然后選擇“New”(新建)->“Package”(包),則完成了一個包的創建,如果要在繪圖中使用這個包,則直接把它拖拽到繪圖區即可。

③在對象瀏覽器和繪圖區中間的工具箱中選擇包工具后,在繪圖區中點擊一下即完成了一個包的創建。

Rose中,每創建一個包,都會在左側對象瀏覽器中創建一個文件夾節點,所以,在Rose中,包更偏向于對模型的組織和分類。

Rose中包的表現形式

(2)包的重命名

在左側對象瀏覽器的包上右擊,然后選擇“Rename”則可以對包重新命名。

也可以在繪圖區的包上,右擊然后選擇“Open Specification...”,在彈出的如下圖所示的對話框中的“Name”項中對其重命名。

Rose中包的描述

(3)設置包的構造型

右擊一個包,然后在彈出的菜單中選擇“Open Specification...”,則打開如下圖所示的對話框,在“Stereotype”的下拉列表中選擇Rose中已經設定的一些構造型。

用戶根據需要也可以直接在下拉列表中輸入構造型的名稱。

Rose中為包設置構造型

用戶輸入的構造型,將以“<<用戶輸入的名稱>>”的形式進行顯示。

下面給出了用戶輸入的構造型的情形。

Rose中為包設置構造型

(4)給包添加元素

用戶創建完包后,可以雙擊打開包,在包中直接建立相關模型,如用例圖、狀態圖、活動圖、類圖等。

用戶也可以通過下面兩種方式為包添加元素。

①右擊包,然后選擇“Open Specification...”,在打開的對話框中,選擇“Detail”選項卡,在下面的“Diagrams”中會列出包中已有的元素,用戶在列表中右擊,可以選擇插入新的建模圖形,創建的同時可以給新建的圖形命名。

如下圖所示:

Rose中為包添加元素

完成創建并命名后的效果如下圖所示:

為包添加元素后的效果

在上面的圖中,雙擊新建的元素標題,就可以打開它,并在里面進行相關的建模。

②在左側瀏覽器中的對應包節點上右擊,然后選擇“New”(新建),然后在下級菜單中選擇相應的元素類型即可。如下圖所示的情形。

Rose中在瀏覽器中添加元素

(5)添加包之間的聯系

上面已經說過,在Rose中,只支持包之間的依賴聯系,同時不支持給聯系添加構造型。

如果添加依賴聯系,則在工具箱中選擇“Dependency”箭頭,從“依賴包”上點擊后按住鼠標左鍵到“被依賴包”上松開鼠標后,即完成了一個依賴關系的建立。

建模實例

下面給出包圖的兩個例子來說明包圖的具體使用方法。

第一個例子反映的是在建模過程中各模型元素的組織情況,使用包按照系統分析設計的階段來組織各種模型。

UML包的例子-1

下面的包圖例子描述了系統開發中各元素的組織情況。

UI中包含了使用的各種用戶界面,BLL中包含了業務邏輯處理的各種類或接口,DAL中包含了數據訪問層的相關類,Common中存放的是系統各個模塊共用的一些組件或類是內容。

UML包的例子-2

以上內容介紹了UML中包圖的相關知識及在Rose中繪制包圖的方法,如有問題,請留言說明。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久免费少妇高潮久久精品99| 亚洲国产又黄又爽女人高潮的| 亚洲精品电影网在线观看| 午夜精品久久久久久久男人的天堂| 欧美日韩国产二区| 久久视频在线看| 97视频com| 亚洲色在线视频| 欧美成人黑人xx视频免费观看| 亚洲一区二区三区777| 欧美高清理论片| 丰满岳妇乱一区二区三区| 最近的2019中文字幕免费一页| 亚洲综合成人婷婷小说| 国产精品国内视频| 国产精品一区二区三区久久久| 成人性教育视频在线观看| 日韩女优人人人人射在线视频| 日韩av在线看| 91国内产香蕉| 欧美性videos高清精品| 亚洲jizzjizz日本少妇| 日韩精品免费看| 国产99久久精品一区二区永久免费| 精品网站999www| 国产91色在线播放| 国内精品一区二区三区四区| 久久国产一区二区三区| 欧美国产精品日韩| 亚洲一区中文字幕在线观看| 日本欧美中文字幕| 2020欧美日韩在线视频| 国产人妖伪娘一区91| 国产一区二区欧美日韩| 这里只有精品视频在线| 中文字幕精品网| 久久久99免费视频| 国模精品一区二区三区色天香| 国产精品亚洲精品| 久久精品中文字幕免费mv| 亚洲综合最新在线| 日韩三级影视基地| 中文字幕无线精品亚洲乱码一区| 国产女同一区二区| 亚洲图片欧洲图片av| 不卡av电影在线观看| 欧美成人精品不卡视频在线观看| 亚洲男人天堂手机在线| 亚洲高清不卡av| 91夜夜未满十八勿入爽爽影院| 日韩欧美国产中文字幕| 久久综合免费视频| 国产精品爽爽爽爽爽爽在线观看| 久久久久久久国产精品视频| 欧美精品久久久久久久久| 精品久久在线播放| 亚洲精品456在线播放狼人| 亚洲最大的成人网| 欧美黑人视频一区| 欧美成人四级hd版| 亚洲第一视频在线观看| 国内精品久久久久伊人av| 91精品视频播放| 国产精品一香蕉国产线看观看| 日韩精品视频在线观看网址| 日韩国产高清视频在线| 亚洲国产精品一区二区三区| 欧美精品18videosex性欧美| 日韩在线视频网| 久久亚洲精品毛片| 欧美整片在线观看| 国产午夜精品全部视频在线播放| 日韩电影中文字幕在线观看| 色偷偷av一区二区三区| 欧美日韩xxx| 日韩美女av在线| 中文字幕亚洲无线码a| 中文字幕欧美日韩精品| 欧美国产亚洲精品久久久8v| 欧美极度另类性三渗透| 亚洲成色777777女色窝| 国产日韩中文在线| 久久久久久久久久久亚洲| 91在线播放国产| 欧美伊久线香蕉线新在线| 国产欧美va欧美va香蕉在线| 高清欧美性猛交xxxx黑人猛交| 欧美美女操人视频| 亚洲精品mp4| 91精品国产高清久久久久久久久| 亚洲a区在线视频| 欧美黄色免费网站| 午夜精品一区二区三区在线视频| 伊人久久久久久久久久久久久| 亚洲精品视频中文字幕| 亚洲欧美三级伦理| 青青久久av北条麻妃海外网| 日韩成人在线视频网站| 亚洲精选在线观看| 国产网站欧美日韩免费精品在线观看| 91精品国产高清自在线| 久久久亚洲影院你懂的| 91在线精品播放| 亚洲精选一区二区| 久久久爽爽爽美女图片| 国外成人性视频| 久久av红桃一区二区小说| 亚洲午夜精品视频| 久久精品免费播放| 欧美日韩加勒比精品一区| 性夜试看影院91社区| 欧美福利视频网站| 欧美日韩国产一区中文午夜| 97在线观看免费高清| 欧美精品一二区| 国产精品一区二区3区| 国产欧美久久久久久| 69av视频在线播放| 久久99精品视频一区97| 欧美日韩国产在线看| 亚洲精品一区二区在线| 亚洲女人被黑人巨大进入| 欧美精品第一页在线播放| 久久精品国产精品| 国产成人精品视| 精品自拍视频在线观看| 精品动漫一区二区| 欧美丝袜一区二区三区| 97在线视频观看| 隔壁老王国产在线精品| 国产精品日韩欧美大师| 91久久国产综合久久91精品网站| 九九热精品视频国产| 日韩中文字幕网| 久久久久久久久久久网站| 欧美性受xxxx黑人猛交| 日韩精品免费看| 亚洲成人在线视频播放| 日韩av在线直播| 亚洲成年人影院在线| 性欧美xxxx交| 日本精品视频在线观看| 精品亚洲永久免费精品| 亚洲国产精品成人av| 精品无人区太爽高潮在线播放| 91精品国产九九九久久久亚洲| 亚洲国产精品久久久久秋霞不卡| 久久久久久久一区二区三区| 九九九热精品免费视频观看网站| 久久久91精品国产| 欧美性在线视频| 中文字幕av一区中文字幕天堂| 国产欧洲精品视频| 另类图片亚洲另类| 欧美成人免费全部| 国产欧美精品一区二区| 欧美影院在线播放| 久久天天躁狠狠躁夜夜爽蜜月| 日韩视频一区在线| 伊人伊成久久人综合网小说| 狠狠综合久久av一区二区小说| 日韩精品视频观看| 欧美资源在线观看| 国产成人精品在线播放|