資源描述:
《uml各種關(guān)系比較說明》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、uml各種關(guān)系的比較說明各種關(guān)系的比較說明Extend、Include、Uses第一、必須明確uses和extends是UML1.1中的stereotypes(構(gòu)造),它們在UML1.3(Rose2003中已經(jīng)舍棄了uses關(guān)系)中被修訂為include(代替了原有的uses)和extend;第二、需要明確的是include和extend用于表示usecases之間的關(guān)聯(lián)(associations)??依賴關(guān)系;第三、有一個例子可以解釋include和extend的用法:在一個eCommerce系統(tǒng)中,有三個用例BrowseCatalogPlaceOrderAuthorizeCred
2、itPurchase這個用例來自外部系統(tǒng)。其中“BrowseCatalog”用例《extend》“PlaceOrder”用例,因為“PlaceOrder”是“BrowseCatalog”的特殊情況,用戶在browse的時候,可以隨時placeorder。而“placeorder”用例《include》“AuthorizeCreditPurchase”用例,這是因為用戶必須用creditcard來支付order,這就存在一個驗證creditcard的問題,所以“placeorder”用例一定包含“AuthorizeCreditPurchase”用例。用尤克濱先生的話來說就是:比如你上樓
3、,你也許必須要走樓梯(include),當然你有可能在中途去一下洗手間(extend)。Extend擴展關(guān)系,最常用的關(guān)系之一(并聯(lián))定義表示兩個用例間有擴展關(guān)系,后者是前者信息或者業(yè)務(wù)功能的擴展。如果AextendB,那么B是A一個條件性執(zhí)行用例。格式表示NewUseCase(A)每次被調(diào)用,系統(tǒng)也有可能會調(diào)用NewUseCase2(B),但并不是每次都調(diào)用NewUseCase2。表示NewUseCase2只是NewUseCase1的一個擴展用例,關(guān)系不像Include那么緊密例子比如登錄是一個用例,如果我們把登錄失敗當成一個用例,那么這個用例和登錄就是Extend的關(guān)系。(當然登
4、錄失敗我們一般處理為一個備選流)。說明是指額外的用力插入,基用力對此擴展不知情擴展關(guān)系是處理用例的變體,如果把變體的內(nèi)容放在同一個用例的可選過程中,會使得問題變得復(fù)雜,難于理解。通常建立基本過程在基本用例中,不同的變體建立成不同的用例擴展基本用例。是對基本的流程進行建模,然后通過擴展用例進行擴展?;居美恢罃U展用例,擴展用例通常是在基本用例的某一點和特定的條件激發(fā)。擴展用例通常是對基本用例的補充和可選的行為建模。擴展關(guān)系可以看作是中斷。(例如:“查詢?nèi)藛T信息”是一個用例,“修改人員信息”是一個用例,則“查詢?nèi)藛T信息”extend“修改人員信息”,表明修改人員信息涉及到查詢?nèi)藛T信息
5、,這可以使得傳統(tǒng)的audi設(shè)計更為精確)使用條件ifusecaseAismixedintousecaseB(itcanbesaidBallowsoptionalfunctionalityofAtobeincorporatedintoitself),butAisnotaddedasawhole,itisdividedassomepartsbutallthepartsarealladdedtoB.Ithinkthisrelationcanbedescribedasextension.使用基本原則1.基用例(即被擴展用例)與擴展用例應(yīng)該是相互獨立的,換句話說,基用例必須是完整的,擴展的用例
6、與其相分離的。先描述基本行為(或特性)--強制的再描述添加的額外行為--強制的或可選的2.擴展依賴的層次深度,一般不應(yīng)該再去擴展一個擴展用例。Include是包含關(guān)系,最常用的關(guān)系之一(串連)定義表示兩個用例間有包含關(guān)系,后者是前者的一部分。如果AIncludeB,那么ACase就有可能執(zhí)行BCase,如果A執(zhí)行B得話,就必須完全執(zhí)行。格式表示NewUseCase1每次被調(diào)用,系統(tǒng)也都會調(diào)用NewUseCase2。表示NewUseCase2其實是NewUseCase1的一個附屬用例。當然,NewUseCase2也可能是另外一個用例的附屬用例。例子例如看病是個用例,掛號是另一個用例,掛
7、號包含于看病。但是看病時并不一定掛號,因為急診是無需掛號的(即是說看病用例不包含掛號用例),但如果掛號的話,那就必須完成這個用例。說明使用關(guān)系是在多個用例包含了重復(fù)的內(nèi)容,避免重復(fù),把這部分共同的用例片斷抽出來,可以被多個用例使用。比如取款和轉(zhuǎn)賬都需要用戶身份驗證。是對多個用例中重復(fù)的部分的抽取,并通過用例的Include關(guān)系來表達出來。包含用例知道被包含用例,通常在文字描述中通過下劃線的方式來引用被包含用例。被包含用例的動作流被插入到包含用例的動作流中通