A milking operation simulation model was developed using an object-oriented approach. Six object classes were defined: things, living things, animals, operator, cow, and parlor. Operator, cow, and parlor classes were the basic units of the model. Each object in the model is a self-contained unit that represents its real world counterpart. The model operation and events were scheduled by sending messages among the objects. Messages caused operator and cows to move between locations inside the parlor and caused changes in the model status. An algorithm for a discrete event simulation that was message-oriented was used to resolve possible conflicts among objects, thus empowering all objects in the model with decision-making capability. The method was designed as a teaching and research tool. Proper milking routine can be demonstrated with this model. Also, various milking situations can be created in the model to study effects that would be difficult to evaluate otherwise. The model closely simulated real milking operations. Correlations between observed and simulated throughput indices, such as steady-state number of cows milked per hour, steady-state number of cows milked per labor hour, chore time number of cows milked per hour, and chore time number of cows milked per labor hour are .921,.893, .901, and .886, respectively. Correlations were lower for milking activities such as detachment of milking unit, operator idle, operator miscellaneous activity, and milking cycle time.