Chapter 25. The Components of Software: Structure, Action, and Results
There's a very popular model for designing software that we've all heard of if we're web developers, and probably most desktop developers have heard of too: our old friend Model-View-Controller.
This works well because it reflects the basic nature of a computer program: a series of actions taken on a structure of data to produce a result. Programs also take input, and so you could possibly argue that input was a fourth part of a program, but usually I just think of a computer program as the first three parts: Structure, Action, and Results.
In the MVC sense, the Model is the Structure, the Controller is what does the Actions, and the View is the Result. I think the analogy (and the words) Structure, Action, and Results are more widely and accurately applicable to the operation of every program in existence, though, more so than MVC, although MVC is a perfectly good way of looking at it for GUI...