Contents > C: List of Design Rules > C.15 Usecase Rules

C.15 Usecase Rules

Rule: UnusedCategory: Completeness
Severity: 1-highApplies to: all areas
The use case is not used.

The use case is not associated with any actors, or included in or extending other use cases. Such a use case is useless. Associate it with an actor, attach it to another use case, or delete it from the model.


Rule: DupExPointCategory: Correctness
Severity: 1-highApplies to: all areas
The use case has two or more extension points of the same name.

Rename the extension points so that they all have unique names.

  • This is a WFR of the UML.
  • Value returned: the name of the duplicate extension points.


Rule: NoNameCategory: Completeness
Severity: 1-highApplies to: all areas
The use case has an extension point without a name.

Check the extension points of the use case and make sure they all have a name.

  • This is a WFR of the UML.


Rule: NaryAssocCategory: Correctness
Severity: 2-medApplies to: all areas
The use case participates in an n-ary association.

A use case can only participate in binary associations. Replace the n-ary association with several binary associations.

  • This is a WFR of the UML.


Rule: UnnamedCategory: Correctness
Severity: 1-highApplies to: all areas
The use case has no name.


Rule: CyclicIncludesCategory: Correctness
Severity: 1-highApplies to: all areas
Use case directly or indirectly includes itself.

A use case cannot include use cases that directly or indirectly include it. Remove some include links to break the cycle.

  • This is a WFR of the UML.
  • You can view the graph of 'use case includes' in the graph structures window.
  • Value returned: number of use cases participating in the cycle.


Rule: FunctionalDecompCategory: Style
Severity: 2-medApplies to: all areas
Use case both includes and is included in other use cases.

Several levels of include relations between use cases indicate a functional decomposition, which should not be part of requirements analysis.

  • Suggested in [Amb03] to avoid more than two levels of include relations; this rule flags more than one level.


Rule: ExtendsCategory: Style
Severity: 3-lowApplies to: all areas
The use case is extending another use case.

The semantics of the extend relationship between use cases are often misunderstood, and there are no definite criteria when to use "extend" and when to use "include" relationships. The suggestion is to avoid using "extend" relationships in favor of the more intuitive "include".