I've been studying OOP in conjunction with Zend's MVC implementation for the past few months. I'm pretty new to programming, generally, but I feel strongly that I should learn things the 'right' way, which for me means to make sure I understand why things are done the way they are. I.e., I have found that in learning how to do something (anything, say music), the best way to learn how to do something is to know why it's done that way in the first place.
Anyway, I have been struggling very hard with understanding how to develop my own business models (i.e., the M of MVC), and I have decided it's not because I don't understand OOP in general, because I've studied it for several months and I don't think the concepts are very difficult to grasp. I find the examples I've studied very intuitive, actually. The problem for me, I think, lies in the process of translating my own problems into object oriented solutions. The examples in books (that I've read so far) are too obvious, so the process of translating the problem into objects isn't very difficult. What I think I might be missing is a high-level abstracted process. Some kind of list of steps or questions that every object-oriented solution must answer on the highest level.
If you had to describe such a process in no more than five steps, what would they be and why? What is the most effective process in translating any problem into an object-oriented solution?