It is easy to understand what the system does by reviewing the model
-
Does the use-case model 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?
|
All use cases have been identified
-
Do the use cases identified collectively account for all required behavior of the system?
-
Have all features identified in the vision document 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?
|
The model is consistent
-
Is the system behavior consistent under the same conditions and with the same input?
|
All relationships between use cases are 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?
|
Use-case packages are 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?
|
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?
|
Individual use cases are properly specified
|