1. A method for obtaining situation-aware recommendations in a computer system, the method comprising: receiving a definition of a set of activities to be considered, wherein the activities represent possible activities performed using the computer system; receiving a definition of a set of context variables to be considered, wherein the context variables represent categories of possible situations in which the computer system operates when any of the activities in the set of activities is performed using the computer system; for each context variable to be considered, receiving a definition of a set of states to be considered, wherein the states represent possible specific situations in which the computer system operates; for each context variable to be considered, receiving a specification of first probability distributions for each corresponding state; for each combination of context variable to be considered and each activity to be considered, receiving a specification of second probability distributions to represent the likelihood of the activity being performed in the corresponding context; generating usage data using the first and second probability distributions; and applying a situation-aware recommendation process using the generated usage data using a microprocessor.