Touring showed that an infinite tape could represent any computation and only a finite is required to run it.
Practical computations engage many entities. If one is to find solutions to complex problems then size and speed of memory dominate a program's organization.
Object-oriented programming organized entities into similar structures and associated specific computations with each. A program running on behalf of one entity could invoke behavior in another without much concern as to how that would be modeled.
The programmer however was required to understand the nature of this collaboration and ensure that the ultimate behavior was that which was desired.
Diagramming Debugger where an excellent interactive tool was extended to illustrate collaboration.
CRC Description of HotDraw where index cards represent for people what the computer will model.
Wiki Wiki HyperCard where the dynamics of objects met hypertext and became something new altogether.
I found that a model was most useful when not yet complete. It was as much the act of completing the model that produced insight as running the model for an answer.