We construct models as an aid to our thought process. A particular class of models, operational models, can be used for simulation and prototyping. The Opj modeling language is suitable for building operational models of complex software systems. The notion of operational parameterized building block is the key point of the approach, which focuses on two major phases: domain modeling and system modeling. Domain modeling consists in providing the classes of the building blocks grouped into different schemata. System modeling consists in building an actual model using the building blocks taken from the above-mentioned schemata; such building blocks are connected to each other according to the rules expressed in the schemata and are given actual parameters. As an example, a workflow management system supporting business process managing travel authorizations is presented. The workflow system is modeled and then used to synthesize a distributed prototype.