Workflow Simulator A system that simulates the execution of a sequence of activities in an organization. The sequence of activities is described as a succession of states connected by transitions (state machine). Each state represents an activity and activities can take place in parallel. An activity consists of the execution of a specific method of a Java class loaded from disk. A resource visible system-wide stores a set of global environment variables. Any transition from a state to another can be conditional; the conditions are expressed using environment variables. The activity in a state can also rely on environment variables (set by other previous state) to fulfill its function. Multiple states may be reachabe though direct transitions form a single state. The respective activities will be fulfilled in parallel. The logic of the state machine and the name of classes that represent activities must be specified throu configuration files. Example: In a software company, the documentation of an application must go through certain stages to be approved. The initial state A represents writing the documentation. State B models the discussion regarding the first draft by the team that implemented the application. If the team agrees, the systems goes to state C, the document publication. If not, the system returns to A. Frpm C the system jump to the parallel states D and E: D = internet publishing, C =printing and sending to the customer. Transitions are: A-> B (unconditionally) B-> A (if the team does not agree) B-> C (if the team agrees) C-> D C-> E In state A, writing documentation can be simulated by calling a method run() in a class WriteDocuments. In state C, a run() in a TeamDiscussion class can be called, that will set an Environment variable representing the decision. The environment variable will be read by the system to determine the next state (C or A). The environment can be implemented as an object accessible to all states, as a file on disk, etc.