From Live Sequence Charts to implementation : a study of the LSC specification, the execution of behavioral requirements and exploring the possibilities to use an LSC model to generate Java code
Abstract
In the article ”From Play-In Scenarios to Code: An Achievable Dream” [8] D.Harel
outlines an exiting new way of developing software with the aid of the new and
expressively powerful language of live sequence charts (LSC) [1] for describing message
sequencing.
The language of LSC is a highly visual approach for modeling behavioral requirements
and is based on message sequence charts [13]. LSC introduces the ability to specify
mandatory behavior in charts through the notion of “liveness”, events that must
happen.
The development process described involves using a friendly capture method called
“play-in” to create the behavioral requirements in the formal LSC language. Algorithms
are then used to synthesize system behavior parts from the requirements and the system
can in turn be verified against the requirements. Cyclic synthesis and verification is used
until a sufficient system model has been created. From the system model, code and final
implementation can be generated.
This thesis is a study of the language of LSC and how code generation can be applied in
different stages of this development process. We present the constructs and elements of
the LSC language and further extensions of the specification. The method for executing
LSCs called “play-out” is also presented.
Three applications of code generation in the development process are introduced. We
explore the possibility synthesizing system behavior in the form of statecharts from
LSCs, and from there using developed tools to generate the actual code. Only an outline
of a synthesis algorithm is available, and we present the main aspects of it. The “playout”
methodology is a way of executing LSCs. We outline a methodology for integrating
a “play-out” engine into a partial implemented system in order to execute it as it was
fully operational. This allows us to test the behavioral requirements or utilize the result
as a final implementation. We also present a way of generating code directly from an
LSC specification with certain constraints, and thus circumventing the need for a system
model with behavior.
We have developed a tool called “LSC Visualizer”, which is able to read LSCs stored in
our own XML format. We have also developed a prototype “play-out” engine that can
be coupled with existing system models as well as a prototype for generating code
directly from an LSC specification. An algorithm for building an event-tree that
describes the partial order has been constructed, and is utilized by the “LSC Visualizer”
and both prototypes.
Description
Masteroppgave i informasjons- og kommunikasjonsteknologi 2003 - Høgskolen i Agder, Grimstad
Publisher
Høgskolen i AgderAgder University College