Thursday, 5 June 2014

Paper summaries : Statecharts and ATL

Here are two paper summaries I had submitted for one of my university courses, Software Design.

"Statecharts : A visual formalism for complex systems." by Harel

The authors propose a modeling formalism called Statecharts to addresses some of the inherent weaknesses of conventional state diagrams in realistically modeling complex reactive systems (one typical weakness is state space explosion even for relatively simple reactive systems). Statecharts extend conventional state diagrams (thus leveraging the visual power of these conventional diagrams) by the incorporation of features such as clustering of states, adding concurrency capabilities, enabling fluid movement between different levels of abstraction, modeling hierarchical information, modeling of activities (i.e., something that takes a nonzero amount of time like beeping), etc. The Statecharts formalism was exemplified using the Timex stopwatch system. In the industrial setting, Statecharts were successfully used in a large scale avionics project. The author also proposes further extensions (e.g., probabilistic Statecharts).

The author presented valuable and practical extensions to conventional state diagrams. Though verbose, the paper was accessible. The Timex stopwatch examples were welcome motifs, vastly preferable to a purely theoretical approach in presenting the ideas. Overall, the research is highly original.

"ATL : A model transformation tool." by Jouault et. Al.

ATL is a rule-based domain specific language (built upon the OCL specifications) with declarative and imperative constructs for specifying model-to-model transformations. The transformations are unidirectional i.e., the source models are read-only while the target models are write-only. The declarative features of ATL (e.g., matched rules, lazy rules, etc) encapsulate complex algorithms and are thus simple and intuitive to use. However, imperative statements are often essential for complex transformational problems. A number of tools (e.g., editor, compiler, virtual machine, debugger) were developed for ATL on the Eclipse platform. These tools support many of features highlighted in [1] except for (i) static type checking, (ii) helpers in the context of collection types, and (iii) more strongly typed resolution. Feedback on the use of ATL has been positive, and ATL has been evaluated on more than 100 sites.

The paper itself is quite concise and not deeply technical, or even expansive. Moreover, some sections (e.g., related work) are perfunctory. However, the presented contributions are concrete, the idea is novel and the implementation (of the ATL tools) is praiseworthy (given the popularity of Eclipse). The successful evaluations and positive responses (mentioned in section 6) to the developed ATL tools is indicative of the high quality of the presented work.