We have a use case diagram for our software engineering course project that we have many use cases in every system and about 5-6 actors. How should we separate this heavy diagram to light weight diagrams? What is standard way to do it?
Should we separating per actor or per system?
By per actor I mean: e.g. for a management system that has two actors we open a diagram with that system and just show actor #1. After that we open other diagram put the same system in it but show just other actor (actor #2).
The scope of a use case diagram is typically per-system. One of the symbols used on a diagram is called the “system boundary box”. This is simply a box drawn around use cases and labeled with the system name. If further detail is needed, the same notation can be used to provide subsystems within a system by drawing a box around the use cases that are part of a subsystem and labeling that with the subsystem name. However, some methods have extended the use of a system boundary box to denote releases (usually in incremental processes) where all of the indicated use cases are part of a single system and each box would indicate the intended release for each use case.
Something else to consider is that I’ve rarely seen use case diagrams used outside of academic settings. Even Martin Fowler in UML Distilled describes the diagram type, but prefers textual notations. Textual descriptions provide much more detail that would be useful in more detailed design and implementation activities.
1
Alistair Cockburn (The Use Case Guru) recommends to separate by different concerns called “design scopes” and “goal levels” as shown in Stack Overflow: UML Use case: Waiting for another use case to finish.
See also
- Wikipedia: Use case for introductory signposts
- book Cockburn, Alistair. Writing Effective Use Cases. Addison-Wesley, 2001 (draft version #3 is available online)