Organizing a module hierarchy
You can greatly improve the clarity of a large model by the way you organize it into a hierarchy of nested modules.
When assigning nodes to diagrams, the goal is to put groups of nodes that have many links among them in the same diagram, and to separate them from other groups with which they have few or no links. For example, the diagram below shows that a group of nodes related to annual housing costs have been organized into the
Annual costs module within the larger model.
Sometimes you have a good idea of how to group nodes before you create them. In such cases, it is easy to create the modules first, and then create and link the nodes in groups in each module.
In other cases, it might not be obvious which groupings work best. It is then often best to create all the nodes in a single large diagram. After drawing all the arrows, you might have a confusing spaghetti diagram. At this point, try to move the nodes around to identify groups containing 5 to 15 nodes, with many links within each group and fewer links between groups. When you arrive at a satisfactory grouping, create a module node for each group and move the group of variables into its own module.
Aim for 10 to 20 nodes per diagram
If you have a model with 150 variables, you could organize it as a single module with 150 nodes. But, that is likely to be rather overwhelming. Or you could organize it into 10 modules, each with an average of 15 variables, which is more manageable. The top model could just show the 10 module nodes. Or you could organize it as 50 modules with an average of 3 variables each. But that would obscure the relationships between variables in different modules (most of them), and create additional cognitive effort in understanding and navigating the many modules.
Experienced modelers have found that a range of 10 to 20 nodes per diagram works best. There may be a good reason for occasional modules with fewer or more nodes.
- Module hierarchy
- Tutorial: Creating a module
- Modules and Libraries
- Filed modules and libraries
- Draw arrows between modules
- Using Add Module... to import a Model file
- Import a module or library