|
|
|
|
Live Sequence Charts as
Communicating Sequential Processes
|
|
|
Introduction |
|
LSC
was presented by Damm and Harel as a broad extension to the classic Message Sequence Charts
(MSC). It captures inter-object communication rigorously in early stage of
system development. We believe that LSC is a natural way of specifying
system requirements. CSP has long been recognized as a formal
language to specify sequential behaviors of a process and synchronization
communication between processes with powerful tool supports. In this series
of works,
we investigate the theoretical relations between LSC and CSP. A large
subset of LSC has been formalized using denotaional trace and failure semantics so as to
facilitate the semantic transformation from LSCs to CSP. The practical
implication of the transformation is threefold.
-
Mature tool support for CSP can be
reused to validate LSC specifications. In particular, we use CSP
model-checker FDR to establish the consistency of a set of universal charts
and the consistency between an existential chart and a set of universal
charts. Moreover, we can use FDR to verify important safety and liveness
properties by showing there is a refinement relation from the CSP process
capturing the properties to the CSP specification constructed from the LSC
specification.
-
We may use
well-established CSP algebraic laws to group the local behaviors of each
object in the system, so that we may synthesis a set of distributed
processes from LSCs automatically. The principle is to use a fixed
implementation to avoid undecidability.
-
Existing CSP-based
process oriented design packages for concurrency, implemented in Java can
be reused to generate executable Java programs all the way from LSC. For
this work, we
assume that a Java class skeleton of the system is available.
|
|
System Blueprint |
|
 |
|
Interchangeable Format for
LSC |
|
|
|
|
|
XML Representation of Example
LSCs:
-
Deadlock Example: The inconsistency
example found in the original journal of LSCs (FMSD, 2001), Figure 10. It is
a part of the LSC specification of railway system.
-
Symbolic Example: A part of the LSC
specification of a phone system found in the samples of Play Engine tool.
Both symbolic instances and messages are found in this example.
-
Phone System Example: The full
phone system example.
|
|
Technical Reports |
|
|
|
LSC2CSP Transformation Examples |
|
|
|
Synthesis of
Prototypes from LSC |
-
Rules: Synthesis a set of
distributed processes from LSCs, where local behaviors of each object in the
system are grouped together. The formal construction and transformation of the
CSP processes are documented in here.
-
Correctness: A proof of
the transformation is here.
-
Example: A lift system case study is
used as a running example to demonstrate our method. Reasons are that the lift
system is a standard example of reactive systems, and people are familiar with
the user requirements of a lift system, and the lift system is not a trivial
example because of the complexity caused by inherent concurrent interaction in
the system. A lift system consists of a lift providing transport between N
floors of the building as dictated by the pressing of a range of service-request
buttons. Inside the lift there is a panel of buttons, one for requesting travel
to each of the building's floors. There are two service-request buttons on each
floor, for upward and downward travel respectively, though on the first floor
and the top floor there is only one button. Pressing an internal button requests
a lift to visit the corresponding floor. Pressing an external button requests a
lift to visit the floor with the desired direction of travel. For simplicity,
only the following four active components in the lift systems are interested, a
Controller that cooperates the lift system, a Shaft through which the controller
control the movement of the lift, a Door and a set of Users.
1. The
Lift System Example in LSCs and CSP.
2.
The Lift System Example in XML.
3.
The Lift System Example in Java.
|
|
Verification Experiment Results |
|
The following experiments have
been performed using FDR version 2.78 on a Solaris Unix System with 1G user
memory. The measured time is the time taken for verifying the given
assertion in the batch mode. |
|
System Description
|
Assertions |
Result |
Time Spent |
|
Fig. 10 in (FMSD 2001)
fdr |
deadlock-free |
False |
user 0m0.100s
sys 0m0.120s |
|
Above Corrected
fdr |
deadlock-free |
True |
user 0m0.130s
sys 0m0.080s |
|
Vending Machine (3 U Charts)
fdr |
deadlock-free |
False |
user 0m0.150s
sys 0m0.090s |
|
Same Above |
Simu. Chec. |
True |
user 0m0.130s
sys 0m0.060s |
|
The phone system specification
in Play-Engine, which contains 19 universal charts, a couples of
existential charts, local and global variables, symbolic messages. (fdr) |
|
User case: Antenna |
deadlock-free |
False |
user 0m0.370s
sys 0m0.110s |
|
Core user cases |
deadlock-free |
True |
user 0m13.900s
sys 0m0.130s |
|
Phone System Corrected
and Simplified (trace preserving). |
deadlock-free |
True |
user 18m47.900s
sys 0m0.690s |
|
Phone System Corrected
and Simplified (trace preserving). |
existential chart trace refinement |
True |
user 20m28.470s
sys 0m17.270s |
|
The classic dining philosophy
example, which contains symbolic instances. |
|
5 Philosophies |
deadlock-free |
False |
user 0m0.180s
sys 0m0.120s |
|
8 Philosophies |
deadlock-free |
False |
user 0m28.490s
sys 0m0.220s |
|
10 Philosophies |
deadlock-free |
False |
user 16m23.910s
sys 0m1.050s |
|
The lift system
example above, which contains arrays of variables.
fdr |
|
- |
deadlock-free |
- |
CPU Limit Exceeded |
|
Last updated 31/12/2006. |