自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解析UML用例圖中三大關(guān)系的區(qū)別和聯(lián)系

開發(fā) 架構(gòu)
UML用例圖在軟件開發(fā)過程中非常實(shí)用,本文向大家介紹一下UML用例圖中包含(include)、擴(kuò)展(extend)和泛化(generalization)三種關(guān)系的聯(lián)系。

本節(jié)向大家UML用例圖中包含(include)、擴(kuò)展(extend)和泛化(generalization)三種關(guān)系的區(qū)別和聯(lián)系,希望本節(jié)的學(xué)習(xí)能夠讓你有不少收獲。

UML用例圖中包含(include)、擴(kuò)展(extend)和泛化(generalization)三種關(guān)系詳解

共性:都是從現(xiàn)有的用例中抽取出公共的那部分信息,作為一個(gè)單獨(dú)的用例,然后通后過不同的方法來重用這個(gè)公共的用例,以減少模型維護(hù)的工作量。

1、包含(include)

UML用例圖中包含關(guān)系:使用包含(Inclusion)用例來封裝一組跨越多個(gè)用例的相似動(dòng)作(行為片斷),以便多個(gè)基(Base)用例復(fù)用?;美刂婆c包含用例的關(guān)系,以及被包含用例的事件流是否會(huì)插入到基用例的事件流中。基用例可以依賴包含用例執(zhí)行的結(jié)果,但是雙方都不能訪問對(duì)方的屬性。

包含關(guān)系對(duì)典型的應(yīng)用就是復(fù)用,也就是定義中說的情景。但是有時(shí)當(dāng)某用例的事件流過于復(fù)雜時(shí),為了簡(jiǎn)化用例的描述,我們也可以把某一段事件流抽象成為一個(gè)被包含的用例;相反,用例劃分太細(xì)時(shí),也可以抽象出一個(gè)基用例,來包含這些細(xì)顆粒的用例。這種情況類似于在過程設(shè)計(jì)語言中,將程序的某一段算法封裝成一個(gè)子過程,然后再從主程序中調(diào)用這一子過程?!?/p>

包含關(guān)系對(duì)典型的應(yīng)用就是復(fù)用,也就是定義中說的情景。但是有時(shí)當(dāng)某用例的事件流過于復(fù)雜時(shí),為了簡(jiǎn)化用例的描述,我們也可以把某一段事件流抽象成為一個(gè)被包含的用例;相反,用例劃分太細(xì)時(shí),也可以抽象出一個(gè)基用例,來包含這些細(xì)顆粒的用例。這種情況類似于在過程設(shè)計(jì)語言中,將程序的某一段算法封裝成一個(gè)子過程,然后再從主程序中調(diào)用這一子過程?!?br /> 例如:業(yè)務(wù)中,總是存在著維護(hù)某某信息的功能,如果將它作為一個(gè)用例,那新建、編輯以及修改都要在用例詳述中描述,過于復(fù)雜;如果分成新建用例、編輯用例和刪除用例,則劃分太細(xì)。這時(shí)包含
關(guān)系可以用來理清關(guān)系。

對(duì)于一個(gè)擴(kuò)展用例,可以在基用例上有幾個(gè)擴(kuò)展點(diǎn)。
例如,系統(tǒng)中允許用戶對(duì)查詢的結(jié)果進(jìn)行導(dǎo)出、打印。對(duì)于查詢而言,能不能導(dǎo)出、打印查詢都是一樣的,導(dǎo)出、打印是不可見的。導(dǎo)入、打印和查詢相對(duì)獨(dú)立,而且為查詢添加了新行為。因此可以采用擴(kuò)展關(guān)系來描述:

2、擴(kuò)展(extend)

UML用例圖中擴(kuò)展關(guān)系:將基用例中一段相對(duì)獨(dú)立并且可選的動(dòng)作,用擴(kuò)展(Extension)用例加以封裝,再讓它從基用例中聲明的擴(kuò)展點(diǎn)(ExtensionPoint)上進(jìn)行擴(kuò)展,從而使基用例行為更簡(jiǎn)練和目標(biāo)更集中。擴(kuò)展用例為基用例添加新的行為。擴(kuò)展用例可以訪問基用例的屬性,因此它能根據(jù)基用例中擴(kuò)展點(diǎn)的當(dāng)前狀態(tài)來判斷是否執(zhí)行自己。但是擴(kuò)展用例對(duì)基用例不可見。

