Consider a system consisting of one or more objects of interest. This may be an existing system that is to be modeled or a new system which is to be designed. Such a system has characteristics that may evolve over time. These changes in the system constitute its behavior. We define the execution set of a system as the set of all possible behaviors associated with that system. A process class describes a set of such systems in terms of their execution sets. A system whose execution set is consistent with a process class is an instance of that process class and may be said to realize that process. The set of all instances of a process class is referred to as the extension of that process class.
Then a process class P' is said to be a specialization of a class P if every instance of P' is also an instance of P, but not necessarily vice versa.
There are many methods by which a process class can describe the execution sets of its instances. For example, a class might be defined as including all systems whose execution sets are supersets of some ''minimal execution set''—that is, whose execution sets must include at least all the behaviors specified by the minimal execution set. In contrast, one might define a process class as including all systems whose execution sets are subsets of some ''maximal execution set''—that is, whose execution sets can include at most the behaviors specified by the maximal execution set.
For example, in figure 5.1 the process class represented by diagram B is a specialization of the class represented by diagram A under minimal execution set semantics, because B refers to all systems whose execution sets include at least all the behaviors specified in the diagram, and this is clearly a subset of the collection of all systems whose execution sets need include only the behaviors specified in diagram A. In other words, under minimal execution set semantics, each transition represents a constraint, and the more constraints, the smaller the extension.
Conversely, under maximal execution set semantics, the process class represented by diagram A is a specialization of that represented by B because A refers to all systems that exhibit a subset of the behaviors in the diagram while B refers to the larger collection of systems that may include any of the additional executions described in diagram B. In other words, in the maximal interpretation, each transition represents an option, and the more options, the larger the extension.[2]
We will refer to this relationship between a process class and its extension as the extension semantics of the particular process representation. The key point here is that what counts as a specialization of a given process model depends critically on what extension semantics have been assigned to that model. From this perspective we can see that this matter is not dealt with explicitly in the semantics of most process representations.[3]
This lack of extension semantics introduces an ambiguity into attempts to specialize and classify processes, an ambiguity with important consequences for attempts to redesign and reuse process models, as discussed in section 5.5.
It follows then, that in carrying out our analysis of state diagrams and dataflow diagrams, we will need to adopt some kind of extension semantics. In the interest of simplicity, we will use the ''maximal execution set''approach described above. While this choice may not be optimal for many practical situations, it is ideal for our purposes, in that it highlights the potential diffculties that must be addressed in a consistent approach to process specialization.
Under maximal execution set semantics, each process model is understood as defining the universe of behaviors from which any process instance is to be constructed. This semantics seems especially well suited to circumstances in which it is more important to prevent undesirable consequences than to allow for creative elaboration because the system is not allowed to have any behavior outside the specified set (e.g., consider the case of modeling the operations of a nuclear reactor or intensive care unit). This movement from an all inclusive general case to more restricted special cases may also provide valuable support to the system designer by offering an explicit set of variations to choose from rather than an open-ended space of unspecified possible extensions (as would be the case with minimal execution set semantics).
Given this choice of extension semantics, we can describe specialization in terms of the maximal execution sets themselves:
PROPOSITION Given processes P and P' defined under maximal execution set semantics, with SP the maximal execution set for P and SP ' the maximal execution set for P', then P' is a specialization of P if and only if SP ' is a subset of SP.
Proof |
See appendix A.[4]
|
Having specified an execution set semantics and derived its implications for specialization, we now address the frame of reference used to describe a process and develop criteria for comparing processes with different frames of reference. This is critical to our treatment of activity decomposition which is an important feature of many process representations. Having completed this analysis, we then introduce the notion of specializing transformation.
A process is among other things a set of possible behaviors, which we have been referring to as the execution set of a process. Note that any description of an execution set is made with respect to some frame of reference for the system: the frame of reference corresponding to the collection of attributes used to describe the set of possible behaviors that constitute that process. As we will see, it is possible to develop equivalent descriptions of a process (and its execution set) in a number of different frames of reference. In particular, we will introduce the notion of refinement, which denotes a change to a finer-grained frame of reference.[5]
For example, if the system of interest is an object moving in space, one might begin with a frame of reference with attributes for the position, mass, and velocity of the object, and then refine the frame of reference either by adding a new attribute such as the temperature of the object, or refining an existing attribute such as measuring position to the nearest meter as opposed to the nearest kilometer.[6] To fully develop our approach to specializing transformations, we will need to integrate this notion of refinement into our view of specialization:
We have shown that specialization can be viewed as a restriction on the maximal execution set of a process: a process p1 is a specialization of a process p0 if its maximal execution set is a subset of the maximal execution set of p0. This result must now be restated to take into account frame of reference. There are two cases to consider:
Both processes are described using the same frame of reference. In this case the maximal execution sets of the processes are described in the same terms and can be compared directly. Thus p1 is a specialization of p0 if and only if the maximal execution set of p1 as described using the given frame of reference is a subset of the maximal execution set of p0 as similarly described.
The processes are described using different frames of reference, but there exists a ''common''frame of reference (which is a refinement of both of these).[7] In this case p1 is a specialization of p0 if and only if the refinement of p1 is a specialization of the refinement of p0 under the common frame of reference. Thus this second case is reduced to the first by means of refinement.
We propose one useful way to operationalize this notion of specialization. This is in terms of a set of transformations for any particular process representation, which, when applied to a process description, produces a description of a specialization of that process. The two-part definition of specialization given above suggests that two sorts of transformations will be needed:
A specializing transformation is an operation that, when applied to a process described using a given representation and a given frame of reference, results in a new process description under that representation and frame of reference corresponding to a specialization of the original process. Specializing transformations change the extension of a process while preserving the frame of reference.
A refining transformation, in contrast, is an operation that changes the frame of reference of a process while preserving its extension, producing a process description of the same process under a different frame of reference.
For each type of transformation there is a related inverse type: a generalizing transformation acts on a process description to produce a generalization of the original process and is thus the inverse of a specializing transformation. Similarly an abstracting transformation is the inverse of the refining transformation, producing a new description of the same process under a frame of reference for which the original frame is a refinement.
Given that the refining/abstracting transformations preserve the extension of a process, it follows from our definition of process specialization that a specializing transformation composed with refining/abstracting transformations in any sequence produces a specialization. The analogous statement holds for generalizing transformations.
A set of refining/abstracting transformations is said to be complete if for any process p described under a frame of reference, the description of that process under any other frame of reference can be obtained by applying to p a finite number of transformations drawn from the set.
A set of specializing transformations is said to be locally complete if for any frame of reference and any process p described using that frame of reference, any specialization of p described under that frame of reference can be obtained by applying to p a finite number of transformations drawn from the set. Local completeness corresponds to the first part of the definition of process specialization given above.
There is also a notion of completeness corresponding to the second part of the definition. A set of specializing transformations and refining/abstracting transformations is said to be globally complete if for any process p, any specialization of p for which a common frame of reference exists can be obtained by applying to p a finite number of transformations drawn from the set.
PROPOSITION Let A be a complete set of refining/abstracting transformations and S be a locally complete set of specializing transformations. Then A S is globally complete.
Proof |
See appendix C.
|
[2]One can also imagine approaches that are more elaborate than either of these methods, but these suffce for the current analysis.
[3]As will become apparent when we contrast our approach with that of Nierstrasz (1993), there is room for interpretation in this regard even in the apparently straightforward case of state diagrams.
[4]For briefer exposition, all the proofs are presented in the appendices.
[5]The discussion that follows is in the spirit of the treatment of re?nement and abstraction given by Horning and Randell (1973), who provide a lucid and wide-ranging exploration of this topic.
[6]A more formal de?nition of re?nement is given in appendix B and is employed in deriving further results below.
[7]Note that the common frame of reference may be identical to one of the given frames.