Checklist: Use-Case Model
This checklist provides questions to verify that the use-case model is described in a consistent and complete manner.
Relationships
Check Items
Is it easy to understand what the system does by reviewing the model?
  • Does the Use-Case Survey provide a clear, concise overview of the purpose and functionality of the system?
  • Are there no long chains of include relationships, such as when an included use case includes other use cases? These can obscure comprehension.
  • Are included use cases independent of the use cases that include them?
  • If several use cases contain similar subflows, have you investigated whether factoring this common behavior into an included use case will simplify the model?
Have all use cases been identified?
  • Do the use cases identified collectively account for all required behavior of the system?
  • Have all features identified in the Vision document for this iteration been addressed by at least one use case?
  • Have all nonfunctional requirements that must be satisfied by a specific use case been captured in that use case?
  • Have you verified that the use-case model contains no superfluous behavior (known as "gold-plating")?
  • Is each concrete use case associated with at least one Actor, as it should be?
  • Is every Actor associated with at least one use case?
Is the model consistent?
  • Is the system behavior consistent under the same conditions and with the same input?
Are all relationships between use cases required?
  • Does each included use case make the model easier to understand, implement, and maintain?
  • Is each concrete use case (not an included use case) independent of other use cases?


Are use-case packages used appropriately?
  • Have cross-package dependencies been reduced or eliminated to prevent model ownership conflicts
  • Is packaging intuitive?  Does the packaging make the model easier to understand and implement?
Do all model elements have appropriate names?
  • Have you verified that no two use cases have the same name?
  • Does each Actor have a name that effectively describes that person's Role?
Are individual use cases properly specified?