Use_Case_Diagram - SYSC3020-Winter2016/SYSC3020LectureNotes GitHub Wiki

- Each use case must have one primary actor, that initiates the use case.
- Use Cases may involve other actors than the primary actor. This is the case of Actor2, involved in UC3 and UC4 (by inheritance).
- Each actors must be involved in at least one use case.
- includes: Use Case 1 includes Use Case 2: UC2 represents a coherent functionality that is included (always) in UC1. UC 2 may have been extracted to make UC1 simpler, or else because UC2 is included in multiple use cases (isolating functionality common to several use cases).
- extends: UC3 extends UC1. This means that UC3 is optional processing that may be initiated during UC1, in special cases. Note: This notion of "extend" does not mean specialization! This is not like the "extend" of java classes, which means specialization! (see below)
- Generalization/Specialization: the arrow with the hollow triangle head. UC3 is a generalization of UC4, conversely UC4 is a specialization of UC3. UC3 is more general.
Here is a good example: http://www.math-cs.gordon.edu/courses/cs211/ATMExample/UseCases.html (yet another ATM example; this one is similar to the one seen briefly seen in class).