uml的關(guān)系 軟考之UML用例圖中包含,擴(kuò)展和泛化的區(qū)別?
軟考之UML用例圖中包含,擴(kuò)展和泛化的區(qū)別?包含關(guān)系:使用包含案例跨多個(gè)用例封裝一組類似的操作(行為片段),以便可以重用多個(gè)基本用例?;居美刂婆c包含用例的關(guān)系以及包含用例的事件流是否插入到基本用例
軟考之UML用例圖中包含,擴(kuò)展和泛化的區(qū)別?
包含關(guān)系:使用包含案例跨多個(gè)用例封裝一組類似的操作(行為片段),以便可以重用多個(gè)基本用例。
基本用例控制與包含用例的關(guān)系以及包含用例的事件流是否插入到基本用例的事件流中?;居美梢砸蕾囉诎美龍?zhí)行的結(jié)果,但是任何一方都不能訪問(wèn)另一方的屬性。這種情況類似于進(jìn)程設(shè)計(jì)語(yǔ)言,它將程序中的一段算法封裝成一個(gè)子進(jìn)程,然后從主程序調(diào)用子進(jìn)程。泛化關(guān)系:子用例和父用例相似,但表現(xiàn)出更特殊的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例中的行為片段,也可以重載它。擴(kuò)展關(guān)系:用擴(kuò)展用例將一個(gè)相對(duì)獨(dú)立的可選動(dòng)作封裝在基礎(chǔ)用例中,然后從基礎(chǔ)用例中聲明的擴(kuò)展點(diǎn)進(jìn)行擴(kuò)展,使基礎(chǔ)用例的行為更加簡(jiǎn)潔,目標(biāo)更加集中。擴(kuò)展用例向基本用例添加新行為。擴(kuò)展實(shí)例可以訪問(wèn)基實(shí)例的屬性,根據(jù)基實(shí)例中擴(kuò)展點(diǎn)的當(dāng)前狀態(tài)判斷是否執(zhí)行。但擴(kuò)展情況對(duì)基本情況不可見(jiàn)。
UML類圖中類之間的6種關(guān)系與區(qū)別?
類圖中類之間的關(guān)系是一個(gè)復(fù)雜的內(nèi)容。有聯(lián)想、聚合、組合、概括和依賴。關(guān)聯(lián):它是模型元素之間的語(yǔ)義連接,是類之間的弱連接。關(guān)聯(lián)可以是定向的、單向的或雙向的。可以將關(guān)聯(lián)名稱添加到關(guān)聯(lián)以描述其功能。關(guān)聯(lián)兩端的類也可以與某些角色一起參與關(guān)聯(lián),這些角色可以具有多重性,表示有多少對(duì)象可以參與關(guān)聯(lián)。關(guān)聯(lián)屬性、操作和其他信息可以由關(guān)聯(lián)類進(jìn)一步描述。關(guān)聯(lián)類通過(guò)虛線與關(guān)聯(lián)相連接??梢蕴砑右恍┘s束來(lái)增強(qiáng)關(guān)聯(lián)的含義。如下圖所示:聚合是一種特殊的關(guān)聯(lián),表示整體和部分之間的關(guān)系。通常,在定義了一個(gè)整體類之后,我們分析了整體類的構(gòu)成和結(jié)構(gòu)。從而找出一些組合類,形成整個(gè)類與組合類之間的聚合關(guān)系。例如,艦隊(duì)是由一系列船只組成的。在需求描述中,“包含”、“構(gòu)成”、“劃分”等詞通常表示聚合。作文也是一種特殊的聯(lián)想,它也代表了類的整體與部分之間的關(guān)系,但作文關(guān)系中的部分與整體具有統(tǒng)一的生命周期。一旦整個(gè)對(duì)象不存在,一些對(duì)象就不存在了。部分客體與整體客體之間存在著生死關(guān)系。聚合與組合的區(qū)別:聚合關(guān)系為has-a關(guān)系,組合關(guān)系為contains-a關(guān)系;聚合關(guān)系表示整體與局部的關(guān)系較弱,而組合關(guān)系較強(qiáng);表示聚合關(guān)系中部分事物的對(duì)象與表示聚合事物的對(duì)象的生存期無(wú)關(guān)。一旦聚合對(duì)象被刪除,表示部分內(nèi)容的對(duì)象就不能被刪除。一旦組合對(duì)象被刪除,代表某些事物的對(duì)象也會(huì)被刪除。泛化定義了一般元素和特殊元素之間的分類關(guān)系,也稱為繼承關(guān)系。概括關(guān)系是一種“類”關(guān)系,它定義了一般元素和特殊元素之間的分類關(guān)系。下圖是泛化關(guān)系的示例。有兩個(gè)元素,修改X的定義可能導(dǎo)致Y的定義,那么Y被認(rèn)為是X相關(guān)的。依賴可以由各種原因引起,例如一個(gè)類向另一個(gè)類發(fā)送消息,或者一個(gè)類是另一個(gè)類的數(shù)據(jù)成員類型,或者一個(gè)類是另一個(gè)類操作的參數(shù)類型等等。有時(shí)很難區(qū)分依賴和關(guān)聯(lián)。如果類A和類B是相關(guān)的,那么它們之間一定存在依賴關(guān)系。如果兩個(gè)類之間存在關(guān)聯(lián),則不必顯示兩個(gè)類之間的依賴關(guān)系。