3、泛化(generalization)

UML用例圖中泛化關(guān)系:子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。在實(shí)際應(yīng)用中很少使用泛化關(guān)系,子用例中的特殊行為都可以作為父用例中的備選流存在。

泛化表示類似于OO術(shù)語“繼承”或“多態(tài)”。UML中的UseCase泛化過程是將不同UseCase之間的可合并部分抽象成獨(dú)立的父UseCase,并將不可合并部分單獨(dú)成各自的子UseCase;包含以及擴(kuò)展過程與泛化過程類似,但三者對(duì)用例關(guān)系的優(yōu)化側(cè)重點(diǎn)是不同的。如下:

●泛化側(cè)重表示子用例間的互斥性;
●包含側(cè)重表示被包含用例對(duì)Actor提供服務(wù)的間接性;
●擴(kuò)展側(cè)重表示擴(kuò)展用例的觸發(fā)不定性;詳述如下:

既然用例是系統(tǒng)提供服務(wù)的UML表述,那么服務(wù)這個(gè)過程在所有用例場(chǎng)景中是必然發(fā)生的,但發(fā)生按照發(fā)生條件可分為如下兩種情況:

1.無條件發(fā)生:肯定發(fā)生的;

2.有條件發(fā)生:未必發(fā)生,發(fā)生與否取決于系統(tǒng)狀態(tài);

因此,針對(duì)UML用例圖中的三種關(guān)系結(jié)合系統(tǒng)狀態(tài)考慮,泛化與包含用例屬于無條件發(fā)生的用例,而擴(kuò)展屬于有條件發(fā)生的用例。進(jìn)一步,用例的存在是為Actor提供服務(wù),但用例提供服務(wù)的方式可分為間接和直接兩種,依據(jù)于此,泛化中的子用例提供的是直接服務(wù),而包含中的被包含用例提供的是間接服務(wù)。同樣,擴(kuò)展用例提供的也是直接服務(wù),但擴(kuò)展用例的發(fā)生是有條件的。
另外一點(diǎn)需要提及的是:泛化中的子用例和擴(kuò)展中的擴(kuò)展用例均可以作為基本用例事件的備選擇流而存在。

例如,業(yè)務(wù)中可能存在許多需要部門領(lǐng)導(dǎo)審批的事情,但是領(lǐng)導(dǎo)審批的流程是很相似的,這時(shí)可以做成泛化關(guān)系表示。上面是我參考的一篇文章,覺得將三種關(guān)系的區(qū)別講得很清晰,在此基礎(chǔ)上結(jié)合自己的系統(tǒng),對(duì)項(xiàng)目(在線購物系統(tǒng))的用例做了整體的描繪。

【編輯推薦】

  1. UML建模中繪制UML用例圖行之有效的辦法
  2. 解析UML用例圖六大元素
  3. 如何繪制UML用例圖
  4. UML建模時(shí)需要注意的四大問題
  5. UML基礎(chǔ)專題之UML用例圖

 

 

 

 

責(zé)任編輯:佚名 來源: hi.baidu.com
相關(guān)推薦

2010-07-01 12:48:03

UML用例圖

2010-07-09 17:13:56

UML用例圖

2010-07-02 14:34:53

UML類圖

2010-07-09 15:41:23

UML類關(guān)系

2010-07-07 14:19:55

UML用例圖關(guān)系

2010-07-09 10:26:35

UML類圖關(guān)系

2010-06-17 18:47:18

UML對(duì)象關(guān)系

2010-06-13 17:05:54

UML關(guān)系

2010-07-06 09:35:37

UML六大關(guān)系

2010-04-14 08:40:38

UMLUML類間關(guān)系UML圖

2010-06-09 18:38:28

UML用例圖

2010-07-07 14:09:05

UML用例圖

2010-07-01 13:00:20

UML用例圖

2010-06-13 14:51:27

UML實(shí)踐

2010-06-13 14:37:04

UML實(shí)踐

2010-07-07 10:54:53

UML關(guān)聯(lián)關(guān)系

2010-07-02 08:57:45

UML用例圖

2010-07-02 12:53:07

UML對(duì)象圖

2010-06-30 10:57:49

UML用例圖

2010-06-17 12:32:54

UML用例建模
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)