COMP 310

Use Case-driven System Block Diagrams

    Current Home  Java Resources  Eclipse Resources

For information on Use Cases, see the Java Resources page on Use Cases.

System Block Diagrams

("System block diagram" is the the more hardware-oriented term which emphasizes functionalities and intercommunications. For software engineering, some will call this sort of diagram a "software block diagram" or simply a "block diagram".)

A system block diagram is a high level modularization of the system that separates the overall system into maximally decoupled sub-systems.    System block diagrams enable one to visualize the system as large interacting components that can be conceptualized and developed independently.   This type of architecture also lends itself to greater flexibility and extensibility of the system, enabling it to grow and evolve more easily to adjust for changing requirements and demands.   Creating a system block diagram early in the development process is critical for assembling teams of develops that can work in parallel on the project.

A system block diagram displays the high-level view of the encapsulated functional modules that compose a system.   A system block diagram may show multiple layers of encapsulation, though internal layers are often relegated to separate diagrams for clarity's sake.   In terms of system design, the modules in the system block diagram should exhibit maximal decoupling from each other.

System block diagrams help the developers understand the the parts fit into the larger whole.   They are also very useful in helping maintain the proper level of decoupling in the system because excessive crossing of module boundaries will result in a "spaghetti diagram".

A system block diagram minimally consists of the following information:

The key to creating an effective system block diagram is the clear and complete articulation of the decoupled processes that compose the system.  -- You cannot develop your system if you do not completely understand the functional modules of which it is comprised.

System Block Diagram References:


From Use Cases to System Block Diagrams

One of the best ways to generate a system block diagram is to approach it from use cases.   By grouping use cases together, the functional modules of the system will emerge.  Excessive coupling can easily be identified in the resulting diagram and the use cases and associated modules can then be modified to be more streamlined.

  1. Put all the use cases for the system into a single diagram.  
  2. Re-arrange the use case graph to group functionally and/or conceptually related operations.
  3. Draw modular encapsulations around the related use case operations.
  4.  Modify use cases to create maximal decoupling between the modules.  


(Note: the following diagrams show solid lines with solid arrowheads to indicate that one use case "uses" another use case.   Technically, those lines should be dotted lines with solid arrowheads as per the UML standard.)

Use case-driven system block diagram:

Notice how the use cases have been organized into the system block diagram.   (This diagram is the original diagram for a class project, made by the students who used the wrong arrowheads in the drawing.   The closed arrowheads shown should in fact all be open arrowheads.)

Click for full-size image
System block diagram with use cases


System block diagram without use cases being shown

Note lack of critical details.   (Once again, this is the original diagram for a class project where the students used the arrowheads that are not clearly the open arrowheads as they should be.)

Click for full-size image
System block diagram withoout use cases


© 2017 by Stephen Wong