If all subsystems can communicate with all other subsystems, you lose the benefit of separating them at all. Make each subsystem meaningful by restricting communications.
Below is a tool for examining how modules in a Python package communicate with each other.
The source code for this project is available on github. This project uses Python’s inspect module, flask, and d3, all of which are awesome. Thanks to Alan MacCormack for highlighting the usefulness of examining a package’s adjacency matrix and using propagation cost to measure modularity.