2010-01-30 80 views
0

我不明白下面的主題很好,因爲它是一個有點曖昧從我讀:UML關係(延伸/包括)

  • Inlcude是想下一個部分的引用,該用例是沒有它就沒有完成。這部分應該從更多的地方引用,否則它的使用是沒有意義的。

但我已經看到了一個例子,當有「包括」只在某些IF說法是正確的,如: 添加新產品---> ---包括>添加新的製造商。 //僅在不存在時添加。爲什麼沒有「擴展」?是否因爲別的地方可能會再次使用「添加新制造商」? 謝謝

回答

2

沒錯。一旦你擴展了另一個用例,你已經達到了當前用例的末尾。但是,你可以在if裏面擴展。想象下面。

1) The driver asks if his guests want Wendys or Burger King 
2) The guests choose they want Burger King [extend to eating at Burger King (use case 5)] 
3) The guests choose they want Wendys [extend to eating at Wendys (use case 9)] 

一個include不會結束一個用例,它使用另一個用例然後返回。包含類似於函數調用。您在其他功能中執行操作,然後返回並繼續。您也可以在沒有if語句的情況下使用include。

1) The driver orders the food 
2) The driver drives to the first window 
3) The driver pays the cashier (include handling a credit card transaction (use case 3)] 
4) The driver drives to the second window 
5) The driver gets the food 

請注意,在上面的擴展將無法正常工作。這是因爲司機仍然需要去第二個窗口並獲得食物。如果我們擴展到使用第三種情況,那麼我們將永遠不會返回到這個用例。

2

下面是從以下主題的解釋:UML用例圖:參考http://msdn.microsoft.com/en-us/library/dd409427%28VS.100%29.aspx

包括:一個包括用例調用或調用收錄其中。包含用於顯示用例如何分成更小的步驟。包含的用例位於箭頭末端。

延伸:擴展用例向擴展用例添加目標和步驟。分機 僅在特定條件下運行。擴展用例位於箭頭末端。

Include and Extend relationships on a use case diagram http://i.msdn.microsoft.com/Dd409427.UML_UCOvStructure(en-us,VS.100).png