One is the programmer's model of the software. It is made up of things like procedures, functions, memory locations, logical branches and loops. The other is the user's model of the software, and it's made up of windows, pull-down menus, infinitely long scrolling 'sheets of paper' inside the windows, et cetera. Neither of these models are literally accurate descriptions of what is going on inside the computer at any point in time, yet they're each useful for the distinctly different jobs of the programmer and the user. This is what happens when, for instance, Windows treats the user to the unintelligible gibberish of the Blue Screen of Death.
Waiters know if the chef has a cold, or an intestinal flu.
They may have just seen a rat in the kitchen. While this information may be useful at the proper place and time, it's not something to share with the restaurant's patrons. Sometimes, to perfect the atmosphere of rudeness, they will stare impatiently at another table and begin drumming the pencil on the pad when you fail to place your order immediately. When you finally figure out that you're supposed to be ordering and begin to say what you want, they scribble on the check but still say nothing. Pause for a moment while ordering, and they walk away.