Violin

This project aims at providing a methodology for the development of distributed real-time systems. All the system life cycle phases are supported in a seamless way. The modelling language is HCRSM - Hierarchical Communicating Real-Time State Machines. A system model is composed of a collection of machines linked to one another by point-to-point typed channels. Each machine is provided of an interface of typed input/output ports, a local environment and a behaviour specified by a statechart (only the or-decomposition is permitted). Communications are synchronous and follow a CSP-like syntax. State transitions are annotated by a guarded command equipped of a timing constraint. An HCRSM model is mapped onto a runtime representation which is uniformly used both for temporal testing and final implementation. Temporal validation rests on assertion checking on the time stamped event histories (TEHs) of channels communications. Violin is a Java toolset which supports modelling, testing and implementation of HCRSM systems. Current version of the toolset generates Java code and depends on a customised runtime system which contributes to temporal predictability by avoiding dynamic memory allocation/deallocation operations. Other runtime supports and target languages are possible.