* News/Tech

software engineering 'include' vs 'extend' in use case diagram

soicem 2018. 10. 29. 19:59

Extend is used when a use case adds steps to another first-class use case.


For example, imagine "Withdraw Cash" is a use case of an Automated Teller Machine(ATM).  "Assess Fee" would extend Withdraw Cash and describe the conditional "extension point" that is instantiated when the ATM user doesn't bank at the ATM's owning institution.  Notice that the basic "Withdraw cash" use case stands on its own, without the extension.

extend : extend first class and add extension point, but original use case is without extension.


Include is used to extract use case fragments that are duplicated in multiple use cases.  The included use case cannot stand alone and the original use case is not complete without the included one.  This should be used sparingly and only in cases where the duplication is significant and exists by design(rather than by coincidence)


For example, the flow of events that occurs at the beginning of every ATM use case (when the user puts in their ATM card, enters their PIN, and is shown the main menu) would be a good candidate for an include.


include : include some features which are significant duplication in multiple use cases.  that features can't stand alone and the original use case is not complete without included features.


ref : https://stackoverflow.com/questions/1696927/whats-is-the-difference-between-include-and-extend-in-use-case-diagram