- A new operator, ∗ (star), is introduced in the
programming notation to denote process
instantiation. An instance of a process term must be
created before it can execute. This event is unique in
the system since it represents the origin of a global
time at which processes can start their execution. As
an example, let us consider a process P that initially
can only engage in the event a. In CSP, this process
would be denoted as: P = a →STOP, but it must be
instantiated before being executed in CSP+T. Given
P', the timed version of P, which is instantiated at
time 1, where s is a time stamp associated to the
abstract communication a, the specification of P'
becomes,
P'= 1. ∗ → s.a →STOP where s ∈[1, ∞[.
It should be noted that event a occurs only once
in the interval.
- A new event operator >< is introduced to be
used jointly with a “marker variable” to record the
time instant at which the event occurs. ev>< v means
that the time at which ev is observed during a
process execution is in the marker variable v. The
value of time stamps is taken from the set of positive
real numbers, so that successive events form a non-
decreasing monotonic sequence. As several
successive events can instantiate the same variable at
different times, if we specify the process P as
follows
: P= 1. ∗ → a>< var → STOP,
for each process execution, the marker variable var
will record the corresponding time value at which
event a occurred, and it will always satisfy var > 1.
The scope of marker variables is strictly limited
to one sequential process. They cannot be referenced
or accessed in any other way within a concurrent
composition of processes.
- Each marker event is usually associated with a
time interval, which is called its “event-enabling”
interval and represents the period of time over which
the event is continuously available to the process
and its environment. During this interval, the event
can be detected, then provoking an instantaneous
change of state either in the process or in the
environment. The initial times for intervals are
relative to a preceding event or to a marker variable,
which is instantiated during current process
execution. A process is considered to be the STOP
process if it cannot engage in the marker event or in
an alternative event during the enabling interval. Let
us suppose, for instance, that there is a process P, a
process which can only engage in event a, which can
only occur between 1 and 2 units of time from the
process instantiation time (the preceding event),
recording in the marker variable v the time at which
the event a occurred. The specification of this
process is therefore,
P= 0. ∗ → [1, 2].a >< v → STOP
After the process execution, the value of the
marker variable satisfies the inequality 1 ≤ v ≤ 2.
The enabling interval can be defined in a more
compact way by using the function I, I (T,v), where
v is the marker variable that records the time instant
at which the preceding event occurred, and T defines
the duration of the time interval starting at the time
instant stored in v. An example is:
P = 1. ∗ → a><v → I(3,v).c → d → STOP
in which the event c can occur at least three time
units after the process P engages in the event a..
If the marker variable does not appear in the
signature of function I, the enabling interval is
relative to the previous marker variable in the scope
of the process, otherwise the enabling interval for
that process is considered the default interval [0,∞].
The times for events are absolute and the times for
intervals are relative to the preceding time stored in
marker variable.
- The semantics of the parallel composition of
two processes with enabling intervals which must be
synchronized depends on whether the values of these
intervals are identical, partially overlapping or
disjoint. In the first case, the processes synchronize
on the common initial events, as established in CSP
communication semantics, i.e., given
P= E1.Q and
R= E2.S, then
P//Q ≠ STOP iff α(Q)∩α(S)≠Ø ∧ E1∩E2≠Ø.
In the case of disjoint enabling intervals (E1∩E2 =
Ø), the parallel composition of processes behaves as
the STOP process.
4 THE PROPOSED
METHODOLOGY
The complexity of real-time systems have
substantially increased over the last few years, with
more and more tasks, many of them critical to the
well-being of people, which are needed to provide
the facilities demanded by their current users. Thus,
we must ensure, in the earlier phases of the
development cycle, where the error correction is
more advantageous and less expensive, that the
software behaves as expected, without leading to
potentially dangerous situations. That obviously
leads to the use of formal methods, which are
advocated as a means of providing a higher level of
confidence in the correct functioning of software.
However, formal methods are hard to master and too
expensive to be used extensively during the entire
ICEIS 2006 - INFORMATION SYSTEMS ANALYSIS AND SPECIFICATION
292