This example describes a data processing unit (a filter), which gets a sequence of integer values and outputs only positive values preserving their order. This model is similar to the MSC specification in 'Split' example. The data processing unit is the system under development in the specification. The name of the system is 'Filter'. The external entities are the following:
The single scenario named 'Process' describes processing of a sequence of values. First, the sender initializes the data processing session as described in MSC Process_Init. Then the values are processed one by one. Processing of each value can progress according to two scenarios:
Finally, the processing is terminated as shown on MSC Process_Done. After that the new data processing session may be initiated. Note that this is unlike 'Split' example where only one transmission session is allowed.
MSC Process_Generate is the common part of scenarios 1 and 2. It describes the generation of a random value in the 'Sender' actor. It ends with a global condition 'process' where choice between these two scenarios is made. The choice is done based on the sign of the value. Corresponding check conditions are located in MSCs Process_Send and Process_Skip for this purpose. The behavior specified by this model is represented by HMSC 'Filter'.
All source MSC PR files, Telelogic Tau diagrams and synthesized executable SDL model can be found in MSC to SDL installation directory in doc/examples/Filter.