The simplicity of view models
We've discussed view models and application architecture using the word "flow" several times. As the user manipulates various parts of the user interface, data flows through controllers and view models to represent the current state of the application. Rather than writing out a list of all of the junctions through which data can flow in this application, let's try and picture it instead as follows:
Being able to conceptualize your application at this level is a good sign that it is well-understood and well-conceived. In larger applications, it will be hard to visualize every part of the application in this way, so it will often be broken into multiple smaller visualizations. Either way, building a top-level mapping of data and user flow is a fantastic way to confirm the logic and simplicity of a design.