sively comparable to intra-object behavioral models.
However, the language of LSC, in its present form,
is not well suited for the modeling of concurrent,
decentralized, systems. First, play-out (Harel and
Marelly, 2003), the executable semantics of LSC, de-
fines a central controller that implements the system
as a whole. Moreover, regardless of how play-out
is defined, it is shown in (Bontemps and Schobbens,
2007) that without additional coordination some LSC
specifications cannot be distributed into components.
As we discuss in Sect. 2, the standard interpretation
of LSC (Harel and Marelly, 2003) results in implicit
dependencies between the different parts of a scenario,
which arise throughout any typical specification. For
systems which can be operated by a single controller,
this raises no difficulty. However, in decentralized
architectures, such dependencies require more interac-
tion between the components than specified.
If we were to use LSC, or any other formalism,
for specifying concurrent systems, the behavior that
can be specified in that formalism must be such that
it can be exhibited by decentralized components. In
this context, it is significant to impose a restriction
on the components, that they coordinate and interact
with each other merely as described in the specification.
Otherwise, components are not as autonomous, and the
system is more centralized than intended. Moreover,
as in typical LSC specifications, additional interactions
may result in a significant efficiency overhead.
With the intention to support the modeling of con-
current systems, we introduce a variation on the se-
mantics of LSC. It is applied on a central fragment
of the language, which includes scenarios partitioned
into a prechart and a main chart (see Sect. 2). Instead
of the traditional interpretation, presented in terms of
interleaved sequential runs, we interpret LSC speci-
fications on the basis of partially ordered runs (Pratt,
1986); i.e., traces of executions in which events are
partially ordered. In such a semantic domain, also
known as a true-concurrency semantic domain, we
adopt LSC’s prechart/main-chart distinction. As runs
are partially ordered, they convey more information
than interleaved runs — regarding the causal dependen-
cies between the events. Here, as scenarios themselves
are partially ordered, a fragment of a scenario can be
identified with a matching sub-structure in the run.
Changing the semantic domain results in a sim-
ple variant of the language, which we refer to as dis-
tributed live sequence charts (dLSC). dLSC avoids
implicit dependencies between separate parts of a sce-
nario, and is thus, we believe, well suited for the mod-
eling of concurrent systems. Moreover, as partially
ordered runs directly correspond to the visual struc-
ture of charts, our interpretation is simple and compre-
hensible, and has a rigorous mathematical basis. We
demonstrate the language and its use with a case study.
We investigate the expressive power of dLSC with
respect to a common model of concurrent systems,
namely, Petri nets (Reisig, 1985). We show that dLSC
specifications are, effectively, strictly more expressive
than low-level Petri nets in the form of place/transition
nets (Reisig, 1985). However, they do not exceed
the expressive power of high-level nets; dLSC spec-
ifications are subsumed by the class of token history
nets (Van Hee et al., 2008).
We present an algorithm that synthesizes, for any
given dLSC specification
S
, an equivalent token his-
tory net
N
S
. A token history net, being a particular
kind of a coloured Petri net (Jensen, 1987), is an ex-
ecutable model, and thus may serve as an implemen-
tation of the specification. Moreover, and most im-
portantly, the implementation is decentralized — the
components specified in
S
can be extracted from the re-
sulting net
N
S
, and, for a large class of specifications,
no additional interaction between the components is
involved. The synthesis of Petri-net components from
a dLSC specification is supported by a prototype tool.
The paper is structured as follows. In Sect. 2, the
semantics of LSC is discussed more closely. In Sect. 3,
we introduce the variant of distributed LSC through an
example, whereas a formal representation of the for-
malism and its semantics is given in the appendix.
In Sect. 4, we investigate the expressive power of
dLSC. Our technique to synthesize system-models
from dLSC specifications and to extract decentralized
components from them is presented in Sect. 5 and 6,
as well as our prototype tool. We discuss related work
in Sect. 7, and conclude in Sect. 8.
2 FROM LSCs TO DISTRIBUTED
LSCs
In Fig. 1(a), we illustrate a live sequence chart
L
a
. In
the chart, there are three vertical lines, called
lifelines
,
which correspond to three objects: A, B, and C. The
interactions between the objects are depicted by four
arrows, labeled by a, b, c, and d, which designate
events or messages. Time passes along lifelines from
top to bottom, which determines the order between
the events (namely, a through d in that exact order).
Events in LSCs are, in general, partially ordered.
L
a
is
divided into two: a prechart, depicted inside a dashed
hexagon (containing event a), and a main chart, de-
picted inside a solid rectangle (containing events b
through d). The prechart and the main chart are of
two complementary modalities: monitored versus exe-
cute. The prechart is monitored; i.e., it is matched at
MODELSWARD2013-InternationalConferenceonModel-DrivenEngineeringandSoftwareDevelopment
26