According to Matthew Brenner, it is an IDEA. I could not agree anymore. My students were just assigned a TicTacToe program over the Christmas Break. As soon as I introduced all of the requirements, there was a period of silence where no one knew where to start. It helped when I explained that we have an idea, but now have to implement the code. Brenner has created a presentation to describe software, program, objects, classes, methods, variables, etc… I found it very entertaining. There were a couple situations that could be argued as incorrect; however, it is a great representation of these IDEAS.
Link to Presentation: http://compsci.exeter.edu/mbrenner/classes/secret_life.html