Subsystems

Obviously you cannot build an entire system in one go. You will typically divide one large system into smaller subsystems. If you don’t do that, it’s probably time to start doing that. Subsystems are denoted using rectangles.

The UML standard actually refers to these containers as “packages”. However, since they will eventually translate to your subsystems, we call them subsystems.

Each rectangle indicates a separate subsystem within your entire system. Each subsystem will have its own set of use cases. Use cases associated with a subsystem (that is, when they are drawn inside the subsystem), will be performed by that particular subsystem. Each subsystem will have its own set of actors. It is not uncommon that each subsystem will have the same set of actors, though.

Diagram Warning

Actors appear outside the subsystem, while use cases appear inside the subsystem. I cannot believe I had to say that.

Case Study

Two subsystems exist, the modules subsystem and the marks subsystem. In the Module Subsystem, an administrator can create new module and a lecturer can add notices to that module. In the Marks Subsystem, the student can view their marks, and the lecturer can edit and view these marks. Here we see the two separate subsystems, each with their own use cases. It also shows that different actors are acting upon the different subsystems.

Take note that the Lecturer actor appears with both subsystems, as they can perform actions in both. Also take note of the generalisation between Lecturer and Student in the Marks subsystem. This shows that while the student can view their marks, the lecturer can view and modify their marks.