logo
требования / Zadanie_na_kursovuyu_i_laboratornye_raboty / Методология программной инженерии (курсовая и лабораторные работы) / BPMN2

10.9 Process Instances, Unmodeled Activities, and Public Processes

A Process can be executed or performed many times, but each time is expected to follow the steps laid out in the Process model. For example, the Process in Figure 10.1 will occur every Friday, but each instance is expected to perform Task “Receive Issue List,” then Task “Review Issue List,” and so on, as specified in the model. Each instance of a Process is expected to be valid for the model, but some instances might not, for example if the Process has manual Activities, and the performers have not had proper instruction on how to carry out the Process.

In some applications it is useful to allow more Activities and Events to occur when a Process is executed or performed than are contained in the Process model. This enables other steps to be taken as needed without changing the Process. For example, instances of the Process in Figure 10.1 might execute or perform an extra Activity between Task “Receive Issue List” and Task “Review Issue List.” These instances are still valid for the Process model in Figure 10.1, because the instances still execute or perform the Activities in the Process, in the order they are modeled and under conditions specified for them.

There are two ways to specify whether unmodeled Activities are allowed to occur in Process instances:

If the isClosed attribute of a Process has a value of false or no value, then interactions, such as sending and receiving Messages and Events, MAY occur in an instance without additional flow elements in the Process. Unmodeled interactions can still be restricted on particular Sequence Flow in the Process (see next bullet). If the isClosed attribute of a Process has a value of true, then interactions, such as sending and receiving Messages and Events, MAY NOT occur without additional flow elements in the Process. This restriction overrides any unmodeled interactions allowed by Sequence Flows in the next bullet.

If the isImmediate attribute of a Sequence Flow in a Process has a value of false, then other Activities and interactions not modeled in the Process MAY be executed or performed during the Sequence Flow. If the isImmediate attribute has a value of true, then Activities and interactions not modeled in the Process MAY NOT be executed or performed during Sequence Flow. In non-executable Processes (isExecutable attribute has value false, or defaults to false), Sequence Flows with no value for isImmediate are treated as if the