Your using an object-oriented language, why not use an object /domain model/? Consider that Kristen Nygaard stated that an object-oriented "program execution is regarded as a physical model, simulating the behavior of either a real or imaginary part of the world." By physical model, he really is meaning a "direct model" where you /directly /represent the concepts of your problem domain as objects that interact with each other.
Sure, you could use a state machine, but why build a model (your domain problem) on top of a model (a state machine) using a paradigm intended to support a different way. State machines are a favored way to model process and state in functional programming. A domain model would separate the user interaction from your domain problem itself. You would model an Order that knows a User and one or more Images. Anyway, hopefully some food for thought. -- Aryeh -- View this message in context: http://forum.world.st/Modeling-with-Pharo-How-to-model-a-simple-human-interaction-tp4937293p4950766.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.