In the supervisory control of systems, an observer monitors discrete system responses to the events of the system environment and will report an unsafe or critical situation if the response is undesired. The undesired response means that it does not adhere to user’s requirements. Several methods have already been proposed to model and simulate supervisory control of discrete systems; however, there is a lack of a systematic method relying on problem domain data. To present a domain-based method, we use a three-step method. In the first step, we commence with discrete data. Discrete data are primary ingredients of the discrete systems environment and used by system users as a gauge to express their requirements playing a vital role in safety-critical systems, such as medical and avionic ones. We use the discrete data for definition of events and conditions constituting requirements definition. Having extracted events, conditions, and user’s requirements from problem domain data, a Petri-Net automaton is constructed for identifying violation of user’s requirements in the second step. The net constitutes the core of the observer and it is used to identify undesired responses of the system. In the third step, run-time simulation of the observer is suggested using multithreading mechanism and Task Parallel Library (TPL) technology of Microsoft. Finally, by proposing the Train Protection System as a case study of a discrete concurrent system, we tangibly show how one can apply the steps of our method for modeling and simulation of the observer. The simulation results were analyzed based on the system implementation on a multi-core computer.